GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: °D@vid° le 07 Juillet 2009, 18:17:54
-
Bonjour j'aurais besoin de votre aide j'aimerais faire de l'argent virtuel supprimer les dollars et faire en euro s'est a dire quand le joueur tapera /meseuros il vera son argent tous comme les dollars merci d'avance
-
Tu veux faire comme les rcash de West-Side RPG ? mdr .. Faut etre un pro car faut tous refaire ..
-
non je copie pas ;) je veux juste faire a ma façon !
Ps: du HS là
-
C'est pas très compliqué à faire. Faut juste jouer un peu avec ta variable. L'additioner, la soustraire, etc... Je te conseille de faire des fonctions, comme ça tu remplaces plus facilement les giveplayermoney qui sont déjà présens dans ton script.
++
R@f
-
comment pourrais-je faire exactement faut faire un public???
-
des stock pour chacune d'elle
-
Tu peux pas me montrer car sa me dit rien :( merci d'avance sa serait très gentil
-
stock giveplayervirtualmoney(playerid)
{
// ton code avec dini ou autre .. qui regarde lagent que playerid a sur son compte
// le tranfer dargent vers le compte de l'autre joueur
}
-
Mais moi je parle pas de compte je parle d'argent simple par exemple le joueur a 10 euros sur lui il va taper /meseuros sa va lui marquer tu as 10 euros
-
new pognion = GetPlayerMoney(playerid)
format(string, sizeof(string), "/!\ vous avez %d € /!\", pognion);
SendClientMessageToAll(COLOR_INFOFRIC, string);
Un truque comme sa ? ???
-
Salut,
je veut pas dire que vous êtes hors du chemin mais moi je passerais pas des defines, aussi simple, plus rapide (quelques fois, car le script n'a pas besoin d'appeler une fonction)
pour la façon de faire faut regarder dcmd ou la page sur le define dans le Pawn Center par GtaOnline.fr
++Sim++
-
Tu veux faire comme les rcash de West-Side RPG ? mdr .. Faut etre un pro car faut tous refaire ..
Non non pas besoin d'être un pro pour faire sa. Moi sur le gm que je code j'utilise une argent virtuelle. En gros il suffit de faire un variable a chaque joueur comme ceci :
new argent[MAX_PLAYERS];
Et ensuite lorsque tu veut lui ajouter ou retirer de l'argent tu fait :
argent[playerid] += somme a ajouter
ou
argent[playerid] -= somme a retirer
-
ok donc moi je vois a peu près ! je vais tenter
EDIT;
comment je pourrais mondifier cette commande avec les défine que tu m'as donner ?
if(strcmp(cmd, "/givemoney", true) == 0) {
new tmpp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_LIGHTBLUE, "[Utilisation] : /givemoney [id] [argent]");
return 1;
}
giveplayerid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_LIGHTBLUE, "[Utilisation] : /givemoney [id] [argent]");
return 1;
}
new string[256];
new moneys[MAX_PLAYERS];
moneys[playerid] = strval(tmp);
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney[playerid] = GetPlayerMoney(playerid);
if (moneys[playerid] > 0 && playermoney[playerid] >= moneys[playerid]) {
GivePlayerMoney(playerid, (0 - moneys[playerid]));
GivePlayerMoney(giveplayerid, moneys[playerid]);
format(string, sizeof(string), "Tu as envoié à %s (id: %d), $%d.", giveplayer,giveplayerid, moneys[playerid]);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "Tu as reçu $%d de la part de %s (id: %d).", moneys[playerid], sendername, playerid);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
format(tmpp, sizeof(tmpp),"%s(playerid:%d) a transféré %d à %s(playerid:%d)",sendername, playerid, moneys[playerid], giveplayer, giveplayerid);
SendAdminMessage(COLOR_ORANGER, tmpp);
}
else {
SendClientMessage(playerid, COLOR_RED, "transfert non accepté (pas assez d'argent)");
}
}
else {
format(string, sizeof(string), "ID:%d est pas un joueur Hors-ligne !", giveplayerid);
SendClientMessage(playerid, COLOR_RED, string);
}
return 1;
}
C'est bon a près 15 minutes de recherche j'ai trouvé merci à vous tous
-
Salut,
simple conseil, pour éviter des minutes, voir des heures de travail inutile:
new gArgent[MAX_PLAYERS];
#define GivePlayerMoney(%0,%1) gArgent[%0] += %1
#define GetPlayerMoney(%0) (gArgent[%0])
#define ResetPlayerMoney(%0) gArgent[%0] = 0
comme ça aucun besoin de changer le script...seulement ajouter ceci au début et tu as ton argent virtuel
++Sim++
-
Ah oué bien j'y avais pas pensé de très bonne idées Sim je te remerçi bien :)