Stopper l'argent sale -
cristab - 14.12.2009
Bonjour qui a deja vu les joueurs avec 9999999999$ en poche tout le monde pourtant si simple a eviter ^^ je vais vous dire comment.
pour commencer nous avont besoin d'une variable
ici je l'appelle argent donc
Code:
new argent[MAX_PLAYERS];
dans la callback OnPlayerConnecet(playerid)
Code:
argent[playerid]=0;
on la met a 0 car sinon on garde les parametre de l'ancien joueurs ce qui serais farfelut
desormer nous allons cree nos fonction
pour ne pas faire complexe je vous les met deja prete tenter juste de les comprendre SVP
Code:
stock donneargent(playerid,montant)
{
argent[playerid]= argent[playerid] + montant;
return GivePlayerMoney(playerid,argent[playerid]);
}
stock resetargent(playerid)
{
argent[playerid] = 0;
return ResetPlayerMoney(playerid);
}
stock setargent(playerid,montant)
{
argent[playerid] = montant;
ResetPlayerMoney(playerid);
return GivePlayerMoney(playerid,argent[playerid]);
}
stock retireargent(playerid,montant)
{
argent[playerid]= argent[playerid] - montant;
return GivePlayerMoney(playerid,argent[playerid]);
}
stock Getargent(playerid)
{
return argent[playerid];
}
desormer le public qui va empecher le cheat d'argent
Code:
forward ACargent();
public ACargent()
{
for(new i; i<MAX_PLAYERS; i++)
{
new ACmoney=Getargent(i);
setargent(i,ACmoney);
}
return 1;
}
bien entendut sans timer sa auras aucun effet ^^ donc dans le OnGameModeInit
Code:
SetTimer("ACargent",5000,1);
Voila si vous avez des question je pourrait y repondre je suis la pour sa ^^
PS ne bannisser pas ce qui on trop d'argent etant donner que l'argent dans GTA on peu ce le procurer de plusieur faзon et donc bannirer des personne innocente
Re: [TUTO]Stoper l'argent sale -
mister-fred - 14.12.2009
Personellement j'ferait plutфt se genre de fonciton:
pawn Code:
#define SetPlayerMoney(%0,%1) ResetPlayerMoney(%0);GivePlayerMoney(%0,%1);argent[%0]=%1
#define GivePlayerMoneyEx(%0,%1) GivePlayerMoney(%0,%1);argent[%0]+=%1
#define GetPlayerMoneyEx(%0) (argent[%0])
Pas besoin de fonction retirerargent suffit d'utiliser GivePlayerMoneyEx(playerid,-XXX);
Bien sur il faut tjr un timer qui verifiera si l'argent qua le joueur est bien l'argent qu'il a eu via le serveur:
pawn Code:
forward ACargent();
public ACargent()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(GetPlayerMoney(i) != GetPlayerMoneyEx(i)) //Si l'argent qua le joueur n'est pas identique a ce que le serveur lui a reelement donnй
{
SetPlayerMoney(i,GetPlayerMoneyEx(i)); //On lui remet l'argent qu'il a reelement.
}
}
}
return 1;
}
Re: [TUTO]Stoper l'argent sale -
cristab - 14.12.2009
pas mal avec les define
Merci
Re: [TUTO]Stoper l'argent sale -
sasuke78200 - 15.12.2009
Ah ouais pas mal penser ca GG ^^
Et vive les $$ propre ^^
sinon j' aime pas trop voir ca xd
Code:
argent[playerid]= argent[playerid] + montant;
c' est mieu comme ca
Code:
argent[playerid] += montant;
Re: [TUTO]Stoper l'argent sale -
thegoliathmaster - 15.12.2009
Salut,
je vais essayer de faire une petite include simple а utiliser
dиs que les examens sont terminйs je m'y met :P
++Sim++