[Pomoc] Error na komandi /posadidrvo


Započeo Jugoslavija.amx, Januar 09, 2015, 02:13:23 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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?



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 .

Razgovor u vezi PAWN-Skriptanja .