GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: dylle76620 le 11 Août 2008, 11:48:33
-
bonjour j'ai un probleme avec le GivePlayerMoney car enfaite j'aimerais (c'etait un test pour voir si sa marche) que quand on utilise cette commande http://pastebin.com/m699a0a3a et qu'il ait -5$ j'ai creer un
GivePlayerMoney(playerid, -5); mais largent ne baisse pas pouvez vous m'expliquer ce qui se passe? si jai mal placé le GivePlayerMoney(playerid, -5); ou si ce n'est pas ce code merci
-
Non il faut que tu créé un SetPlayerMoney, pour forcé la somme a s'enlever,
SetPlayerMoney(playerid, GetPlayerMoney(playerid) -5);
et voila ^^ En faite ce que fait ce code, c'est qu'il prend l'argent du joueur et lui enlève 5, c'est tout ^^
+++
-
a ok merci :D mais je le place ou le code? la ou je l'avais placé c'est bon?
-
Ouais c'est pas mal la ou tu la mis ^^
-
ok cool merci je test sa
-
Le différence entre GivePlayerMoney et SetPlayerMoney est le suivante :
GivePlayerMoney donne (ou enlève si la somme est négative) de l'argent à un joueur.
SetPlayerMoney fixe l'argent qu'a le joueur.
Donc si un joueur à 100000$
Si on fait GivePlayerMoney (playerid, -5); le joueur aura 99995$ (100000-5)
Si on fait SetPlayerMoney (playerid, -5); le joueur aura -5$
Donc la fonction GivePlayerMoney est bien celle qu'il faut utiliser pour ce que tu veux faire.
Maintenant, si ça ne marche pas, c'est peut-être parce que le script ne passe pas par la ligne GivePlayerMoney.
Dans le bout de script que tu donnes, il y a deux commandes réservées à priori aux forces de l'ordre. Et tu as mis ton GivePlayerMoney dans le else (donc dans le cas où l'on ne fait as partie des forces de l'ordre).
Fais l'essai en étant pas flic (tu devrais avoir le message "Vous devez etre des force de l'ordre") et ton argent devrait diminuer.
Ou alors, déplace la ligne GivePlayerMoney en dehors du test :
if(!strcmp(cmdtext, "/elevateur haut", true))
{
GivePlayerMoney(playerid, -5);
if(gTeam[playerid] == 1 || IsACop(playerid))
{
MoveObject(Elevateur, 1565.418945, -1635.840210, 23.373428, 2.5);
}
else
{
SendClientMessage(playerid,COLOR_YELLOW,"Vous devez etre des force de l'ordre");
}
return 1;
}
++
Syg
-
ok merci mais en faite ce que je cherche c'est que quand les cop l'utilise ba sa leur enleve -5 donc je sait pas si il faut le plac la ou j'ai mis ou a lendroit que tu ma dit et merci :D
-
Fin bon, ma technique fonctionne aussi lol, mais en faite tu veut que quand on joueur est flic, que ça lui enlève 5$ et que la barrière se lève ?? bah dans ce cas tu le met en dessous de ton MoveObject et c'est bon, comme tu l'avais fais ;)
-
ok merci :D
edit : j'ai testé sa mais sa me dit 2 erreur 1 la ou j'ai mis en dessous le moveobject (/elevateur haut) et l'autre a /elevateur bas
-
ok merci :D
edit : j'ai testé sa mais sa me dit 2 erreur 1 la ou j'ai mis en dessous le moveobject (/elevateur haut) et l'autre a /elevateur bas
if(!strcmp(cmdtext, "/elevateur haut", true))
{
if(gTeam[playerid] == 1 || IsACop(playerid))
{
MoveObject(Elevateur, 1565.418945, -1635.840210, 23.373428, 2.5);
SetPlayerMoney(playerid, GetPlayerMoney(playerid) -5);
}
else
{
SendClientMessage(playerid,COLOR_YELLOW,"Vous devez etre des force de l'ordre pour utilisez cette commande");
}
return 1;
}
if(!strcmp(cmdtext, "/elevateur bas", true))
{
if(gTeam[playerid] == 1 || IsACop(playerid))
{
MoveObject(Elevateur, 1565.407104, -1636.494629, 8.805042, 2.5);
SetPlayerMoney(playerid, GetPlayerMoney(playerid) -5);
}
else
{
SendClientMessage(playerid,COLOR_YELLOW,"Vous devez etre des force de l'ordre pour utilisez cette commande");
}
return 1;
}
-
Et c'est quoi les erreurs ?? Parce que la on a ton bout de script mais on sais pas qu'elles erreurs c'est lol ^^
-
les erreur c'est le SetPlayerMoney
-
heu oui ok sa j'avais compris ^^ Mais l'erreur en elle même c'est quoi ?? un Invalid Fonction Or déclaration ?? enfin, dis nous ce que c'est quoi ^^
-
ok lol les erreur c'est sa :
error 017: undefined symbol "SetPlayerMoney"
error 017: undefined symbol "SetPlayerMoney"