Balkan SA:MP

San Andreas Multiplayer - www.sa-mp.com => Tutorijali u vezi SA-MPa => Temu započeo: V01D poslato Februar 20, 2020, 23:35:01 POSLE PODNE

Naslov: Y_TIMERS
Poruka od: V01D poslato Februar 20, 2020, 23:35:01 POSLE PODNE
Y_TIMERS
Posto vidim da ljudi idalje, iz bog zna kog razloga, koriste SetTimer i SetTimerEx, odlucio sam napraviti cool tutorial na temu Y_Timers koji su definitivno laksa i bolja varijanta..

NAMENJENO POCETNICIMA

Ovaj include se nalazi unutar YSI!

Pa da pocnemo..

POZIVANJE TIMERA

Pre svega, kako pozivamo najobcniji timer
Za pozivanje koristimo "defer"

[pawn]defer NekiTimer(vrednosti koje zelimo preneti);[/pawn]

Ovo deluje zbunjujuce, ali sada cu pokazati upotrebu u tipa robu banke..

[pawn]CMD:robbanka(playerid, params[])
{
   defer BankaRobTimer(playerid);
   TogglePlayerControllable(playerid, 0);
   SendClientMessage(playerid, 0x1874CDFF, "Zapoceo si pljacku banke!Ukoliko izadjes, pljacka ce se prekinuti!");
   return 1;
} [/pawn]

Iznad se nalazi najprostija komanda za rob banke.. Pre svega, defer sluzi kao i SetTimer, pritom kod njega ne moramo da definisemo timer, vec samo da ga "upotrebimo"
Unutar [pawn]( )[/pawn] mozemo videti "playerid", znaci da prenosimo varijablu playerid, takodje mozemo preneti bilo koju varijablu i da pritom moze da se iskoristi unutar samog timera..

Kako oznaciti kraj timera??

[pawn]timer BankaRobTimer[90000](playerid)
{
        TogglePlayerControllable(playerid, 1);
        SendClientMessage(playerid, 0x1874CDFF, "Uspesno si opljackao banku!");
        GivePlayerMoney(playerid, 90000);
}[/pawn]

Za to koristimo "timer", prosto, brzo, lako i jednostavno :D

Sta ovo sve znaci??

timer BankaRobTimer[90000](playerid) ->
                      timer -> Naznacavamo da je timer, da ne objasnjavam previse xD
                      BankaRobTimer -> Ovde navodimo ime timera
                      [90000] -> Broj u milisekundama nakon koga ce se timer zavrsiti
                      (playerid) -> varijabla koju smo preneli u timer

Sve ovo unutar timera :

[pawn]TogglePlayerControllable(playerid, 1);
        SendClientMessage(playerid, 0x1874CDFF, "Uspesno si opljackao banku!");
        GivePlayerMoney(playerid, 90000); [/pawn]

Je zapravo ono sto se desi kada se timer zavrsi..

PTASK

Ovo je zanimljiva stvar, za sta sluzi PTASK?

PTASK je timer koji vrti za svakog igraca posebno, nesto nalik onoga sto vidjate na mnogo modova za PlayerTD-ove, banka, plata..

To je jedan nacin na koji moze da se koristi, on se ponavlja neogranicen broj puta ukoliko se ne zaustavi..

[pawn]ptask TimerIgrac[1000](playerid)
{
    new banka[10], zlato[10], plata[10], level[5];
    format(banka, 10, "%d$", PlayerInfo[playerid][pBankaNovac]);
    PlayerTextDrawSetString(playerid,BankaTD[playerid], banka);
    format(zlato, 10, "%dg", PlayerInfo[playerid][pBankaZlato]);
    PlayerTextDrawSetString(playerid, ZlatoTD[playerid], zlato);
    format(plata, 10, "%d$", PlayerInfo[playerid][pPlata]);
    PlayerTextDrawSetString(playerid, PlataTD[playerid], plata);
    format(level, 5, "%d", PlayerInfo[playerid][pLevel]);
    PlayerTextDrawSetString(playerid, LevelTD[playerid], level);
}[/pawn]

Ovo je jedan primer, na svaku jednu sekundu da se igracu "update-uju" tdovi za platu, zlato, level i novac u banci.. Ukoliko samo odradite ovo, timer ce sam da se automatski pokrene kada igrac udje na server, tako da ne morate da brinete gde ce te ga staviti itd itd..

TASK

Task je ista stvar kao i PTASK, ponavljajuci timer koji vrti za sve igrace.. Ovo bi mozda biti neke server poruke ili tako nesto, zavisi sta preferirate.

Takodje se koristi isto kao i PTASK, samo bez varijabli

[pawn]task ImeTimera[vreme]()[/pawn]

STOPIRANJE TIMERA

Ukoliko ipak zelite da zaustavite odredjeni timer, ide malo na cudniji nacin :/
[pawn]
new Timer:NovoImeTimera; //Prvo cemo napraviti novu varijablu NovoImeTimera

NovoImeTimera = defer NasTimer(playerid); //Zatim cemo pokrenuti timer

stop NasTimer; //Koristimo "stop" da bi ga zaustavili kada to nama odgovara
[/pawn]

Takodje, NasTimer koristimo kao i obican timer, pozivamo ga, zatim koristimo "timer" da bi oznacili sta ce se desiti kada se zavrsi
"Stop" koristimo kada zelimo da timer prestane a pritom ne dodje do kraja, tako da ukoliko ga "stopiramo", ono sto smo stavili da se desi u "timer" se nece ni desiti..

ZAKLJUCAK

Po meni, jako korisna stvar, pogotovo za pocetnike, takodje je mnogo "optimizovanija" nego SetTimer i SetTimerEx..
Svako ima svoje misljenje..
Prvi mi je tutorial, tako da prihvatam svaku kritiku.. Tutorial je takodje namenjen pocetnicima, tako da sam se potrudio pojasnim uz razne primere, sto bolje mogu.
Hvala na citanju <3 ;D

Naslov: Odg: Y_TIMERS
Poruka od: YumikoJR poslato Februar 20, 2020, 23:44:25 POSLE PODNE
posluzice pocetnicima
Naslov: Odg: Y_TIMERS
Poruka od: Galardo poslato Februar 20, 2020, 23:47:41 POSLE PODNE
eto @daddy. mozda naucim   :D
@tema fino objasnjeno  ;)
Naslov: Odg: Y_TIMERS
Poruka od: over poslato Februar 21, 2020, 00:04:23 PRE PODNE
Citat: V01D poslato Februar 20, 2020, 23:35:01 POSLE PODNE
Y_TIMERS
Posto vidim da ljudi idalje, iz bog zna kog razloga, koriste SetTimer i SetTimerEx, odlucio sam napraviti cool tutorial na temu Y_Timers koji su definitivno laksa i bolja varijanta..

NAMENJENO POCETNICIMA

Ovaj include se nalazi unutar YSI!

Pa da pocnemo..

POZIVANJE TIMERA

Pre svega, kako pozivamo najobcniji timer
Za pozivanje koristimo "defer"

[pawn]defer NekiTimer(vrednosti koje zelimo preneti);[/pawn]

Ovo deluje zbunjujuce, ali sada cu pokazati upotrebu u tipa robu banke..

[pawn]CMD:robbanka(playerid, params[])
{
   defer BankaRobTimer(playerid);
   TogglePlayerControllable(playerid, 0);
   SendClientMessage(playerid, 0x1874CDFF, "Zapoceo si pljacku banke!Ukoliko izadjes, pljacka ce se prekinuti!");
   return 1;
} [/pawn]

Iznad se nalazi najprostija komanda za rob banke.. Pre svega, defer sluzi kao i SetTimer, pritom kod njega ne moramo da definisemo timer, vec samo da ga "upotrebimo"
Unutar [pawn]( )[/pawn] mozemo videti "playerid", znaci da prenosimo varijablu playerid, takodje mozemo preneti bilo koju varijablu i da pritom moze da se iskoristi unutar samog timera..

Kako oznaciti kraj timera??

[pawn]timer BankaRobTimer[90000](playerid)
{
        TogglePlayerControllable(playerid, 1);
        SendClientMessage(playerid, 0x1874CDFF, "Uspesno si opljackao banku!");
        GivePlayerMoney(playerid, 90000);
}[/pawn]

Za to koristimo "timer", prosto, brzo, lako i jednostavno :D

Sta ovo sve znaci??

timer BankaRobTimer[90000](playerid) ->
                      timer -> Naznacavamo da je timer, da ne objasnjavam previse xD
                      BankaRobTimer -> Ovde navodimo ime timera
                      [90000] -> Broj u milisekundama nakon koga ce se timer zavrsiti
                      (playerid) -> varijabla koju smo preneli u timer

Sve ovo unutar timera :

[pawn]TogglePlayerControllable(playerid, 1);
        SendClientMessage(playerid, 0x1874CDFF, "Uspesno si opljackao banku!");
        GivePlayerMoney(playerid, 90000); [/pawn]

Je zapravo ono sto se desi kada se timer zavrsi..

PTASK

Ovo je zanimljiva stvar, za sta sluzi PTASK?

PTASK je timer koji vrti za svakog igraca posebno, nesto nalik onoga sto vidjate na mnogo modova za PlayerTD-ove, banka, plata..

To je jedan nacin na koji moze da se koristi, on se ponavlja neogranicen broj puta ukoliko se ne zaustavi..

[pawn]ptask TimerIgrac[1000](playerid)
{
    new banka[10], zlato[10], plata[10], level[5];
    format(banka, 10, "%d$", PlayerInfo[playerid][pBankaNovac]);
    PlayerTextDrawSetString(playerid,BankaTD[playerid], banka);
    format(zlato, 10, "%dg", PlayerInfo[playerid][pBankaZlato]);
    PlayerTextDrawSetString(playerid, ZlatoTD[playerid], zlato);
    format(plata, 10, "%d$", PlayerInfo[playerid][pPlata]);
    PlayerTextDrawSetString(playerid, PlataTD[playerid], plata);
    format(level, 5, "%d", PlayerInfo[playerid][pLevel]);
    PlayerTextDrawSetString(playerid, LevelTD[playerid], level);
}[/pawn]

Ovo je jedan primer, na svaku jednu sekundu da se igracu "update-uju" tdovi za platu, zlato, level i novac u banci.. Ukoliko samo odradite ovo, timer ce sam da se automatski pokrene kada igrac udje na server, tako da ne morate da brinete gde ce te ga staviti itd itd..

TASK

Task je ista stvar kao i PTASK, ponavljajuci timer koji vrti za sve igrace.. Ovo bi mozda biti neke server poruke ili tako nesto, zavisi sta preferirate.

Takodje se koristi isto kao i PTASK, samo bez varijabli

[pawn]task ImeTimera[vreme]()[/pawn]

STOPIRANJE TIMERA

Ukoliko ipak zelite da zaustavite odredjeni timer, ide malo na cudniji nacin :/
[pawn]
new Timer:NovoImeTimera; //Prvo cemo napraviti novu varijablu NovoImeTimera

NovoImeTimera = defer NasTimer(playerid); //Zatim cemo pokrenuti timer

stop NasTimer; //Koristimo "stop" da bi ga zaustavili kada to nama odgovara
[/pawn]

Takodje, NasTimer koristimo kao i obican timer, pozivamo ga, zatim koristimo "timer" da bi oznacili sta ce se desiti kada se zavrsi
"Stop" koristimo kada zelimo da timer prestane a pritom ne dodje do kraja, tako da ukoliko ga "stopiramo", ono sto smo stavili da se desi u "timer" se nece ni desiti..

ZAKLJUCAK

Po meni, jako korisna stvar, pogotovo za pocetnike, takodje je mnogo "optimizovanija" nego SetTimer i SetTimerEx..
Svako ima svoje misljenje..
Prvi mi je tutorial, tako da prihvatam svaku kritiku.. Tutorial je takodje namenjen pocetnicima, tako da sam se potrudio pojasnim uz razne primere, sto bolje mogu.
Hvala na citanju <3 ;D
lepoo.
Naslov: Odg: Y_TIMERS
Poruka od: V01D poslato Februar 21, 2020, 00:07:51 PRE PODNE
Citat: YumikoJR poslato Februar 20, 2020, 23:44:25 POSLE PODNE
posluzice pocetnicima
Citat: Galardo poslato Februar 20, 2020, 23:47:41 POSLE PODNE
eto @daddy. mozda naucim   :D
@tema fino objasnjeno  ;)
Citat: !OverLord poslato Februar 21, 2020, 00:04:23 PRE PODNE
lepoo.

Zahvaljujem <3 :D
Naslov: Odg: Y_TIMERS
Poruka od: Ljubiša poslato Februar 21, 2020, 00:09:29 PRE PODNE
Lepo objasnjeno, pocetnik sam i shvatio sam sve kako valja. Veoma korisno i jednostavno  :D
Naslov: Odg: Y_TIMERS
Poruka od: roman42O poslato Februar 21, 2020, 00:12:15 PRE PODNE
Poceo sam da koristim ima 2-3 meseca od kada je muma objavio njegov V mod i video sam to , tako da dosta je bolje i lakse nego sa settimer po meni, za vas ne znam, posluzice dosta :]
Naslov: Odg: Y_TIMERS
Poruka od: V01D poslato Februar 21, 2020, 00:14:12 PRE PODNE
Citat: Ljubisa poslato Februar 21, 2020, 00:09:29 PRE PODNE
Lepo objasnjeno, pocetnik sam i shvatio sam sve kako valja. Veoma korisno i jednostavno  :D
Citat: RomaNN poslato Februar 21, 2020, 00:12:15 PRE PODNE
Poceo sam da koristim ima 2-3 meseca od kada je muma objavio njegov V mod i video sam to , tako da dosta je bolje i lakse nego sa settimer po meni, za vas ne znam, posluzice dosta :]

Hvala, ukoliko imate bilo kakva pitanja ili nesto nije jasno, slobodno ili ovde ili u PM :D
Naslov: Odg: Y_TIMERS
Poruka od: daddyDOT poslato Februar 21, 2020, 20:27:13 POSLE PODNE
Citat: Galardo poslato Februar 20, 2020, 23:47:41 POSLE PODNE
eto @daddy. mozda naucim   :D
@tema fino objasnjeno  ;)
Sumnjam
#tema poslužiti će nekima ;)
Naslov: Odg: Y_TIMERS
Poruka od: bunta poslato Februar 23, 2020, 10:45:47 PRE PODNE
kul
Naslov: Odg: Y_TIMERS
Poruka od: V01D poslato Februar 23, 2020, 13:28:04 POSLE PODNE
Citat: daddy. poslato Februar 21, 2020, 20:27:13 POSLE PODNE
Sumnjam
#tema poslužiti će nekima ;)

Citat: bunta poslato Februar 23, 2020, 10:45:47 PRE PODNE
kul

Zahvaljujem :D
Naslov: Odg: Y_TIMERS
Poruka od: Teodor poslato Februar 23, 2020, 23:36:41 POSLE PODNE
Thx pomogao si mi
Naslov: Odg: Y_TIMERS
Poruka od: Krixyy poslato Februar 24, 2020, 00:17:41 PRE PODNE
Prekjucer sam poceo bas ovo raditi na mom modu , tako da si oke sve objasnio, fin tutorial :D
Naslov: Odg: Y_TIMERS
Poruka od: V01D poslato Februar 24, 2020, 06:32:59 PRE PODNE
Citat: Teodor poslato Februar 23, 2020, 23:36:41 POSLE PODNE
Thx pomogao si mi
Citat: Purdinho poslato Februar 24, 2020, 00:17:41 PRE PODNE
Prekjucer sam poceo bas ovo raditi na mom modu , tako da si oke sve objasnio, fin tutorial :D

Hvala
Naslov: Odg: Y_TIMERS
Poruka od: realnaith poslato April 06, 2023, 09:00:22 PRE PODNE
Bump
Naslov: Odg: Y_TIMERS
Poruka od: whyllon poslato Maj 27, 2023, 15:27:28 POSLE PODNE
Bump