GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: scott1 le 16 Octobre 2010, 18:57:55

Titre: Topic Scott1
Posté par: scott1 le 16 Octobre 2010, 18:57:55
Bonjour à toutes et à tous,

pour éviter de flood, je cree un topic général.

je recomence le pawn, j'aimerasi savoir comment bloquer le bouton spawn dans le onplayerrequestclass.

Quand quand on clique dessus rien ne se passe.

Merci
Titre: Re : Topic Scott1
Posté par: scott1 le 17 Octobre 2010, 19:28:47
Merci Dizi. Mais pourquoi return 0; ?




Comme je l'ai dit je recommence un GM de A à Z,

j'ai toujours fait la 2eme manniere de cette page

http://wiki.sa-mp.com/wiki/Using_strcmp%28%29 (http://wiki.sa-mp.com/wiki/Using_strcmp%28%29)

j'amerais savoir quel maniere est la meilleur, la plus rapide d'exécution.

Il en existe d'autre mais je ne les connais plus.
Titre: Re : Topic Scott1
Posté par: scott1 le 17 Octobre 2010, 21:11:41
Arf, je l'ai fait, mais bon ça m'empêche de spawn maintenant xd
Titre: Re : Re : Topic Scott1
Posté par: S!m le 18 Octobre 2010, 03:17:56
Salut,

Arf, je l'ai fait, mais bon ça m'empêche de spawn maintenant xd

au lieu de renvoyer une constante, passe par une variable qui te permettra d'autorisé le spawn lorsque tu le désirera.

Pour les commandes, le meilleur système actuellement est zcmd. Avec un petit nombre de commande, il n'est pas vraiment plus rapide (voir plus lent), par contre en augmentant le nombre de commandes il ne perd pas en vitesse, contrairement à tous les autres systèmes. De plus, il est très facile d'utilisation et permet un plein contrôle des commandes.

++Sim++
Titre: Re : Topic Scott1
Posté par: scott1 le 18 Octobre 2010, 14:02:16
Un rp avec la méthode que j'utilise, ça va?

Double post
Désolé pour le double post, mais bon

Certaine fois quand je redémarre mon serveur, ça m'affiche " You are banned from this server ", obligé de deco reco, existe t il une solution?

Est il possible de désactiver la barre respect total qui s'affiche des fois? Car elle me fait crash.


Pour la méthode de dizi, j'ai fait return false;  et dans mon dialogue de spawn un setspawninfo, puis spawn player et ça marche bien
Titre: Re : Topic Scott1
Posté par: Karting06 le 18 Octobre 2010, 17:24:34
J'ai le même problème. C'est chiant hein?
Edit: Fait /rcon gmx, mais tu rédemarres pas tout le serveur.
Titre: Re : Topic Scott1
Posté par: scott1 le 18 Octobre 2010, 20:47:59
Une question,

Qu'est ce qui serais le mieux, niveau rapidite, et pratique,

un fichier pour chaque biz et maison,


avec

 ValeurA=Z
ValeurB=Y
ValeurC=X



ou un fichier pour tout les bizs et un pour toutes les maisons?

Z,X,Y....


Merci d'avance

Titre: Re : Re : Re : Topic Scott1
Posté par: Brian Turner le 18 Octobre 2010, 21:02:40
J'ai le même problème. C'est chiant hein?
Edit: Fait /rcon gmx, mais tu rédemarres pas tout le serveur.

En étant banni , tu ne peux pas utiliser les commande rcon ( ou alors dans la console ..)
Mais la commande "gmx" redémarre le serveur entièrement .

Oui entierement mais sa quitte les filterscripts et sa les relance pas.
Titre: Re : Topic Scott1
Posté par: Karting06 le 18 Octobre 2010, 21:15:40
Oui, mais la commande loadfs marche pas bien avec des maps, ils s'affichent à moitié!
Titre: Re : Topic Scott1
Posté par: scott1 le 19 Octobre 2010, 01:00:30
Svp vous ecartez pas du sujet ^^
Titre: Re : Re : Topic Scott1
Posté par: Syg le 19 Octobre 2010, 11:19:55
Une question,

Qu'est ce qui serais le mieux, niveau rapidite, et pratique,

un fichier pour chaque biz et maison,


avec

 ValeurA=Z
ValeurB=Y
ValeurC=X



ou un fichier pour tout les bizs et un pour toutes les maisons?

Z,X,Y....


Merci d'avance


Un fichier pour chaque biz et un pour chaque maison.

L'avantage c'est que lors de la lecture (et de l'écriture), les accès aux fichiers sont simplifiés et seules les données concernées seront lues (ou écrites). C'est un gain de temps non négligeable.
De plus, si tu dois aller modifier à la main les données d'un biz ou d'une maison, leur recherche sera grandement facilité si tu n'as pas à chercher dans un fichier de plusieurs kilooctets.

++
Syg

Titre: Re : Topic Scott1
Posté par: scott1 le 19 Octobre 2010, 11:31:28
Je me disait bien Syg. Merci !

Par contre lors du chargement :D ça sera moins cool je pense xD
Titre: Re : Re : Topic Scott1
Posté par: Syg le 19 Octobre 2010, 21:49:11
Par contre lors du chargement :D ça sera moins cool je pense xD
Pas forcément, si tu nommes tes fichiers correctement (mais01, mais02, ...) tu peux les charger dans une boucle en construisant le nom du fichier dynamiquement (format (NomFichier, sizeof (NomFichier), "Mais%02d", i);).

Maintenant, si chaque nom à un format différent (LaPetiteMaisonBlanche, LaGrandeMaisonAvecUnToitAQuatrePans, LaCabaneEnBois...) se sera effectivement pas cool (long et chiant).

++
Sgy
Titre: Re : Re : Re : Topic Scott1
Posté par: S!m le 19 Octobre 2010, 22:54:02
Salut,

Par contre lors du chargement :D ça sera moins cool je pense xD
Pas forcément, si tu nommes tes fichiers correctement (mais01, mais02, ...) tu peux les charger dans une boucle en construisant le nom du fichier dynamiquement (format (NomFichier, sizeof (NomFichier), "Mais%02d", i);).

Maintenant, si chaque nom à un format différent (LaPetiteMaisonBlanche, LaGrandeMaisonAvecUnToitAQuatrePans, LaCabaneEnBois...) se sera effectivement pas cool (long et chiant).

++
Syg

en utilisant des noms complètement différent, c possible avec le plugin y_files. Suffit de mettre une extension particulière, les mettre dans un dossier.... enfin, un truc qui permet de les distinguer des autres fichiers. En utilisant ffind, on est capable de retrouver aisément tous les fichiers ayant un certain format dans un dossier.

++Sim++
Titre: Re : Topic Scott1
Posté par: scott1 le 20 Octobre 2010, 01:38:37
J'ai pas chercher midi a quatorze heure, j'ai tout mis dans un dossier Maison, avec des nom Maison01.maison    Maison02.maison

comme ça petite boucle et s'est bon ^^.

Je disais moins cool, car s'est lourd à charger ^^

Double post
Bonjour à toutes et à tous, j'ai un soucis,


j'ai crée ceci

if(strcmp(nom, MaisonInfos[JoueurInfos[playerid][jMaison]][mProprio], true) == 1) { Message(playerid,"~r~Vous n'etes pas proprietaire mais locataire."); return 1; }
pour savoir si le nom du proprietaire est le meme que celui qui tape la commande.

J'ai tester en lan,

Proprietaire Maxence_Aus

Nom du joueur Maxence_Aussems

et ça m'a mis qu'il etait les meme :s
Titre: Re : Topic Scott1
Posté par: Ssk le 20 Octobre 2010, 16:17:44
tu peut utiliser cette astuce la


if(strcmp(nom, MaisonInfos[JoueurInfos[playerid][jMaison]][mProprio], true, strlen( nom )) == 1)
Titre: Re : Topic Scott1
Posté par: Syg le 20 Octobre 2010, 23:23:18
La seule valeur de retour testable de la fonction strcmp est 0 qui indique deux chaînes identiques.
strcmp ne renvoie 1 que dans de très rares cas (cas où les chaînes ne diffèrent que par leur dernier caractère).

Donc tester si le retour de strcmp vaut 1 conduira indéniablement à des erreurs.
Démonstration :
#include <a_samp>
main ()
{
}

public OnGameModeInit ()
{
new chaine1[128] = "chaine 0123456";
new chaine2[128] = "chaine 0123";
new chaine3[128] = "chaine 0123";

printf ("Result 1 : %d", strcmp (chaine1, chaine2));
printf ("Result 2 : %d", strcmp (chaine2, chaine3));
return 1;
}

Ce script produit l'affichage suivant :
[23:15:17] Result 1 : 3
[23:15:17] Result 2 : 0

Dans le cas où les deux chaînes ne sont pas identiques, la valeur de retour est 3 !! (je peux donner un explication du code retour de cette fonction si certains le veulent).

Donc je te conseille de remplacer ta ligne par celle-ci :
if(strcmp(nom, MaisonInfos[JoueurInfos[playerid][jMaison]][mProprio], true) != 0) { Message(playerid,"~r~Vous n'etes pas proprietaire mais locataire."); return 1; }

++
Syg
Titre: Re : Topic Scott1
Posté par: scott1 le 21 Octobre 2010, 00:42:01
Merci Syg

Double post
J'ai un soucis

dans des callback de ce type

OnVehiclePaintjob(playerid, vehicleid, paintjobid)

le vehicleid commence a 1

Or moi dans mes new ça commence a 0.

J'ai bidouiller un carid = vehicleid-1,

mais y aurait il une solution, plus propre?

Merci d'avance
Titre: Re : Topic Scott1
Posté par: Ssk le 21 Octobre 2010, 07:46:34
ah, oui désolé je n'avais pas remarqué qu'il avait mis strcmp() == 1
Titre: Re : Re : Topic Scott1
Posté par: Syg le 21 Octobre 2010, 14:00:09
J'ai un soucis
dans des callback de ce type
OnVehiclePaintjob(playerid, vehicleid, paintjobid)
le vehicleid commence a 1
Or moi dans mes new ça commence a 0.
J'ai bidouiller un carid = vehicleid-1,
mais y aurait il une solution, plus propre?

Merci d'avance
Je n'ai peut-être pas compris ton problème mais je donne une réponse quand même.

Les ID de véhicules commencent effectivement à 1, on ne peut pas changer ça.
Si on veut faire correspondre chaque véhicule à un élément d'un tableau, il n'y a que 2 solutions :
1 - La tienne (vehicleid-1)
2 - Faire un tableau avec un élément supplémentaire et ne pas se servir de l'élément 0

++
Syg
Titre: Re : Topic Scott1
Posté par: scott1 le 21 Octobre 2010, 17:13:07
je suis un boulet, j'ai fait une erreur dans mon save de veh, je commençait a 0 au lieux de 1
Titre: Re : Topic Scott1
Posté par: scott1 le 23 Octobre 2010, 16:31:17
Bonjour a toute et a tous,

j'ai un soucis avec mes pickup et mes 3dtext

Quand je lance le serveur j'ai mic ça

CreatePickup(1273, 1, MaisonInfos[mEntreeX],MaisonInfos[mEntreeY],MaisonInfos[mEntreeZ], 0);

ça me cree le pickup et le 3d text mais en décalé sur la droite et avec +- 1 en dessous du Z que j'ai dans mon fichier stats.

Pourtant quand je le fait ig,

/entree maison

j'ai mis la meme chose

CreatePickup(1273, 1, MaisonInfos[mEntreeX],MaisonInfos[mEntreeY],MaisonInfos[mEntreeZ], 0);

et la le pick up et le 3d text se mette au bon endroit :s


Merci d'avance

Titre: Re : Topic Scott1
Posté par: scott1 le 24 Octobre 2010, 22:58:39
quelqu'un a une solution?
Titre: Re : Topic Scott1
Posté par: kekey- le 25 Octobre 2010, 18:51:42
Citer
Est il possible de désactiver la barre respect total qui s'affiche des fois? Car elle me fait crash.

J'ai vu que Scott avait posé la question dans ce Topic, mais que personne n'a répondu à celle là. J'en profite donc pour Redemander, Savez-vous s'il est possible d'enlever cette maudite Barre de respect total qui s'affiche de temps en temps et qui fait tant crash ? Si oui comment ?
Merci d'avance.
Titre: Re : Topic Scott1
Posté par: Brian Turner le 25 Octobre 2010, 19:23:15
Salut, utilise sa : EnableStuntBonusForAll(0);
Titre: Re : Re : Topic Scott1
Posté par: scott1 le 25 Octobre 2010, 20:44:40
Salut, utilise sa : EnableStuntBonusForAll(0);

ça n'a rien avoir,

quelqu'un a une idée pour mon soucis de pickup?
Titre: Re : Topic Scott1
Posté par: Brian Turner le 26 Octobre 2010, 10:51:10
Scott c'était pas pour toi mais pour kekey- ...

Titre: Re : Topic Scott1
Posté par: scott1 le 28 Octobre 2010, 17:52:17
up

Double post
Quelqu'un a une solution?
Titre: Re : Topic Scott1
Posté par: scott1 le 30 Octobre 2010, 00:50:59
Up ?
Titre: Re : Topic Scott1
Posté par: chneubeul le 30 Octobre 2010, 01:04:49
Récupe la position IG du pickup pour vérifier si c'est vraiment décaler.

Tu utilise une boucle pour récupérer l'id du pickup ou ton joueur est puis tu prend ses positions et tu les affiches :

for(new p = 0; p<sizeof(MaisonInfos); ++p)
{
    format(string, sizeof(string), "X: %.3f   Y: %.3f  Z : %.3f" ,MaisonInfos[h][mEntreeX], MaisonInfos[h][mEntreeY], MaisonInfos[h][mEntreeZ]);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    return 1;
}


Pour informations le %.3f  sert à afficher un nombre float avec 3 chiffres après la virgule.(pour mettre une meilleur comparaison )


A+, Sam.
 :cheers
Titre: Re : Topic Scott1
Posté par: scott1 le 30 Octobre 2010, 03:03:49
Voici le résultat.

[03:01:16] X: 1421.000   Y: -885.000  Z : 50.640   // Moi
[03:01:16] X: 1421.000   Y: -885.000  Z : 50.000   // Maison

Double post
Quand je fait ma commande ig pour déplacer une maison j'obtiens:



EntreeX=1421.000000
EntreeY=-885.000000
EntreeZ=50.640632


Bizard
Titre: Re : Topic Scott1
Posté par: chneubeul le 30 Octobre 2010, 12:22:34
Fait voir ton code pour placer une maison.
C'est la première fois que j'vois ça ^^ Quand on place un pickup la position se change auto..
Ta essayer dans placé plusieurs ? Voir si ça a toujours la même différence ou s'est aléatoire ?
Titre: Re : Topic Scott1
Posté par: scott1 le 30 Octobre 2010, 12:39:38
Toujours la même diifference

if(strcmp(maison,"entree",true) == 0)
{
    if(JoueurInfos[playerid][jAdmin]<5) { Message(playerid,"~r~Vous n'avez pas acces a cette commande."); return 1; }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
        SendClientMessage(playerid,grisbleu,"[Usage] (/a)dmin (ma)ison entree [IdMaison]");
return 1;
    }
    new idmaison = strval(tmp);
    if(idmaison< 1 || idmaison >= MAX_MAISONS) { format(string,sizeof(string),"~r~La maison Id: ~y~%d ~r~n'existe pas. L'id de la derniere maison est: ~y~%d~r~.",idmaison,MAX_MAISONS-1); Message(playerid,string); return 1; }
                new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
MaisonInfos[idmaison][mEntreeX] = x;
MaisonInfos[idmaison][mEntreeY] = y;
MaisonInfos[idmaison][mEntreeZ] = z;
format(string,sizeof(string),"[Admin] L'admin %s à déplacé l'entrée de la maison %d.",nom,idmaison);
        MessageAdminService(jauneclair,5,string);
        LogAdmin(string);
    SauvegardeMaison(idmaison);
    UpdateTextMaison(idmaison);
    return 1;
}


public UpdateTextMaison(maison)
{
new string[256];
DestroyPickup(MaisonInfos[maison][mPickup]);
Delete3DTextLabel(Text3D:MaisonInfos[maison][mTexte]);
if(MaisonInfos[maison][mVendue] == 0)
{
MaisonInfos[maison][mPickup] = CreatePickup(1273, 1, MaisonInfos[maison][mEntreeX],MaisonInfos[maison][mEntreeY],MaisonInfos[maison][mEntreeZ], 0);
format(string,sizeof(string),"Maison en vente: %s\nPrix: %d$",MaisonInfos[maison][mDescription],MaisonInfos[maison][mPrix]);
}
else
{
    MaisonInfos[maison][mPickup] = CreatePickup(1239, 1, MaisonInfos[maison][mEntreeX],MaisonInfos[maison][mEntreeY],MaisonInfos[maison][mEntreeZ], 0);
if(MaisonInfos[maison][mLocation] == 0) { format(string,sizeof(string),"Maison de %s",MaisonInfos[maison][mProprio]); }
else { format(string,sizeof(string),"Maison de %s\nLocation: %d$/mois",MaisonInfos[maison][mProprio],MaisonInfos[maison][mPrixLocation]); }
}
Create3DTextLabel(string, textmaison,MaisonInfos[maison][mEntreeX],MaisonInfos[maison][mEntreeY],MaisonInfos[maison][mEntreeZ]+0.7,10.0,0,1);
return 1;
}
Titre: Re : Topic Scott1
Posté par: chneubeul le 30 Octobre 2010, 17:52:35
Là, je sèche. Essaye de chercher la différence dans le GM voir si quelque part on enleve  0.604
Titre: Re : Topic Scott1
Posté par: Myk3L le 31 Octobre 2010, 15:30:37
HS : Maintenant c'est commencé mais par convention, on mets les variables, les fonctions ... en anglais :)
Titre: Re : Re : Topic Scott1
Posté par: scott1 le 03 Novembre 2010, 02:39:12
HS : Maintenant c'est commencé mais par convention, on mets les variables, les fonctions ... en anglais :)

Par convention? Et moi par faciliter pour m'y retrouver dans ma langue maternelle je les met en fraçais.


Si non personne ne sais d'ou pourrais venir l'erreur, car mon code est juste je ne vois pas l'erreur.
Titre: Re : Topic Scott1
Posté par: scott1 le 05 Novembre 2010, 22:29:25
Soucis de pick up résolut, en fait, au chargement du fichier, çj'avais mis strval au lieux de floatstr


 :boulet


Si non, j'ai un soucis,

quand je fait un SetPlayerSkin dans un véhicule le joueur se retrouve droit avec les pied hors du véhicule, j'ai essayer des setplayerpos et des puttplayerinvehicle, mais rien n'y fait.

Il reste droit comme un poteau. Que faire?

Soucis 2: ^^,  j'aimerais faire un SetPlayerHoldingObject

le soucis s'est que dans un véhicule, l'objet ne se met pas. Que faire?


Merci d'avance
Titre: Re : Re : Topic Scott1
Posté par: S!m le 05 Novembre 2010, 23:42:14
Salut,

Soucis de pick up résolut, en fait, au chargement du fichier, çj'avais mis strval au lieux de floatstr


 :boulet


Si non, j'ai un soucis,

quand je fait un SetPlayerSkin dans un véhicule le joueur se retrouve droit avec les pied hors du véhicule, j'ai essayer des setplayerpos et des puttplayerinvehicle, mais rien n'y fait.

Il reste droit comme un poteau. Que faire?

Soucis 2: ^^,  j'aimerais faire un SetPlayerHoldingObject

le soucis s'est que dans un véhicule, l'objet ne se met pas. Que faire?


Merci d'avance

2 possibilité:

 - chercher encore afin de trouver
 - abandonner et simplement contourner le problème en interdisant ces choses en véhicule.

++Sim++
Titre: Re : Re : Re : Topic Scott1
Posté par: scott1 le 06 Novembre 2010, 00:01:54
- chercher encore afin de trouver

Justement l'objet ne doit etre mis que dans le véhicule.

Je cherche xD, mais est ce possible?

Titre: Re : Topic Scott1
Posté par: scott1 le 08 Novembre 2010, 10:08:42
je recherche toujours, quelqu'un n'aurais pas une solution car je seche la :s
Titre: Re : Topic Scott1
Posté par: scott1 le 17 Novembre 2010, 11:10:03
Bonjour à toute et à tous,

j'aimerais savoir comment faire pour crypter mes mot de passe.

J'ai fait une recherche j'ai vu qu'il y en avait dans le register systeme de mc30

mais j'aime pas trop, et celle sur samp, hum, à 128 caractère ça fait beaucoup :D

Merci d'avance
Titre: Re : Topic Scott1
Posté par: Myk3L le 17 Novembre 2010, 13:46:14
Pour le cryptage des mots de passe, va voir dans mon topic.

Pour ton SetPlayerSkin dans un véhicule, tu applique tout simplement une animation (une anim ped, je te laisse trouver laquelle, c'est du genre 158 je crois).

Myk3L.
Titre: Re : Re : Topic Scott1
Posté par: scott1 le 17 Novembre 2010, 14:40:15
Pour le cryptage des mots de passe, va voir dans mon topic.

Pour ton SetPlayerSkin dans un véhicule, tu applique tout simplement une animation (une anim ped, je te laisse trouver laquelle, c'est du genre 158 je crois).

Myk3L.

Pas con :D, merci j'ai pas pensé a lui faire jouer l'animation ^^.


J'ai un autre soucis avec un système de mail en HTTP,

dans mon code quand j'essaye d'envoyer un texte avec des espace dans le body, il arrete, il n'envoi que ce qu'il y a avant l'espace.

J'ia essayé \n     des astuce trouvé sur internet, mais rien en va.

Quelqu'un a une idée? Merci d'avance
Titre: Re : Topic Scott1
Posté par: scott1 le 18 Novembre 2010, 18:23:12
up ? ^^
Titre: Re : Topic Scott1
Posté par: S!m le 18 Novembre 2010, 18:40:58
Salut,

sans vouloir te décevoir, je pense que très peu de gens ont utilisé les fonctions HTTP, très peu de chance que tu ait une réponse valable.
Tu serais mieux d'aller voir sur le forum officiel de sa-mp pour cette question.

++Sim++
Titre: Re : Topic Scott1
Posté par: scott1 le 18 Novembre 2010, 23:22:43
Elle n'est pas bien cette fonction? Car pour un sendmail je ne vois pas d'autre solution, un plugin pour envoyer des mails sous linux j'en ai pas vu de bon


Merci
Titre: Re : Re : Topic Scott1
Posté par: S!m le 19 Novembre 2010, 00:50:49
Salut,

Elle n'est pas bien cette fonction? Car pour un sendmail je ne vois pas d'autre solution, un plugin pour envoyer des mails sous linux j'en ai pas vu de bon

Merci

je n'ai pas dit que cette fonction n'est pas bien, j'ai simplement dit que peu de gens s'en servent. Déjà la plupart des gens n'ont pas le site web qui va avec. Ensuite, il faut avoir besoin de faire un lien direct avec le site. Pour la plupart des utilisations, on peut très bien le faire avec une base de données (par exemple la gestion des comptes).

++Sim++
Titre: Re : Topic Scott1
Posté par: scott1 le 23 Novembre 2010, 12:41:26
S'est bon, je me suis fait un ptit fichier php ;)

Comme ça le texte je le met pas dans la requête mais directement dans le fichier.