Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Jugoslavija.amx poslato Januar 09, 2015, 02:13:23 PRE PODNE

Naslov: [Pomoc] Error na komandi /posadidrvo
Poruka od: Jugoslavija.amx poslato Januar 09, 2015, 02:13:23 PRE PODNE
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: //
Naslov: Odg: [Pomoc] Error na komandi /posadidrvo
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Januar 09, 2015, 03:06:47 PRE PODNE
Pa nemas stock/public za to, i zato imas error...
Inace sta tebe ovde muci to sto ne pravi nove fajlove ? Posalji SacuvajDrvo
Naslov: Odg: [Pomoc] Error na komandi /posadidrvo
Poruka od: Jugoslavija.amx poslato Januar 09, 2015, 13:34:50 POSLE PODNE
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
Naslov: Odg: [Pomoc] Error na komandi /posadidrvo
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Januar 09, 2015, 17:29:39 POSLE PODNE
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 ?
Naslov: Odg: [Pomoc] Error na komandi /posadidrvo
Poruka od: Jugoslavija.amx poslato Januar 09, 2015, 17:33:28 POSLE PODNE
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.?
Naslov: Odg: [Pomoc] Error na komandi /posadidrvo
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Januar 09, 2015, 17:48:52 POSLE PODNE
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.
Naslov: Odg: [Pomoc] Error na komandi /posadidrvo
Poruka od: Jugoslavija.amx poslato Januar 09, 2015, 17:54:34 POSLE PODNE
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?
Naslov: Odg: [Pomoc] Error na komandi /posadidrvo
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Januar 09, 2015, 18:09:01 POSLE PODNE
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...
Naslov: Odg: [Pomoc] Error na komandi /posadidrvo
Poruka od: Jugoslavija.amx poslato Januar 09, 2015, 18:10:48 POSLE PODNE
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?
Naslov: Odg: [Pomoc] Error na komandi /posadidrvo
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Januar 09, 2015, 18:17:32 POSLE PODNE
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...
Naslov: Odg: [Pomoc] Error na komandi /posadidrvo
Poruka od: Jugoslavija.amx poslato Januar 09, 2015, 18:19:40 POSLE PODNE
Sve te razumijem, problem je sto ja to ne znam  :'(
Naslov: Odg: [Pomoc] Error na komandi /posadidrvo
Poruka od: Jugoslavija.amx poslato Januar 10, 2015, 02:19:56 PRE PODNE
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?
Naslov: Odg: [Pomoc] Error na komandi /posadidrvo
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Januar 10, 2015, 03:05:38 PRE PODNE
(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) .