Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Connexion avec identifiant, mot de passe et durée de la session

 
avancée

254643 Messages dans 14035 Fils de discussion- par 6616 Membres - Dernier membre: louloufcb

21 Mai 2012 à 20:05:14
GTAOnline.frSan Andreas MultiplayerScripting SA-MP [Pawn center] (Modérateurs: S!m, Xartrick)Probleme commande
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Probleme commande  (Lu 146 fois)
0 Membres et 2 Invités sur ce fil de discussion.
vincentdu90
Hors ligne Hors ligne

GTAOnline Big Member
*

Lua , Php/MySQL & Html/Css

Messages: 504


« le: 25 Août 2010 à 17:41:09 »

Bonjour/Bonsoir

Je m'interesse depuis assez longtemps au pawn et j'ai quelques connaissances , et pour apprendre et m'execer j'ai voulu créer une commande /argent [montant] qui donnerai de l'argent au joueur avec strtok , en suivant l'exemple du samp wiki (j'ai pas fait du copier coller  Très souriant)

Mais le problème c'est que j'ai beau taper /montant 10000 par exemple et ça me donne rien .

Code:
new cmd[128], index;
strtok(cmd,index);

if(strcmp(cmd,"/argent",true) == 0)
{
new tmp[128];
   tmp = strtok(cmd,index);
   
   if (strlen(tmp) == 0)
   {
SendClientMessage(playerid,ROUGE,"Utilisation /Argent [Montant]");
   }
   else
   {
GivePlayerMoney(playerid,strval(tmp));
}
return 1;
}

Merci d'avance de votre aide  Sourire
« Dernière édition: 26 Août 2010 à 15:32:03 par vincentdu90 » Journalisée
D0os-Nox
Connais toi - toi même
Hors ligne Hors ligne


Grand Banditisme
*

Retourne toi, t'es déjà mort

Messages: 133


WWWD0os

« Répondre #1 le: 25 Août 2010 à 18:19:49 »

Bonjour, La valeur TMP(C'est un exemple sa pourrai être argent[128]  ...) permet de stocker les valeurs ecrite ( Donc le Montant )


Code:
GivePlayerMoney(playerid,tmp);

 closedeyes D0os-Nox  laugh

« Dernière édition: 25 Août 2010 à 18:21:22 par D0os-Nox » Journalisée





Citation
La vrai paix n'existe pas, nous somme le reflet de l'ignorance d'un monde détruit par la guerre ![/glow]
Citation
Chaque jours, la haine nous renferme dans l'obscurité ![/glow]
(Citations par D0os)
vincentdu90
Hors ligne Hors ligne

GTAOnline Big Member
*

Lua , Php/MySQL & Html/Css

Messages: 504


« Répondre #2 le: 25 Août 2010 à 19:56:38 »

Je sais que c'est un exemple la valeur TMP et j'ai enlevé la fonction strval et j'ai l'erreur 035 > argument type mismatch (argument 2)
Journalisée
minimicro
Hors ligne Hors ligne

Criminel entrainé
*

Codeur Php / Mysql / Pawno

Messages: 59


« Répondre #3 le: 25 Août 2010 à 22:14:07 »

Surtout pas donner TMP comme cela, c'est une variable type "Chaine de Caractere", qu'il faut convertir en Nombre entier (Integer), d'ou l'utilisation de la fonction strval(tmp), qui revoit la valeur numérique contenue dans TMP.

Laisse strval, par contre, pour index, en haut, initialise le à 0 : index = 0;
Journalisée

Codeur Php / Pawno / MySql - Administration et maintenance serveur
D0os-Nox
Connais toi - toi même
Hors ligne Hors ligne


Grand Banditisme
*

Retourne toi, t'es déjà mort

Messages: 133


WWWD0os

« Répondre #4 le: 26 Août 2010 à 04:42:05 »

RE : Oui ou sinon, Définir une simple variable comme étant = a strval(tmp) !

Code:
new argent;
argent = strval(tmp);

GivePlayerMoney(playerid, argent);

 Roulement d'yeux D0os-Nox  dry
Journalisée





Citation
La vrai paix n'existe pas, nous somme le reflet de l'ignorance d'un monde détruit par la guerre ![/glow]
Citation
Chaque jours, la haine nous renferme dans l'obscurité ![/glow]
(Citations par D0os)
Syg
Expert programmeur C/C++/PAWN
Hors ligne Hors ligne


Administrateur
GTAOnline Legend
*

The GTAOnline Jesus

Messages: 3760


« Répondre #5 le: 26 Août 2010 à 10:23:12 »

Il faut toujours tout regarder avant de donner une réponse.

Le problème vient de la deuxième ligne de son bout de script :
Code:
strtok (cmd, index);

Cette ligne ne fait rien.
Donc la variable cmd ne contient rien et le test if (strcmp(cmd, "/argent", true) == 0) n'est jamais vérifié et la commande n'est jamais exécutée.

Il faut donc remplacer la ligne citée ci-dessus par :
Code:
cmd = strtok (cmdtext, index); // On extraie la commande et on la place dans la variable cmd

Le reste du code est correct.

++
Syg
Journalisée

Courtesy of GtaManiac
vincentdu90
Hors ligne Hors ligne

GTAOnline Big Member
*

Lua , Php/MySQL & Html/Css

Messages: 504


« Répondre #6 le: 26 Août 2010 à 10:46:23 »

Merci Syg en plus de ça je l'avais fait plus bas et j'ai vu aussi que j'avais une autre erreur à la ligne

Code:
tmp = strtok(cmd,index);

Il fallait mettre cmdtext .

Merci à vous  Clin d'oeil
Journalisée
minimicro
Hors ligne Hors ligne

Criminel entrainé
*

Codeur Php / Mysql / Pawno

Messages: 59


« Répondre #7 le: 26 Août 2010 à 11:03:38 »

Ohoh, bien vu, j'avais zappé les arguments du OnPlayerCommandText  bangin jesors
Journalisée

Codeur Php / Pawno / MySql - Administration et maintenance serveur
vincentdu90
Hors ligne Hors ligne

GTAOnline Big Member
*

Lua , Php/MySQL & Html/Css

Messages: 504


« Répondre #8 le: 26 Août 2010 à 11:05:49 »

Syg est et reste le maître  Très souriant
« Dernière édition: 26 Août 2010 à 15:52:11 par vincentdu90 » Journalisée
Pages: [1]   Haut de page
Imprimer
Aller à:  

Theme créé par padexx et modifié par GTAOnline.fr
Page générée en 0.136 secondes avec 21 requêtes.
Forum GTAOnline.fr 2.0 | Design par : Lalu et GtaManiac
Merci a toute la communaute pour son support !
Copyright © 2004-2012 - GTAOnline.fr | GTAPro.com | Contact