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

Titre: Probleme avec GivePlayerMoney
Posté 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
Titre: Re : Probleme avec GivePlayerMoney
Posté par: [StAfF]MaN le 11 Août 2008, 12:01:41
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 ^^

+++
Titre: Re : Probleme avec GivePlayerMoney
Posté par: dylle76620 le 11 Août 2008, 12:28:46
a ok merci  :D mais je le place ou le code? la ou je l'avais placé c'est bon?
Titre: Re : Probleme avec GivePlayerMoney
Posté par: [StAfF]MaN le 11 Août 2008, 15:13:34
Ouais c'est pas mal la ou tu la mis ^^
Titre: Re : Probleme avec GivePlayerMoney
Posté par: dylle76620 le 11 Août 2008, 23:31:55
ok cool merci je test sa
Titre: Re : Probleme avec GivePlayerMoney
Posté par: Syg le 12 Août 2008, 00:50:13
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
Titre: Re : Probleme avec GivePlayerMoney
Posté par: dylle76620 le 12 Août 2008, 14:00:47
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
Titre: Re : Probleme avec GivePlayerMoney
Posté par: [StAfF]MaN le 12 Août 2008, 15:41:11
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 ;)
Titre: Re : Probleme avec GivePlayerMoney
Posté par: dylle76620 le 13 Août 2008, 11:16:20
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
Titre: Re : Re : Probleme avec GivePlayerMoney
Posté par: dylle76620 le 13 Août 2008, 11:21:39
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

Citer
       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;
    }
Titre: Re : Probleme avec GivePlayerMoney
Posté par: [StAfF]MaN le 13 Août 2008, 12:08:21
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 ^^
Titre: Re : Probleme avec GivePlayerMoney
Posté par: dylle76620 le 14 Août 2008, 10:47:28
les erreur c'est le SetPlayerMoney
Titre: Re : Probleme avec GivePlayerMoney
Posté par: [StAfF]MaN le 14 Août 2008, 12:57:01
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 ^^
Titre: Re : Probleme avec GivePlayerMoney
Posté par: dylle76620 le 14 Août 2008, 20:39:06
ok lol les erreur c'est sa :

error 017: undefined symbol "SetPlayerMoney"
error 017: undefined symbol "SetPlayerMoney"