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
Dobar tut,pomoci ce pocetnicima.. ☺
Odlicno, samo nastavi ;)
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. :)
dobar opis, mada si mogao i settimerex napisat, jer ovo vise ide po igracu :P
posluzit ce :D