GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: vincesamp le 06 Mai 2011, 19:25:12
-
Bonjour tout le monde, alors aujourd'hui je vient demander de l'aide pour faire un script, enfaite quand on fait /v vendre, et bien l'argent ira dans le compte banquaire, au lieu de l'avoir sur sois. Donc, voici la partie du code ou j'aimerai insérer le fait que l'argent doit aller dans le compte. le compte = [paccount] ( après plusieurs essaie, etc...j'ai obtenue seulement des erreurs et aucun résultat ig quand les erreurs été pas la .. :O )
Source: code de une 2eme chance. ( je sais que ya pas besoin de tout le code mais c'est pour que vous voyez tout donc voila^^)
if(!strcmp(tmp, "sell",true,4) || !strcmp(tmp, "vendre",true,4))
{
if(!IsAtDealership(playerid))
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Vous n'êtes pas au concessionnaire !");
return 1;
}
if(!IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Vous n'êtes pas dans un véhicule !");
return 1;
}
new vehi = GetPlayerVehicleID(playerid);
if(VehicleInfo[vehi][vOwned] != 1)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Ce véhicule ne vous appartient pas !");
return 1;
}
new plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, sizeof(plname));
if(strcmp(plname, VehicleInfo[vehi][vOwner], true) == 0)
{
new PriceS = (CarsPrices[GetVehicleModel(vehi)-400]*30)/100;
new Price = CarsPrices[GetVehicleModel(vehi)-400]-PriceS;
format(string, sizeof(string), "Vous avez vendu votre %s et vous recevez $%d.", VehicleNames[GetVehicleModel(vehi)-400], Price);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "Vehicles/Vehicles/%s.%s.cfg", plname, VehicleNames[GetVehicleModel(vehi)-400]);
SafeGivePlayerMoney(playerid, Price);
new str[256];
format(str, sizeof(str), "%s.%s.cfg", plname, VehicleNames[GetVehicleModel(vehi)-400]);
if(strfind(str, PlayerVehicle[playerid][pVeh1], true) == 0)
{
DestroyVehicle(vehi);
fremove(string);
strmid(PlayerVehicle[playerid][pVeh1], "None", 0, strlen("None"), 255);
return 1;
}
else if(strfind(str, PlayerVehicle[playerid][pVeh2], true) == 0)
{
DestroyVehicle(vehi);
fremove(string);
strmid(PlayerVehicle[playerid][pVeh2], "None", 0, strlen("None"), 255);
return 1;
}
else if(strfind(str, PlayerVehicle[playerid][pVeh3], true) == 0)
{
DestroyVehicle(vehi);
fremove(string);
strmid(PlayerVehicle[playerid][pVeh3], "None", 0, strlen("None"), 255);
return 1;
}
else if(strfind(str, PlayerVehicle[playerid][pVeh4], true) == 0)
{
DestroyVehicle(vehi);
fremove(string);
strmid(PlayerVehicle[playerid][pVeh4], "None", 0, strlen("None"), 255);
return 1;
}
else if(strfind(str, PlayerVehicle[playerid][pVeh5], true) == 0)
{
DestroyVehicle(vehi);
fremove(string);
strmid(PlayerVehicle[playerid][pVeh5], "None", 0, strlen("None"), 255);
return 1;
}
return 1;
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Ce véhicule ne vous appartient pas !");
return 1;
}
}
-
a la place de sa SafeGivePlayerMoney(playerid, Price); tu met tavar[playerid][paccount]=+tavar[playerid][paccount]+Price
-
Ouah bah merci beaucoup frenchement vous m'aidez beaucoup ! ^^
En plus j'apprend vite grace a sa car après je serai que c'est sa a remplacer, etc..^^ donc merci beaucoup encore pour ta réponses rapide ;)
A + ( je testerai demain )
Edit: sa marche pas, j'ai définie tavar, mais la il dise sa, donc j'ai essayé avec des ; ) etc..et pas réussi :s
C:\Users\mathieu\Desktop\Social city\gamemodes\sc-rp.pwn(21767) : error 029: invalid expression, assumed zero
C:\Users\mathieu\Desktop\Social city\gamemodes\sc-rp.pwn(21767) : warning 215: expression has no effect
C:\Users\mathieu\Desktop\Social city\gamemodes\sc-rp.pwn(21767) : error 001: expected token: ";", but found "]"
C:\Users\mathieu\Desktop\Social city\gamemodes\sc-rp.pwn(21767) : error 029: invalid expression, assumed zero
C:\Users\mathieu\Desktop\Social city\gamemodes\sc-rp.pwn(21767) : fatal error 107: too many error messages on one line
-
Ce que te montrais Cristab, c'est que tu dois augmenter une variable plutôt que de donner directement de l'argent au joueur.
Le problème, c'est qu'on ne connait pas le nom de la variable en question donc Cristab à mis "tavar" qui veut dire "Ta Variable".
La variable en question est celle qui contient [paccount].
++
Syg
-
ah d'accord et comment puis je reconnaitre la variable de sa? ou la trouvé? merci
je la trouve pas je c'est pas comme la trouver dans tout sa :s
merci ++
-
ben tu le sort d'ou ule [paccount] ???
-
On ne peut pas savoir quel est le nom de la variable vu que c'est ton GM ^^
C'est plutôt nous qui devons demander ça ^^
-
salut, donc enfaite j'ai regardé grace au payday .... comment sa faisai pour aller en banque et j'en est dédui le paccount....Oui donc a mon avis c'est même pas paccount? x)
En gros, comment puis je faire la? Si vous étiez a ma place vous auriez fait comment? :)
Gm: une 2eme chance ( si quelqu'un c'est la variable en question..^^ )
merci
-
et dans le payday ou il y a paccount montre nous la ligne
-
Salut cristab, oui voici la ligne ( enfin je vais tout te donné le public payday )
Voila :
public PayDay()
{
new string[256];
new account,interest,tribute;
new rent = 0;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pLevel] > 0)
{
if(MoneyMessage[i]==1)
{
SendClientMessage(i, COLOR_LIGHTRED, "Vous n'avez pas payé vos dettes, vous allez en prison.");
SetPlayerInterior(i, 6);
PlayerInfo[i][pInt] = 6;
SetPlayerPos(i, 264.6288,77.5742,1001.0391);
PlayerInfo[i][pJailed] = 1;
SafeResetPlayerWeapons(i);
SafeResetPlayerMoney(i);
WantedPoints[i] = 0;
PlayerInfo[i][pJailTime] = 240;
format(string, sizeof(string), "Vous êtes en prisons pour %d secondes. Caution: Aucune", PlayerInfo[i][pJailTime]);
SendClientMessage(i, COLOR_WHITE, string);
}
new infostring[256];
new playername2[MAX_PLAYER_NAME];
GetPlayerName(i, playername2, sizeof(playername2));
account = PlayerInfo[i][pAccount];
new key = PlayerInfo[i][pPhousekey];
if(key != 255)
{
rent = HouseInfo[key][hRent];
if(strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
{
rent = 0;
}
else if(rent > GetPlayerMoney(i))
{
PlayerInfo[i][pPhousekey] = 255;
SendClientMessage(i, COLOR_WHITE, "Vous avez été éjecté.");
rent = 0;
}
HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
}
new tmpintrate;
if (key != 255 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0)
{
if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = intrate+4; }
else { tmpintrate = intrate+2; }//HouseInfo[key][hLevel]
}
else
{
if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = 3; }
else { tmpintrate = 1; }
}
if(PlayerInfo[i][pPayDay] >= 5)
{
Tax += TaxValue;//Should work for every player online
PlayerInfo[i][pAccount] -= TaxValue;
new checks = PlayerInfo[i][pPayCheck] / 5;
checks += (random(1)+600) + PlayerInfo[i][pLevel]*(75);
new member = PlayerInfo[i][pMember],leader = PlayerInfo[i][pLeader],rank = PlayerInfo[i][pRank];
if(member == 1 || leader == 1) // LSPD
{
if(rank == 1)
checks += 575+random(150);
else if(rank == 2)
checks += 590+random(150);
else if(rank == 3)
checks += 610+random(150);
else if(rank == 4)
checks += 640+random(150);
else if(rank == 5)
checks += 660+random(150);
else if(rank == 6)
checks += 700+random(150);
}
else if(member == 2 || leader == 2) // FBI
{
if(rank == 1)
checks += 525+random(150);
else if(rank == 2)
checks += 530+random(150);
else if(rank == 3)
checks += 570+random(150);
else if(rank == 4)
checks += 605+random(150);
else if(rank == 5)
checks += 635+random(150);
else if(rank == 6)
checks += 675+random(150);
}
else if(member == 3 || leader == 3)// Armée
{
if(rank == 1 || rank == 2 || rank == 3 || rank == 4)
checks += 555+random(150);
else if(rank == 5)
checks += 605+random(150);
else if(rank == 6)
checks += 660+random(150);
}
else if(member == 4 || leader == 4) // Hospital
{
if(rank == 1)
checks += 505+random(150);
else if(rank == 2)
checks += 555+random(150);
else if(rank == 3)
checks += 585+random(150);
else if(rank == 4)
checks += 600+random(150);
else if(rank == 5)
checks += 650+random(150);
else if(rank == 6)
checks += 690+random(150);
}
else if(member == 7 || leader == 7) // Governement
{
if(rank == 1)
checks += 535+random(150);
else if(rank == 2)
checks += 560+random(150);
else if(rank == 3)
checks += 590+random(150);
else if(rank == 4)
checks += 615+random(150);
else if(rank == 5)
checks += 655+random(150);
else if(rank == 6)
checks += 735+random(150);
}
else if(member == 9 || leader == 9) // News
{
if(rank == 1)
checks += 535+random(150);
else if(rank == 2)
checks += 550+random(150);
else if(rank == 3)
checks += 580+random(150);
else if(rank == 4)
checks += 600+random(150);
else if(rank == 5)
checks += 630+random(150);
else if(rank == 6)
checks += 660+random(150);
}
else if(member == 18 || leader == 18) // CIA
{
if(rank == 1)
checks += 525+random(150);
else if(rank == 2)
checks += 530+random(150);
else if(rank == 3)
checks += 570+random(150);
else if(rank == 4)
checks += 605+random(150);
else if(rank == 5)
checks += 635+random(150);
else if(rank == 6)
checks += 675+random(150);
}
new job = PlayerInfo[i][pJob];
if(job != 0)
{
if(job == 1 || job == 2) { checks += 600+random(100); }// Bons Jobs : Métiers Libéraux
else if(job == 16 || job == 13) { checks += 550+random(10); }// Jobs pas mal
else if(job == 7 || job == 14 || job == 15) { checks += 525+random(100); } // Jobs normaux
else if(job == 17 || job == 21 || job == 6 || job == 18 || job == 12 || job == 8 || job == 26 || job == 25) { checks += 395+random(200); } // Jobs pas térrible
}
if(PlayerInfo[i][pDonateRank] > 0)
{
new bonus = PlayerInfo[i][pPayCheck] / 10;
checks += bonus;
}
new ebill = (PlayerInfo[i][pAccount]/10000)*(PlayerInfo[i][pLevel]);
//ConsumingMoney[i] = 1;
//SafeGivePlayerMoney(i, checks);
account += checks;
if(PlayerInfo[i][pAccount] > 0)
{
PlayerInfo[i][pAccount] -= ebill;
SBizzInfo[4][sbTill] += ebill;
}
else
{
ebill = 0;
}
// family tribute
if (PlayerInfo[i][pFMember] < MAX_FAMILY)
{
new fam = PlayerInfo[i][pFMember];
new tax = FamilyInfo[fam][FamilyTax];
if (tax > 0 && tax <= 25)
{
tribute = checks / (100 / tax);
PlayerInfo[i][pAccount] -= tribute;
FamilyInfo[fam][FamilyCash] += tribute;
}
}
interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);
PlayerInfo[i][pExp]++;
PlayerPlayMusic(i);
PlayerInfo[i][pAccount] = account+interest;
PlayerPlaySound(i, 1097, 0.0, 0.0, 0.0);
SendClientMessage(i, COLOR_YELLOW, "|________________ Extrait de Compte ________________|");
format(string, sizeof(string), " Salaire Hors Taxe : $%d Taxe : -$%d", checks, TaxValue);
SendClientMessage(i, COLOR_WHITE, string);
if(PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255)
{
format(string, sizeof(string), " Facture d'Electrécité : -$%d", ebill);
SendClientMessage(i, COLOR_WHITE, string);
}
format(string, sizeof(string), " Argent sur le compte avant la Paye : $%d", account - checks);
SendClientMessage(i, COLOR_WHITE, string);
format(string, sizeof(string), " Taux d'înterêt: 0.%d Pourcent => Interêt Gagné : %d$",tmpintrate, interest);
SendClientMessage(i, COLOR_WHITE, string);
if (PlayerInfo[i][pFMember] < MAX_FAMILY && FamilyInfo[PlayerInfo[i][pFMember]][FamilySafe] == 1)
{
format(string, sizeof(string), " FNO Taxe: $%d", tribute);
SendClientMessage(i, COLOR_WHITE, string);
}
format(string, sizeof(string), " Location: -$%d", rent);
SendClientMessage(i, COLOR_WHITE, string);
SendClientMessage(i, COLOR_YELLOW, "|---------------------------------------------------------------------|");
format(string, sizeof(string), " Argent sur le compte après la paye : $%d", PlayerInfo[i][pAccount]);
SendClientMessage(i, COLOR_WHITE, string);
if(PlayerInfo[i][pHotel] == 1)
{
new hotelcost = BizzInfo[6][bEntranceCost];
format(string, sizeof(string), " Hotel: -$%d", hotelcost);
SendClientMessage(i, COLOR_WHITE, string);
BizzInfo[6][bTill] += BizzInfo[6][bEntranceCost];
ExtortionBiz(6, BizzInfo[6][bEntranceCost]);
BizzInfo[6][bProducts]--;
PlayerInfo[i][pAccount] -= hotelcost;
OnPropUpdate();
}
if(PlayerInfo[i][pJob] == 0 && PlayerInfo[i][pMember] == 0 && PlayerInfo[i][pLeader] == 0 && PlayerInfo[i][pRank] == 0)
{
SendClientMessage(i, COLOR_WHITE, "Vous n'avez pas de travail. Vous touchez le RSA.");
}
format(string, sizeof(string), "~y~PayDay~n~~w~L'argent a ete depose sur votre compte bancaire");
GameTextForPlayer(i, string, 5000, 1);
rent = 0;
Masturber[i] = 0;
PlayerInfo[i][pPayDay] = 0;
PlayerInfo[i][pPayCheck] = 0;
PlayerInfo[i][pConnectTime] += 1;
PlayerInfo[i][pWork] = 0;
new nxtlevel = PlayerInfo[i][pLevel]+1;
new expamount = nxtlevel*levelexp;
if(PlayerInfo[i][pExp] >= expamount)
{
format(string, sizeof(string), "~g~Niveau Superieur Atteint~n~~w~Vous etes maintenant niveau %d", nxtlevel);
PlayerPlaySound(i, 1052, 0.0, 0.0, 0.0);
PlayerPlayMusic(i);
PlayerInfo[i][pLevel]++;
PlayerInfo[i][pExp] = 0;
PlayerInfo[i][gPupgrade] = PlayerInfo[i][gPupgrade]+2;
GameTextForPlayer(i, string, 5000, 1);
format(infostring, 256, " Niveau supérieur atteint ! Tapez /upgrade");
SendClientMessage(i, COLOR_GRAD1, infostring);
format(infostring, 256, "Vous avez %d points d'amélioration non utilisé.",PlayerInfo[i][gPupgrade]);
SendClientMessage(i, COLOR_GRAD2, infostring);
}
if (PlayerInfo[i][pExp] < expamount)
{
format(infostring, 256, "Vous avez besoin de %d points de respect pour passer au niveau suivant, vous en avez %d.",expamount,PlayerInfo[i][pExp]);
SendClientMessage(i, COLOR_GRAD1, infostring);
return 1;
}
if(FarmerVar[i] == 0)
{
FarmerPickup[i][0] = 0;
}
if(DrugFarmerVar[i] == 0)
{
DrugFarmerPickup[i][0] = 0;
}
if(SmugglerWork[i] == 0)
{
PayDaySecure[i] = 0;
}
if(PlayerInfo[i][pDonateRank] > 0)
{
PlayerInfo[i][pPayDayHad] += 1;
if(PlayerInfo[i][pPayDayHad] >= 5)
{
PlayerInfo[i][pExp]++;
PlayerInfo[i][pPayDayHad] = 0;
}
}
}
else
{
SendClientMessage(i, COLOR_WHITE, "* Vous n'avez pas joué assez longtemps pour obtenir votre paye.");
}
}
}
}
SaveFamilies();
SaveAccounts();
Checkprop();
return 1;
}
Oui je me suis inspiré du payday car je me suis dit vu qu'il va direct dans le compte en banque, la réponse et surement dedens^^
Merci ++
-
alors la prochaine fois tu me mettras le code sur le pastebin STP
sinon j'ai trouver en 2.53secondes
PlayerInfo[playerid][pAccount]=PlayerInfo[playerid][pAccount]+Price;
Voila ce que tu doit mettre pour que l'argent de la vente soit verser sur le compte bancaire
-
cristab, les raccourcies !!
PlayerInfo[playerid][pAccount] += Price;
-
je suis super mefiant avec ce genre de raccourcie qui arrive de temps en temps a 0 ^^
-
Jamais eu de problème avec les raccourcies :).
-
Merci beaucoup pour l'aide ! ^^ et je vais allez essayer maintenent :)..
Ah oui désolé prochaine fois je le ferai sur pastebin vraiment pas pensé.
-
Vincesamp, les codes de plus de 20lignes sont à mettre dans le pastebin de GTAOnline.fr, je te conseil d'aller lire les règles, ça n'a pas l'air d'être fait.