Y_TIMERS

Započeo V01D, Februar 20, 2020, 23:35:01 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

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




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.


Lepo objasnjeno, pocetnik sam i shvatio sam sve kako valja. Veoma korisno i jednostavno  :D

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 :]
skazy42O

Reborn - Developer & Owner
- www.reborn-ogc.com

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


kul

Mnogo imaš ti još da jedeš kačamak.
skrr
Moj tutorijali: Bazilion indent warninga
WORK? : Smart Project 1.2 , Leskovacki Detmec, Rodjendanski  server


Penzionisani balkanski samp kripter




Prekjucer sam poceo bas ovo raditi na mom modu , tako da si oke sve objasnio, fin tutorial :D

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