/* ******************************************************************************** *********************SYSTEME ACHAT VOITURE + LOGIN****************************** ******************************************************************************** -------------------------------------------------------------------------------- ----------------------------BLOC NOTE------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ----------------------------------REMERCIEMENT---------------------------------- -------------------------------------------------------------------------------- Un grand merci a [LZR]SpIrOo a [M2R]LePetitClown -------------------------------------------------------------------------------- -------------------------------NOTE VERSION------------------------------------- -------------------------------------------------------------------------------- V0.1 ----- les commandes /callcar /resetcar /buycar /sellcar /parc /carcolor commande admin /aparc /asellcar /backup /rescus /givestaffcar ________________________________________________________________________________ v0.2 ----- ajout de /aprix /carsave ________________________________________________________________________________ v0.3 ----- ajoute d'un systeme pour empecher la vente de vehicule d'une commande pour le parametrer IG /setbuy plus le systeme un peu plus optimiser. ________________________________________________________________________________ v0.4 ----- ________________________________________________________________________________ °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ________________________________________________________________________________ Je sais que vous ne laisserais surement pas le credit mais SVP faite connaitre ce FS qui vous sert et qui pourras surement ravire d'autre personnes ne dite pas que vous en êtes le créateur si tel n'est pas le cas. Ceci est juste un text de bonne fois. ________________________________________________________________________________ °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ________________________________________________________________________________ */ #include #include #include #undef MAX_PLAYERS #pragma unused ret_memcpy #define MAX_VOITURE 250//ici vous devez mettre le nombre de vehicule que vous aller mettre en vente #define MAX_PLAYERS 10//ici veuillez renseigner le nombre de slot de votre serveur samp #define DEBUG // decomenter pour utiliser la commande /cash et /carsave //************ne pas toucher si dessous***************************************** #define ERRORMSG(%0) SendClientMessage(playerid,0xFF0000FF,%0) #define OKMSG(%0) SendClientMessage(playerid,0x00FF33AA,%0) #define INFOMSG(%0) SendClientMessage(playerid,0xFFFF00AA,%0) #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0)\ && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 enum PlIn { car,//-1 pas proprio Login,//0= non loger 1= loger Argent,//argent sauver interior, staff //1 modo 2 admin }; new PI[MAX_PLAYERS][PlIn]; new Float:PosVoit[MAX_VOITURE][4]; new ccolor1[MAX_VOITURE]; new ccolor2[MAX_VOITURE]; new cari = 0; stock AddStaticVehicles(id,Float:CX,Float:CY,Float:CZ,Float:CA,C1,C2,PRIX=1000,buy=1) { cari ++; if(!fexist(CompteVoiture(cari))) { dini_Create(CompteVoiture(cari)); dini_IntSet(CompteVoiture(cari),"Type",id); dini_FloatSet(CompteVoiture(cari),"PosX",CX); dini_FloatSet(CompteVoiture(cari),"PosY",CY); dini_FloatSet(CompteVoiture(cari),"PosZ",CZ); dini_FloatSet(CompteVoiture(cari),"PosA",CA); dini_IntSet(CompteVoiture(cari),"Couleur1",C1); dini_IntSet(CompteVoiture(cari),"Couleur2",C2); dini_Set(CompteVoiture(cari),"Nom proprio","Libre"); dini_IntSet(CompteVoiture(cari),"prix",PRIX); dini_IntSet(CompteVoiture(cari),"id",cari); dini_IntSet(CompteVoiture(cari),"SecurKill",0);//futur version pour empecher l'utilisation de la voiture a une personne tiers dini_IntSet(CompteVoiture(cari),"buy",buy); printf("Creation fichier""str"" prix %d",PRIX); new v; v=CreateVehicle(id,Float:CX,Float:CY,Float:CZ,Float:CA,C1,C2,-1); SetVehicleNumberPlate(v,"LIBRE"); } else { PosVoit[cari][0]=dini_Float(CompteVoiture(cari),"PosX"); PosVoit[cari][1]=dini_Float(CompteVoiture(cari),"PosY"); PosVoit[cari][2]=dini_Float(CompteVoiture(cari),"PosZ"); PosVoit[cari][3]=dini_Float(CompteVoiture(cari),"PosA"); ccolor1[cari]=dini_Int(CompteVoiture(cari),"Couleur1"); ccolor2[cari]=dini_Int(CompteVoiture(cari),"Couleur2"); new v; v=CreateVehicle(id,PosVoit[cari][0],PosVoit[cari][1],PosVoit[cari][2],PosVoit[cari][3],ccolor1[cari],ccolor2[cari],-1); new val1[256]; val1 = dini_Get(CompteVoiture(cari), "Nom proprio"); new abuy; abuy = dini_Int(CompteVoiture(cari), "buy"); if(abuy==1) { if(strcmp(val1,"Libre",false) == 0) { SetVehicleNumberPlate(v,"LIBRE"); printf("Chargement vehicule %d %s",cari,val1); } else { SetVehicleNumberPlate(v,val1); printf("Chargement vehicule %d VENDU A %s",cari,val1); } } else { printf("Chargement vehicule %d BLOQUER A LA VENTE",cari); } } return 1; } stock CompteJoueur(playerid) { new str2[MAX_PLAYER_NAME+5]; format(str2,sizeof(str2),"%s.data",nom(playerid)); return str2; } stock CompteVoiture(ID) { new str[8]; format(str,sizeof(str),"%d.ini",ID); return str; } public OnFilterScriptInit() { print("\n--------------------------------------"); print(" Systeme de vehicule charger avec systeme login"); print("--------------------------------------\n"); AddStaticVehicles(596,-1600.2443,676.5341,-5.5206,1.2510,0,1,1800,0); // police car AddStaticVehicles(596,-1596.5505,676.6334,-5.5213,1.6404,0,1,1563220); // police car AddStaticVehicles(596,-1600.0669,691.8015,-5.5204,180.4114,0,1); // police car AddStaticVehicles(523,-1604.4340,691.8796,-5.6723,178.8309,0,0); // hpv AddStaticVehicles(523,-1608.5313,691.7864,-5.6728,179.2589,0,0); // hpv AddStaticVehicles(523,-1612.5232,692.2579,-5.6724,177.3835,0,0); // hpv AddStaticVehicles(427,-1616.7412,692.7713,-5.1103,178.1325,0,1); // enforcer AddStaticVehicles(427,-1620.6270,692.6934,-5.1103,182.2275,0,1); // enforcer AddStaticVehicles(428,-1613.9460,677.6362,-4.7822,300.6578,4,75); // securicar police return 1; } public OnFilterScriptExit() { return 1; } public OnPlayerConnect(playerid) { PI[playerid][Login]=0; return 1; } public OnPlayerDisconnect(playerid) { if(fexist(CompteJoueur(playerid))) { PI[playerid][Argent] = GetPlayerMoney(playerid); dini_IntSet(CompteJoueur(playerid),"Argent",PI[playerid][Argent]); } return 1; } public OnVehicleSpawn(vehicleid) { if(fexist(CompteVoiture(vehicleid))) { new val1[256]; val1 = dini_Get(CompteVoiture(vehicleid), "Nom proprio"); if(strcmp(val1,"Libre",false) == 0) { SetVehicleNumberPlate(vehicleid,"LIBRE"); } else { SetVehicleNumberPlate(vehicleid,val1); } ccolor1[cari]=dini_Int(CompteVoiture(vehicleid),"Couleur1"); ccolor2[cari]=dini_Int(CompteVoiture(vehicleid),"Couleur2"); ChangeVehicleColor(vehicleid,ccolor1[cari],ccolor2[cari]); } return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(register,8,cmdtext); dcmd(login,5,cmdtext); dcmd(buycar,6,cmdtext); dcmd(sellcar,7,cmdtext); dcmd(callcar,7,cmdtext); dcmd(resetcar,8,cmdtext); dcmd(parc,4,cmdtext); dcmd(carcolor,8,cmdtext); dcmd(asellcar,8,cmdtext); dcmd(aparc,5,cmdtext); dcmd(backup,6,cmdtext); dcmd(rescus,6,cmdtext); dcmd(givestaffcar,12,cmdtext); dcmd(aprix,5,cmdtext); #if defined DEBUG dcmd(cash,4,cmdtext); dcmd(carsave,7,cmdtext); #endif dcmd(setbuy,6,cmdtext); return 0; } stock nom(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); return name; } dcmd_register(playerid,cmdtext[]) { new tmp[256]; new tmp3[256]; new idx; tmp = strtok(cmdtext,idx); if(!strlen(tmp)) { INFOMSG(" /register [mot de passe]"); return 1; } if(!dini_Exists(CompteJoueur(playerid))) { new strdate[20], year,month,day,hour,mins; getdate(year, month, day); gettime(hour, mins); GetPlayerIp(playerid,tmp3,100); dini_Create(CompteJoueur(playerid)); dini_IntSet(CompteJoueur(playerid),"passe",udb_hash(tmp)); dini_Set(CompteJoueur(playerid),"Motdepasse",tmp); dini_Set(CompteJoueur(playerid),"ip du jour d'enregistrement",tmp3); format(strdate, sizeof(strdate), "%d/%d/%d a %d h %d",day,month,year,hour,mins); dini_Set(CompteJoueur(playerid),"date d'enregistrement",strdate); dini_IntSet(CompteJoueur(playerid),"Argent",GetPlayerMoney(playerid)); dini_IntSet(CompteJoueur(playerid),"car",-1); dini_IntSet(CompteJoueur(playerid),"staff",0); new str[128]; format(str,sizeof(str),"Votre mot de passe :----> %s <----ne le perder pas!",tmp); OKMSG(str); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); return 1; } if(dini_Exists(CompteJoueur(playerid))) { ERRORMSG("compte déjà enregistré"); return 1; } return 1; } dcmd_login(playerid,cmdtext[]) { new tmp[256]; new tmp3[256]; new okpass[256]; new idx; new strdate[20], year,month,day,hour,mins; getdate(year, month, day); gettime(hour, mins); tmp=strtok(cmdtext, idx); if(!strlen(CompteJoueur(playerid))) { INFOMSG(" /login [mot de passe]"); return 1; } if(PI[playerid][Login]== 1) { ERRORMSG("Vous étes déjà loggé"); return 1; } if (dini_Exists(CompteJoueur(playerid))) { okpass=dini_Get(CompteJoueur(playerid),"passe"); if(udb_hash(tmp)!=strval(okpass)) { ERRORMSG("Mauvais mot de passe!"); } else { GetPlayerIp(playerid,tmp3,100); format(strdate, sizeof(strdate), "%d/%d/%d a %d h %d",day,month,year,hour,mins); dini_Set(CompteJoueur(playerid),"date de dernier passage",strdate); dini_Set(CompteJoueur(playerid),"derniere ip connu",tmp3); PI[playerid][car]= dini_Int(CompteJoueur(playerid),"car"); PI[playerid][Argent]= dini_Int(CompteJoueur(playerid),"Argent"); OKMSG("Mot de passe accepté, bon jeu"); GivePlayerMoney(playerid,PI[playerid][Argent]); PI[playerid][Login]=1; PlayerPlaySound(playerid,1057,0.0,0.0,0.0); new voiturevendu; new voituregarer; voiturevendu = dini_Int(CompteJoueur(playerid),"CarVendu"); voituregarer = dini_Int(CompteJoueur(playerid),"ParcStaff"); if(voiturevendu == 1) { INFOMSG("Votre vehicule a était revendu par le staff l'argent de la vente vous à etait restituer"); } if(voituregarer == 1) { INFOMSG("Votre vehicule a etait garer a un autre emplacement par un moderateur"); } if(voituregarer == 2) { INFOMSG("Votre vehicule a etait garer a un autre emplacement par un administrateur"); } } } return 1; } dcmd_buycar(playerid,cmdtext[]) { #pragma unused cmdtext if(PI[playerid][Login] == 0) { ERRORMSG("Vous devez etre enregistrer pour acheter un vehicule"); return 1; } else { new val1[256]; new Voit; Voit=GetPlayerVehicleID(playerid); val1 = dini_Get(CompteVoiture(Voit), "Nom proprio"); if(strcmp(val1,"Libre",false) == 0) { new val2[256]; val2 = dini_Get(CompteVoiture(Voit),"prix"); PI[playerid][Argent]=GetPlayerMoney(playerid); if(PI[playerid][Argent]>=strval(val2)) { PI[playerid][car] = dini_Int(CompteJoueur(playerid),"car"); if(PI[playerid][car] == -1) { new str3[128]; dini_Set(CompteVoiture(Voit),"Nom proprio",nom(playerid)); dini_IntSet(CompteJoueur(playerid),"car",Voit); GivePlayerMoney(playerid,-strval(val2)); format(str3,256,"Vous venez d'achetez ce vehicule pour %d$",strval(val2)); OKMSG(str3); SetVehicleToRespawn(Voit); } else { ERRORMSG("Vous êtes déjà pocesseur d'un vehicule"); } } else { ERRORMSG("Vous n'avez pas l'argent necessaire pour acheter ce vehicule"); return 1; } } else { ERRORMSG("Ce vehicule n'est pas a vendre"); return 1; } } return 1; } dcmd_sellcar(playerid,cmdtext[]) { #pragma unused cmdtext if(PI[playerid][Login] == 0) { ERRORMSG("Vous devez etre enregistrer pour vendre un vehicule"); return 1; } else { new str[16]; new Voit; new val2[256]; new val1[256]; Voit=GetPlayerVehicleID(playerid); PI[playerid][car] = dini_Int(CompteJoueur(playerid),"car"); val1 = dini_Get(CompteVoiture(Voit), "Nom proprio"); if(!IsPlayerInAnyVehicle(playerid)) { ERRORMSG("Vous devez être dans votre vehicule"); return 1; } if(PI[playerid][car] != -1) { if(strcmp(val1,nom(playerid),false) == 0) { val2 = dini_Get(CompteVoiture(Voit),"prix"); GivePlayerMoney(playerid,strval(val2)); dini_Set(str,"Nom proprio","Libre"); dini_IntSet(CompteJoueur(playerid),"car",-1); SetVehicleToRespawn(Voit); new str3[128]; format(str3,128,"Vous venez de vendre votre vehicule pour %d$",strval(val2)); OKMSG(str3); } else { ERRORMSG("Que tentez vous de faire!!!"); return 1; } } else { ERRORMSG("Que tentez vous de faire!!!"); return 1; } } return 1; } dcmd_callcar(playerid,cmdtext[]) { #pragma unused cmdtext if(PI[playerid][Login] == 0) { ERRORMSG("Vous devez etre enregistrer pour appeler un vehicule"); return 1; } else { new Voit; Voit=GetPlayerVehicleID(playerid); PI[playerid][car] = dini_Int(CompteJoueur(playerid),"car"); PI[playerid][interior]=GetPlayerInterior(playerid); if(PI[playerid][interior] > 0) { ERRORMSG("Vous ne pouvez pas appeler votre vehicule si vous êtes dans un batiment"); return 1; } else { if(PI[playerid][car]==-1) { ERRORMSG("Vous ne possedez aucun vehicule"); return 1; } else { if(Voit == PI[playerid][car]) { ERRORMSG("Vous êtes deja dans le vehicule en question"); return 1; } else { new Float:pX, Float:pY, Float:pZ, Float:cX, Float:cY, Float:cZ; GetPlayerPos(playerid, pX, pY, pZ); GetPlayerCameraPos(playerid, cX, cY, cZ); new Float:vX, Float:vY, Float:vZ; vX = pX + ( pX - cX ); vY = pY + ( pY - cY ); vZ = pZ; for(new i=0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(IsPlayerInAnyVehicle(i)) { if (GetPlayerVehicleID(i) == PI[playerid][car]) { RemovePlayerFromVehicle(i); } } } } SetVehiclePos(PI[playerid][car],vX,vY,vZ); OKMSG("Voila votre vehicule"); ERRORMSG("Il se peut que votre vehicule n'apparaisse pas dans ce cas utiliser /resetcar"); } } } } return 1; } dcmd_resetcar(playerid,cmdtext[]) { #pragma unused cmdtext if(PI[playerid][Login] == 0) { ERRORMSG("Vous devez etre enregistrer pour vendre un vehicule"); return 1; } else { new Voit; Voit=GetPlayerVehicleID(playerid); PI[playerid][car] = dini_Int(CompteJoueur(playerid),"car"); PI[playerid][interior]=GetPlayerInterior(playerid); if(PI[playerid][car]==-1) { ERRORMSG("Vous ne possedez aucun vehicule"); return 1; } if(PI[playerid][interior] > 0) { ERRORMSG("Vous ne pouvez pas utiliser /resetcar si vous êtes dans un batiment"); return 1; } else { if(Voit == PI[playerid][car]) { ERRORMSG("Vous êtes deja dans le vehicule en question"); return 1; } else { for(new i=0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(IsPlayerInAnyVehicle(i)) { if (GetPlayerVehicleID(i) == PI[playerid][car]) { RemovePlayerFromVehicle(i); } } } } PosVoit[PI[playerid][car]][0]=dini_Float(CompteVoiture(PI[playerid][car]),"PosX"); PosVoit[PI[playerid][car]][1]=dini_Float(CompteVoiture(PI[playerid][car]),"PosY"); PosVoit[PI[playerid][car]][2]=dini_Float(CompteVoiture(PI[playerid][car]),"PosZ"); PosVoit[PI[playerid][car]][3]=dini_Float(CompteVoiture(PI[playerid][car]),"PosA"); SetVehiclePos(PI[playerid][car],PosVoit[PI[playerid][car]][0],PosVoit[PI[playerid][car]][1],PosVoit[PI[playerid][car]][2]); SetVehicleZAngle(PI[playerid][car],PosVoit[PI[playerid][car]][3]); SetPlayerPos(playerid,PosVoit[PI[playerid][car]][0],PosVoit[PI[playerid][car]][1],PosVoit[PI[playerid][car]][2]+3); } } } return 1; } dcmd_parc(playerid,cmdtext[]) { #pragma unused cmdtext if(PI[playerid][Login] == 0) { ERRORMSG("Vous devez etre enregistrer pour garer votre vehicule"); return 1; } else { new Voit; Voit=GetPlayerVehicleID(playerid); PI[playerid][car] = dini_Int(CompteJoueur(playerid),"car"); if(PI[playerid][car] == -1) { ERRORMSG("Vous devez etre proprietaire d'un vehicule"); return 1; } else { if(PI[playerid][car] == Voit) { new Float:Px,Float:Py,Float:Pz,Float:Pa; GetVehiclePos(Voit,Px,Py,Pz); GetVehicleZAngle(Voit,Pa); dini_FloatSet(CompteVoiture(PI[playerid][car]),"PosX",Px); dini_FloatSet(CompteVoiture(PI[playerid][car]),"PosY",Py); dini_FloatSet(CompteVoiture(PI[playerid][car]),"PosZ",Pz); dini_FloatSet(CompteVoiture(PI[playerid][car]),"PosA",Pz); OKMSG("Votre vehicule respawnera ici desormer"); } } } return 1; } dcmd_carcolor(playerid,cmdtext[]) { new tmp[256]; new tmp2[256]; new idx; tmp=strtok(cmdtext, idx); tmp2=strtok(cmdtext, idx); new Voit; Voit=GetPlayerVehicleID(playerid); PI[playerid][car] = dini_Int(CompteJoueur(playerid),"car"); if(!IsPlayerInAnyVehicle(playerid)) { ERRORMSG("Vous devez être dans votre propre vehicule pour cette commande"); return 1; } else { if(!strlen(tmp) || !strlen(tmp2)) { ERRORMSG("USAGE CORRECT: /carcolor couleur1 couleur2"); return 1; } else { if(PI[playerid][car] != Voit) { ERRORMSG("Ce n'est pas votre vehicule"); } else { dini_IntSet(CompteVoiture(Voit),"Couleur1",strval(tmp)); dini_IntSet(CompteVoiture(Voit),"Couleur2",strval(tmp2)); ChangeVehicleColor(Voit,strval(tmp),strval(tmp2)); new string[128]; format(string, sizeof(string), "Votre couleur seras dorenavant %d %d", strval(tmp),strval(tmp2)); OKMSG(string); } } } return 1; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { new val1[256]; new string[128]; new val2[256]; new achetable; achetable = dini_Int(CompteVoiture(vehicleid),"buy"); val1 = dini_Get(CompteVoiture(vehicleid), "Nom proprio"); val2 = dini_Get(CompteVoiture(vehicleid),"prix"); if(!ispassenger) if(fexist(CompteVoiture(vehicleid))) { if(achetable == 0) { ERRORMSG("Ce vehicule n'est pas a vendre"); return 1; } else { if(strcmp(val1,"Libre",false) == 0) { if(PI[playerid][Login]==1) { format(string,sizeof(string),"Ce vehicule est a vendre pour %d $!",strval(val2)); INFOMSG(string); } else { format(string,sizeof(string),"Ce vehicule est a vendre pour %d$ mais vous devez être enregistrer pour l'acheter",strval(val2)); ERRORMSG(string); } } else if(strcmp(val1,nom(playerid),false) == 0) { format(string,sizeof(string),"Bienvenue dans votre vehicule %s!",nom(playerid)); OKMSG(string); } else { format(string,sizeof(string),"Ce vehicule appartien a %s",val1); ERRORMSG(string); } } } return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { INFOMSG("Le paintjob obtenue ne sera pas sauvegarder"); return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) { INFOMSG("Les couleur obtenue ne sont pas sauvegarder"); return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; } /***************COMMANDE STAFFCAR***********************************************/ dcmd_asellcar(playerid,cmdtext[]) { #pragma unused cmdtext if(PI[playerid][Login] == 0) { ERRORMSG("Vous devez etre enregistrer"); return 1; } else { new Voit; new val1[256]; new val2[256]; new str2[MAX_PLAYER_NAME+5]; Voit=GetPlayerVehicleID(playerid); val1 = dini_Get(CompteVoiture(Voit), "Nom proprio"); format(str2,sizeof(str2),"%s.data",nom(playerid)); if(IsPlayerAdmin(playerid)||PI[playerid][staff]==2) { val2 = dini_Get(CompteVoiture(Voit),"prix"); new pa; pa = dini_Int(str2, "Argent"); dini_IntSet(str2,"Argent",pa+strval(val2)); dini_Set(str2,"CarVendu","1"); dini_Set(CompteVoiture(Voit),"Nom proprio","Libre"); dini_IntSet(str2,"car",-1); SetVehicleToRespawn(Voit); new str3[128]; format(str3,128,"Vous venez de vendre le vehicule de %s",val1); OKMSG(str3); } } return 1; } dcmd_aparc(playerid,cmdtext[]) { #pragma unused cmdtext if(PI[playerid][Login] == 0) { ERRORMSG("Vous devez etre enregistrer"); return 1; } else { new val1[256]; new Voit; new str2[MAX_PLAYER_NAME+5]; val1 = dini_Get(CompteVoiture(Voit), "Nom proprio"); Voit = GetPlayerVehicleID(playerid); format(str2,sizeof(str2),"%s.data",nom(playerid)); if(IsPlayerAdmin(playerid) || PI[playerid][staff]>0) { new Float:Px,Float:Py,Float:Pz,Float:Pa; GetVehiclePos(Voit,Px,Py,Pz); GetVehicleZAngle(Voit,Pa); dini_FloatSet(CompteVoiture(Voit),"PosX",Px); dini_FloatSet(CompteVoiture(Voit),"PosY",Py); dini_FloatSet(CompteVoiture(Voit),"PosZ",Pz); dini_FloatSet(CompteVoiture(Voit),"PosA",Pz); OKMSG("Votre vehicule respawnera ici desormer"); dini_Set(str2,"ParcStaff",PI[playerid][staff]); } } return 1; } dcmd_backup(playerid,cmdtext[]) { #pragma unused cmdtext if(PI[playerid][Login] == 0) { ERRORMSG("Vous devez etre enregistrer"); return 1; } else { PI[playerid][staff] = dini_Int(CompteJoueur(playerid), "staff"); if(IsPlayerAdmin(playerid) || PI[playerid][staff]==2) { for(new i=0;i