Skripta koju koristim:BE by Jakisic
Detaljan opis problema:Kad kupim garazu ok kad prodam ostane garaza u -2314 i igrac dobije te pare umesto da oduzme igracu pare kad kupi garazu pogledaj te i slike i evo i komande kupi/prodaj...I nece da mi se sacuvaju garaze kad ih kreiram napravio sam i ini i txt folder i ubacio u skript files posle restarta sve prazno iz foldere garaza.txt ili garaza.ini
PS:ovaj sistem koristim http://pastebin.com/RRAVNwC5 i ovo nisam dodao ako se ne varam da je problem CODE 1
U kom delu skripte trebam da dodam?
Dio skripte:
KUPI
[pawn]CMD:kupigarazu(playerid, params[])
{
for(new i=0; i < garageCount+1; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, gInfo[PosX], gInfo[PosY], gInfo[PosZ]))
{
if(gInfo[Owned] == 1) return SendClientMessage(playerid, COLOR_ERROR,"Error: Ova garaza je vec kupljena.");
if(GetPlayerMoney(playerid) < gInfo[Price]) return SendClientMessage(playerid,COLOR_ERROR,"Error: Nemate dovoljno novca da kupite ovu garazu.");
GivePlayerMoney(playerid,-gInfo[Price]);
gInfo[Price]-= random(5000); //Take some money off of the original price
format(gInfo[Owner],24,"%s",GetPlayerNameEx(playerid));
gInfo[Owned] = 1;
Save_Garage(i);
UpdateGarageInfo(i);
SendClientMessage(playerid,COLOR_SUCCESS,"Uspesno ste kupili ovu garazu.");
return 1;
}
}
SendClientMessage(playerid,COLOR_ERROR,"Error: Nisi blizu garaze!.");
return 1;
}[/pawn]
PRODAJ
[pawn]CMD:prodajgarazu(playerid,params[])
{
for(new i=0; i < garageCount+1; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, gInfo[PosX], gInfo[PosY], gInfo[PosZ]))
{
if(strcmp(gInfo[Owner],GetPlayerNameEx(playerid))) return SendClientMessage(playerid,COLOR_ERROR,"Error: Nisi vlasnik ove garaze.");
GivePlayerMoney(playerid,gInfo[Price]-random(500));
gInfo[Owned] = 0;
format(gInfo[Owner],24,"the State");
gInfo[Locked] = 1;
UpdateGarageInfo(i);
Save_Garage(i);
SendClientMessage(playerid, COLOR_SUCCESS,"Uspesno ste prodali svoju garazu.");
return 1;
}
}
SendClientMessage(playerid, COLOR_ERROR,"Nisi blizu garaze!.");
return 1;
}[/pawn]
NAPRAVIGARAZU
[pawn]CMD:napravigarazu(playerid,params[])
{
if(!IsPlayerAdmin(playerid)) return 0;
if(garageCount == MAX_GARAGES) return SendClientMessage(playerid, COLOR_USAGE, "Presli ste limit pravljenja garaze podigni limit u skriptu.");
new price, type;
if(sscanf(params,"dd",price, type)) return SendClientMessage(playerid, COLOR_USAGE, "CMD: /napravigarazu <cena> <tip> || Kucaj /garazatip da vidis tipove garaze.");
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X,Y,Z);
format(gInfo[garageCount][Owner],24,"the State");
gInfo[garageCount][Owned] = 0;
gInfo[garageCount][Price] = price;
gInfo[garageCount][Interior] = type;
gInfo[garageCount][UID] = garageCount;
gInfo[garageCount][PosX] = X;
gInfo[garageCount][PosY] = Y;
gInfo[garageCount][PosZ] = Z;
gInfo[garageCount][Locked] = 1;
new path[128];
format(path,sizeof(path),"garages/%d.ini",garageCount); //Format the path with the filenumber
dini_Create(path);
Save_Garage(garageCount);
UpdateGarageInfo(garageCount);
garageCount++;
SendClientMessage(playerid,COLOR_SUCCESS,"Garaza je kreirana!");
return 1;
}[/pawn]
CODE 1
[pawn]public OnFilterScriptExit()
{
Save_Garages();
Remove_PickupsAndLabels();
return 1;
}[/pawn]
Neke slike/video za lakse dobivanje pomoci(neobavezno): http://imgur.com/a/PsMvg
Nisam proucavao nesto posebno kod, ali probaj maknit ovaj random kod kupovine a i prodaje, ili smanji broj jednostavno :).
Nisam siguran da li zelis da se mjenja cijena, da se random stavlja ili???
Umjesto "return 1;" stavi "break;" moras nekako petlju zatvorit, jer ovako provjerava sve garaze. Lako je sada ako si kreirao samo jednu garazu i kada provjerava kordinate. Negdje ces se zajebat gdje ce ti provjerit sve zivo i sve zivo zeznut.
Osim toga ako vec zelis RANDOM, napravi ovako nesto.
Umjesto ovoga: GivePlayerMoney(playerid,gInfo[Price]-random(500));
Ili ovo dodaj umjesto MINUSA ide PLUS ako zelis da se oduzme jos tih random 500 novaca, NPR garazu mozes prodat za 2000$ a sa PLUSOM random 500 NPR prodas je za 2340. Minus iskreno nigdje nisam ni vidio.
Ili probaj ovo: GivePlayerMoney(playerid,gInfo[Price]/2); Znaci da ce igrac dobit duplo manje para od kupovne cijene. NPR garaza je kostala 5000$ on ce je prodat za $2500.
A ako bas zelis svoj sistem ovako nes napravi:
[pawn]new Rand = random(500);
GivePlayerMoney(playerid,gInfo[Price]-Rand);[/pawn]
Citat: [PL]KristijanS poslato Oktobar 27, 2015, 02:35:47 PRE PODNE
Umjesto "return 1;" stavi "break;" moras nekako petlju zatvorit, jer ovako provjerava sve garaze. Lako je sada ako si kreirao samo jednu garazu i kada provjerava kordinate. Negdje ces se zajebat gdje ce ti provjerit sve zivo i sve zivo zeznut.
Osim toga ako vec zelis RANDOM, napravi ovako nesto.
Umjesto ovoga: GivePlayerMoney(playerid,gInfo[Price]-random(500));
Ili ovo dodaj umjesto MINUSA ide PLUS ako zelis da se oduzme jos tih random 500 novaca, NPR garazu mozes prodat za 2000$ a sa PLUSOM random 500 NPR prodas je za 2340. Minus iskreno nigdje nisam ni vidio.
Ili probaj ovo: GivePlayerMoney(playerid,gInfo[Price]/2); Znaci da ce igrac dobit duplo manje para od kupovne cijene. NPR garaza je kostala 5000$ on ce je prodat za $2500.
A ako bas zelis svoj sistem ovako nes napravi:
[pawn]new Rand = random(500);
GivePlayerMoney(playerid,gInfo[Price]-Rand);[/pawn]
+ http://wiki.sa-mp.com/wiki/Control_Structures#return malo prostudiraj :)
Ako on ima na serveru kreirano 1000 garaza. Posto ovdje NPR kod prodaje provjerava kordinate uradit ce skripta samo za tu garazu gdje se igrac nalazi.
ALI
Od 1000 garaza ako je igrac na garazi broj 240 (PRIMJER) i ako doda "break;" Petlja ce zavrsit na garazi broj 240 nece dalje provjeravat???
A sa return provjerit ce svih 1000 garaza!
ALI OK petlja ovdje nije nista sjebala, nek ovaj giveplayermoney popravi kako sam mu napisao
Citat: [PL]KristijanS poslato Oktobar 27, 2015, 02:48:22 PRE PODNE
Ako on ima na serveru kreirano 1000 garaza. Posto ovdje NPR kod prodaje provjerava kordinate uradit ce skripta samo za tu garazu gdje se igrac nalazi.
ALI
Od 1000 garaza ako je igrac na garazi broj 240 (PRIMJER) i ako doda "break;" Petlja ce zavrsit na garazi broj 240 nece dalje provjeravat???
A sa return provjerit ce svih 1000 garaza!
ALI OK petlja ovdje nije nista sjebala, nek ovaj giveplayermoney popravi kako sam mu napisao
Ma znam, ti si u pravu, nije bio ovaj moj zadnji post namjenjem tebi vec autoru teme :)
Citat: LuKsA poslato Oktobar 27, 2015, 02:50:42 PRE PODNE
Citat: [PL]KristijanS poslato Oktobar 27, 2015, 02:48:22 PRE PODNE
Ako on ima na serveru kreirano 1000 garaza. Posto ovdje NPR kod prodaje provjerava kordinate uradit ce skripta samo za tu garazu gdje se igrac nalazi.
ALI
Od 1000 garaza ako je igrac na garazi broj 240 (PRIMJER) i ako doda "break;" Petlja ce zavrsit na garazi broj 240 nece dalje provjeravat???
A sa return provjerit ce svih 1000 garaza!
ALI OK petlja ovdje nije nista sjebala, nek ovaj giveplayermoney popravi kako sam mu napisao
Ma znam, ti si u pravu, nije bio ovaj moj zadnji post namjenjem tebi vec autoru teme :)
Onda se ispricavam!
Haha ma nista, nemas se za sta ispricavati :)
Resio sam ovo na neki svoj nacin,sad je problem kako da napravim kad na server kreiram garazu ne sacuva mi se posle restarta ?
Citat: â˜... ᴘɪɴᴋɪ â˜... poslato Oktobar 27, 2015, 21:01:21 POSLE PODNE
Resio sam ovo na neki svoj nacin,sad je problem kako da napravim kad na server kreiram garazu ne sacuva mi se posle restarta ?
Pa stavi pod OnGameModeExit da ti sacuva garaze.
moze lock