Jump to content

RaduRZM

Membru
  • Posts

    9
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by RaduRZM

  1. 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)

    • Upvote 3
  2. - 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??

    • Haha 1
  3. 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

  4. 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"

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.