L0K3D Posted February 8, 2020 Share Posted February 8, 2020 Cateva lucruri ce va pot economisi timpul de lucru cat si optimizarea modului de joc, unele din ele sunt deja postate pe forumul oficial SA:MP insa nu toti le folosesc sau nu le cunosc. Multiple actiuni intr-o declaratie: sendInfo(playerid) { new a = 4, mStr[20]; format(mStr, sizeof(mStr), "Var a = %i", a), SendClientMessage(playerid, -1, mStr); } * odata ce stim marimea string-ului o putem scrie direct, fara sa mai apelam la sizeof Operatorul ternary Folosind acest operator poti economisi timp si spatiu, structura: conditie ? adevarat : fals new a = 5, b = 4, c; if(a > b) c = a; else c = b; // operatorul ternar c = (a > b) ? a : b; // ca parametru actual printf("c = %i", (a > b) ? a : b); Atribuim valori variabilelor ce sunt folosite ca parametri actuali O alta metoda ce te ajuta sa economisi timp/spatiu dar si sa ai un cod mai aranjat new a; // acest cod printf("%i", a = 5); // sau acest cod a = 5, printf("%i", a); // fac acelasi lucru Atribuirea mai multor variabile aceeasi valoare Daca ai 2 sau mai multe variabile si vrei sa le setezi aceeasi valoare (de exemplu 1), nu e nevoie de le egalezi pe fiecare in parte cu 1; new a, b, c; a = b = c = 1; // in loc de: a = 1, b = 1, c = 1; Creaza variabilele la timpul lor Nu va grabiti sa creati variabilele, mai jos va voi da un exemplu si va voi spune de ce: Am creata variabila para prea devreme, inca nu aveam nevoie de ea. In caz ca jucatorul nu corespunde cerintelor din primul if, variabila nu va fi folosita mai departe, deci a fost creata aiurea. Functii public - nu toate functie necesita sa aiba cuvantul public in fata (doar in cazul in care e apelata de un timer, CallLocalFunction, CallRemoteFunction, de un query). Callback-urile ce ne le ofera SA:MP-ul necesita folosirea sa. stock - nu este un tip diferit de functie fata de cele publice, cum cred multi. E un modificator ce ii spune compilerului sa nu trimita warning-uri in cazul in care o functie sau o variabila este creata insa nu e folosita: Unii din voi probabil folosesc aiurea acest modificator, e posibil sa aveti functii pe care nu le folositi si nu le veti folosi niciodata si totusi nu sunteti anuntati de compiler. Conditiile in loop Conditiile din header-ul unei bucle (loop) sunt foarte importante, la mai multe iteratii se va simti diferenta dintre o conditie scrisa gresit si una scrisa corect, insa va dati seama daca aveti mai multe bucle scrise aiurea apelate de mai multi playeri odata? Sigur se va simti. for(new i; i < GetPlayerPoolSize(); i++ ) { // ceva } * GetPlayerPoolSize se va efectua la fiecare iteratie, la un numar mare de iteratii se observa diferenta. for(new i, j = GetPlayerPoolSize(); i < j; i++ ) { // ceva } * GetPlayerPoolSize se va efectua doar la prima iteratie. Creearea variabilelor intr-un loop for(new i; i < GetPlayerPoolSize(); i++ ) { new count; if(IsPlayerAdmin(i)) count++; } Nu e corect sa initializam o variabila in interiorul unui loop, ea va primi mereu valoarea 0 iar incrementarea de mai jos va fi degeaba, deoarece valoarea acestei variabile se va reseta la urmatoarea iteratie, varianta corecta: for(new i, count; i < GetPlayerPoolSize(); i++ ) { if(IsPlayerAdmin(i)) count++; } Cum aflam linia unde a fost apelata o functie Ca exemplu vom folosi functia CreateVehicle. Sa zicem ca aveti un timer ce creaza o masina intr-o anumita locatia insa voi nu stiti care din el e, putem afla foarte usor linia unde este apelata functia CreateVehicle folosind directivele pre-processor pentru a crea un macro: #define debug_CreateVehicle(%0, %1, %2, %3, %4, %5, %6, %7) printf("** debug_CreateVehicle called on line %d", __line), CreateVehicle(%0, %1, %2, %3, %4, %5, %6, %7) Cand functia CreateVehicle va fi apelata se va afisa mesajul respectiv in consola. Â (!) Pe parcurs voi mai adauga cateva informatii. regeletau, Filip, matei1337 and 1 other 3 1 Server Query and RCON APIÂ | Actualizare script fara restart | Tips & Tricks Eureka v0.2 /Â Discord Eureka Link to comment Share on other sites More sharing options...
Arabu Posted February 9, 2020 Share Posted February 9, 2020 Nice tutorial.  YouTube : Click Redirect Channel Discord : Arabu#9330 Canal Discord : Click To Join Facebook : Click Facebook Instagram : Click Instagram Skype : Mita.Official Așteptăm jucatorii de PUBG Mobile și pe serverul de Discord PUBG Mobile România! Join PUBGM România Respectă și vei fi respectat !     Link to comment Share on other sites More sharing options...
Retired Dennis12 Posted February 9, 2020 Retired Share Posted February 9, 2020 Foarte folositor pentru incepatori ! Link to comment Share on other sites More sharing options...
Octavian Posted February 9, 2020 Share Posted February 9, 2020 Pentru incepatori este chiar folositor. Â Â Â Link to comment Share on other sites More sharing options...
Filip Posted February 9, 2020 Share Posted February 9, 2020 Frumos, de ultima chiar nu știam, gj Link to comment Share on other sites More sharing options...
regeletau Posted April 19, 2020 Share Posted April 19, 2020 hmm, chiar e destul de interesant ai +1 vtm    _________________________________________________    |                            _________       |    |   |  /     /|      |\      |    /          \     |    |   | /    /   |     | \     |    |               |    |   |/    /   |      |  \    |    |               |     |   |\       |      |   \   |    |     _____      |    |   | \      |      |    \  |    |         \       |    |   |  \     |      |     \ |    |          |      |    |   |   \    |      |      \|    \_________/      |    |_______________________________________________| Link to comment Share on other sites More sharing options...
GabrielRPG Posted April 26, 2020 Share Posted April 26, 2020 Ms Link to comment Share on other sites More sharing options...
winter Posted April 26, 2020 Share Posted April 26, 2020 Wow, folositor. Link to comment Share on other sites More sharing options...
skidmark Posted April 26, 2020 Share Posted April 26, 2020 Folositor zic. Front End Developer Website:Â https://tudorale.github.io/portfolio/ Link to comment Share on other sites More sharing options...
Spyth Posted April 27, 2020 Share Posted April 27, 2020 Folositooor. Multumesc! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now