[TuT]N1XTON tut, Kako napraviti event sistem (sa CP-ovima)

Započeo N1XTON, Februar 06, 2013, 14:33:59 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

U ovom tutu cu vam pokazati kaok da napravite jednostavan event sistem slican kao na CLRP sa cpovima i sve
Zapocnimo



Pravljenje enuma



Prije svega da nebude zbrke sa vasim enumima napravicemo vlastiti enum za evente

Pri vrhu skripte dodajte sljecece:


enum eInfo
{
};
new EventInfo[MAX_PLAYERS][eInfo];


Da pojasnim .Enum je funkcija u koju mozete pisati svoje funkcije npr za registracija lozinka itd npr pLozinka, pAdmin, itd...

Izmedju zagradica u enumu dodacemo sljedece : pSFrace , to bi trebalo vako izgledati

enum eInfo
{
pSFrace
};
new EventInfo[MAX_PLAYERS][eInfo];


Da nebi imali problema sa warninzima na pocetak skripte ako nemate dodajte #pragma tabsize 0




New-s i Define



Sada ce mo definisati neke stvari pri vrhu skripte dodajte ovo

new sfpocetak = 0;
new sfc1,sfc2,sfc3,sfc4,sfc5,sfc6;
new RCP[MAX_PLAYERS];
new PrvoMjesto = 999;
new DrugoMjesto = 999;
new TreceMjesto = 999;


da pojasnim , new sfpocetak = 0; oznacava start sf racea, new sfc1,sfc2,sfc3,sfc4,sfc5,sfc6; To su definicije vozila koja ce mo koristiti, u ovom slucaju ja sam 6 vozila definiso,new RCP[MAX_PLAYERS]; to je new oznaka za Check pointe racea(crveni kruzici kroz koje se prolazi

opet iznad ovih new-ova dodajte definicije ovih boja ako ih nemate ako imate nemojte dodavati

#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_YELLOW 0xDABB3EAA




Timeri



Na redu su timeri. Pri vrhu dodajte slejdece
forward SfTimer();
forward SfTimer2();
forward SfTimer3(playerid);

To su kao definicije za publice koje ce mo dodati
Sada izmedju ostalih publica dodajte ovo

public SfTimer()
{
  for(new i = 0; i < MAX_PLAYERS; i++)
{
     if(EventInfo[i][pGliserrace] == 1)
   {
if(IsPlayerConnected(i))
{
              GameTextForPlayer(i, "~b~2",1000,4);
              SetTimer("SfTimer2",1000,0);
}
}
}
}
public SfTimer2()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
        if(EventInfo[i][pGliserrace] == 1)
       {
if(IsPlayerConnected(i))
{
              GameTextForPlayer(i, "~b~1",1000,4);
              SetTimer("SfTimer3",1000,0);
}
}
}
}
public SfTimer3(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{

    if(EventInfo[i][pGliserrace] == 1)
       {
if(IsPlayerConnected(i))
{
              TogglePlayerControllable(i, 1);
      GameTextForPlayer(i, "~r~START !!!",1000,4);
              SetPlayerRaceCheckpoint(playerid,0,X,Y,Z(prvog cpa),X,Y,Z(Drugog cpa),6);
      RCP[playerid] = 1;
}
}
}
}


Da pojasnim, ovii timeri ce se pokretati komandom i svi koji su na eventu pojavit ce im se brojanje od 3 do start .
Zasto i 1 i 2 cp u jednom redu?
Dakle pravicemo Cpove koji pokazuju put jedan do drugog,prvi cp je onaj cp pocetni a kada ubacite kordinate drugog cpa ona kao strelica u prvom cpu pokazivat ce put na drugi cp da nebi bilo zabune



Cp-ovi



Dosli su na red CP-ovi.Dakle otidjite tamo gdje vam je istaliran gta i nadjite samp debug. pokrenuti ga i odlaziti na mjesta gdje ocete cpove i kucati /save
Onda otvoriti : MY documents ---> GTA San Andreas User Files ---> SAMP ---> savedpositions
Onda ce te unutra dobiti nesto ovakvo:AddPlayerClass(0,-2126.5186,-106.8968,35.3203,8.3661,0,0,0,0,0,0); //
To sto sam crnim oznacio to su kordinate vaseg cpa
Sada pod public OnPlayerEnterCheckpoint(playerid) dodajte sljedece:

if (!IsPlayerInAnyVehicle(playerid))
    {
        return 1;
    }
    if(RCP[playerid] == 0) { DisablePlayerCheckpoint(playerid); }
else if(RCP[playerid] == 1) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,-2073.3728,-67.0730,34.7398,-2025.0029,-67.3533,34.7379 ,6); RCP[playerid] = 2; }
else if(RCP[playerid] == 2) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,-2025.0029,-67.3533,34.7379,-2008.4272,20.5034,32.3119 ,6); RCP[playerid] = 3; }
else if(RCP[playerid] == 3) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,-2008.4272,20.5034,32.3119,-2007.0002,306.9487,34.4671 ,6); RCP[playerid] = 4; }
else if(RCP[playerid] == 4) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,-2007.0002,306.9487,34.4671,-2243.0217,317.2373,34.7387 ,6); RCP[playerid] = 5; }
else if(RCP[playerid] == 5) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,-2243.0217,317.2373,34.7387,-2257.8828,65.5433,34.7377 ,6); RCP[playerid] = 6; }
else if(RCP[playerid] == 6) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,-2257.8828,65.5433,34.7377,-2372.9924,-0.9352,34.7303,6); RCP[playerid] = 7; }
else if(RCP[playerid] == 7) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,-2372.9924,-0.9352,34.7303,-2328.8132,-193.8194,34.7381 ,6); RCP[playerid] = 8; }
else if(RCP[playerid] == 8) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,-2328.8132,-193.8194,34.7381,-2223.4875,-192.8943,34.7714 ,6); RCP[playerid] = 9; }
else if(RCP[playerid] == 9) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,-2223.4875,-192.8943,34.7714,-2163.9258,-88.4102,34.7379 ,6); RCP[playerid] = 10; }
else if(RCP[playerid] == 10) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,-2163.9258,-88.4102,34.7379,-2076.6343,-72.2841,34.7379 ,6); RCP[playerid] = 11; }
else if(RCP[playerid] == 11) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,1,-2076.6343,-72.2841,34.7379,-2076.6343,-72.2841,34.7379 ,8); RCP[playerid] = 12; }
else if(RCP[playerid] == 12)//Kraj SF
{
    RCP[playerid] = 0;
    DisablePlayerRaceCheckpoint(playerid);
    new string[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    if(PrvoMjesto == 999)
    {
        PrvoMjesto = playerid;
SendClientMessage(playerid,COLOR_WHITE,"Zavrsili ste prvi i osvojili 10.000$");
    GivePlayerMoney(playerid,10000);
foreach (Player, i)
{format(string, sizeof(string), "* Prvo mjesto: %s.",name);SendClientMessage(i, COLOR_WHITE, string);}
    }
    else if(DrugoMjesto == 999)
    {
        DrugoMjesto = playerid;
SendClientMessage(playerid,COLOR_WHITE,"Zavrsili ste drugi i osvojili 5000$");
    GivePlayerMoney(playerid,5000);
foreach (Player, i)
{format(string, sizeof(string), "* Drugo mjesto: %s.",name);SendClientMessage(i, COLOR_WHITE, string);}
    }
    else if(TreceMjesto == 999)
    {
        TreceMjesto = playerid;
SendClientMessage(playerid,COLOR_WHITE,"Zavrsili ste treci i osvojili 2500$");
    GivePlayerMoney(playerid,2500);
foreach (Player, i)
{format(string, sizeof(string), "* Trece mjesto: %s.",name);SendClientMessage(i, COLOR_WHITE, string); SendClientMessage(i, COLOR_WHITE, "** SF Race je zavrsen **"); RCP[i] = 0; DisablePlayerRaceCheckpoint(i);}
}
}


Ja sam ubacio neke svoje kordinate Cpova a vi ubacite svoje dakle
SetPlayerRaceCheckpoint(playerid,1,X,Y,Z(cp1),X,Y,Z(cp2) ,8);

U ovom slucaju ja sam koristio 11 cpova , na kraju svakog cpa mozete vidjeti :  RCP[playerid] = nekibroj; }
to je znak da igracu daje drugi cp a  DisablePlayerRaceCheckpoint(playerid);  unistava postojeci CP

Kada dodjete do kraja cpova onda postavite samo
else if(RCP[playerid] == zadnjibroj)//Kraj SF
i ispod toga ide ovako

   {
       RCP[playerid] = 0;
       DisablePlayerRaceCheckpoint(playerid);
       new string[128];
       new name[MAX_PLAYER_NAME];
       GetPlayerName(playerid, name, sizeof(name));
       if(PrvoMjesto == 999)
       {
           PrvoMjesto = playerid;
         SendClientMessage(playerid,COLOR_WHITE,"Zavrsili ste prvi i osvojili 10.000$");
          GivePlayerMoney(playerid,10000);
         foreach (Player, i)
         {format(string, sizeof(string), "* Prvo mjesto: %s.",name);SendClientMessage(i, COLOR_WHITE, string);}
       }
       else if(DrugoMjesto == 999)
       {
           DrugoMjesto = playerid;
         SendClientMessage(playerid,COLOR_WHITE,"Zavrsili ste drugi i osvojili 5000$");
          GivePlayerMoney(playerid,5000);
         foreach (Player, i)
         {format(string, sizeof(string), "* Drugo mjesto: %s.",name);SendClientMessage(i, COLOR_WHITE, string);}
       }
       else if(TreceMjesto == 999)
       {
           TreceMjesto = playerid;
         SendClientMessage(playerid,COLOR_WHITE,"Zavrsili ste treci i osvojili 2500$");
          GivePlayerMoney(playerid,2500);
         foreach (Player, i)
         {format(string, sizeof(string), "* Trece mjesto: %s.",name);SendClientMessage(i, COLOR_WHITE, string); SendClientMessage(i, COLOR_WHITE, "** SF Race je zavrsen **"); RCP = 0; DisablePlayerRaceCheckpoint(i);}
      }
   }


Znaci imaju poruke i nagrade , GivePlayerMoney to je funkcija za davanje novca igracu,SendClientMessage za slanje poruke igracu itd...



Komande



Na red su dosle komande,napravicemo sljedece komande . /eventi ---> za admina da pokrene event da se moze tp na njega , /sfrace ---> za admina da starta event i tom komandom pokrece one timere sto smo na pocetku pravili, /join ---> ako je admin otvorio port igrac ce se moci tpati do eventa, /sfracevozila ---> za stvaranje vozila za taj race ,/sfraceunisti ---> za unistavanje eventa i vozila

Na dno skripte ako koristite ZCMD dodajte :


CMD:eventi(playerid, params[])
{
    if(!IsPlayerAdmin(playerid))//provjera dali je igrac rcon admin
{
SendClientMessage(playerid,0xAA3333AA,"Nisi rcon ulogovan Admin!"); return 1;//ako nije ne prikazuje mu dialog vec mu izbacuje poruku da nije rcon
}
    if(IsPlayerAdmin(playerid))
    {
   ShowPlayerDialog(playerid,3000,DIALOG_STYLE_LIST ,"Eventi","SF race","Odaberi","Odustani");// pokazuje adminu dialog
}
    return 1;
    }

Zatim komanda za vozila, Napomena:otidjite u debug i koristite /v za stvaranje vozila udjite u vozilo odvezite ga gdje treba da stoji i kucajte /save, onda  idite MY documents ---> GTA San Andreas User Files ---> SAMP ---> savedpositions  i tamo ce te naci nesto ovakvo

AddStaticVehicle(522,-2076.6343,-72.2841,34.7379,271.2175,3,8); //

To sto sam oznacio debelim slovima to je id vozila kordinate vozila i rotacija vozila:
AddStaticVehicle(ID vozila,X,Y,Z,R,3,8);


Zatim na dno skripte dodajte

CMD:sfvozila(playerid, params[])
    {
    if(!IsPlayerAdmin(playerid))
{
SendClientMessage(playerid,0xAA3333AA,"Nisi rcon ulogovan Admin!"); return 1;
}
sfc1 = CreateVehicle(411,-2099.7856,-67.7308,34.8990,272.0963,0,3,3600); //0
sfc2 = CreateVehicle(411,-2099.7454,-72.6821,34.8990,271.2906,0,3,3600); //1
sfc3 = CreateVehicle(411,-2109.7085,-68.0383,34.8990,270.4995,0,3,3600); //2
sfc4 = CreateVehicle(411,-2109.8630,-72.5671,34.8990,267.8230,0,3,3600); //3
sfc5 = CreateVehicle(411,-2119.4590,-67.8781,34.8990,270.0498,0,3,3600); //4
sfc6 = CreateVehicle(411,-2119.3311,-72.4200,34.9029,271.1670,0,3,3600); //5
return 1;
    }

   ovo createvehicle oznacava da stvara vozilo, a vi stavljajte rotaciju id i kordinate svoje ovo je samo primjer
   
   Zatim komanda za unistavanje eventa
   CMD:unistisf(playerid, params[])
    {
    if(!IsPlayerAdmin(playerid))
{
SendClientMessage(playerid,0xAA3333AA,"Nisi rcon ulogovan Admin!"); return 1;
}
    DestroyVehicle(sfc1);
    DestroyVehicle(sfc2);
          DestroyVehicle(sfc3);
    DestroyVehicle(sfc4);
    DestroyVehicle(sfc5);
    DestroyVehicle(sfc6);
                    new sfpocetak = 0;
                    EventInfo[playerid][pSFrace] == 0
return 1;
    }


   Ova komanda unistava vozila port itd.. da neduzim

   Zatim komanda za join
    CMD:join(playerid, params[])
{
if(IsPlayerConnected(playerid))
{
//if(PlayerInfo[playerid][pJailed] != 0) ubaci svoju funkciju za zatvor
//return SendClientMessage(playerid,COLOR_GREY,"{f9e8b7}Ovu komandu ne mozete koristiti dok ste u zatvoru!");
//}
    //{
          ShowPlayerDialog(playerid,3001,DIALOG_STYLE_LIST ,"Eventi","SF race","Odaberi","Odustani");
        }
        return 1;
    }

Nezaboravite staviti svoju provjeru dali je igrac u zatvoru

Zatim komanda sfstart sa kojom pokrecemo one timere i pokrecemo trku

CMD:sfstart(playerid, params[])
{
if(!IsPlayerAdmin(playerid))
{
SendClientMessage(playerid,0xAA3333AA,"Nisi rcon ulogovan Admin!"); return 1;
}
            new sendername[MAX_PLAYER_NAME];
         GetPlayerName(playerid, sendername, sizeof(sendername));
             SendClientMessage(playerid, COLOR_YELLOW, "{0084e3}Aktivirao si SF Race !");
         for(new i = 0; i < MAX_PLAYERS; i++)
         {
              if(EventInfo[i][pSFrace] == 1)
       {
    if(IsPlayerConnected(i))
        {
                       SendClientMessage(i,COLOR_LIGHTBLUE, "{0084e3}SF Race pocinje za 3 sekunde !");
                       GameTextForPlayer(i, "~b~3",1000,4);
                       SetTimer("SfTimer",1000,0);
                       TogglePlayerControllable(i, 0);
        }
         }
  }

return 1;
}


Eh sada pod ondialogresponse dodajte ovo :
if(dialogid == 3000)
{
    if(response)
    {
    switch(listitem)
    {
        case 0://SFRACE
        {
            sfpocetak = 1;//stavlja funkciju da je poceo sf i da se moze portati do tamo
            SendClientMessageToAll(COLOR_WHITE,"{F3FF02}Trka SF je pocela, kucajte {FF0000}/join {F3FF02}da se prijavite");
        }
        }
    }
    }
    if(dialogid == 3001)
{
    if(response)
    {

    switch(listitem)
    {
        case 0://sfrace
        {
if(sfpocetak != 1)//provjera dali je poceo taj event
{
    SendClientMessage(playerid,COLOR_WHITE,"Taj event nije jos poceo, ili je broj ucesnika ogranicen!");
    ShowPlayerDialog(playerid,3001,DIALOG_STYLE_LIST ,"Eventi","SFrace","Odaberi","Odustani");
    return 1;
}
else
                    {
SetPlayerPos(playerid, X,Y,Z);//kordinate gdje da se igrac spawna
EventInfo[playerid][pSFrace] = 1;//stavlja igracu provjeru da je na eventu
}
    }
  }
}
}


Da bi uspjesno radile komande /join i /evemto morate imati ovo

Nezaboravite izmjeniti kordinate




To bi bilo to ako sam sta izostavio ili pogresno uradio recite .
Da se ne pravite manglupi ovaj tut sam rucno piso i nisam izvvukao iz nikakvog moda ili uzeo za samp foruma


Uzivajte
Pravim RP,DM,TDM,STUNT, Freeroam modove od 0 za pare, nacini placanja : Paypal ili banka


Citat: Maxwellâ,,¢ poslato Februar 06, 2013, 14:34:39 POSLE PODNE
Jako lep TUT,samo tako nastavi.
Tut sam objavio prije tacno 30 sec, i ti si za tih 30 sec nasao i procitao citav tut,hmm zanimljivo nabijanje postova . ali sve u svemu hvala
Pravim RP,DM,TDM,STUNT, Freeroam modove od 0 za pare, nacini placanja : Paypal ili banka

i opet se ponavlja ista prica, ovaj tut je dobar, nisam ga procitao celog ali sam povrsno citao i shvatio sam da je dobar, samo mi je opet malo cudno da u pawn skriptanju trazis pomoc oko Textdrawa a ovde razbijas tutorijale

lol enum nije funkcija, nije ti potrebno toliko timera, sve to možeš sa jednim i kod ti je strašno neuredan
Kristijan Stipić

Citat: Blaeks poslato Februar 06, 2013, 14:37:14 POSLE PODNE
i opet se ponavlja ista prica, ovaj tut je dobar, nisam ga procitao celog ali sam povrsno citao i shvatio sam da je dobar, samo mi je opet malo cudno da u pawn skriptanju trazis pomoc oko Textdrawa a ovde razbijas tutorijale
brate kazem ti da ja rijetko kad ulazim na BS ali moj burazer ulazi pa trazi pomoc

slay_ to sam pisao da bi pocetnicima bilo lakse,kako sam boogati sa 1 timerom mogao to sve uraditi ne lupaj gluposti djabe
Poslednja Izmena: Februar 06, 2013, 14:42:41 POSLE PODNE od N1XTON
Pravim RP,DM,TDM,STUNT, Freeroam modove od 0 za pare, nacini placanja : Paypal ili banka

Citat: N1XTON poslato Februar 06, 2013, 14:35:23 POSLE PODNE
Citat: Maxwellâ,,¢ poslato Februar 06, 2013, 14:34:39 POSLE PODNE
Jako lep TUT,samo tako nastavi.
Tut sam objavio prije tacno 30 sec, i ti si za tih 30 sec nasao i procitao citav tut,hmm zanimljivo nabijanje postova . ali sve u svemu hvala
Za tih 30sec se moze svasta videti.To sto ti ides u prvi razred osnovne pa ti treba 30min da procitas tvoja je stvar.
//

Citat: Maxwellâ,,¢ poslato Februar 06, 2013, 16:25:02 POSLE PODNE
Citat: N1XTON poslato Februar 06, 2013, 14:35:23 POSLE PODNE
Citat: Maxwellâ,,¢ poslato Februar 06, 2013, 14:34:39 POSLE PODNE
Jako lep TUT,samo tako nastavi.
Tut sam objavio prije tacno 30 sec, i ti si za tih 30 sec nasao i procitao citav tut,hmm zanimljivo nabijanje postova . ali sve u svemu hvala
Za tih 30sec se moze svasta videti.To sto ti ides u prvi razred osnovne pa ti treba 30min da procitas tvoja je stvar.
Ti ovde razbijas i uradivas dobre tutove al nmg ti vjerovat da si ti sam napravio zato jer stalno trazis pomoc oko TD-ova? ako ti je brat neka si napravi acc i eto :S

Citat: [Legend City] beNNy poslato Februar 06, 2013, 18:13:58 POSLE PODNE
Citat: Maxwellâ,,¢ poslato Februar 06, 2013, 16:25:02 POSLE PODNE
Citat: N1XTON poslato Februar 06, 2013, 14:35:23 POSLE PODNE
Citat: Maxwellâ,,¢ poslato Februar 06, 2013, 14:34:39 POSLE PODNE
Jako lep TUT,samo tako nastavi.
Tut sam objavio prije tacno 30 sec, i ti si za tih 30 sec nasao i procitao citav tut,hmm zanimljivo nabijanje postova . ali sve u svemu hvala
Za tih 30sec se moze svasta videti.To sto ti ides u prvi razred osnovne pa ti treba 30min da procitas tvoja je stvar.
Ti ovde razbijas i uradivas dobre tutove al nmg ti vjerovat da si ti sam napravio zato jer stalno trazis pomoc oko TD-ova? ako ti je brat neka si napravi acc i eto :S
aj nepravi se pametan vec prati malo forum i svatit ces da su registracije onemogucene trenutno
Pravim RP,DM,TDM,STUNT, Freeroam modove od 0 za pare, nacini placanja : Paypal ili banka

Citat: N1XTON poslato Februar 06, 2013, 18:32:30 POSLE PODNE
Citat: [Legend City] beNNy poslato Februar 06, 2013, 18:13:58 POSLE PODNE
Citat: Maxwellâ,,¢ poslato Februar 06, 2013, 16:25:02 POSLE PODNE
Citat: N1XTON poslato Februar 06, 2013, 14:35:23 POSLE PODNE
Citat: Maxwellâ,,¢ poslato Februar 06, 2013, 14:34:39 POSLE PODNE
Jako lep TUT,samo tako nastavi.
Tut sam objavio prije tacno 30 sec, i ti si za tih 30 sec nasao i procitao citav tut,hmm zanimljivo nabijanje postova . ali sve u svemu hvala
Za tih 30sec se moze svasta videti.To sto ti ides u prvi razred osnovne pa ti treba 30min da procitas tvoja je stvar.
Ti ovde razbijas i uradivas dobre tutove al nmg ti vjerovat da si ti sam napravio zato jer stalno trazis pomoc oko TD-ova? ako ti je brat neka si napravi acc i eto :S
aj nepravi se pametan vec prati malo forum i svatit ces da su registracije onemogucene trenutno
trebo se je prije registrovat ili kontaktiraj Dude-a za to.



Sta hejtujete lika koj djavo?  Bravo,  lep tut samo nastavi

Citat: Dimi poslato Februar 06, 2013, 19:21:46 POSLE PODNE
Sta hejtujete lika koj djavo?  Bravo,  lep tut samo nastavi
mi ne hejtujemo lika niti kakvog djavola, nego kad bi malo zasao u njegov rad na forumu shvatio bi , a ne samo da pises bezvezne komentare

Citat: Blaeks poslato Februar 06, 2013, 19:50:00 POSLE PODNE
Citat: Dimi poslato Februar 06, 2013, 19:21:46 POSLE PODNE
Sta hejtujete lika koj djavo?  Bravo,  lep tut samo nastavi
mi ne hejtujemo lika niti kakvog djavola, nego kad bi malo zasao u njegov rad na forumu shvatio bi , a ne samo da pises bezvezne komentare

brate mozda nije njegov mozda jeste bar je pomogao , znam mu rad na forumu i napise ovde nixtonov brat vidjao sam 2-3 puta ja msm