[TuT]Kreiranje SetTimer i objasnjenje

Započeo Mr.Konj, April 17, 2016, 14:57:33 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Pozdrav evo odlucio sam napravit tut o tajmerima, kako kreirati i na kojem principu radi
Pokusat cu objasnit najopsirnije...

SetTimer
[pawn]SetTimer(funcname[], interval, repeating);[/pawn]
Znaci SetTimer, funcname[] vam je ime znaci tu stavite pod navodnicima na primjer za ucitavanje objekata ako zelite napraviti uzmete za primjer

[pawn]SetTimer("UcitavanjeObjekata", interval, repeating);[/pawn]
Interval je vrijeme znaci koliko dugo ce tajmer trajati, kad tajmer istekne onda ce se vrsiti radnja pod public i forward, pokazat cu to kasnije kada dodjemo do tog dijela.

Interval: radi na principu stotinjke, znaci 1000 vam je jedna sekunda, ja inace koristim stalno 1000*10, znaci 1000 puta 10 je 10 sekundi, i to stavljamo ovako

[pawn]SetTimer("UcitavanjeObjekata", 1000*10, repeating);[/pawn]

Sad kad smo rijesili ime i vrijeme mozemo na repeating objasnjenje!

Repeating: Ako dobro znate engleski znate i sami da je to ponavljanje, 0 = nece se ponavljati, a sve vise od nule ce ponavljati tajmer
E sada ako zelite da vam se tajmer ne ponavlja stavite 0, i radnja ce se vrsiti samo jednom.


[pawn]SetTimer("UcitavanjeObjekata", 1000*10, 0);[/pawn]

Primjer ucitavanja objekata
Eh sada ja cu pokazati kako bi to trebalo izgledati kada udjete u neku prostoriju, npr ulazite u banku i zelite da igraca zamrzne i da mu pise ucitavanje objekata!

1. Napravite komandu ili ako vec imate za tipku ulazenje samo prilagodite svojoj skripti

[pawn]CMD:enter(playerid, params[]);
{
    SetPlayerPos(playerid, x,y,z); //stavite kordinate svog interijera u banci ili gdje zelite
    SetTimer("UcitavanjeObjekata", 1000*5, 0); //Kreirali smo tajmer "UcitavanjeObjekata", koji ce trajati 5 sekundi i nece se ponavljati = 0
    TogglePlayerControllable(playerid, 0); //zamrzava igraca da se nemoze micati tijekom ucitavanja objekata
    SetPlayerInterrior(playerid, 1); //postavlja se igracu interijer ID 1
    return 1;
}[/pawn]

E sada kada imamo SetTimer kreiran pod imenom UcitavanjeObjekata, napravit cemo forward i public koji ce odmrznuti igraca nakon sto se objekti ucitaju

Forward i public preporucujem stavljajte jedan do drugog da vam se nebi nesto pomijesalo

2. Forward i public kreiranje
[pawn]forward UcitavanjeObjekata(playerid);
public UcitavanjeObjekata(playerid) //znaci sva radnja unutar ovog publica se vrsi nakon sto tajmer zavrsi
{
   SendClientMessage(playerid, BOJA, "Objekti ucitani uzivajte"); //salje igracu poruku da su objekti ucitani
   TogglePlayerControllable(playerid, 1); //odmrzava igraca da se moze kretati ako je tajmer zavrsio
   SetPlayerInterrior(playerid, 0);
   return 1;
}[/pawn]

I sada kada je to rijeseno i imate tajmer UcitavanjeObjekata, taj tajmer mozete koristiti bilo gdje kada trebate ucitavati objekte nakon sto vas negdje prebaci gdje trebate....

Savjet: Tajmere koje slazete npr. za payday sisteme, ili ako slazete da vam salje otprilike svakih 10-20 sekundi poruku na chat igracima, takve tajmere stavljate pod OnGameModeInit

Kraj
Poslednja Izmena: April 17, 2016, 15:00:03 POSLE PODNE od Mr.Konj



Tajmeri nisu 100% u stotinku tacni, dakle ako neko želi da broji sekudne neka sekunda ce kasniti.
Ali i za to postoji rijesenje.

Citat: Pita poslato April 17, 2016, 18:04:48 POSLE PODNE
Tajmeri nisu 100% u stotinku tacni, dakle ako neko želi da broji sekudne neka sekunda ce kasniti.
Ali i za to postoji rijesenje.

znam da nisu bas 100% tocni ali barem da pocetnici znaju da je to otprilike

Odlican tutorijal. :)
Srecu cine male stvari i veliko pivo!
x3M-Gaming USKORO!


posluzit ce  :D

Nova Kuca Community - Founder , Owner