• 06 Juin 2026, 23:31:54


Auteur Sujet: Commande de réparation véhicule  (Lu 5499 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Sismix84

  • *
  • Tueur en série
  • Messages: 247
    • Voir le profil
Commande de réparation véhicule
« le: 27 Octobre 2007, 18:41:29 »
bonsoir, je me suis fait une commande pour réparer son véhicule

if (strcmp("/rep", cmdtext, true, 10) == 0)
{
SetVehicleHealth(playerid, 1000);
GivePlayerMoney(playerid, -1500);
SendClientMessage(playerid, COLOR_GREEN, "Kit de réparation acheté.");

return 1
}
mais il y a une erreur et je n'arrive pas a la résoudre

C:\Program Files\Rockstar Games\GTA San Andreas\samp022server.win32\gamemodes\Sismix84.pwn(743) : error 001: expected token: ";", but found "}"
est ce que quelqu'un peut m'aider ?

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : Commande de réparation véhicule
« Réponse #1 le: 27 Octobre 2007, 19:51:52 »
Voila pour toi :

if (strcmp(cmdtext, "/rep" , true, 4) == 0){
 
SetVehicleHealth(playerid, 1000);
GivePlayerMoney(playerid, -1500);
SendClientMessage(playerid, COLOR_GREEN, "Kit de réparation acheté.");

return 1;
}

AK NV.


Tu vois avant? Bah j'étais là encore avant!

Hors ligne Sismix84

  • *
  • Tueur en série
  • Messages: 247
    • Voir le profil
Re : Commande de réparation véhicule
« Réponse #2 le: 27 Octobre 2007, 20:05:24 »
euh je ne voit pas ce que tu as changé dans mon script mais ça marche  :laugh

Merci

PS : tu as changer quoi au fait ? :blink

EDIT : a oui je voit, le ";" à la fin de "return 1", mais comment j'ai fait pour oublier ça ?  :-[ quel boulet que je suis  :bangin
« Modifié: 27 Octobre 2007, 20:07:56 par Sismix84 »

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : Re : Commande de réparation véhicule
« Réponse #3 le: 27 Octobre 2007, 20:23:19 »
EDIT : a oui je voit, le ";" à la fin de "return 1"

Nan pas que ca !

J'ai changer ca :

   if (strcmp("/rep", cmdtext, true, 10) == 0)   
Par ca :

   if (strcmp( cmdtext, "/rep", true, 4) == 0)   
J'ai deplacer le cmdtext et j'ai mis  true, 4 au lieu de true, 10

Il y a 3 lettre donc true, 4

Et c'est a cause de ca que l'on voi que tu n'as pas créer la commande mais que c'est du copier / coller !


AK NV.


Tu vois avant? Bah j'étais là encore avant!

Hors ligne UrbanGhetto

  • *
  • Grand Banditisme
  • I PWN You !
  • Messages: 948
    • Voir le profil
    • http://h2oteam.roxorgamers.com/
Re : Commande de réparation véhicule
« Réponse #4 le: 27 Octobre 2007, 21:14:00 »
Sismix ton code n'est pas très efficace car si le joueur a 0$ il ira dans les -1500$ je ne vais pas te donner la correction du code complet mais juste un indice : GetPlayerMoney(playerid) A toi de voir  :)

˙·٠•● Je dis, mieux vaut toucher à un clavier qu'a de la drogue | Le meilleur topic du forum | Ce que j'ai fait a fait de moi ce que je suis ●•٠·˙

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Commande de réparation véhicule
« Réponse #5 le: 27 Octobre 2007, 22:09:28 »
Arsenik, ne serais-tu pas devenu un spécialiste du strcmp ?  :)
Le coup du 4 à la place du 10 : chapeau, c'est le genre d'erreur con qu'on met 3 heures à trouver.
Mais juste pour ton information : ce n'était pas la peine d'inverser "/rep" et cmdtext .... ça revient au même.

++
Syg
Courtesy of GtaManiac

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : Commande de réparation véhicule
« Réponse #6 le: 27 Octobre 2007, 22:14:53 »
Chacun a sa maniere de Coder ;)

AK NV.


Tu vois avant? Bah j'étais là encore avant!

Hors ligne Sismix84

  • *
  • Tueur en série
  • Messages: 247
    • Voir le profil
Re : Commande de réparation véhicule
« Réponse #7 le: 27 Octobre 2007, 23:16:32 »
Merci Arsenik, tu as résond, j'ai fait du copier/coller mais d'une autre commande de mon script.

Merci aussi à toi Urban, je connais la suite.

PS : je n'ai pas très bien compris la partie du code true, 4, je ne comprend pas en quoi elle consiste  :blink.

Hors ligne spykerc8

  • *
  • 'The GTAOnline.fr GodFather'
  • Messages: 3821
    • Voir le profil
    • http://www.gtaonline.fr
Re : Commande de réparation véhicule
« Réponse #8 le: 27 Octobre 2007, 23:18:59 »
À indiquer le nombre de caractères de la commande pour vérifier si elle fait la même longueur.
('fin me semble que c'est ça, Syg confirmera ou infirmera)


~ Leader honoraire de la FsK Team ~ -
~ Membre honoraire de la PCP Team ~

Co-fondateur de GTAO - Retraité de la communauté

"Nous ne sommes rien, soyons tout !"


Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : Commande de réparation véhicule
« Réponse #9 le: 27 Octobre 2007, 23:41:30 »
J'aurais dit aussi :

Citer
À indiquer le nombre de caractères de la commande pour vérifier si elle fait la même longueur.

et

Toujours mettre 1 chiffre de plus pour le / !

AK NV.
« Modifié: 28 Octobre 2007, 09:17:11 par ArseniK »


Tu vois avant? Bah j'étais là encore avant!

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Commande de réparation véhicule
« Réponse #10 le: 28 Octobre 2007, 01:53:23 »
C'est pas tout à fait ça.

La fonction strcmp, comme son nom l'indique sert à comparer des chaînes de caractères (string compare).
Les paramètres sont donc les deux chaînes à comparer, puis un indicateur pour savoir si on fait la différence entre majuscule et minuscule et enfin, dernier paramètre, le nombre de caractères à comparer.
Et dans ce cas, la longueur des deux chaînes importe peu, pourvu qu'elles fassent toutes les deux au moins 4 caractères.

Dans le cas qui nous occupe, on veut comparer ce qu'a saisi le joueur (cmdtext) avec la chaîne "/rep" qui contient 4 caractères : le /, le r, le e et le p.
Donc strcmp (cmdtext, "/rep", true, 4);
NB : la valeur true du troisième paramètre indique que l'on ne veut pas faire la différence entre majuscules et minuscules (ce qui veut dire que /REP, /Rep, /reP, ... sont toutes équivalentes).

Mais attention, avec le test ci dessus, si le joueur saisi "/reparer", "/repair", "/repetition" ou "/repense à tes vacances",  la commande sera exécutée puisqu'on ne compare que le 4 premier caractères.

Pour être sur que notre script ne prenne en compte que la commande "/rep", il faudrait utiliser la ligne suivante :
strcmp (cmdtext, "/rep", true);
Le 4 à disparu. Ceci indique au script qu'il doit faire la comparaison jusqu'au dernier caractère de la chaîne la plus courte.

Mais laisser le 4 permet d'accepter les commandes "/rep", "/repair", "/reparation", "/reparer" qui sont toutes valables.

++
Syg
Courtesy of GtaManiac

Hors ligne UrbanGhetto

  • *
  • Grand Banditisme
  • I PWN You !
  • Messages: 948
    • Voir le profil
    • http://h2oteam.roxorgamers.com/
Re : Commande de réparation véhicule
« Réponse #11 le: 28 Octobre 2007, 07:28:19 »
Syg nous apprend un nouveau truc comme d'habitude  :)

˙·٠•● Je dis, mieux vaut toucher à un clavier qu'a de la drogue | Le meilleur topic du forum | Ce que j'ai fait a fait de moi ce que je suis ●•٠·˙

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : Commande de réparation véhicule
« Réponse #12 le: 28 Octobre 2007, 09:54:49 »
dommage que syg n'est pas mon prof d'informatique  :laugh

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : Commande de réparation véhicule
« Réponse #13 le: 28 Octobre 2007, 10:47:13 »
Lol

Citer
" /repense à tes vacances "

Je pense pas que les PlayerS vont aller faire cette commande pour repare leurs vehicule lool !  :laugh

AK NV.


Tu vois avant? Bah j'étais là encore avant!

Hors ligne Sismix84

  • *
  • Tueur en série
  • Messages: 247
    • Voir le profil
Re : Commande de réparation véhicule
« Réponse #14 le: 28 Octobre 2007, 16:33:10 »
Merci beaucoup Syg pour tes explications, et sans oublier Arsenik et Urban :D