markosimic wrote on January 19, 2025, 10:37 pm:
Lepo, korisno.
Nisi se lepo izrazio u par slucajeva.
Sistem je razvijen za platformu SAMP koristeci zvanican PAWN jezik za skriptanje istog. Koristi dodatne biblioteke poput sscanf, mysql, zcmd i YSI.
Ne svidja mi se sto nisi dao vise opcija cuvanja, poput YSI kada ga vec koristis.
Zasto zcmd kada vec imas YSI command procesor y_commands.
Ako se pravi nesto, preporucujem da se iskoristi sve iz paketa i ne ubacuju nove nepotrebne biblioteke.
Mogao bih pisati bas dosta oko sitnica nekih, ali glavno sam rekao.
Takodje ovaj sistem moze da se uradi i putem timestamp-ova koji je uzgred brzei i laksi za rad, jer nemas timer koji vrtis stalno da bi uradio check.
Jednostavno kada mutiras igraca postavis timestamp, koji kroz funkciju proveri da li je timestamp u usporedbi sa trenutnim prosao ili nije prosao, te mu skine mute.
No hate, ovde sam da samo rasirim svest sta je sve moguce ukoliko se dovoljno promisli.
Ostavicu ovde ispravku code na moj nacin.
https://pastebin.com/gQsMUYHt
(nisam testirao ali sam uzeo iz svog fajla (modula) tako da je radilo na mom blank gamemode vec (prilagodio sam samo postojecem napisanom sistemu))
Ovde ne koristimo timer, jer apsolutno nije potreban ! Ne koristimo YSI pakete jer nije potrebno. Promisli ubuduce code malo vise i ne pravi ga vise kompleksnim nego sto je potrebno <3
Ovo je najprostiji, najbrzi i najbolji nacin za uraditi nesto ovako.
Hvala ti na komentaru i deljenju svog koda. Cenim trud koji si uložio u optimizaciju, ali si za..bao debelo stvar i napraivo opasan BUG. Mislim da sam se lepo izrazio jer nisam rekao jezici, ogradio sam MySQL kao poseban sistem.
Moj pristup koristi timer koji se pokreće svake minute, što smanjuje učestalost poziva i opterećenje na serveru. Mislim da je efikasnije za veći broj igrača. (Čak i na 1000ms je bolji)
S druge strane, tvoj kod koristi `OnPlayerUpdate`, što
NIKAKO nije dobro! Napravio si opasnu grešku tu, samo zasto što si hteo da uprostiš, kobajagai, nešto što je Dragi vrlo dobro realizovao! A objasniću kasnije šta si uradio...
Svaka složenija skripta mora koristiti tajmere na svakih 1000ms i-ili 60000ms. Ja nisam napravio tajmer specijalno zbog mute sistema. I ne brini, to uopšte ne šteti optimizaciji, jer YSI radi ko
Singer, a usput, imaš samo jedan timer, eventualno dva timera na takvim intervalima uzastopno.
Ne znam zašto pojedinci misle da su ti tajmeri BAUK i da to šteti optimizaciji, naprotiv, kad se pravilno koristi, uopšte ne šteti.
Nigde nisam implementirao y_commands. Ne vidim razlog za spominjanje. Od YSI je samo timer implementiran. Ja više volim ZCMD ili Pawn.CMD. Šta bih mogao čuvati u YSI i zašto bih? Sve se roka u MySQL, zašto? Opet kažem hiljaditi put, da bi radilo ko Singer. Dragi = Singer.
Tvoja varijabla se pojavila ko grom iz vedra neba? "MuteTimestamp". Hajde, sredio sam ti kod i šta se desilo? Bugčina baća i to velikih razmera, ali dobro je što si napravio BUG da bih tebi i drugima pokazao koliko nije ispravno koristiti taj tvoj "
najbolji, najefikasniji i najbrži način".

Odmah sam uočio tu grešku, jer sam znao da se ne čita šta ja pišem, a lepo sam napisao "
Trebace nam zbog obavestenja u tasku." Valjda si skontao sad da ja ne pišem bezveze stvari tek tako... Nije lepo što ne čitaš moje reči. Ovo je dobro što se desilo, jer mi je CPU skočio na 100%... Toliko o tvom callbacku i najboljem načinu koji se 30x ponavlja u jednoj sekundi.
Takođe, ne smatraj da se svađam ili tako nešto. Svakako ja tebe cenim dosta i to će biti tako, ali bih te zamolio da više ne radiš ovakve opaske. "Promisli ubuduce code malo vise i ne pravi ga vise kompleksnim nego sto je potrebno <3".... Ne ide da tako govoriš za mene.
Moj kod je promišljen
10000x i testiran
99999x. I nikad nije namerno napravljen kompleksno osim ako nisam ja to hteo iz dosade ili zabave, ali to naglasim! Retko kad mogu napraviti BUG i objaviti public bez rigoroznih testova. Ja dobro znam šta radim, valjda si dosad video.
Ponavljam, moj kod je najbolji način za ovo, to će ti potvridti svaki skripter pri zdravom razumu. Moj kod može da radi na 9999 igrača ko Singer. Veruj Dragiju, bespotrebno si sve to napisao. 🙂 Šta bi bilo da ja s tvojim stavom idem po forumu i svima analiziram kod, ali stvarno analiziram... Ne ide to. 😄 Razumem da nisi iz ove branše, ali baš zbog toga ne ide da govoriš meni šta je brže, bolje, optimizovanije, koje biblitoeke da koristim, a koje ne. Zamisli mene da govorim o veb developmentu tebi. Zamoliću te da me razumeš samo i ne uvrediš se, jer se i ja nisam uvredio. Sve najbolje ti želim!
P.S. Svaku kritiku koja je na mestu prihvatam. Ljudi smo i grešimo. Da ne pomislite da sam neki namćor. 😁 Ali kad sam u pravu, onda sam u pravu i ne bih pisao referate.