Problem(error/warning): ovako ubacio sam sistem imanja iz LumiX-a u svoj UP mod i crasha mi pawno radi previše erora.Bio sam izbacio dialoge ali nije do njih
Dio skripte:Na poÄetku moda
[pawn]#define DIALOG_BIRADRVO 375
#define DIALOG_KUPISLJIVU 376
#define DIALOG_KUPIKRUSKU 378
#define DIALOG_KUPIJABUKU 379
#define DIALOG_BIRADRVOZP 380
#define DIALOG_PRODAJSLJIVU 381
#define DIALOG_PRODAJKRUSKU 382
#define DIALOG_PRODAJJABUKU 383
#define DIALOG_IMANJE 384
#define DIALOG_IINFO 385
#define DIALOG_IPOSIJANO 386
#define DIALOG_IPRODAJ 387
#define MAX_IMANJE 2000
#define MAX_DRVA 7000
#define MAX_VOCA 7000
#define DIALOG_IMANJCE 388
#define DIMANJE_PRODAJESIGRACU 389
#define DIMANJE_PRODAJA 390
#define DIMANJE_PRODAJESKCENA 391
new ProdajesImanje[MAX_VEHICLES];
new IgracKProdajesI[MAX_PLAYERS];
new ProdavacImanja[MAX_PLAYERS];
new CenaImanja[MAX_PLAYERS];
new IDImanja[MAX_PLAYERS];
////////////////////////////////////////////////////////////////////////////////
enum Drva
{
dIDImanja,
Float:dDrvoX,
Float:dDrvoY,
Float:dDrvoZ,
dVrijeme,
dPostavljeno,
dObjd,
dText,
dVrsta,
dMinuta,
dSat,
dDrvo
};
new DrvaInfo[MAX_DRVA][Drva];
new Text3D:DrvoLabel[sizeof(DrvaInfo)];
enum Imanje
{
iImaVlasnika,
iVlasnik[MAX_PLAYER_NAME],
Float:iUlazX,
Float:iUlazY,
Float:iUlazZ,
iLevel,
iCena,
iPostavljena,
iPrecnik
};
new ImanjeInfo[MAX_IMANJE][Imanje];
new ImanjePickup[sizeof(ImanjeInfo)];
new Text3D:ImanjeLabel[sizeof(ImanjeInfo)];
new ImanjeMark[MAX_IMANJE];
#define IMANJE_FILE "Imanja/Imanje_%d.ini"[/pawn][ pawn ]
[ /pawn ]
OnGameModeInit
[pawn] for(new b = 0; b < sizeof(ImanjeInfo); b++)
{
new gFajl[35];
new kucestring[500];
format(gFajl, 50, "imanja/Imanje_%d.ini" ,b);
if(fexist(gFajl))
{
INI_ParseFile(gFajl, "UcitajImanje", .bExtra = true, .extra = b);
if(ImanjeInfo[iPostavljena] == 1)
{
if(ImanjeInfo[iImaVlasnika] == 0)
{
new string[256];
DestroyDynamicPickup(ImanjePickup);
UpdateDynamic3DTextLabelText(ImanjeLabel, 0x33CCFFAA, kucestring);
format(kucestring,sizeof(kucestring),"{FFFFFF}[ {FBFB00}~ Imanje na prodaju! ~{FFFFFF} ]\n{FBFB00}- Cijena: {FFFFFF}%d$\n{FBFB00}- Level: {FFFFFF}%d\n{FBFB00}- Precnik: {FFFFFF}%dm\n{FBFB00}({FFFFFF}/kupiimanje{FBFBF00})",ImanjeInfo[iCena],ImanjeInfo[iLevel],ImanjeInfo[iPrecnik]);
ImanjeLabel = CreateDynamic3DTextLabel(string ,0x9EC73DAA,ImanjeInfo[iUlazX], ImanjeInfo[iUlazY], ImanjeInfo[iUlazZ],15);
ImanjePickup = CreateDynamicPickup(1273, 1, ImanjeInfo[iUlazX], ImanjeInfo[iUlazY], ImanjeInfo[iUlazZ]);
ImanjeMark = CreateDynamicMapIcon(ImanjeInfo[iUlazX], ImanjeInfo[iUlazY], ImanjeInfo[iUlazZ],56,0);
}
else if(ImanjeInfo[iImaVlasnika] == 1)
{
new string[256];
DestroyDynamicPickup(ImanjePickup);
UpdateDynamic3DTextLabelText(ImanjeLabel, 0x33CCFFAA, kucestring);
format(kucestring,sizeof(kucestring),"{FFFFFF}[ {FBFB00}~ Imanje ~{FBFB00} ]\n- Vlasnik: {FFFFFF}%s\n{FBFB00}- Nivo: {FFFFFF}%d\n{FBFB00}- Cijena: {FFFFFF}%d\n{FBFB00}- Adresa: {FFFFFF}%d\n{FBFB00}- Precnik: {FFFFFF}%dm",ImanjeInfo[iVlasnik],ImanjeInfo[iLevel],ImanjeInfo[iCena],b,ImanjeInfo[iPrecnik]);
ImanjeLabel = CreateDynamic3DTextLabel(string ,0x9EC73DAA,ImanjeInfo[iUlazX], ImanjeInfo[iUlazY], ImanjeInfo[iUlazZ],15);
ImanjePickup = CreateDynamicPickup(1273, 1, ImanjeInfo[iUlazX], ImanjeInfo[iUlazY], ImanjeInfo[iUlazZ]);
ImanjeMark = CreateDynamicMapIcon(ImanjeInfo[iUlazX], ImanjeInfo[iUlazY], ImanjeInfo[iUlazZ],56,0);
}
ImanjeLabelIPickup(b);
}
}
}
/////////////////////////////////////////////////////////////////
for(new b = 0; b < sizeof(DrvaInfo); b++)
{
new gFajl[35];
format(gFajl, 50, "imanja/drva/Drvo_%d.ini" ,b);
new stringv[160];
if(fexist(gFajl))
{
INI_ParseFile(gFajl, "UcitajDrvo", .bExtra = true, .extra = b);
if(DrvaInfo[dPostavljeno] == 1)
{
new vrsta[64];
if(DrvaInfo[dVrsta] == 1) { vrsta = "Sljiva"; }
else if(DrvaInfo[dVrsta] == 2) { vrsta = "Kruska"; }
else if(DrvaInfo[dVrsta] == 3) { vrsta = "Jabuka"; }
DrvaInfo[dObjd] = rastko_CreateDynamicObject(DrvaInfo[dDrvo], DrvaInfo[dDrvoX]+2,DrvaInfo[dDrvoY],DrvaInfo[dDrvoZ]-4, 0.0000000,0.0000000,0.0000000);
format(stringv,256,""ZELENA"["BELA" %s"ZELENA" ]\n"BELA"Voce jos nije izraslo...\n"BELA"Vreme do izrastanja :"ZELENA"%d"BELA" sati, "ZELENA"%d"BELA" minuta",vrsta,DrvaInfo[dSat],DrvaInfo[dMinuta]);
DrvoLabel = CreateDynamic3DTextLabel(stringv, 0x33CCFFAA, DrvaInfo[dDrvoX]+2,DrvaInfo[dDrvoY],DrvaInfo[dDrvoZ], 15);
if(DrvaInfo[dSat] == 0 && DrvaInfo[dMinuta] == 0)//,ImanjeInfo[iVlasnik]
{
format(stringv,256,""ZELENA"["BELA" %s"ZELENA" ]\n"BELA"Voce je izraslo!\n"BELA"Da oberes voce kucaj"ZELENA"/oberivoce",vrsta);
UpdateDynamic3DTextLabelText(DrvoLabel, -1, stringv);
}
}
}
}
SetTimer("PredRaste", 60000, true);[/pawn]
Komanda /prihvati imanje
[pawn]else if(strcmp(ime,"imanje",true) == 0)
{
new string[128];
if(ProdavacImanja[playerid] == -1) return SCM(playerid,-1,""ZUTA"[GRESKA] Niko ti nije ponudio prodaju imanja");
if(!DaljinaIgraca(5.0,playerid,ProdavacImanja[playerid])) return SCM(playerid,-1,""ZUTA"[GRESKA] Prodavac imanja nije blizu tebe");
if(PlayerInfo[playerid][pNovacDzep] < CenaImanja[playerid]) return SCM(playerid,-1,""ZUTA"[GRESKA] Nemas dovoljno novca da kupis imanje!");
if(PlayerInfo[playerid][pLevel] < ImanjeInfo[IDImanja[playerid]][iLevel]) return SCM(playerid,-1,""ZUTA"[GRESKA] Nemas dovoljan level da bi kupio ponudjeno imanje");
g_NovacMinus(playerid,-CenaImanja[playerid]);
g_NovacPlus(IgracKProdajesI[playerid],CenaImanja[playerid]);
PlayerInfo[playerid][pImaImanje] = IDImanja[playerid];
PlayerInfo[IgracKProdajesI[playerid]][pImaImanje] = 2555;
format(string,sizeof(string),""ZUTA"Igrac %s je prihvatio imanje",GetName(playerid));
SCM(IgracKProdajesI[playerid],-1,string);
SCM(playerid,-1,""ZUTA"Prihvatio si imanje,kucaj /imanje");
strmid(ImanjeInfo[IDImanja[playerid]][iVlasnik], GetName(playerid), 0, strlen(GetName(playerid)), 255);
ImanjeLabelIPickup(IDImanja[playerid]);
SacuvajImanje(IDImanja[playerid]);
SavePlayer(playerid);
SavePlayer(ProdavacImanja[playerid]);
ProdajesImanje[ProdavacImanja[playerid]] = 0;
IgracKProdajesI[ProdavacImanja[playerid]] = -1;
IDImanja[playerid] = -1;
CenaImanja[playerid] = -1;
ProdavacImanja[playerid] = -1;
}[/pawn]
Ostale komande od sistema
[pawn]YCMD:oberivoce(playerid, params[], help)
{
#pragma unused help
if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1, ""ZUTA"[GRESKA] Moras se ulogovati da bi koristio ovu komandu!");
for(new i; i < sizeof(DrvaInfo); i++)
{
//new stringv[256];
new stringslj[128];
new stringkru[128];
new stringjab[128];
new randsljive =random(8)+8;
new randkruske =random(8)+8;
new randjabuke =random(8)+8;
new kFile[50];
if(IsPlayerInRangeOfPoint(playerid, 3.0, DrvaInfo[dDrvoX], DrvaInfo[dDrvoY], DrvaInfo[dDrvoZ]))
{
if(DrvaInfo[dVrsta] == 1)
{
new nijet = DrvaInfo[dIDImanja];
if(PlayerInfo[playerid][pImaImanje] == 2555) return SCM(playerid, -1,""ZUTA"[GRESKA] Ne posedujete imanje!");
if(DrvaInfo[dSat] >= 1 && DrvaInfo[dMinuta] >= 1) return SCM(playerid, -1,""ZUTA"[GRESKA] Sljiva jos nije spremna za branje!");
if(PlayerInfo[playerid][pImaImanje] == nijet)
{
format(kFile, sizeof(kFile), "Imanja/drva/Drvo_%d.ini", i);
if(fexist(kFile))
{
fremove(kFile);
DestroyDynamic3DTextLabel(DrvoLabel);
DestroyDynamicObject(DrvaInfo[dObjd]);
Delete3DTextLabel(DrvoLabel);
DrvaInfo[dDrvoX] = 0;
DrvaInfo[dDrvoY] = 0;
DrvaInfo[dDrvoZ] = 0;
PlayerInfo[playerid][pDrvaMax] --;
//DrvaInfo[dIDImanja] = idi;
DrvaInfo[dPostavljeno] = 0;
new vrsta[64];
if(DrvaInfo[dVrsta] == 1) { vrsta = "Sljiva"; }
else if(DrvaInfo[dVrsta] == 2) { vrsta = "Kruska"; }
else if(DrvaInfo[dVrsta] == 3) { vrsta = "Jabuka"; }
PlayerInfo[playerid][pSljiva] += randsljive;
format(stringslj,128,""GINFO"[INFO] Obrali ste sljivu i dobili ste %d sljiva",randsljive);
SCM(playerid,-1,stringslj);
}
}
else
SCM(playerid, -1,""BELA"To nije tvoje drvo!!");
}
if(DrvaInfo[dVrsta] == 2)
{
new nijet = DrvaInfo[dIDImanja];
if(PlayerInfo[playerid][pImaImanje] == 2555) return SCM(playerid, -1,""ZUTA"[GRESKA] Ne posedujete imanje!");
if(DrvaInfo[dSat] >= 1 && DrvaInfo[dMinuta] >= 1) return SCM(playerid, -1,""ZUTA"[GRESKA] Kruska jos nije spremna za branje!");
if(PlayerInfo[playerid][pImaImanje] == nijet)
{
format(kFile, sizeof(kFile), "Imanja/drva/Drvo_%d.ini", i);
if(fexist(kFile))
{
fremove(kFile);
DestroyDynamic3DTextLabel(DrvoLabel);
DestroyDynamicObject(DrvaInfo[dObjd]);
Delete3DTextLabel(DrvoLabel);
DrvaInfo[dDrvoX] = 0;
DrvaInfo[dDrvoY] = 0;
DrvaInfo[dDrvoZ] = 0;
PlayerInfo[playerid][pDrvaMax] --;
DrvaInfo[dPostavljeno] = 0;
new vrsta[64];
if(DrvaInfo[dVrsta] == 1) { vrsta = "Sljiva"; }
else if(DrvaInfo[dVrsta] == 2) { vrsta = "Kruska"; }
else if(DrvaInfo[dVrsta] == 3) { vrsta = "Jabuka"; }
PlayerInfo[playerid][pKrusaka] += randkruske;
format(stringkru,128,""GINFO"[INFO] Obrali ste krusku i dobili ste %d krusaka",randkruske);
SCM(playerid,-1,stringkru);
}
}
else
SCM(playerid, -1,""BELA"To nije tvoje drvo!!");
}
if(DrvaInfo[dVrsta] == 3)
{
new nijet = DrvaInfo[dIDImanja];
if(PlayerInfo[playerid][pImaImanje] == 2555) return SCM(playerid, -1,""ZUTA"[GRESKA] Ne posedujete imanje!");
if(DrvaInfo[dSat] >= 1 && DrvaInfo[dMinuta] >= 1) return SCM(playerid, -1,""ZUTA"[GRESKA] Jabuka jos nije spremna za branje!");
if(PlayerInfo[playerid][pImaImanje] == nijet)
{
format(kFile, sizeof(kFile), "Imanja/drva/Drvo_%d.ini", i);
if(fexist(kFile))
{
fremove(kFile);
DestroyDynamic3DTextLabel(DrvoLabel);
DestroyDynamicObject(DrvaInfo[dObjd]);
Delete3DTextLabel(DrvoLabel);
DrvaInfo[dDrvoX] = 0;
DrvaInfo[dDrvoY] = 0;
DrvaInfo[dDrvoZ] = 0;
PlayerInfo[playerid][pDrvaMax] --;
DrvaInfo[dPostavljeno] = 0;
new vrsta[64];
if(DrvaInfo[dVrsta] == 1) { vrsta = "Sljiva"; }
else if(DrvaInfo[dVrsta] == 2) { vrsta = "Kruska"; }
else if(DrvaInfo[dVrsta] == 3) { vrsta = "Jabuka"; }
PlayerInfo[playerid][pJabuka] += randjabuke;
format(stringjab,128,""GINFO"[INFO] Obrali ste jabuku i dobili ste %d jabuka",randjabuke);
SCM(playerid,-1,stringjab);
}
}
else
SCM(playerid, -1,""ZUTA"[GRESKA] To nije tvoje drvo!!");
}
}
}
return 1;
}
////////////////////////////////////////////////////////////////////////////////
YCMD:posadidrvo(playerid, params[], help)
{
#pragma unused help
if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1, ""ZUTA"[GRESKA] Moras se ulogovati da bi koristio ovu komandu!");
//new drvoid = 0;
/*for(new b = 0; b < sizeof(DrvaInfo); b++)
{
if(DrvaInfo[dPostavljeno] == 1)
{
drvoid = b + 1;
}
}*/
new iddrva = SledeceDrvo();
new stringv[256];
new randcode = 100 + random(899);
new randtext = 100 + random(899);
new Float:pozx, Float:pozy, Float:pozz;
GetPlayerPos(playerid, pozx, pozy, pozz);
new idi = PlayerInfo[playerid][pImaImanje];
new vrstad;
if(sscanf(params, "i", vrstad))
{
SCM(playerid, -1,""ZUTA"/posadidrvo [1/2/3]");
SCM(playerid, -1,""ZUTA"Vrste Drva | 1: Sljiva | 2: Kruska | 3: Jabuka");
return 1;
}
if(vrstad == 0)
{
SCM(playerid, -1,""ZUTA"/posadidrvo [1/2/3]");
SCM(playerid, -1,""ZUTA"Vrste Drva | 1: Sljiva | 2: Kruska | 3: Jabuka");
}
if(vrstad == 1)
{
for(new i; i < sizeof(DrvaInfo); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, DrvaInfo[dDrvoX], DrvaInfo[dDrvoY], DrvaInfo[dDrvoZ])) return SCM(playerid, -1,""ZUTA"[GRESKA] Izmedju voca mora biti razmak 5 koraka!");
}
if(!IsPlayerInRangeOfPoint(playerid, ImanjeInfo[idi][iPrecnik], ImanjeInfo[idi][iUlazX], ImanjeInfo[idi][iUlazY], ImanjeInfo[idi][iUlazZ])) return SCM(playerid, -1,""ZUTA"[GRESKA] Nisi na svom imanju!");
if(PlayerInfo[playerid][pImaImanje] == 2555) return SCM(playerid, -1,""ZUTA"[GRESKA] Nemate imanje!");
if(PlayerInfo[playerid][pSjemeSljiva] == 0) return SCM(playerid, -1,""ZUTA"[GRESKA] Nemate sjemena za sljive!");
if(PlayerInfo[playerid][pDrvaMax] > 100) return SCM(playerid, -1,""ZUTA"[GRESKA] Ne mozete vise od 100 drva da posadite!");
DrvaInfo[iddrva][dVrsta] = 1;
DrvaInfo[iddrva][dDrvo] = 777;//777
DrvaInfo[iddrva][dSat] = 20;
DrvaInfo[iddrva][dMinuta] = 1;
DrvaInfo[iddrva][dObjd] = randcode;
DrvaInfo[iddrva][dText] = randtext;
DrvaInfo[iddrva][dDrvoX] = pozx;
DrvaInfo[iddrva][dDrvoY] = pozy;
DrvaInfo[iddrva][dDrvoZ] = pozz;
new vrsta[158];
if(DrvaInfo[iddrva][dVrsta] == 1) { vrsta = "Sljiva"; }
else if(DrvaInfo[iddrva][dVrsta] == 2) { vrsta = "Kruska"; }
else if(DrvaInfo[iddrva][dVrsta] == 3) { vrsta = "Jabuka"; }
format(stringv,256,""ZUTA" ["BELA" %s"ZUTA" ]\n"BELA"Voce jos nije izraslo...\n"BELA"Vreme do izrastanja :"ZELENA"%d"BELA" sati, "ZELENA"%d"BELA" minuta",vrsta,DrvaInfo[iddrva][dSat],DrvaInfo[iddrva][dMinuta]);
DrvaInfo[iddrva][dObjd] = rastko_CreateDynamicObject(DrvaInfo[iddrva][dDrvo], DrvaInfo[iddrva][dDrvoX]+1,DrvaInfo[iddrva][dDrvoY],DrvaInfo[iddrva][dDrvoZ]-4, 0.0000000, 0.0000000, 0.0000000);
DrvoLabel[iddrva] = CreateDynamic3DTextLabel(stringv, -1, DrvaInfo[iddrva][dDrvoX]+1,DrvaInfo[iddrva][dDrvoY],DrvaInfo[iddrva][dDrvoZ], 15);
SCM(playerid,-1,""GINFO"[INFO] Posadili ste sljivu!");
DrvaInfo[iddrva][dIDImanja] = idi;
DrvaInfo[iddrva][dPostavljeno] = 1;
PlayerInfo[playerid][pSjemeSljiva] --;
PlayerInfo[playerid][pDrvaMax] ++;
SacuvajDrvo(iddrva);
SavePlayer(playerid);
}
else if(vrstad == 2)
{
for(new i; i < sizeof(DrvaInfo); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, DrvaInfo[dDrvoX], DrvaInfo[dDrvoY], DrvaInfo[dDrvoZ])) return SCM(playerid, -1,""ZUTA"[GRESKA] Izmedju voca mora biti razmak 5 koraka!");
}
if(!IsPlayerInRangeOfPoint(playerid, ImanjeInfo[idi][iPrecnik], ImanjeInfo[idi][iUlazX], ImanjeInfo[idi][iUlazY], ImanjeInfo[idi][iUlazZ])) return SCM(playerid, -1,""ZUTA"[GRESKA] Nisi na svom imanju!");
if(PlayerInfo[playerid][pImaImanje] == 2555) return SCM(playerid, -1,""ZUTA"[GRESKA] Nemate imanje!");
if(PlayerInfo[playerid][pSjemeKruska] == 0) return SCM(playerid, -1,""ZUTA"[GRESKA] Nemate sjemena za kruske!");
if(PlayerInfo[playerid][pDrvaMax] > 100) return SCM(playerid, -1,""ZUTA"[GRESKA] Ne mozete vise od 100 da posadite!");
DrvaInfo[iddrva][dVrsta] = 2;
DrvaInfo[iddrva][dDrvo] = 673;
DrvaInfo[iddrva][dSat] = 20;
DrvaInfo[iddrva][dMinuta] = 1;
DrvaInfo[iddrva][dObjd] = randcode;
DrvaInfo[iddrva][dText] = randtext;
DrvaInfo[iddrva][dDrvoX] = pozx;
DrvaInfo[iddrva][dDrvoY] = pozy;
DrvaInfo[iddrva][dDrvoZ] = pozz;
new vrsta[158];
if(DrvaInfo[iddrva][dVrsta] == 1) { vrsta = "Sljiva"; }
else if(DrvaInfo[iddrva][dVrsta] == 2) { vrsta = "Kruska"; }
else if(DrvaInfo[iddrva][dVrsta] == 3) { vrsta = "Jabuka"; }
format(stringv,256,""ZUTA" ["BELA" %s"ZUTA" ]\n"BELA"Voce jos nije izraslo...\n"BELA"Vreme do izrastanja :"ZELENA"%d"BELA" sati, "ZELENA"%d"BELA" minuta",vrsta,DrvaInfo[iddrva][dSat],DrvaInfo[iddrva][dMinuta]);
DrvaInfo[iddrva][dObjd] = rastko_CreateDynamicObject(DrvaInfo[iddrva][dDrvo], DrvaInfo[iddrva][dDrvoX]+1,DrvaInfo[iddrva][dDrvoY],DrvaInfo[iddrva][dDrvoZ]-4, 0.0000000, 0.0000000, 0.0000000);
DrvoLabel[iddrva] = CreateDynamic3DTextLabel(stringv, -1, DrvaInfo[iddrva][dDrvoX]+1,DrvaInfo[iddrva][dDrvoY],DrvaInfo[iddrva][dDrvoZ], 15);
SCM(playerid,1,""GINFO"[INFO] Posadili ste krusku!");
DrvaInfo[iddrva][dIDImanja] = idi;
DrvaInfo[iddrva][dPostavljeno] = 1;
PlayerInfo[playerid][pSjemeKruska] --;
PlayerInfo[playerid][pDrvaMax] ++;
SacuvajDrvo(iddrva);
SavePlayer(playerid);
}
else if(vrstad == 3)
{
for(new i; i < sizeof(DrvaInfo); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, DrvaInfo[dDrvoX], DrvaInfo[dDrvoY], DrvaInfo[dDrvoZ])) return SCM(playerid, -1,""ZUTA"[GRESKA] Izmedju voca mora biti razmak 5 koraka!");
}
if(!IsPlayerInRangeOfPoint(playerid, ImanjeInfo[idi][iPrecnik], ImanjeInfo[idi][iUlazX], ImanjeInfo[idi][iUlazY], ImanjeInfo[idi][iUlazZ])) return SCM(playerid, -1,""ZUTA"[GRESKA] Nisi na svom imanju!");
if(PlayerInfo[playerid][pImaImanje] == 2555) return SCM(playerid, -1,""ZUTA"[GRESKA] Nemate imanje!");
if(PlayerInfo[playerid][pSjemeJabuka] == 0) return SCM(playerid, -1,""ZUTA"[GRESKA] Nemate sjemena za jabuke!");
if(PlayerInfo[playerid][pDrvaMax] > 100) return SCM(playerid, -1,""ZUTA"[GRESKA] Ne mozete vise od 100 da posadite!");
DrvaInfo[iddrva][dVrsta] = 3;
DrvaInfo[iddrva][dDrvo] = 773;
DrvaInfo[iddrva][dSat] = 20;
DrvaInfo[iddrva][dMinuta] = 1;
DrvaInfo[iddrva][dObjd] = randcode;
DrvaInfo[iddrva][dText] = randtext;
DrvaInfo[iddrva][dDrvoX] = pozx;
DrvaInfo[iddrva][dDrvoY] = pozy;
DrvaInfo[iddrva][dDrvoZ] = pozz;
new vrsta[158];
if(DrvaInfo[iddrva][dVrsta] == 1) { vrsta = "Sljiva"; }
else if(DrvaInfo[iddrva][dVrsta] == 2) { vrsta = "Kruska"; }
else if(DrvaInfo[iddrva][dVrsta] == 3) { vrsta = "Jabuka"; }
format(stringv,256,""ZUTA" ["BELA" %s"ZUTA" ]\n"BELA"Voce jos nije izraslo...\n"BELA"Vreme do izrastanja :"ZELENA"%d"BELA" sati, "ZELENA"%d"BELA" minuta",vrsta,DrvaInfo[iddrva][dSat],DrvaInfo[iddrva][dMinuta]);
DrvaInfo[iddrva][dObjd] = rastko_CreateDynamicObject(DrvaInfo[iddrva][dDrvo], DrvaInfo[iddrva][dDrvoX]+1,DrvaInfo[iddrva][dDrvoY],DrvaInfo[iddrva][dDrvoZ]-4, 0.0000000, 0.0000000, 0.0000000);
DrvoLabel[iddrva] = CreateDynamic3DTextLabel(stringv, -1, DrvaInfo[iddrva][dDrvoX]+1,DrvaInfo[iddrva][dDrvoY],DrvaInfo[iddrva][dDrvoZ], 15);
SCM(playerid,-1,""GINFO"[INFO] Posadili ste jabuku!");
DrvaInfo[iddrva][dIDImanja] = idi;
DrvaInfo[iddrva][dPostavljeno] = 1;
PlayerInfo[playerid][pSjemeJabuka] --;
PlayerInfo[playerid][pDrvaMax] ++;
SacuvajDrvo(iddrva);
SavePlayer(playerid);
}
if(vrstad >= 4)
{
SCM(playerid, -1,""ZUTA"/posadidrvo [1/2/3]");
SCM(playerid, -1,""ZUTA"Vrste Drva | 1: Sljiva | 2: Kruska | 3: Jabuka");
}
return 1;
}
////////////////////////////////////////////////////////////////////////////////
YCMD:kupiimanje(playerid, params[], help)
{
#pragma unused help
if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1, ""ZUTA"[GRESKA] Moras se ulogovati da bi koristio ovu komandu!");
for(new i; i < sizeof(ImanjeInfo); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, ImanjeInfo[iUlazX], ImanjeInfo[iUlazY], ImanjeInfo[iUlazZ]))
{
if(ImanjeInfo[iImaVlasnika] == 1) return SCM(playerid,-1,""ZUTA"[GRESKA]To imanje nije na prodaju");
if(PlayerInfo[playerid][pLevel] < ImanjeInfo[iLevel]) return SCM(playerid, -1,""ZUTA"[GRESKA] Treba vam %d level za ovo imanje!", ImanjeInfo[iLevel]);
if(PlayerInfo[playerid][pImaImanje] != 2555) return SCM(playerid, -1,""ZUTA"[GRESKA] Vec imas imanje !");
if(PlayerInfo[playerid][pNovacDzep] < ImanjeInfo[iCena]) return SCM(playerid,-1,""ZUTA"[GRESKA] Nemas dovoljno novca!");
new send[30];
GetPlayerName(playerid, send, sizeof(send));
strmid(ImanjeInfo[iVlasnik], send, 0, strlen(send), 255);
ImanjeInfo[iImaVlasnika] = 1;
PlayerInfo[playerid][pImaImanje] = i;
PlayerInfo[playerid][pDrvaMax] = 0;
SCM(playerid,-1,""GINFO"[INFO] Cestitamo kupili ste imanje! Komande: /imanje, /posadidrvo, /oberivoce");
g_NovacMinus(playerid, ImanjeInfo[iCena]);
ImanjeLabelIPickup(i);
SacuvajImanje(i);
SavePlayer(playerid);
}
}
return 1;
}
////////////////////////////////////////////////////////////////////////////////
YCMD:eimanje(playerid, params[], help)
{
#pragma unused help
if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1, ""ZUTA"[GRESKA] Moras se ulogovati da bi koristio ovu komandu!");
if(PlayerInfo[playerid][pAdmin] < 6) return SCM(playerid,-1,""ZUTA"[GRESKA] Samo Vlasnik!");
new sta[20],ide,string[100];
if(sscanf(params, "s[20]i",sta,ide)) return SCM(playerid,-1,""ZUTA"/eimanje [level,cena,precnik] [kolicina]");
for(new i; i < MAX_IMANJE; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, ImanjeInfo[iUlazX], ImanjeInfo[iUlazY], ImanjeInfo[iUlazZ]))
{
if(!strcmp(sta, "level", true))
{
ImanjeInfo[iLevel] = ide;
ImanjeLabelIPickup(i);
SacuvajImanje(i);
format(string,sizeof(string),"{80FF00} Izmenili ste level imanja(ID: %d) u %d!",i,ImanjeInfo[iLevel]);
SCM(playerid,-1,string);
}
else if(!strcmp(sta, "cena", true))
{
ImanjeInfo[iCena] = ide;
ImanjeLabelIPickup(i);
SacuvajImanje(i);
format(string,sizeof(string),"{80FF00} Izmenili ste cenu imanja(ID: %d) u %d!",i,ImanjeInfo[iCena]);
SCM(playerid,-1,string);
}
else if(!strcmp(sta, "precnik", true))
{
ImanjeInfo[iPrecnik] = ide;
ImanjeLabelIPickup(i);
SacuvajImanje(i);
format(string,sizeof(string),"{80FF00} Izmenili ste velicinu imanja(ID: %d) u %d!",i,ImanjeInfo[iPrecnik]);
SCM(playerid,-1,string);
}
}
}
return 1;
}
////////////////////////////////////////////////////////////////////////////////
YCMD:imanje(playerid, params[], help)
{
#pragma unused help
if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1, ""ZUTA"[GRESKA] Moras se ulogovati da bi koristio ovu komandu!");
if(PlayerInfo[playerid][pImaImanje] == 2555) return SCM(playerid, -1,""ZUTA"[GRESKA] Nemate imanje!");
new imedas[MAX_PLAYER_NAME];
GetPlayerName(playerid, imedas, sizeof(imedas));
if(strcmp(ImanjeInfo[PlayerInfo[playerid][pImaImanje]][iVlasnik], imedas, true)) return SCM(playerid, -1,""ZUTA"[GRESKA] Niste vlasnik tog imanja!");
SPD(playerid, DIALOG_IMANJCE, DSL, "Imanje Opcije", "Info\nProdaj Drzavi ", "Odaberi", "Izlaz");
return 1;
}
////////////////////////////////////////////////////////////////////////////////
YCMD:portimanje(playerid, params[], help)
{
#pragma unused help
if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1, ""ZUTA"[GRESKA] Moras se ulogovati da bi koristio ovu komandu!");
if(PlayerInfo[playerid][pAdmin] < 3) return SCM(playerid,-1,""ZUTA"[GRESKA] Samo Admin (AL 3+)!");
new id,kFile[50];
if(sscanf(params,"i",id)) return SCM(playerid,-1,""ZUTA"/portimanje [ID]");
format(kFile, sizeof(kFile), IMANJE_FILE, id);
if(!fexist(kFile)) return SCM(playerid,-1,""ZUTA"[GRESKA] ID imanja ne postoji!");
SetPlayerPos(playerid,ImanjeInfo[id][iUlazX], ImanjeInfo[id][iUlazY], ImanjeInfo[id][iUlazZ]);
SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0);
return 1;
}
////////////////////////////////////////////////////////////////////////////////
YCMD:kreirajimanje(playerid, params[], help)
{
#pragma unused help
if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1, ""ZUTA"[GRESKA] Moras se ulogovati da bi koristio ovu komandu!");
if(PlayerInfo[playerid][pAdmin] < 5) return SCM(playerid, -1,""ZUTA"[GRESKA] Samo Vlasnik!");
new string[512];
new imanjeid = 0;
new Float:dX, Float:dY, Float:dZ;
GetPlayerPos(playerid, dX,dY,dZ);
for(new b = 0; b < sizeof(ImanjeInfo); b++)
{
if(ImanjeInfo[iPostavljena] == 1)
{
imanjeid = b + 1;
}
}
if(imanjeid > 2000) return SCM(playerid, -1,""ZUTA"[GRESKA] Ne mozete napraviti vise od 100 imanja!");
new cena, lvl, precnik;
if(sscanf(params, "iii", lvl , cena, precnik))
{
SCM(playerid, -1,""ZUTA" /napraviimanje [level] [cena] [precnik]");
return 1;
}
ImanjeInfo[imanjeid][iCena] = cena;
ImanjeInfo[imanjeid][iLevel] = lvl;
ImanjeInfo[imanjeid][iPrecnik] = precnik;
ImanjeInfo[imanjeid][iUlazX] = dX;
ImanjeInfo[imanjeid][iUlazY] = dY;
ImanjeInfo[imanjeid][iUlazZ] = dZ;
ImanjeInfo[imanjeid][iImaVlasnika] = 0;
ImanjeInfo[imanjeid][iPostavljena] = 1;
strmid(ImanjeInfo[imanjeid][iVlasnik],"Niko",0,strlen("Niko"),255);
format(string,sizeof(string),"{FFFFFF}[{FBFBFB} ~ Imanje na Prodaju! ~{FFFFFF} ]\n{FBFB00}- Cena: {FFFFFF}%d$\n{FBFB00}- Level: {FFFFFF}%d\n{FBFB00}- Precnik: {FFFFFF}%dm\n{FBFB00}({FFFFFF}/kupiimanje{FBFB00})",ImanjeInfo[imanjeid][iCena],ImanjeInfo[imanjeid][iLevel]);
ImanjeLabel[imanjeid] = CreateDynamic3DTextLabel(string ,0x9EC73DAA,ImanjeInfo[imanjeid][iUlazX], ImanjeInfo[imanjeid][iUlazY], ImanjeInfo[imanjeid][iUlazZ],15);
ImanjePickup[imanjeid] = CreateDynamicPickup(1273, 1, ImanjeInfo[imanjeid][iUlazX], ImanjeInfo[imanjeid][iUlazY], ImanjeInfo[imanjeid][iUlazZ]);
format(string,sizeof(string),"Imanje ID:%d je napravljeno.",imanjeid);
SCM(playerid, -1,string);
ImanjeLabelIPickup(imanjeid);
SacuvajImanje(imanjeid);
return 1;
}
////////////////////////////////////////////////////////////////////////////////
YCMD:izbrisiimanje(playerid, params[], help)
{
#pragma unused help
if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1, ""ZUTA"[GRESKA] Moras se ulogovati da bi koristio ovu komandu!");
if(PlayerInfo[playerid][pAdmin] < 5) return SCM(playerid, -1,""ZUTA"[GRESKA] Ne mozes ti to!");
new kFile[50], id;
if(sscanf(params,"i",id)) return SCM(playerid,-1,""ZUTA"/izbrisiimanje [ID imanja]");
format(kFile, sizeof(kFile), IMANJE_FILE, id);
if(fexist(kFile))
{
fremove(kFile);
DestroyDynamic3DTextLabel(ImanjeLabel[id]);
DestroyDynamicPickup(ImanjePickup[id]);
ImanjeInfo[id][iCena] = -1;
ImanjeInfo[id][iLevel] = -1;
ImanjeInfo[id][iUlazX] = 0.00000;
ImanjeInfo[id][iUlazY] = 0.00000;
ImanjeInfo[id][iUlazZ] = 0.00000;
ImanjeInfo[id][iImaVlasnika] = 0;
strmid(ImanjeInfo[id][iVlasnik],"Izbrisana",0,strlen("Izbrisana"),255);
}
else { SCM(playerid,-1,""ZUTA"[GRESKA] Taj ID imanja ne postoji!");
}
return 1;
}[/pawn]
Cuvanje/Citanje
[pawn]// IMANJE SYSTEM
function SacuvajImanje(idimanja)
{
new dFile[128];
format(dFile, sizeof(dFile),"Imanja/Imanje_%d.ini",idimanja);
new INI:File = INI_Open(dFile);
INI_WriteInt(File,"iImaVlasnika",ImanjeInfo[idimanja][iImaVlasnika]);
INI_WriteString(File,"iVlasnik",ImanjeInfo[idimanja][iVlasnik]);
INI_WriteFloat(File,"iUlazX",ImanjeInfo[idimanja][iUlazX]);
INI_WriteFloat(File,"iUlazY",ImanjeInfo[idimanja][iUlazY]);
INI_WriteFloat(File,"iUlazZ",ImanjeInfo[idimanja][iUlazZ]);
INI_WriteInt(File,"iCena",ImanjeInfo[idimanja][iCena]);
INI_WriteInt(File,"iLevel",ImanjeInfo[idimanja][iLevel]);
INI_WriteInt(File,"iPostavljena",ImanjeInfo[idimanja][iPostavljena]);
INI_WriteInt(File,"iPrecnik",ImanjeInfo[idimanja][iPrecnik]);
INI_Close(File);
return 1;
}
function SacuvajDrvo(iddrveta)
{
new dFile[128];
format(dFile, sizeof(dFile),"Imanja/drva/Drvo_%d.ini",iddrveta);
new INI:File = INI_Open(dFile);
INI_WriteFloat(File,"dDrvoX",DrvaInfo[iddrveta][dDrvoX]);
INI_WriteFloat(File,"dDrvoY",DrvaInfo[iddrveta][dDrvoY]);
INI_WriteFloat(File,"dDrvoZ",DrvaInfo[iddrveta][dDrvoZ]);
INI_WriteInt(File,"dIDImanja",DrvaInfo[iddrveta][dIDImanja]);
INI_WriteInt(File,"dVrijeme",DrvaInfo[iddrveta][dVrijeme]);
INI_WriteInt(File,"dPostavljeno",DrvaInfo[iddrveta][dPostavljeno]);
INI_WriteInt(File,"dObjd",DrvaInfo[iddrveta][dObjd]);
INI_WriteInt(File,"dText",DrvaInfo[iddrveta][dText]);
INI_WriteInt(File,"dVrsta",DrvaInfo[iddrveta][dVrsta]);
INI_WriteInt(File,"dMinuta",DrvaInfo[iddrveta][dMinuta]);
INI_WriteInt(File,"dSat",DrvaInfo[iddrveta][dSat]);
INI_WriteInt(File,"dDrvo",DrvaInfo[iddrveta][dDrvo]);
INI_Close(File);
return 1;
}
function UcitajDrvo(iddrveta, name[], value[])
{
INI_Float("dDrvoX",DrvaInfo[iddrveta][dDrvoX]);
INI_Float("dDrvoY",DrvaInfo[iddrveta][dDrvoY]);
INI_Float("dDrvoZ",DrvaInfo[iddrveta][dDrvoZ]);
INI_Int("dIDImanja",DrvaInfo[iddrveta][dIDImanja]);
INI_Int("dVrijeme",DrvaInfo[iddrveta][dVrijeme]);
INI_Int("dPostavljeno",DrvaInfo[iddrveta][dPostavljeno]);
INI_Int("dObjd",DrvaInfo[iddrveta][dObjd]);
INI_Int("dText",DrvaInfo[iddrveta][dText]);
INI_Int("dVrsta",DrvaInfo[iddrveta][dVrsta]);
INI_Int("dMinuta",DrvaInfo[iddrveta][dMinuta]);
INI_Int("dSat",DrvaInfo[iddrveta][dSat]);
INI_Int("dDrvo",DrvaInfo[iddrveta][dDrvo]);
return 1;
}
function UcitajImanje(idimanja, name[], value[])
{
INI_Int("iImaVlasnika",ImanjeInfo[idimanja][iImaVlasnika]);
INI_String("iVlasnik",ImanjeInfo[idimanja][iVlasnik],32);
INI_Float("iUlazX",ImanjeInfo[idimanja][iUlazX]);
INI_Float("iUlazY",ImanjeInfo[idimanja][iUlazY]);
INI_Float("iUlazZ",ImanjeInfo[idimanja][iUlazZ]);
INI_Int("iLevel",ImanjeInfo[idimanja][iLevel]);
INI_Int("iCena",ImanjeInfo[idimanja][iCena]);
INI_Int("iPostavljena",ImanjeInfo[idimanja][iPostavljena]);
INI_Int("iPrecnik",ImanjeInfo[idimanja][iPrecnik]);
return 1;
}
forward PredRaste();
public PredRaste()
{
DrvoRaste();
return 1;
}
forward DrvoRaste();
public DrvoRaste()
{
for(new i; i < sizeof(DrvaInfo); i++)
{
new gFajl[35];
new stringv[160];
format(gFajl, 50, "Imanja/drva/Drvo_%d.ini" ,i);
new vrsta[64];
if(DrvaInfo[dVrsta] == 1) { vrsta = "Sljiva"; }
else if(DrvaInfo[dVrsta] == 2) { vrsta = "Kruska"; }
else if(DrvaInfo[dVrsta] == 3) { vrsta = "Jabuka"; }
if(fexist(gFajl))
{
if(DrvaInfo[dSat] >= 0 && DrvaInfo[dMinuta] >= 1)
{
DrvaInfo[dMinuta] --;
format(stringv,256,""ZUTA" ["BELA" %s"ZUTA" ]\n"BELA"Voce jos nije izraslo...\n"BELA"Vreme do izrastanja :"ZELENA"%d"BELA" sati, "ZELENA"%d"BELA" minuta",vrsta,DrvaInfo[dSat],DrvaInfo[dMinuta]);
UpdateDynamic3DTextLabelText(DrvoLabel, -1, stringv);
SacuvajDrvo(i);
}
else if(DrvaInfo[dMinuta] == 0 && DrvaInfo[dSat] >= 1)
{
DrvaInfo[dSat] --;
DrvaInfo[dMinuta] = 60;
format(stringv,256,""ZUTA" ["BELA" %s"ZUTA" ]\n"BELA"Voce jos nije izraslo...\n"BELA"Vreme do izrastanja :"ZELENA"%d"BELA" sati, "ZELENA"%d"BELA" minuta",vrsta,DrvaInfo[dSat],DrvaInfo[dMinuta]);
UpdateDynamic3DTextLabelText(DrvoLabel, -1, stringv);
SacuvajDrvo(i);
}
else if(DrvaInfo[dSat] == 0 && DrvaInfo[dMinuta] == 0)
{
format(stringv,256,""ZUTA" ["BELA" %s"ZUTA" ]\n"BELA"Voce je izraslo!\n"BELA"Da oberes voce kucaj"ZELENA"/oberivoce",vrsta);
UpdateDynamic3DTextLabelText(DrvoLabel, -1, stringv);
SacuvajDrvo(i);
}
}
}
return 1;
}
////////////////////////////////////////////////////////////////////////////////
stock SledeceDrvo()
{
new
drvo[64];
for(new f = 0; f<= MAX_DRVA; f++)
{
format(drvo, sizeof(drvo), "Imanja/drva/Drvo_%i.ini", f);
if(!fexist(drvo)) return f;
}
return true;
}[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]//[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): //
Ne razumijem Å¡to sad oÄekujeÅ¡ od nas?
Pokušaj sve staviti pod komentar ( /* */) osim definicija isl,i onda dio po dio vraćaj i traži gdje je error.
Ukoliko nisi shvatio,ovo Å¡to si oznaÄio kao "poÄetak moda" ostavljaÅ¡,ostalo pod komentar stavi i onda dio po dio vraćaj i gledaj errore.A da mi nagaÄ'amo ovdje nema smisla.