Skripta koju koristim: NGRP
Detaljan opis: Ovako, imam komandu /posadidrvo, i skoro sam stavio ovde pomoc sto samo sprema jedno drvo u folder, i skontao sam da sam bio obrisao liniju " new iddrva = SledeceDrvo(); " i da zbog toga nije ubacivalo ostala imena u folder, sada je problem sto imam error bas na toj liniji a error glasi:
error 017: undefined symbol "SledeceDrvo"
Kako da napravim taj public/stock "SledeceDrvo" ili sta vec treba molim vas pomozite mi
Evo cijela komanda /posadidrvo:
CMD:posadidrvo(playerid, params[])
{
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,"/posadidrvo [1/2/3]");
SCM(playerid, -1,"Vrste Drva | 1: Sljiva | 2: Kruska | 3: Jabuka");
return 1;
}
if(vrstad == 1)
{
for(new i; i < sizeof(DI); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, DI[i][dDrvoX], DI[i][dDrvoY], DI[i][dDrvoZ])) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Izmedju voca mora biti razmak 5 koraka!");
}
if(!IsPlayerInRangeOfPoint(playerid, II[idi][iPrecnik], II[idi][iUlazX], II[idi][iUlazY], II[idi][iUlazZ])) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Nisi na svom imanju!");
if(PlayerInfo[playerid][pImaImanje] == 2555) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Nemate imanje!");
if(PlayerInfo[playerid][pSjemeSljiva] == 0) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Nemate sjemena za sljive!");
if(PlayerInfo[playerid][pDrvaMax] > 100) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Ne mozete vise od 100 da posadite!");
DI[iddrva][dVrsta] = 1;
DI[iddrva][dDrvo] = 777;//777
DI[iddrva][dSat] = 20;
DI[iddrva][dMinuta] = 1;
DI[iddrva][dObjd] = randcode;
DI[iddrva][dText] = randtext;
DI[iddrva][dDrvoX] = pozx;
DI[iddrva][dDrvoY] = pozy;
DI[iddrva][dDrvoZ] = pozz;
new vrsta[158];
if(DI[iddrva][dVrsta] == 1) { vrsta = "Sljiva"; }
else if(DI[iddrva][dVrsta] == 2) { vrsta = "Kruska"; }
else if(DI[iddrva][dVrsta] == 3) { vrsta = "Jabuka"; }
format(stringv,256,"{FD722F}Voce jos nije izraslo!\nVreme do izrastanja: {FFFFFF}%d sati, %d minuta\n{FD722F}Vrsta drveta:{FFFFFF}%s",DI[iddrva][dSat],DI[iddrva][dMinuta],vrsta);
DI[iddrva][dObjd] = CreateDynamicObject(DI[iddrva][dDrvo], DI[iddrva][dDrvoX]+1,DI[iddrva][dDrvoY],DI[iddrva][dDrvoZ]-4, 0.0000000, 0.0000000, 0.0000000);
DrvoLabel[iddrva] = CreateDynamic3DTextLabel(stringv, -1, DI[iddrva][dDrvoX]+1,DI[iddrva][dDrvoY],DI[iddrva][dDrvoZ], 15);
SCM(playerid,-1,"Posadili ste sljivu!");
DI[iddrva][dIDImanja] = idi;
DI[iddrva][dPostavljeno] = 1;
PlayerInfo[playerid][pSjemeSljiva] --;
PlayerInfo[playerid][pDrvaMax] ++;
SacuvajDrvo(iddrva);
Sigraca(playerid);
}
else if(vrstad == 2)
{
for(new i; i < sizeof(DI); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, DI[i][dDrvoX], DI[i][dDrvoY], DI[i][dDrvoZ])) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Izmedju voca mora biti razmak 5 koraka!");
}
if(!IsPlayerInRangeOfPoint(playerid, II[idi][iPrecnik], II[idi][iUlazX], II[idi][iUlazY], II[idi][iUlazZ])) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Nisi na svom imanju!");
if(PlayerInfo[playerid][pImaImanje] == 2555) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Nemate imanje!");
if(PlayerInfo[playerid][pSjemeKruska] == 0) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Nemate sjemena za kruske!");
if(PlayerInfo[playerid][pDrvaMax] > 100) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Ne mozete vise od 100 da posadite!");
DI[iddrva][dVrsta] = 2;
DI[iddrva][dDrvo] = 673;
DI[iddrva][dSat] = 20;
DI[iddrva][dMinuta] = 1;
DI[iddrva][dObjd] = randcode;
DI[iddrva][dText] = randtext;
DI[iddrva][dDrvoX] = pozx;
DI[iddrva][dDrvoY] = pozy;
DI[iddrva][dDrvoZ] = pozz;
new vrsta[158];
if(DI[iddrva][dVrsta] == 1) { vrsta = "Sljiva"; }
else if(DI[iddrva][dVrsta] == 2) { vrsta = "Kruska"; }
else if(DI[iddrva][dVrsta] == 3) { vrsta = "Jabuka"; }
format(stringv,256,"{FD722F}Voce jos nije izraslo!\nVreme do izrastanja: {FFFFFF}%d sati, %d minuta\n{FD722F}Vrsta drveta:{FFFFFF}%s",DI[iddrva][dSat],DI[iddrva][dMinuta],vrsta);
DI[iddrva][dObjd] = CreateDynamicObject(DI[iddrva][dDrvo], DI[iddrva][dDrvoX]+1,DI[iddrva][dDrvoY],DI[iddrva][dDrvoZ]-4, 0.0000000, 0.0000000, 0.0000000);
DrvoLabel[iddrva] = CreateDynamic3DTextLabel(stringv, -1, DI[iddrva][dDrvoX]+1,DI[iddrva][dDrvoY],DI[iddrva][dDrvoZ], 15);
SCM(playerid,-1,"Posadili ste krusku!");
DI[iddrva][dIDImanja] = idi;
DI[iddrva][dPostavljeno] = 1;
PlayerInfo[playerid][pSjemeKruska] --;
PlayerInfo[playerid][pDrvaMax] ++;
SacuvajDrvo(iddrva);
Sigraca(playerid);
}
else if(vrstad == 3)
{
for(new i; i < sizeof(DI); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, DI[i][dDrvoX], DI[i][dDrvoY], DI[i][dDrvoZ])) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Izmedju voca mora biti razmak 5 koraka!");
}
if(!IsPlayerInRangeOfPoint(playerid, II[idi][iPrecnik], II[idi][iUlazX], II[idi][iUlazY], II[idi][iUlazZ])) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Nisi na svom imanju!");
if(PlayerInfo[playerid][pImaImanje] == 2555) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Nemate imanje!");
if(PlayerInfo[playerid][pSjemeJabuka] == 0) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Nemate sjemena za jabuke!");
if(PlayerInfo[playerid][pDrvaMax] > 100) return SCM(playerid, -1,"{FF0000}ERROR: {FFFFFF}Ne mozete vise od 100 da posadite!");
DI[iddrva][dVrsta] = 3;
DI[iddrva][dDrvo] = 773;
DI[iddrva][dSat] = 20;
DI[iddrva][dMinuta] = 1;
DI[iddrva][dObjd] = randcode;
DI[iddrva][dText] = randtext;
DI[iddrva][dDrvoX] = pozx;
DI[iddrva][dDrvoY] = pozy;
DI[iddrva][dDrvoZ] = pozz;
new vrsta[158];
if(DI[iddrva][dVrsta] == 1) { vrsta = "Sljiva"; }
else if(DI[iddrva][dVrsta] == 2) { vrsta = "Kruska"; }
else if(DI[iddrva][dVrsta] == 3) { vrsta = "Jabuka"; }
format(stringv,256,"{FD722F}Voce jos nije izraslo!\nVreme do izrastanja: {FFFFFF}%d sati, %d minuta\n{FD722F}Vrsta drveta:{FFFFFF}%s",DI[iddrva][dSat],DI[iddrva][dMinuta],vrsta);
DI[iddrva][dObjd] = CreateDynamicObject(DI[iddrva][dDrvo], DI[iddrva][dDrvoX]+1,DI[iddrva][dDrvoY],DI[iddrva][dDrvoZ]-4, 0.0000000, 0.0000000, 0.0000000);
DrvoLabel[iddrva] = CreateDynamic3DTextLabel(stringv, -1, DI[iddrva][dDrvoX]+1,DI[iddrva][dDrvoY],DI[iddrva][dDrvoZ], 15);
SCM(playerid,-1,"Posadili ste jabuku!");
DI[iddrva][dIDImanja] = idi;
DI[iddrva][dPostavljeno] = 1;
PlayerInfo[playerid][pSjemeJabuka] --;
PlayerInfo[playerid][pDrvaMax] ++;
SacuvajDrvo(iddrva);
Sigraca(playerid);
}
return 1;
}
Video/Slike: //
Pa nemas stock/public za to, i zato imas error...
Inace sta tebe ovde muci to sto ne pravi nove fajlove ? Posalji SacuvajDrvo
Imao sam komandu /posadidrvo, i bio mi izbacivao taj error i ja izbrisem tu liniju, onda kasnije skontam da zbog toga ne pravi nove fajlove i vratim tu liniju nazad, sad mi je problem kako da napravim taj public ili sta je vec "SledeceDrvo"
Evo ti sacuvajdrvo:
Funkcija SacuvajDrvo(iddrveta)
{
new dFile[128];
format(dFile, sizeof(dFile),"drva/Drvo_%d.ini",iddrveta);
new INI:File = INI_Open(dFile);
INI_WriteFloat(File,"dDrvoX",DI[iddrveta][dDrvoX]);
INI_WriteFloat(File,"dDrvoY",DI[iddrveta][dDrvoY]);
INI_WriteFloat(File,"dDrvoZ",DI[iddrveta][dDrvoZ]);
INI_WriteInt(File,"dIDImanja",DI[iddrveta][dIDImanja]);
INI_WriteInt(File,"dVrijeme",DI[iddrveta][dVrijeme]);
INI_WriteInt(File,"dPostavljeno",DI[iddrveta][dPostavljeno]);
INI_WriteInt(File,"dObjd",DI[iddrveta][dObjd]);
INI_WriteInt(File,"dText",DI[iddrveta][dText]);
INI_WriteInt(File,"dVrsta",DI[iddrveta][dVrsta]);
INI_WriteInt(File,"dMinuta",DI[iddrveta][dMinuta]);
INI_WriteInt(File,"dSat",DI[iddrveta][dSat]);
INI_WriteInt(File,"dDrvo",DI[iddrveta][dDrvo]);
INI_Close(File);
return 1;
}
Funkcija je definirano kao forward i public
Ovo moze i kao stock da ti bude...
Dobro posto si imao taj problem sa fajlovima i sad radi kazi mi sta to SledeceDrvo treba da predstavlja ?
Vjerovatno da napravi sledeci id drveta da upisuje u fodler "drva",
Jer mi je tu bio error izbriso sam tu liniju i onda mi je samo Drvo0.ini bilo i svako drvo koje posadim upise se u drvo0.ini, vjerovatno treba napraviti public/stock "SledeceDrvo" koje ce da reda ostale id ove drva u folder, znaÅ¡ li to mozda? ili mozes li nekako drugaÄije probati napraviti dali da reda drva, drv0.ini, drvo1.ini, drvo2.ini itd.?
Pa ovo SacuvajDrvo ceti praviti nova drva samo sto mu treba ID ... E sad ne znam kako si ti sve to zamislio jesi zamislio na imanju da moze imati 1 drvo ili vise drva... Uzmimo primer da si zamislio 1 drvo i onda bi mogao dobiti taj ID preko varijable od samog imanja pImaImanje i preko tog da zapisuje IDove...
Takodje za enum oko ovih drva trebas staviti neki broj kao max ako ga nemas.
Vidim da nisi baÅ¡ dobro skontao :D , na imanju je napravljeno da se smije posaditi max 100 drva, problem je sto pise samo jedno drvo u folder ostala se ne broje, znaÄi na svakom imanju na serveru ko god posadi drvo to drvo se upisuje u folder pod Drvo0.ini, i nema dalje da reda, da mi je napravit da reda dalje ako ima drvo0.ini da napravi sledece drvo1.ini itd... zato mi fali public/stock "SledeceDrvo", mozemo li nekako drugacije to napraviti, to redanje u folder?
Pa razumem ja tebe sta ti hoces ali moras napraviti neke provere gde ces imati neke IDove i onda po tim IDovima da pravis sve to... Nije ti sad bas tako jednostavno jos ako imas vise tih imanja...
hmm komanda /napraviimanje, ne trazi ID nego samo reda id ove i sve radi, mogu li ti dati tu komandu pa da po toj komandi probas napraviti komandu /posadidrvo?
Nisi me razumeo funckija koju si napravio SacuvajDrvo(iddrveta) ti ovde imas iddrveta ali koji ID to ti svo vreme pricam potrebni su ti IDovi razliciti da bi se i fajlovi pravili tako... Mozda da napravis neko seme za ta drva pa preko tih semena kako bude trosio tako i preko njegove vrednosti da dobijes ID za drvo ali onda za svako imanje ti trebaju posebni fajlovi jer uzmimo primer da ti zasadis kod tebe 100 drveca i ja kod mene 100 drveca i sta ce biti posle s fajlovima izmesace se nesto ce biti tvoje nesto moje :D
Ili kao sto sam vec rekao da napravis neki fajl i kom ces imati taj neki max drva kolko moze na srwu da se zasadi i onda preko njega da ti cita ID novi i kako sta zasadis tako tamo da se broj smanjuje...
Sve te razumijem, problem je sto ja to ne znam :'(
RijeÅ¡io sam, naÅ¡o sam stock rovio sam po interentu dok nisam naÅ¡'o haha, sada imam problem imam u enumu pSljiva, pkrusaka itd.. ali te sljive i kruske imaju neku brojÄanu vrijednost npr pÅ¡ljiva = 35; kako da napravim spremanje psljiva pjabuka i tako to? je l' na isti naÄin kao i ostalo?
(http://i.imgur.com/XqKxr9n.jpg)
Molimo te da procitas pravila foruma te da onda otvoris temu po pravilima.
Razlog zakljucavanja:
Trebalo bi da znas da je BUMP dozvoljen tek kada prodje 24h
Pravila:
Glavna pravila Balkan SA:MP foruma (http://balkan-samp.com/forum/index.php?topic=7045.0) .
Razgovor u vezi PAWN-Skriptanja (http://balkan-samp.com/forum/index.php?topic=11453.0) .