[TUT] Brojanje & Odbrojavanje.

Započeo J0PS0NEE
7. Avg. 2013. Zaključano
1,552
pregleda
6
postova
J0PS0NEE
4
Enforcer
7. Avg. 2013.
Pozdrav članovi :-*,
Danas ću vam pokazati kako da da napravite Brojanje i Odbrojavanje, koristeći obične varijable i tajmere.

Korističemo: y_commands, y_timers i sscanf2
BROJANJE:
Na vrhu skripte dodajte slijedeće varijable:

new Do = -1;
new jVarijabla = -1;
Definišimo jedan timer ispod varijabli:

new Timer: jBrojanje;
OK, ajde da napravimo komandu kojom čemo pokretati taj timer:

YCMD:broji(playerid, params[], help)
{
    #pragma unused help
    new odbroja, dobroja;
    if(sscanf(params, "ii", odbroja, dobroja)) return SendClientMessage(playerid, -1, "Koristite: /broji [Pocetni broj] [Zavrsni broj]");
    if(jVarijabla != -1) return SendClientMessage(playerid, -1, "(greska) Brojanje je vec u toku!"); 
    if(odbroja < 0) return SendClientMessage(playerid, -1, "(greska) Nije moguce poceti brojati ako je pocetni broj ispod 0!");
    if(dobroja < 0) return SendClientMessage(playerid, -1, "(greska) Nije moguce brojati ispod 1!");
    jVarijabla = odbroja;
    Do = dobroja;
    jBrojanje = repeat BrojanjeBrojeva(playerid);
    return 1;
}
Da malo pojasnimo:
** new odbroja, dobroja; (oznacavamo parametre na sscanf)
    if(sscanf(params, "ii", odbroja, dobroja)) ( parametar I = An integer)
    jVarijabla = odbroja; (pamti početni broj)
    Do = dobroja; (pamti zavrsni broj)
    jBrojanje = repeat BrojanjeBrojeva(playerid); (Ponavlja naÅ¡ tajmer za odredjeno sekundi (Trebamo ga definisat(napraviti))) **
Konačno, ajde da napravimo timer:

timer BrojanjeBrojeva(playerid)
{
    return 1;
}

Da odma razjasnimo:
** timer BrojanjeBrojeva(playerid) (Dosta je slično publicu, samo ima viška osnovu "" i umjesto "public" se piše "timer", znači "" je vrijeme timera u ovom slučaju 1000ms/1s. (staviti po želji)**

timer BrojanjeBrojeva(playerid)
{
    printf(" Varijabla je na broju: %d/%d", jVarijabla,Do);
    jVarijabla ++;
    if(jVarijabla == Do)
    {
        stop jBrojanje;
        jVarijabla = -1;
        Do = -1;
    }
    return 1;
}

Pojašnjenje:
** printf("Varijabla je na broju: %d/%d", jVarijabla,Do); (Ispisivanje varijabli, na trenutnom broju i do kojeg broja ide)
jVarijabla ++; (povečava "jVarijabla" svaki sekund za jedan)
if(jVarijabla == Do) (Ako je odabrani broj stigao do odredjenog broja)
stop jBrojanje; (Zaustavljanje timera, automacki nakon zavrsetka brojanja)
jVarijabla = -1; (Vracanje varijablje u prvobitni oblik)
Do = -1; (Vracanje varijablje u prvobitni oblik) **
ODBROJAVANJE:
Koristićemo iste varijable, samo čemo napraviti novu komandu i drugi timer.
new Timer: jOdbrojavanje;
Komanda:

YCMD:odbroji(playerid, params[], help)
{
    #pragma unused help
    new odbroja, dobroja;
    if(sscanf(params, "ii", odbroja, dobroja)) return SendClientMessage(playerid, -1, "Koristite: /odbroji [Pocetni broj] [Zavrsni broj]");
    if(jVarijabla != -1) return SendClientMessage(playerid, -1, "(greska) Brojanje je vec u toku!");
    if(odbroja < 0) return SendClientMessage(playerid, -1, "(greska) Nije moguce poceti brojati ako je pocetni broj ispod 0!");
    if(dobroja < 0) return SendClientMessage(playerid, -1, "(greska) Nije moguce brojati ispod 1!");
    jVarijabla = odbroja;
    Do = dobroja;
    jBrojanje = repeat OdbrojavanjeBrojeva(playerid);
    return 1;
}
** Uglavnom je sve ostalo isto, samo se promjenio Timer "OdbrojavanjeBrojeva(playerid);" **
Pravljenje jos jednog timera:

timer OdbrojavanjeBrojeva(playerid)
{
    printf(" Varijabla je na broju: %d/%d", jVarijabla,Do);
    jVarijabla --;
    if(jVarijabla == Do)
    {
        stop jBrojanje;
        jVarijabla = -1;
        Do = -1;
    }
    return 1;
}

** I Kod tajmera uglavnom ostaje sve isto, samo što dolazi promjena kod varijable "jVarijabla", znači ta varijabla se oduzima za 1, to jeste smanjuje stoga koristimo "--". **

Nadam se da sam vam uspio pomoći u tutorialu, moguće su greške jer je 10:19 nisam spavao cjelu noć i ne znam šta tipkam
☹️

- Jopsonee

   
   
Bugi
5
Crime Lord
7. Avg. 2013.
lepo, pohvale
J0PS0NEE
4
Enforcer
7. Avg. 2013.
|LZ| Bugi wrote on August 7, 2013, 8:24 am:
lepo, pohvale

u kakvom sam stanju i u koje doba sam pisao, dobro je ikako.
Uglavnom, zahvaljujem 😘
Ivan_Ino
5
Kingpin
7. Avg. 2013.
Nice 🙂
Polat Alemdar
4
Enforcer
9. Avg. 2013.
Ivan_Ino.pwn wrote on August 7, 2013, 1:05 pm:
Nice 🙂

Not Nice , Very Nice 😄
arambasa
5
Underboss
10. Avg. 2013.
Odlicno je ovo 🙂 10/10

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha