PARTNERI:

* Marketing



-UPOZORENJE-

Samo registrovani članovi mogu da vide/koriste forum u celini.
Prijavite se ili registrujte nalog na Balkan SA-MP forumu.


Autor Tema: [Tutorial] Samo 1 tajmer za odbrojavanje (optimizacija?)  (Pročitano 301 puta)

0 članova i 1 gost pregledaju ovu temu.

Van mreže Alhemičar

Samo 1 tajmer za odbrojavanje (optimizacija?)
« poslato: Avgust 01, 2020, 01:02:24 pre podne »
Eh...Ti lepi tajmeri

I) sta je ovo koji moj?
Malo pre sam dobio poruku od @Teodor -a da mu nesto pomognem, nije bitno ugl. resio sam i poslao sam mu kod ali skontao sam nesto, svi (pa i ja do evo malo pre) koristimo 2 tajmera: 1 za odbrojavanje koji se poziva svaku sekundu i jedan koji ce se pozvati za 60 sekundi (na primer ako imate pljackanje banke pa imate TextDraw za odbrojavanje koji prikazuje sekunde igracu...)
E sada, pala mi je na pamet neka ideja za koju iskreno ne znam zasto nije pala ranije, a koja je to ideja cemo da vidimo sada.

II) Primer
Pawno Code: [Izaberi]
defer nekiTajmerZaOdbrojavanje(playerid);
defer glavniTajmer(playerid);

timer nekiTajmerZaOdbrojavanje[1000](playerid)
{
nekaVarijablaUKojojSeCuvaVrednost[playerid] --;
va_PlayerTextDrawSetString(playerid, tdObrojavanje[playerid], "%d", nekaVarijablaUKojojSeCuvaVrednost[playerid]);
defer nekiTajmerZaOdbrojavanje(playerid);
}

timer glavniTajmer[60000](playerid)
{
// Nesto rendom iz rukava
ClearAnimations(playerid);
SetPlayerPos(playerid, 0.0, 0.0, 0.0);
SetPlayerHealth(playerid, 0.0);
SetPlayerArmour(playerid, 0.0);
ddoskida(playerid);
}

III) sta sam ja skontao jel
Pawno Code: [Izaberi]
defer glavniTajmer(playerid, 20); // 20 sekundi!

timer glavniTajmer[1000](playerid, seconds)
{
if(seconds) // seconds > 0
{
va_PlayerTextDrawSetString(playerid, tdObrojavanje[playerid], "%d", --seconds); // Primetite kako ODMAH ovde smanjujem seconds!!!
defer glavniTajmer(playerid, seconds); // Moze i repeat gore da se razumemo ali ovako ne cuvamo ID tajmera pa je kao bolje? (ispravite me ako nisam u pravu)
}
else // seconds = 0
{
ClearAnimations(playerid);
SetPlayerPos(playerid, 0.0, 0.0, 0.0);
SetPlayerHealth(playerid, 0.0);
SetPlayerArmour(playerid, 0.0);
ddoskida(playerid);
}
}

IV) Zakljucak
Licno ja mislim da je ovako bolje jer imamo samo jedan tajmer sto ce automatski rasteretiti server (nece duplo otkucavati tajmere, zamislimo da imate 50 tajmera i 25/25 su podeljena, znaci ovako moze samo 25 da tikuje).

E sada ima ovaj if(seconds) ali to nema doslovno nikakav uticaj na performanse (ne pogorsava ih) jer su u pitanju piko sekunde sto se izvrsavanja tice ako se ne varam :D

Kontam da je urednije i bolje jer kao sto sam vec rekao imate tajmer manje a i brže se pise iskreno


Rust, Python, TypeScript, Kotlin, WebAssembly, Swift, Clojure, Elixir, Go, SQL
 
Korisnici koji su se zahvalili: Teodor, rusic., skritpe iz 2012 godine. ( ͡° ͜ʖ ͡°)

Odg: Samo 1 tajmer za odbrojavanje (optimizacija?)
« Odgovor #1 poslato: Avgust 01, 2020, 01:25:47 pre podne »
Varijable itd pisao na srpskohrvatskom, zabelezite ovaj datum.
korisno ruzo moja

Van mreže Alhemičar

Odg: Samo 1 tajmer za odbrojavanje (optimizacija?)
« Odgovor #2 poslato: Avgust 01, 2020, 01:26:22 pre podne »
Varijable itd pisao na srpskohrvatskom, zabelezite ovaj datum.
korisno ruzo moja
Morao sam ovog puta, vidiš da ne liči na mene tutorial, a morao sam i da ošišam slova jer mi je bacalo DB grešku iz nekog razloga

EDIT: a kontam da može biti korisno i ako želite da se nešto dešava na svakih 20 sekundi tipa 20..40 40..60 60..80 nbtn


Rust, Python, TypeScript, Kotlin, WebAssembly, Swift, Clojure, Elixir, Go, SQL
 
Korisnici koji su se zahvalili: skritpe iz 2012 godine. ( ͡° ͜ʖ ͡°)

Na mreži ᗪ卂乂

Odg: Samo 1 tajmer za odbrojavanje (optimizacija?)
« Odgovor #3 poslato: Avgust 01, 2020, 01:43:45 pre podne »
Na sličan način u nekim modovima radi onaj SyncTimer za platu
korisno +

credits: Xunder, Ino420, Muma

Citat: Pottus;3903994
SetPlayerPos("dreni1998", 666.666, 666.666, 666.666, 666.666);    ///// GO IN HELL MOTHERFUCKER

https://i.imgur.com/XHLx9oj.gif
https://i.ibb.co/ZJqQKWT/NXRX.gif
 

Van mreže Alhemičar

Odg: Samo 1 tajmer za odbrojavanje (optimizacija?)
« Odgovor #4 poslato: Avgust 01, 2020, 01:48:54 pre podne »
Na sličan način u nekim modovima radi onaj SyncTimer za platu
korisno +
Može primer? :D

Uglavnom meni je ovo mnogo jebeno haha


Rust, Python, TypeScript, Kotlin, WebAssembly, Swift, Clojure, Elixir, Go, SQL
 

Van mreže V01D

Odg: Samo 1 tajmer za odbrojavanje (optimizacija?)
« Odgovor #5 poslato: Avgust 01, 2020, 04:45:13 pre podne »
Nikada nisam video da neko koristi 2 timera, idi vidi Noise RolePlay i sistem roba marketa i banke, tacnije komande, uradjeno odbrojavanje sa jednim timerom na ovaj fazon..

RADOVI

Y_TIMERS TUT -> KLIKNI ME NEZNO
Duel System FS -> KLIKNI ME NEZNO
Noise RolePlay -> KLIKNI ME NEZNO
C# Custom SAMP Launcher -> KLIKNI ME NEZNO
FySnow Map -> KLIKNI ME NEZNO
Hunger Games FS -> KLIKNI ME NEZNO
FunRace LiveEvent FS -> KLIKNI ME NEZNO
Registracija Sistem(VIDEO) -> KLIKNI ME NEZNO
Y_ITERATE TUT -> KLIKNI ME NEZNO
[INC]Dynamic Rent Locations -> KLIKNI ME NEZNO

Napustio SAMP
 

Na mreži CADILAB

  • Balkan Underground Owner
  • Super Moderator
  • Godfather
  • *
  • Poruke: 2618
  • Broj zahvalnica: 164
  • Pol: Muškarac
  • Just a nigga tryna help
Odg: Samo 1 tajmer za odbrojavanje (optimizacija?)
« Odgovor #6 poslato: Avgust 01, 2020, 12:40:12 posle podne »
Koliko si programskih jezika nabrojao u opisu a tek sad ovo skontao :D

Ja nikad nisam vidio da neko koristi dva tajmera
 

Van mreže skritpe iz 2007 godine. ( ͡° ͜ʖ ͡°)

Odg: Samo 1 tajmer za odbrojavanje (optimizacija?)
« Odgovor #7 poslato: Avgust 01, 2020, 13:37:00 posle podne »
Koliko si programskih jezika nabrojao u opisu a tek sad ovo skontao :D

Ja nikad nisam vidio da neko koristi dva tajmera
Pa ne koristim ni ja obične tajmere nego asihrono radim (dok sam radio PAWN) ali dok sam koristio obične tajmere - jesam ovako radio ( i to je bilo jer sam video u nekim levim modovima i po tutorialima jer sam debil pa nisam uopšte mislio na to... )

EDIT: I ja ne znam jel meni neko banovao prošli ACC ili je opet greška jer kada hoću da se prijavim spama mi POGREŠNA LOZINKA i sada kada sam napravio novi akaunt sam morao da restartujem šifru...
 

Odg: Samo 1 tajmer za odbrojavanje (optimizacija?)
« Odgovor #8 poslato: Avgust 01, 2020, 15:17:04 posle podne »
Pa ne koristim ni ja obične tajmere nego asihrono radim (dok sam radio PAWN) ali dok sam koristio obične tajmere - jesam ovako radio ( i to je bilo jer sam video u nekim levim modovima i po tutorialima jer sam debil pa nisam uopšte mislio na to... )

EDIT: I ja ne znam jel meni neko banovao prošli ACC ili je opet greška jer kada hoću da se prijavim spama mi POGREŠNA LOZINKA i sada kada sam napravio novi akaunt sam morao da restartujem šifru...
I blame that emoji ???