-
Posts
1.123 -
Joined
-
Last visited
-
Days Won
97
Content Type
Profiles
Forums
News
Documentation
Everything posted by Banditul
-
O revizitare a raspunsului oferit mai devreme care din pacate si din greseala mea a omis o multime de informatii. Promit sa corectez in aceasta revizie. https://pastebin.com/4vLDGKWm Rezultat Un if: 0 ms 1 milion if: 16 ms 1 mesaj formatat si trimis: 0 ms 1 milion mesaje formatate si trimise: 164 ms Un if cu mesaj formatat&trimis: 0 ms 1 milion if/else cu mesaje formatate&trimise: 173 ms Testat pe un Intel i5-4460 3.4GHz destul de mult sub procesoarele care se regasesc pe servere la momentul actual. Dupa cum se vede chiar daca faci 1 milion de verificari una dupa alta viteaza procesari este neglijabila dar doar daca valoarea corespunde cu primele cazuri, in momentul in care adaugam mai multe cazuri sa fie verificate si valoarea variabilei este mai 'mare' cu cat devine mai lent caz in care folosirea un switch este benefica. 1 milion if, test = 1: 19 ms 1 milion if, test = 2: 24 ms ...... 1 milion if, test = 11: 82 ms tickCount = tickcount(); for (new i = 0; i < 1000000; i++) { if (test == 1) {} else if (test == 2) {} else if (test == 3) {} else if (test == 4) {} else if (test == 5) {} else if (test == 6) {} else if (test == 7) {} else if (test == 8) {} else if (test == 9) {} else if (test == 10) {} else if (test == 11) {} else {} } printf("1 milion if, test = 11: %i ms", tickcount() - tickCount); Cat despre switch 1 milion switch, test = 1: 0 ms 1 milion switch, test = 2: 0 ms ......... 1 milion switch, test = 11: 0 ms tickCount = tickcount(); for (new i = 0; i < 1000000; i++) { switch (test) { case 1: break; case 2: break; case 3: break; case 4: break; case 5: break; case 6: break; case 7: break; case 8: break; case 9: break; case 10: break; case 11: break; } } printf("1 milion switch, test = 11: %i ms", tickcount() - tickCount); Concluzie pentru sectiunea asta: Cazul in care planuiesti sa adaugi poate mai mult de 10-20 limbi cel mai bine are fi sa folosesti swtich pentru a face verificarea limbi. Pentru cazul acetui de avea 2 e irelevant ce folosesti. Facand concluzia de mai devreme am rescris testele cu switch Un switch/2 cases cu mesaj formatat&trimis: 0 ms 1 milion switch/2 cases cu mesaje formatate&trimise: 172 ms 1 milion switch/10 cases/test = 11 cu mesaje formatate&trimise: 175 ms Si cele 3 teste https://pastebin.com/A7bYN7h9 (devenea prea mare raspunsul) Revenind totusi la intrebare. Este atat de neglijabila diferenta de performanta incat nu merita sa iti bati capul, as zice ca diferenta e cat se poate de a fi aproape inexistenta. Sper ca am raspuns de data aceasta cu mult mai bune informatii.
-
Bazat ce ai oferit cel mai probabil toate aceste trei variabile sunt de fapt array-uri new componenets[..]; new Mods[..]; new coordonate[..]; Iar ca sa atribui o valoarea unui array va trebui sa te folosesti de un index Mods[0] = valoare; Mods[1] = altaValoare; s.a.m.d. Doar ca de asemenea presupun, din lipsa de informatii, ca in baza de date probabil ai salvate cele 3 date pe care vrei sa le preiei poate ceva de genul (care e un design destul de rau) 30 | 40 | 23 | 100 ... Care din ce stiu/amintesc folosesti sscanf ca sa extragi ce ai nevoie, poate ceva asemenator cu sscanf("23|30|40", "p<|>iii", Mods[0], Mods[1], Mods[2]);
-
Nu am idee la ce te referi prin "Nu pune toate checkpoint-urile deodata" . Se opreste undeva? Iti pune doar 3? Eventual poti citi ce face functia mai exact, si de preferat partea de Tip poate e exact problema ta https://open.mp/docs/scripting/functions/SetPlayerMapIcon Cat despre CreateVehicleEx nu este o functie nativa deci nu avem de unde sa stim daca face ce trebuie https://open.mp/docs/scripting/functions/CreateVehicle
-
Well probabil e una din multele 'compani' fantoma si probabil au inchis pravalia sau pur si simplu au probleme cu serveru. Nu aveam de unde sa stim, doar daca ii contactezi pe ei direct.
-
A da greseala mea, && in loc de ||
-
Ma intreb uneori oare este chiar atat de dificil ca aceste topicuri legate de problemele pe care le ai in scripting sa fie postate in sectiunea care in mod uimitor este numita Ajutor Scripting if(!PlayerToPoint(5.0, playerid, 2350.2070,-646.6494,128.0547) || !PlayerToPoint(5.0, playerid, alta locatie aici) || s.a.m.d.) return SCM(playerid, COLOR_LGREEN, "Nu esti la un dovleac.");
-
Scuze am crezut ca e ceva default de la joc, am verificat fisierele mele si aparent este modul https://www.sa-mp.ro/forums/topic/26622-gta-san-andreas-multiprocess/ [APPLICATION] ALLOW_MULTIPROCESS=TRUE NO_FREEZE=TRUE [VIDEO] WINDOWED=TRUE [INPUT] HD_MOUSE=TRUE Si astea ar fi setarile pe care le am
-
Ce ai putea face in conditia in care ai nevoie sa dai alt tab constant e sa treci jocu din fullscreen in window mode sau borderless cel putin asa il am setat personal pentru access rapid la cod si testat si nu mi se blocheaza
-
Ai nevoie si de https://open.mp/docs/scripting/functions/SetSpawnInfo Atlfel nu stie unde sa iti spawneze playerul
-
https://open.mp/docs/scripting/callbacks/OnPlayerClickTextDraw Citeste partea cu rosu din acest link si adauga ce iti lipseste pentru Rent_TDE
-
OnPlayerConnect Aici e problema, la OnPlayerConnect datele jucatorului sunt invalide pentru ca inca nu s-a logat. Eventual lasa partea de creare a textdrawului acolo dar partea format a mesajului cu datele pe care le vrei pune-o dupa ce se incarca datele (OnPlayerLogin sau depinde cum ai definita functia)
-
Dar in schimb PlayerInfo[playerid][pLevel] contine valoarea care trebuie? Ma gandeam poate incarcarea din baza se face gresit dar ma indoiesc desi atat timp cat faci format corect la string si PlayerInfo[playerid][pLevel] are valoarea corecta nu vad de ce anume iti afiseaza eronat in textdraw. Eventual ne poti arata si cum creezi acel textdraw si cum formatezi/afisezi mesajul? Ai un bug destul de special as putea spune si imi da impresia ca problema ta se afla altundeva in cod si compilatorul nu iti raporteaza problema.
-
Ok vestul salbatic pe aici. @Ghosty2004topicul va fi restaurat cu conditia de a aplica din sugestiile lui Vyorel/WoppS si mai exact separare arhivei pentru gm si panel si de preferat fara sa contina fisiere .dll sau .exe , si desigur link de virus total. Ai un termen de 48h de la mine. Eventual doar ca o sugestie poti folosi servici ca github/bitbucket etc pentru a distribui codul sursa de la gm si de la panel si asa nu mai exista discuti de virusi pentru ca poti descarca exact ce fisiere vrei sau le poti deschide direct in browser pentru codul sursa.
-
Considerand faptul ca cineva a sesizat cu un raport topicul tau ca i-a infectat pc-ul cu acel gm si topicul tau nu mai continea nici o urma de virus total , l-am verificat si am luat masura necesara
-
Motivul principal pentru care eu ti l-am sters este https://www.virustotal.com/gui/file/c90d85d46a6086830a67ca7cfb2d36495d4d597f6f8179f032108a6505460217?nocache=1 care este fisierul cu serverul fara panel + am testat in Windows Sandbox sa rulez toate acele .exe si sa rulez serverul in sine cu pluginurile oferite de tine si la cateva secunda dupa am avut 2 conexiuni de la ip-uri din RCS&RDS care nu imi apartin. Daca WoppS sau Vyorel au ceva de adaugat sau daca considera ca am facut ceva eronat in situatia aceasta suport consecintele.
-
Din pacate nu stiu daca mai e notat undeva dar din ce stiam trebuie sa ai cel putin 25 postari pe forum pentru a putea posta la publicitate server
-
Putin probabil sa nu ai dar eventual poti stoca si in fisiere datele cu toate ca nu e recomandat si destul de lent. Gasesti aici un exemplu
-
Nu avem idee ce ai modificat. Arata codul sa vedem ce functie sau declaratie e invalida
-
Cel mai sigur e sa citesti serverlog si sa vezi daca ai erori sau ceva lipsa
-
In acest caz arata codul care iti afiseaza /skills si care afiseaza acel td. Poate e o diferenta intre ele
-
Si care ar fi problema?
-
Aici are WopS o explicatie. Este vorba despre array mari si multe etc
