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