RaduRZM
-
Posts
9 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
News
Documentation
Posts posted by RaduRZM
-
-
La 21.01.2021 la 1:56, Osprey0890 a spus:
- La faza cu "modulele", știu ce sunt, am lucrat cu ele... pur și simplu mi-a rămas în instinct să le numesc module. Gamemode-ul nu e unul modular, am pus doar sistemele în fișiere diferite pentru a-mi fi mai ușor de modificat. Oricum, nu afectează performanța.
- La faza cu "format" în loc de "strmid"... aici n-am ce comenta, am greșit.
- La faza cu codul comentat aiurea... nu e aiurea, e pentru mine, deoarece ăsta e un gamemode personal. Oricum, din moment ce e comentat... nu văd cu ce afectează.
- La faza cu împărțirea ilogică... nu văd ce e ilogic. Din nou, fiind un gamemode personal... pentru ce să-l documentez?
- La faza 1270 + 2 + 2... i-am explicat cuiva despre Pawn și abilitatea lui de Instant Math. Pur și simplu n-am băgat de seamă că a rămas acolo și oricum nu afectează. Anyway, nu e singurul loc în care apare.
- Culori știu cu zecile iar, după cum am mai spus, gamemode-ul e personal... pe mine nu mă încurcă. Nu afectează performanța, nu văd problema.
- MAXPLAYERNAME e mult mai ușor și mai rapid de scris. Nu afectează performanța, nu văd problema.
- E mai optimizat să folosești direct nativele decât se le treci printr-o funcție custom. Ce contează mai mult, să fie rapid sau să aibe puține linii?
- SA:MP e single thread, deci totul se execută în ordine. Când query-ul e trimis, chiar și pe alt thread, e deja formatat. De ce aș face o variabilă nouă la fiecare query trimis?
Pozele le-am făcut rapid, din cauză că toată lumea de pe topic a cerut asta, fară să mai văd ce e scris acolo de câteva luni.
"[...] mă recomandă vechimea, cunoștințele API-ului, abilitatea de researching, calitatea sistemelor, structurarea și organizarea codului, optimizarea și buna funcționare a scripturilor, testare și debugging, dinamicitate și comunicare cu baza de date și nu în cele din urmă, obsesia pentru a fi totul bine pus la punct, aerisit, clar, ușor de întreținut și modificat, future-proof, eficient și fară defecte".
Server-ul de SA:MP este single threaded, dar plugin-ul MySQL nu Si folosesti query-uri care blocheaza main thread-ul atunci cand nu este deloc nevoie - vezi comanda /park.
Functiile custom nu afecteaza performanta (cel putin nu in PAWN) - la finalul compilarii, codul dintr-o functie locala si cel din afara ei ajung la aceeasi forma bruta, organizata doar diferit. (referinta, pag. 178-179)
- 3
-
- Rolul folosirii 'modulelor' este de a face o anumita parte a codului plug-and-play. In screenshot-urile puse, modulele contin o singura comanda - unde este restul logicii? Daca restul logicii sistemelor respective se afla in gamemode-ul principal, este o greseala grava
- Folosesti format atunci cand definesti string-uri fara parametri, cand ai fi putut folosi strmid si ai fi castigat cateva zeci de ms de performanta
- Cod comentat care a ramas acolo fara motiv??
- Marea majoritate a codului este impartita ilogic, readability conteaza enorm! Imparte codul in functii si documenteaza codul atunci unde este nevoie
- "CreateDynamicPickup(1270 + 2 + 2.." in primul screenshot???
- Folosesti interpolare de culori fara sa definesti culoarea respectiva
- Ai redefinit MAX_PLAYER_NAME? ("MAXPLAYERNAME"?)
- Nu refolosesti codul - vad, de exemplu, creari de combinatii label/pickup care ar putut fi separate cu usurinta in functii refolosibile
- Folosesti o variabila globala pentru a retine query-ul mysql??
- 1
-
Orice dezvoltator are portofoliu, oricat de mic/mare ar fi el. Iar raspunsurile pe care le-ai primit au fost raspunsul arogantei de care ai dat dovada in topic. Lucreaza la chestiile astea, si vei avea clienti pe masura :)
-
Te referi ca un jucator normal nu poate sa dea G intr-un taxi? Daca da, in codul unde verifici factiunea jucatorului, verifica si daca urmeaza sa intre ca sofer.
Daca verificarea este in OnPlayerStateChange, verifici cu GetPlayerState(playerid) == PLAYER_STATE_DRIVER. Daca este in OnPlayerEnterVehicle, verifici cu ispassenger == true
-
ShowPlayerDialog(playerid, DIALOG_PETTYPE, DIALOG_STYLE_TABLIST, "Pet Type", string, "Select", "Cancel");
La linia asta, string-ul este gol, deci nu va exista nicio optiune
Formateaza string-ul cu niste optiuni reale sau inlocuieste "string" in acea linie cu ceva de genul "Pet 1\nPet 2\nPet 3"
-
Sau, mai bine, actualizeaza streamer si pune parametrii corecti in OnPlayerEditDynamicObject.
-
Pentru a actualiza plugin-ul, descarca ultima versiune de aici: https://github.com/samp-incognito/samp-streamer-plugin/releases
Din arhiva, din folder-ul plugins, pune pluginul corespunzator platformei pe care ruleaza server-ul in folderul plugins al server-ului tau.
Apoi, ia fisierul streamer.inc si pune-l in folder-ul cu include-uri din server-ul tau.
Apoi recompileaza gamemode-ul.
-
In comanda /report, in codul in care setezi un report de "cheater", asigura-te ca exista o linie de genul:
SetPVarInt(giveplayerid, "Reported", 2);
..unde giveplayerid ar putea fi denumit altfel in functie de codul tau. Ultimul parametru este cel important.
In cautare de scripteri
in Caut servicii / partener / etc.
Posted
Te-ai gandit, poate, ca suma pe care o oferi iti permite sa lucrezi doar cu scripteri care 'scartaie'?