Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 07/03/2021 in all areas

  1. https://dev.to/mindninjax/why-html-is-not-a-programming-language-2lab poate te ajuta. Oricat ti-ai dori sa le consideri limbaje de programare, nu sunt. HTML este un limbaj de marcare, asa cum ti-a specificat deja si colegul mai sus (similar cu XML daca cunosti). De asemenea, CSS este un limbaj de stilizare/formatare. Variabile poti avea si in CSS (https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties), nu asta face diferenta, documenteaza-te mai mult despre acest subiect. Ce ai zis tu cu batch files, alea sunt fisiere ce contin Shell Script, care sunt deja o alta poveste, dar esti mai aproape de adevar in cazul asta pentru ca scripturile sunt limbaje de programare interpretate dupa rulare, nu la compilare (precum C#,Java,Python,etc.) . Vezi aici https://en.wikipedia.org/wiki/Shell_script, aici https://en.wikipedia.org/wiki/Scripting_language si aici https://careerkarma.com/blog/what-is-a-scripting-language/ Sper ca te-am ajutat, spor la studiu.
    4 points
  2. Salutare, eu cu ceva timp in urma mi-am descarcat gm-ul wlg al lui VLM in pc si am inceput un edit pe el, am facut destul de multe chestii pe el, adica nu mai seamana cu cel al lui VLM. Am zis sa il postez deoarece la versiunea in care este, este destul de jucabil parerea mea pe un server de 100 slot-uri. Nu prea am lucrat foarte mult pe optimizare si nici nu stiu cam cat ar duce deoarece nu am incercat sa deschid un server cu acesta. Ajunge cu aceasta lunga introducere si voi incepe direct cu descrierea. Mai jos aveti lista cu update-urile pe care le-am adus acestui gamemode. De asemenea gasiti lista cu 'updates.txt' in folderul 'gamemodes' 1. Rezolvat bugul la JobGoal! 2. Rezolvat bugul la /admins! 3. Majoritatea comenzilor trecute pe dialog! 4. Adaugata comanda /work pentru jobul Trucker! 5. Adaugata comanda /work pentru jobul Pizza Boy! 6. Adaugata comanda /work pentru jobul Garbage! 7. Adaugata comanda /work pentru jobul Farmer. 8. Adaugate vouchere ( Common(50pp), Rare(100pp), Epic(250pp), Legendary(500pp) ) 9. Rezolvat bug la comanda (/sellcarto) 10. Adaugat un system de Emotes, si Emotes Shop! 11. Mutat DealerShip! 12. Acum merge rainbow pe toate vehiculele! 13. Sters Mapping-ul de la spawn si vehiculele! 14. Scos Camera Special Quest! 15. Modificat TextDraw Logo/LogoPlayer! 16. Mutat Spawn, si facut un mapping nou! 17. Adaugata comanda (/rentbike) la spawn! 18. Am inceput lucru la un sistem de Neon! 19. Scos sistemul de Stage! (Nu imi prea place mie) 20. Modificat putin la premiile de la GiftBox/Spin, caci erau prea mari. 21. Sistemul de Daily Quest Scos. 22. Adaugat Dark Points, cu care vei putea sa iti cumperi Neon Alb si Galben! 23. Scos Repair Kit, mi-se parea prea urat... Nu mai avea rost Jobul Mecanic! 24. Adaugat Sistem Neon cu 6 culori de neoane. 3 Gratuite si 3 Premium cu Dark Points! 24. Sistemul cu Jobul Zilei a fost scos. 25. Modificat sistemul de neoane, acum toate tip-urile de neon sunt gratuite daca detii pachetul 'Neon' 26. Acum poti urca in vehiculele dv personale, chiar daca sunt inchise! 27. Scos sistemul de apartamente. Deoarece imi parea cel mai inutil sistem, si mai manca si mult din linii 28. Pubg Arena / Survival Arena - Scos. 29. Rezolvat bugul de la KEY_SECONDARY_ATTACK, facusem codul gresit pentru chestia cu urcatul in vehiculele personale, si am rezolvat acum. 30. Acum apare al carei case este garajul. 31. Scos /entergarage si /exitgarage. Acum pentru a intra/iesi dintr-un garaj, intr-un vehicul (HORN/CLAXON), iar pe jos (Crouch) 32. Am echilibrat putin economia (Modificat pay de la job-uri, modificat pretul masinilor) 33. Scos jobul de Car Jacker (inutil) 34. Am inceput lucrul la jobul Courier. Pentru a inlocuii pe cel de Car Jacker 35. Am facut un sistem de Daily Quest. - From 0 36. Am mai modificat putin PayDay-ul. 37. Rezolvata problema de la DarkPoints, nu se salvau, am uitat sa il adaug in functia OnPlayerLoginIn. 38. Adaugata factiunea Sons Of Anarchy, si vehiculele acesteia. (Mai am de facut HQ-ul, si comenzile si actiunea factiunii); 39. Scos Jobul Mechanic. 40. Modificat Jobul de Fisherman, impartit in 2 filiale, unul in Las Venturas iar unul in Los Santos! 41. Scos sistemul de Skin Crates / Vehicle Crates. 42. Scos sistemul de Skin-uri personale. Si inca un lucru de legat de factiunea Sons of Anarchy, este facuta doar ca momentan nu are nicio atributie pe server ,ideile pentru aceasta factiune le puteti gandii voi. Tin sa mentionez faptul ca am gamemode-ul in pc de foarte mult timp doar ca am avut o pauza destul de lunga in care lucram doar cand ma plictiseam Si nu prea le am eu cu VirusTotal-ul si imi apare ceva cu trojan dar nu inteleg de ce, am Windows 10 pro ultima versiune cu update-urile la zi, eu tin Windows Defenderul pornit non stop si nu am primit absolut nimic de la gamemode. Chestii de rezolvat : -Sistemul de Vip Text pe Vehicule este putin buguit, ve-ti vedea despre ce vorbesc. -Mai sunt unele probleme pe server la coduri pentru ca pe unele le faceam cand eram foarte adormit Link VirusTotal : https://www.virustotal.com/gui/file/4f7d39c13c4874589baa9259c353d4281ecc2379b0116da3888144788b18c6d9/detection Link Gamemode : https://www.mediafire.com/file/s5x81p17aorwiyq/Gamemode.rar/file Poze Gamemode : https://imgur.com/a/eLd1OCk Credite : Autor : @VLM Edit by : @VAurel Tester : @.Alexander Daca mai descoperiti ceva buguri lasati in comentarii, si voi incerca sa rezolv si revin cu update.
    3 points
  3. Dacă și în ultimul ceas a SAMP-ului încă vă stă gândul la bani.. sunteți fomiști, serios, trageți de jocu' ăsta de parcă e ceva mină de aur pentru unii. Rămâne gratis, am dreptul să public codul sursă oriunde.
    2 points
  4. nici nu-mi mai bat capul să-ți explic, trăiește în lumea ta.
    2 points
  5. Stai că eu nu înțeleg... 70% și 30% el, de unde scoți procentajele astea? Ai idee ce muncă este să scrii gamemode? Începător sau nu, durează foarte mult timp, în principal pentru că pawn este un mediu robust. Crezi că dacă îți faci canal de YouTube și crezi că aduci tu jucătorii automat munca ta este mai prețioasă? "Nu vreau o persoana moarta de foame sa imi ceara bani pentru orice linie scrisa!" => Liniile alea scrise sunt munca lui, de ce să nu ceară bani pentru propria lui muncă? Dragii mei, nu vă vindeți serviciile, bune sau proaste, pe bani puțini. Evaluați-vă munca la numărul de ore și înmulțiți acele ore cu un preț.
    2 points
  6. În primul rând, mulțumesc pentru părere. În al doilea rând, da, recunosc, m-am supraevaluat, am realizat asta abia după ce mi s-a atras atenția. N-am luat în considerare toată partea de front-end, am vrut doar să subliniez că pot realiza aproape orice cerință pe domeniul de panel / samp.
    1 point
  7. Respectele mele pentru tine, sincer. Nu am luat cu răutate nimic din ce ai spus, @WopsS, dacă se poate, șterge te rog comentariul ăsta
    1 point
  8. Salut, SAMP-ul e mort, e timpul să arăt ce aveam prin calculator și nu am folosit niciodată pentru că nu aveam cui să îi arăt și să și înțeleagă. Sper să îl luați și să NU vă deschideți server cu el căci e prea bun acest gamemode pentru România. Totuși, e în limba engleză și o să vă fie greu de tradus. S-a pus accent pe sistemele dinamice. Unele sisteme au îmbunătățit copierea din LSRP. Modul a fost scris timp de 2 ani, funcționalitate excelentă, există multe sisteme unice (de exemplu: un sistem de producere a medicamentelor) și o mulțime de alte lucruri interesante. Are peste 1000 de comenzi. Mapping tot Red County-ul. Totul fiind dinamic, puteți muta oricând pe Los Santos sau în altă parte. Structura fișierelor din gamemode: Poză Are și UCP, doar că nu l-am mai deschis în calculator pentru a vi-l arăta, e ca cel de pe LS-RP Beta. Se includ și temele de pe forumuri. Unele sisteme de pe gamemode: Sistemul de bariere plătite. Sistem unic de benzinărie sistem penitenciar (copie LSRP) Telefon și telefoane cu plată (copie LSRP) Phone towers sys (copie LSRP) Case, afaceri, garaje cu referire la imobiliare Sistem de mobilă (în: Case, Afaceri, Garaje) - (copie LSRP) Sistemul de droguri (poate fi ascuns într-o cutie de pizza sau punga Burger Shot) și sistemul laborator de medicamente (jucătorul își poate crea propriul medicament, sistemul mare) LYEegsk.png Sistem de arme (cu cochilii 3DText și diferite tipuri de muniție) Sistem unic de vehicul Sistem de urmărire (copiați ls-rp) Sistem unic de graffity cu toate setările și pre-moderarea Sistem de sugestii Textdraw (copie LSRP) Sistem dinamic de semnalizare stradală Sistem GPS cu distanță țintă (afișează toate tipurile de afaceri și când clicul se potrivește în apropierea lor) Sistem Dynamic Faction (de exemplu, puteți adăuga 2 facțiuni de poliție) - toate facțiunile sunt elaborate și au funcționalități unice Sistem de incendiu și incendiere (focul se răspândește în cele mai apropiate case) Sistem dinamic de locuri de muncă Sistem de furt auto (copie LSRP) Sistem Chopshop (fracțiunea îl poate deține și poate stabili procentajul pentru vehiculele furate. Sistem de locuri de muncă Trucker (copie LSRP) cu adăugarea de industrii (îți poți crea propriul circuit comercial). Sistem de inventar dinamic Porți dinamice, pickup-uri, texte 3D, sistem de obiecte (mapare) Sistem CCTV + extrem de multe sisteme, nu le rețin pe toate. https://www.mediafire.com/file/h9huodqeqetwki6/gamemode.rar/file (gamemode) https://www.mediafire.com/file/qcybfjywcok57jc/BAYWATCH.rar/file (ucp, temă forum și rankuri) VirusTotal (are fișiere .exe!!!!!!!!!!!!!!!!) VirusTotal (ucp, temă forum, rankuri) Pentru a îl deschide: Dezarhivați fișierele, deschide cu orice program de compilare dorești, după care vei intra în folderul „pawno”, după care în „include”, vei căuta „sql” și vei deschide sql_def.inc, vei avea următoarele: Configurezi după bunul plac, compilezi rc-rp.pwn și ești gata de intrare. Pentru a intra pe server trebuie să ai un cont înregistrat pe UCP!
    1 point
  9. salut frate sa stii ca deja sari cleanța, mi-am dat din timpul meu sa citesc aberatiile tale si am terminat razand de faptul ca inca esti frustrat ca am facut misto de tine pe serverul tau timp de cateva zile. ne vedem diseara, pa-pa!
    1 point
  10. You are right but things could also have happened differently but as you said, there is no point now, the 'unfortunately' already happened. You have my appreciation for your work. Good job and good luck.
    1 point
  11. Now it’s doesn’t matter cause it could be an object of speculation and resales. I don’t want it. So there is no point in being sad. unfortunately it would have happened sooner or later.
    1 point
  12. Salut, ma numesc Eduard si am varsta de 24 de ani. Porecla mea este Melechino. Am lucrat la un server mare rusesc acum multi ani (Arizona-RP), sunt unul dintre cei mai buni scripteri din Romania. Nu mai lucrez de ceva timp, dar am decis sa ma re-apuc de sa-mp, nu pentru a scripta, pentru a ma distra. Sper sa ma pot integra si in Romania..
    1 point
  13. Creditele apartin lui Rakitin ?
    1 point
  14. Aparent se afla in sql.inc care se afla in pawno > include > gm > sql
    1 point
  15. totul e despre gandire, fra... daca te duce capul poti sa faci tu simplu.
    1 point
  16. nu se cer script-uri, incearca sa faci comanda de unul singur si daca intampini probleme te vom ajuta
    1 point
  17. salut, contul pare destul de ok, bafta la vanzare!
    1 point
  18. Gamemode-urile by "kira si vlm",niciodata sa nu le faci update-uri,au comenzi ascunse si sunt buguite rau de tot :V. ~+1 pentru munca depusa
    1 point
  19. Salut, acesta este un gamemode foarte simplu ce are doar sistemul de inregistrare/logare pe dialog, cateva mici functii in plus si o singura comanda (/setskin) facut in totalitate cu ORM (nu exista niciun mysql query/tquery/pquery in gamemode). Consider ca este un inceput ok pentru cei care vor sa foloseasca acest ORM. Acest GM foloseste Zeex Compiler 3.10.10, samp stdlib si pawn stdlib! Include-uri: MySQL R41-4, easyDialog, YSI 5.5.301 (y_va, y_iterate, y_commands). Plugin-uri: MySQL. Datele de conectare pentru baza de date se pot modifica din fisierul mysql.ini gasit in folderul principal al GM-ului. ----- Cache vs ORM ----- ORM este mai bun decat Cache deoarece nu trebuie sa trimiti atat de multe interogari catre baza de date, un simplu orm_update() la deconectare actualizeaza toate campurile necesare, deci nu trebuie sa faceti un query cu UPDATE de fiecare data. Poze: https://imgur.com/a/Ao1XOFb Virustotal: https://www.virustotal.com/gui/file/767ec5baf04fddf6b0d7b536258a903c76849229ac346242accf7109ea89f296/detection Download: https://mega.nz/file/JR1gXBTS#3Rm7j65NWmYERotIUBcEjt8YZy9LrSfJUs-ceMzVN6I
    1 point
  20. CMD:bonus(playerid, params[]) { if(pInfo[playerid][pScore] >= 2) return SCM(playerid, COLOR_LIGHTRED, "Nu poti folosi aceasta comanda daca ai level 2+!"); GivePlayerMoney(playerid, 15000000); pInfo[playerid][pScore] = 3; pInfo[playerid][pDiamonds] = 50; pInfo[playerid][pMoney] += 15000000; SetPlayerScore(playerid, pInfo[playerid][pScore]); new query[128]; mysql_format(SQL, query, 128, "UPDATE `users` SET `Level` = '%d', 'Diamonds' = '%d', `Money` = '%d' WHERE `ID` = '%d'", pInfo[playerid][pScore], pInfo[playerid][pDiamonds], pInfo[playerid][pMoney], pInfo[playerid][pSQLID]); mysql_tquery(SQL, query, "", ""); return true; }
    1 point
  21. Desigur te rog sa mi dai mesaj pe discord sau imi lasi un pm si iti dau nr de telefon!
    1 point
  22. 1 point
  23. 1 point
  24. Salut @Matei02Mihai, Daca te referi la animatia din GTA San Andreas, cauta 'UsePlayerPedAnims();', si sterge linia respectiva din gamemode. Daca vrei animatia ca pe toate serverele, atunci, adaugi 'UsePlayerPedAnims();' la OnGameModeInit.
    1 point
  25. function VIPNameVehicle(vehicleid) { new arrayid = OwnedVeh(vehicleid); veh_ArrayID(vehicleid); if(strlen(CarInfo[arrayid][cVipname]) > 3 && CarInfo[arrayid][cVipShow] == 1) { new string[100]; if(IsValidDynamicObject(vText[vehicleid])) DestroyDynamicObject(vText[vehicleid]); vText[vehicleid] = CreateDynamicObject(19327, CarInfo[arrayid][cVX],CarInfo[arrayid][cVY],CarInfo[arrayid][cVZ],CarInfo[arrayid][cVRX],CarInfo[arrayid][cVRY],CarInfo[arrayid][cVRZ],-1,-1,-1,30,30); format(string, 100, "{%s}%s", CarInfo[arrayid][cVipnamecolor], CarInfo[arrayid][cVipname]); SetDynamicObjectMaterialText(vText[vehicleid], 0, string, 50, "Arial", CarInfo[arrayid][cVipSize], 1, 0xFFFFFFFF, 0, 1); new model = CarInfo[arrayid][cModel]; if(model == 411) { AttachDynamicObjectToVehicle(vText[vehicleid], vehicleid, 0.0, 0.0, 0.7, 0.0, 0.0, 0.0); // 1585 } else if(model == 560) { AttachDynamicObjectToVehicle(vText[vehicleid], vehicleid, 0.0, 0.0, 0.8, 0.0, 0.0, 0.0); // 1589 } else if(model == 541) { AttachDynamicObjectToVehicle(vText[vehicleid], vehicleid, 0.0, -0.2, 0.62, 0.0, 0.0, 0.0); //1593 } else if(model == 562) { AttachDynamicObjectToVehicle(vText[vehicleid], vehicleid, 0.0, -0.4, 0.75, 0.0, 0.0, 0.0); // 1597 } else if(model == 451) { AttachDynamicObjectToVehicle(vText[vehicleid], vehicleid, 0.0, -0.5, 0.55, 0.0, 0.0, 0.0); // 1601 } } return 1; }
    1 point
  26. Salut @VAurel, Tu ai creat variabila vText, care sa corespunda unui vehicul anume (exemplu: vText[vehicleid]). In liniile in care iti afiseaza erorile, nu ai trecut id-ul vehiculului pentru care ai creat acel obiect (vText), pe care vrei sa l atasezi. Corect ar fi in felul urmator: AttachDynamicObjectToVehicle(vText[vehicleid], vehicleid, 0.0, -0.5, 0.55, 0.0, 0.0, 0.0); // 1601 Daca nu ai inteles, verifica pe rand ce am adaugat eu in plus mai sus, cu o linie din codul tau, de unde porneste eroarea. Ti-am explicat cat mai simplu zic eu. Bafta.
    1 point
  27. 1 point
  28. new Float: VipPos[3], VipText; CMD:finalpos(playerid, params[]) { new str[128]; format(str, 128, "%f, %f, %f", VipPos[0], VipPos[1], VipPos[2]); SCM(playerid, -1, str); return 1; } CMD:xpos(playerid, params[]) { if(sscanf(params, "f", VipPos[0])) return 1; DestroyDynamicObject(VipText); VipText = CreateDynamicObject(19327, -2597.0762, -2638.4270, -5.3536, -87.6999, 90.4001, -87.1805); SetDynamicObjectMaterialText(VipText, 0, "Test", OBJECT_MATERIAL_SIZE_256x128, "Arial", 25, 1, -1, 0, 1); AttachDynamicObjectToVehicle(VipText, GetPlayerVehicleID(playerid), VipPos[0], VipPos[1], VipPos[2], 270.0, 0.0, 0.0); return 1; } CMD:ypos(playerid, params[]) { if(sscanf(params, "f", VipPos[1])) return 1; DestroyDynamicObject(VipText); VipText = CreateDynamicObject(19327, -2597.0762, -2638.4270, -5.3536, -87.6999, 90.4001, -87.1805); SetDynamicObjectMaterialText(VipText, 0, "Test", OBJECT_MATERIAL_SIZE_256x128, "Arial", 25, 1, -1, 0, 1); AttachDynamicObjectToVehicle(VipText, GetPlayerVehicleID(playerid), VipPos[0], VipPos[1], VipPos[2], 270.0, 0.0, 0.0); return 1; } CMD:zpos(playerid, params[]) { if(sscanf(params, "f", VipPos[2])) return 1; DestroyDynamicObject(VipText); VipText = CreateDynamicObject(19327, -2597.0762, -2638.4270, -5.3536, -87.6999, 90.4001, -87.1805); SetDynamicObjectMaterialText(VipText, 0, "Test", OBJECT_MATERIAL_SIZE_256x128, "Arial", 25, 1, -1, 0, 1); AttachDynamicObjectToVehicle(VipText, GetPlayerVehicleID(playerid), VipPos[0], VipPos[1], VipPos[2], 270.0, 0.0, 0.0); return 1; } pune asta in gamemode-ul tau
    1 point
  29. Faci un textdraw selectabil, ii activezi usebox, dupa te duci pe text size, sa nu fie aliniat pe centru ci pe left e mai ok
    1 point
  30. 1 point
  31. +1 e destul de ok pentru inceput!
    1 point
  32. Multumesc pentru idei, chiar unele foarte bune Am sa le aplic
    1 point
  33. Am incercat sa scot ce nu prea ajuta la nimic (dupa parerea mea) si sa lucrez mai mult sa nu se plictiseasca playerii Multumesc
    1 point
  34. +1 de la mine. Mai mult ai scos sisteme decat ai adaugat, dar fain, in orice caz!
    1 point
  35. Vand system de blackjack cum este pe b-hood pretul acestuia este de 20 euro prezentare:
    1 point
  36. 1 point
  37. 1 point
  38. Acum 1 an pe data de 21 iunie 2020 am inceput sa intru in lumea pawn-ului si ca tot a trecut 1 an de cand am inceput sa cunosc modalitatile unui gamemode mi-a dat ca rezultat ca l-a inceput aveam o dorinta cu ardoare sa fac sisteme dar nu stiam.Acum, cand le pot deduce aproape pe toate(Nu sunt Profesionist sunt anonim) nu imi m-ai da senzatia de a crea lucruri deoarece vazand in fiecare zii pe sa-mp.ro noi systeme si noi lucruri deja imi scade dorinta de a face ceva sau mai ales serverele care chiar pica.B-Zone Rpg2 (Nu reclama) pe care jucam in fiecare zii si era full a ajuns acuma sa aiba jucatori activi cat avea RSS acuma 3-4 ani :))).Deci ce pot sa spun, sper sa se deschida noul proiect open.mp sa putem ajunge la un loc unde nu mai suntem limitati si sa crestem numarul de jucatori care se joaca in prezent sa refacem sa-mp-ul vechi intr-unul nou.Sincer, chiar a fost o idee buna sa-mi fac cont pe aceasta comunitate deoarece aici am putut sa-mi exprim frustrarile, comentariile si systemele facute de mine( Daca mai apar pe forum :))), primele doua systeme pe care le-am pus sunt varza ).Pe scurt as vrea sa va multumesc pentru ajutorul acordat in topicuri pentru intelegeri si legaturi de prietenii. Va urez o zi frumoasa in continuare, servici usor (cei care lucreaza) si o duminica frumoasa, linistita si relaxanta!
    1 point
  39. Salut, dupa mult timp am intrat pe sa-mp.ro, am rasfoit putin din pura curiozitate sa vad ce mai e pe aici si ajungand la topicul "Generatia veche de scripteri", citind printre comentarii m a apucat un sentiment de nostalgie. Motivat de feelingul de moment am decis sa fac un topic in care aduc aportul meu pe acest subiect. Nu ma consider neaparat de generatie veche, am intrat in comunitate de cand era versiunea 0.3x a jocului SA-MP, deci nu am fost chiar de la inceput. Vreau sa va impartasesc din experienta mea, desi a trecut ceva timp de cand n am mai postat. My story Sunt activ din August 10, 2014, tin minte ca eram doar un pustan de 15 ani care a descoperit limbajul pawn si voia propriul server. La fel ca multi de aici veneam si postam "am problema x, please help". Am inceput cu schimbat culori, mutat comenzi dintr-un GM in altul pana am inceput sa scriu primele mele linii de cod. Atunci cand am decis sa imi fac propriul server am invatat o groaza despre scripting. Am inceput sa fiu mai activ, sa ajut lumea si sa devin din ce in ce mai bun. Am facut si ceva tutoriale, care pt mine erau folositoare la inceput pentru a incuraja dezvoltarea noilor scripteri, si am avansat aici pana am primit moderator. Ce m a fascinat? Desi jocul te limiteaza, reuseam sa creez chestii interesante, imi imaginam seara un sistem, iar a 2 a zi reuseam sa pun in practica. Ma simteam ca un mic "arhitect", puteam realiza o chestie in mai multe moduri iar asta ma atragea. Am inceput sa primesc si respect din partea voastra si asta ma bucura. Din momentul in care am facut primii mei 5 Euro credit Orange, am fost fascinat si am zis ca asta vreau sa fac de azi inainte. Cum m a ajutat SA-MP ul Am descoperit urmatoarea mea pasiune, programarea, fara SA-MP nu cred ca reuseam, cu siguranta nu sunt nici primul, nici ultimul care a folosit asta pe mai departe. Tin minte cand a venit @WopsS cu ideea de a face un GameMode intr-un dll, am fost fascinat, m am apucat alaturi de el (mai mult el decat eu), sa lucram la acel GM. Prima oara cand am descoperit C++ am ramas fascinat, desi credeam ca o sa fie foarte usor, aparent a fost foarte greu si n am reusit. Proiectul a fost abandonat , cu toate astea vreau sa ii multumesc pe aceasta cale lui @WopsS pentru ca a avut o contributie mare le parcursul meu profesional. Ii port foarte mult respect si apreciere. Desi n am fost liceu de info, am optat pentru facultatea de Automatica si calculatoare, si am ajuns sa lucrez acum ca .Net developer dupa foarte multa munca depusa. Perspective legate de comunitate Vad si acum oameni care vor sa isi faca servere si vor succes, am sa fiu sincer cu voi si sper sa ajute pe cineva perspectiva mea. Observ si acum topicuri "help please", dar daca in trecut imi crea o chestie deranj, poate pt ca aveam si o atitudine aroganta (tin minte ca atunci cand eram moderator inchideam topicuri doar pt ca nu respectau structura impusa de regulament, aveam "putere", experienta si respectul multora de aici, motiv pt care poate mi se urca putin la cap, chiar ceream +respect pentru ca in momentul ala imi luam validare din acele puncte de respect.), acum o privesc cu nostalgie si intelegere. Dorinta de a avea propriul server de sa-mp venea foarte mult din nevoia de respect si apreciere, pe care o puteam capata in mediul online, faptul ca puteam fii o "autoritate" imi mangaia orgoliul, Probabil asa este si pentru cei mai multi de aici care vor server de sa-mp, de aceea nu am cum sa ii judec, stiu ca printre ei sunt foarte multi copii care vor comunitate, vor sa dea lovitura, e ok dar ganditi va ca deja jocul are o vechime prea mare, nici cele mai populate servere nu mai au jucatorii de alta data. Pe de cealalta parte majoritatea nu vreti un loc unde sa va jucati, ci mai degraba vreti, cum am vrut si eu validare si un fals sentiment de "putere" si "control", daca era strict de placerea jocului, va jucati acolo unde se aduna toti. O alte observatie ar fi faptul ca jucatorii existenti au timp de investitie in anumite comunitati, de ce ar veni pe serverul vostru, nou, unde n au certitudinea ca o sa ramana in picioare si sa lase in spate luni de zile de joc intr-o comunitate, foarte greu ii atragi, mai ales ca ei trag acolo unde sunt foarte multi oameni, nu e vorba de sistemele noi pe care le are jocul ci de interactiunea cu alti jucatori, deci practic daca nu puteti atrage 100-200 jucatori din start, va irositi energia, pentru ca nu o sa mearga. Perspective legata de oamenii din comunitate Inca vad mici arogante pe aici, inca mai exista tepe si alte copilarii, inca mai sunt persoane care incearca sa copieze serverele cu foarte multi jucatori. Dragilor am sa va spun ceva trist dar adevarat, chiar daca ati avea acces la toate serverele cu cei mai multi jucatori(b-zone, bugged, nephrite, nu stiu daca mai sunt si altele), sa le combinati si sa creati un nou GM cu cele mai tari sisteme din fiecare server, nu va garanteaza nimeni ca veti avea succes. Sansele de succes sunt foarte mici, de ce? Pentru ca un jucator care a investit 1 2 3 luni intr-un server nu va veni la voi in comunitate doar pt ca aveti voi un server frumos. Pe el il intereseaza sa fie in comunitate cu multi jucatori in primul rand, in al 2 lea rand chiar daca voi sunteti 100% siguri ca o sa tineti comunitatea din banii proprii 2-3-5 ani in picioare, el nu stie asta, si foarte greu il atragi. Un nou jucator care intra acum in SA-mp pentru prima data ghiciti unde va merge? Acolo unde sunt alti jucatori, playerii la playeri vor trage mereu. Imaginati va ca aveti acces la toate fisierele si scripturile de la Instagram si faceti copia fidela, credeti ca se vor muta toti de pe instagram la voi pe platforma? De ce ar face asta? Asa e si cu serverele de SA-MP. Legat de comunitatea sa-mp.ro, ii datorez foarte multe, chiar daca nu mai activez, inca ma gandesc cu nostalgie la zilele cand intram mereu pe aici, cand vedeam mici certuri in staff, cand radeam impreuna cu ei cu @-=[Vyorel]=-, @NoNamed, @EquiNoxAdv, @Mafia., @Daedric-Fox , @kWn si @WopsS Erau si vremuri diferite, eram mai tineri toti, poate si putini aroganti unii dintre noi, citind o fraza "ne uitam ca la niste Dumnezei", vreau sa va spun ca nu eram nici pe departe nici unii dintre noi. Eram doar simpli oameni pasionati si atat, nimic special, dar incerca fiecare in stilul lui sa aduca un + de valoare pe aici cum si cand putea. Sfaturi pentru incepatori Nu cred ca sunt cel mai in masura sa dau sfaturi, ci mai degraba vreau sa aduc o perspectiva, perspectiva mea generala asupra procesului prin care am trecut, cum am reusit eu sa devin "bun", ce a fost necesar, etc. Daca totusi doriti sa continuati sa faceti scripting pt SA-MP si inca nu stiti exact "cu ce se mananca", am sa va spun cum am procedat eu. Apasati New si incercati sa scrieti voi de mana o variabila, un mesaj, o comanda, scrieti un SendClientMessage(playerid. -1, "Hello world"); intrati si testati, adaugati o culoare, creati o variabila si in functie de valoarea ei atribuiti va un jetpack, o arma, luati functiile in parte si vedeti cum se comporta, sa intelegeti ce face acea linie de cod, sa intelegeti ce e un parametru, un if, un for, un while. Ca si tutoriale, va recomand sa va uitati la cele pt C sau C++ de incepatori, sa intelegeti defapt ca fiecare linie de cod descrie un proces, voi dictati cum va fii procesul. Daca vreti sa va folositi de sa-mp pt a intelege mai bine defapt chestiile de logica, instructiuni, sa le folositi pentru a face poate programare, web design sau ce doriti voi, inainte de a crea un topic "please help" si sa puneti o chestie care va depaseste total, luati o baby steps, nu incercati sa faceti un house sistem daca voi nu stiti sa faceti o comanda /givemoney sau /jetpack. Luati o pas cu pas, sa ramaneti cu cate ceva, e mult mai facil daca faceti asta decat daca postati o problema dintr-un gamemode in care voi nu ati stii sa scrieti 1% din ce e acolo. Folositi in avantajul vostru, SA-MP va ofera o platforma in care scrii cod si practiv vezi in joc de se intampla, asa intelegi mai bine ce ai scris acolo, nu e o consola cum e cmd ul sau un terminal in care afiseaza valori, e un jucator, o harta si e totul dinamic. Folositi asta pentru a invata. Nu mai fiti aroganti cand invatati 2-3 chestii, nu e nimeni mai presus decat nimeni, diferenta intre mine si cineva nou care abia stie sa deschida un gamemode e faptul ca eu am dedicat atunci 2 3 4 ani de zile incercand sa inteleg ce e acolo,nu doar in SA-MP ci si in programare si in alte medii. Oricine care dedica atat poate deveni cel putin la fel de priceput, poate chiar muult mai priceput decat eram eu. Pentru a deveni bun in ceva trebuie sa dedici in primul rand timp si energie, asa ca luati o pas cu pas, nu sariti etape, intelegeti logica si dati va voie sa fiti creativi, sa va puneti imaginatia si sa faceti chestii de la simplu la complicat, daca incercati direct sa faceti ceva complicat nu o sa va iasa nici odata, o sa va frustrati si o sa spuneti "nu e pentru mine", doar pt ca ati incercat sa faceti o chestie care v ar fii depasit cu mult. Ganditi va ca sunteti prima zi intr-o sala de forta, n ati facut sport ani de zile si din prima zi vreti sa ridicati 100Kg si fara incalzire, suna absurd nu? Exact asta vor sa faca multi dintre voi. Legat de servicii scripting: As vrea sa va punctez aici niste observatii din experieta proprie. Nu mai ofer servicii scripting de mult, chiar daca inca mai e link la descrierea mea. De ce consider ca nu e rentabil deloc si nu si merita efortul? Simplu. Nimeni din cei vechi nu mai face asta pt ca odata cu varsta vine si nevoia individuala de bani. Am auzit reprosuri cum ca e prea "scump". Hai sa stabilim o chestie. Oricare dintre voi daca ati deveni buni sau foarte buni intr-un domeniu nu v ati vinde ieftin. In primul rand atunci cand achizitionezi "servicii scripting" tu nu cumperi doar acel sistem in sine(house, business, dealership, un job, christmass etc), cumperi timpul pe care l a investit omul respectiv pentru a invata sa faca acea chestie, 1, 2 ani poate, multi nervi, mult debug, multe linii de cod scrise, sterse, rescrise, poate omul respectiv a platit pe cineva sa il invete, poate a invatat de unul singur in timp si i a luat mult mai mult, nu cumperi doar sistemul in sine ci cumperi timpul lui, experienta lui, esecurile lui, expertiza lui, seriozitatea lui, toate acestea la pachet. Practic contracost ai acces la tot timpul pe care omul respectiv l a dedicat, poate chiar e vorba de anii. Nu mai trebuie sa depui si tu acelasi efort, ai acces instant. Cat despre opinia mea, de ce sa stau 4 5 zile pt un sistem care ar costa 15-20-25 Euro cand am un loc de munca care imi aduce mult mai mult intr-o zi de munca, decat in 5 6 zile bagate pentru un client, acel sistem necesita testat, verificat, scris, rescris, poate clientul se suceste si vrea altceva, SA-MP in sine are o multime de buguri, deci nu e asa simplu. Pe de alta parte, nimeni nu e dispus sa plateasca 20-30 RON pe ora pt un sistem. Nu sunt rautacios, nu am nimic personal cu nimeni, dar asta e realitatea, orice om ar prefera sa fie platit asa, decat sa stea 5 6 zile pe 20 Euro, mai sunt si clienti neseriosi care la final, nu achizitioneaza produsul, deci la final ai pierdut acel timp, motiv pentru care nu e rentabil. Daca va intrebati de ce pleaca cei vechi, e simplu, mai v am dat chiar acum raspunsul. Final Mi a luat ceva timp sa mi asez gandurile. Acest topic este un omagiu pe care il aduc acelor vremuri cand eram si eu super prins, la fel ca multi altii. Decat sa va pierdeti timpul incercand sa faceti un server de sa-mp care din start va esua, v ar manca timp si energie, poate si putin stres pe moment, nu se merita. Folositi banii si timpul acela pentru a investii in voi. Cititi poate o carte faina, faceti va cercuri sociale, iesiti la un suc cu prietenii, iesiti cu vro gagica pe undeva,daca nu faceti va rost de una . Cautati pasiuni faine, eu personal am reusit sa sar cu parasuta gratis de vro 3 ori(daca va ajuta informatia cautati la aeroclubul romaniei, daca ai sub 23 ani sari gratis), mi am luat parapanta + muulte alte chestii interesante, cercuri sociale, incercati si voi, o sa va aduca o satisfactie mult mai mare. Aveti grija de voi, energia si timpul vostru, traiti frumos si vreau sa va las cu gandurile acestea, daca reusesc prin mesajul meu sa pun un semn de intrebare unei persoane, inseamna ca nu a fost in zadar. In rest respect si ganduri bune pentru fiecare dintre voi.
    1 point
  40. Wow, de foarte mult timp nu am văzut un gamemode de tip Sunt, deoarece încet încet moare acest mod și nimeni nu mai lucrează la așa moduri, însă mă bucur că mai vâd postate așa moduri deoarece parcă îmi trezește o nostalgie de când eram mic și mă jucam doar pe serverele de Sunt. Pentru munca depusă din partea mea ai +1. Felicitările mele pentru munca depusă
    1 point
  41. Username: Allxseiggen Nume gamemode: Maldavski Republik Creator (sau editor): Allxseiggen Poze/Video în care prezinți modul de joc: - Mai jos Link Virustotal: - Mai jos Link download: - Mai jos Alte precizări: - Salutare comunitate, am sa incerc sa scriu cat mai putin asa ca sa-i dam bataie. - Am inceput lucrul la acest GM prin septembrie de la 0, si am lucrat cam 3-4 luni cu mari pauze. - Am decis sa-l postez deoarece nu mă mai regăsesc în sa-mp și credcă pot face lucruri mai bune. - GM-ul are cam toate sistemele dinamice, totul se poate editat direct din joc, nu este gata, mai este de lucrat. - Probleme: Nu tin minte sa aiba vo una. Niste poze cu GM-ul. - + multe altele. - Mult spor cu el, are niste sisteme gandite bine Download: [hide]https://www.mediafire.com/file/rxwmyz6f4vwq844/Maldavski+Republic+by+Emilian.rar/file[/hide]
    1 point
  42. Salut, astazi va ofer la download un gamemode 'burned' am decis sa il postez deoarece am inceput sa ma plictisesc de acest gamemode! Link Download: https://drive.google.com/file/d/12FcJ1nt0DQju-cn6FJUDfHkdUoAaABSz/view?usp=sharing Link VirusTotal:https://www.virustotal.com/gui/url-analysis/u-689691195d9d5d55f0fb323d2a8794bafd2e21a7d88ac1bfede173dac4fdd3e2-1618676329/detection Updates 1-Logo Schimbat, 2-Spawn Schimbat, 3-A fost adaugat un mapping la spawn, 4-Crates au fost mutate la spawn, 5-A fost adaugat un bar la spawn, 6- A fost adaugat Legendary Crate, 7-A fost adaugat Simple Crate. 8- Acum la bonus primesti 250.000.000$ level 3 si 15 premium points! 9-Acum poti face questul de paste doar odata pe zi! 10.Acum cand mori va aparea un td cu text-ul wasted si se va auzi acel sunt cand mori in gta v. 11.Acum nu mai poti lua neon din (/shop) ci din /gps - neon market respectiv /buyneon. 12.Schimbata locatia job-ului fisher. 13.Adaugat Mapping la job fish. 14.Mutat job trucker, 15 Adaugat un mic mapping la job trucker, 16.A fost adaugat delay de 40 secunde la /fish, 17.A fost adaugat un sistem de case opening, 18. Adaugata comanda /restartquest. 19. a fost mutat tot mappingu de la apartamente in systems .
    1 point
  43. Salut @TheSlim2 Nu am inteles exact intrebarea. Daca te referi strict la adaugarea unei locatii noi in /gps, vei face urmatorul lucru: In primul rand vei cauta comanda /gps in gamemode, folosind combinatia de taste CTRL+F, iar in casuta afisata vei scrie 'gps(' (cu tot cu paranteza). Primul rezultat ar trebui sa fie comanda, in cazul in care nu folosesti o alta comanda, avand /gps ca alternativa. (adica spre ex daca folosesti ycmd si ai comanda /locations iar ca alternativa /gps, pe romaneste). Te poti informa despre libraria YSI, mai exact despre YCMD cu un search pe internet. Si apropo, ar trebui sa cauti in romana, pentru ca daca vei cauta in engleza vei primi rezultate de pe site-ul oficial/global sa-mp, care este offline/inchis. Ma rog, detalii.., sa trecem peste. Comanda rezultata ar trebui sa arate in felul urmator: Pe ZCM => CMD:gps( playerid, params[] ) { ShowPlayerDialog( playerid, DIALOG_GPS, DIALOG_STYLE_LIST, "Locations", "Locatia 1\nLocatia 2\nLocatia 3", "Select", "Close" ); return true; } Pe YCMD => YCMD:gps( playerid, params[], help ) { ShowPlayerDialog( playerid, DIALOG_GPS, DIALOG_STYLE_LIST, "Locations", "Locatia 1\nLocatia 2\nLocatia 3", "Select", "Close" ); return true; } Dupa cum vezi, in codul de mai sus sunt trecute in functia 'ShowPlayerDialog' urmatoarele: Locatia 1, Locatia 2 si Locatia 3, care sunt delimitate pe un rand nou folosind "\n". (\n = insereaza un rand nou in lista, adica Locatia 2 apare sub Locatia 1 in dialogul afisat de comanda). Ce ne intereseaza in comanda este functia ShowPlayerDialog. Folosind exemplul meu, vei adauga o locatie noua, adaugand la sfarsitul sirului tau de locatii => \nNumele Locatiei Tale. Exemplu: ShowPlayerDialog( playerid, DIALOG_GPS, DIALOG_STYLE_LIST, "Locations", "Locatia 1\nLocatia 2\nLocatia 3\nNumele Locatiei Tale", "Select", "Close" ); Acum, locatia ta a fost adaugata in lista, in /gps. In continuare, va trebui sa setezi un checkpoint locatiei. Pentru asta, vei cauta in gamemode numele dialogului tau pentru locatii. Spre exemplu, numele dialogului meu, din exemplul de mai sus, este 'DIALOG_GPS'. Tu va trebui sa cauti numele dialogului tau, pe care il gasesti unde am ingrosat eu => ShowPlayerDialog( playerid, DIALOG_GPS, DIALOG_STYLE_LIST, "Locations", "Locatia 1\nLocatia 2\nLocatia 3\nNumele Locatiei Tale", "Select", "Close" ); Ca rezultat, vei avea ceva de genul: Pe switch => case DIALOG_GPS: { if( !response ) return true; switch( listitem ) { case 0: SetPlayerCheckpoint( playerid, 2459.7097, 1324.9181, 10.8203, 5.0 ); // Locatia 1 case 1: SetPlayerCheckpoint( playerid, 1090.2291,1074.8134,10.8359, 5.0 ); // Locatia 2 case 2: SetPlayerCheckpoint( playerid, 1099.5839,1601.5763,12.5469, 5.0 ); // Locatia 3 } } Default => if( dialogid == DIALOG_GPS ) { if( !response ) return true; if( listitem == 0 ) SetPlayerCheckpoint( playerid, 2459.7097, 1324.9181, 10.8203, 5.0 ); // Locatia 1 else if( listitem == 1 ) SetPlayerCheckpoint( playerid, 1090.2291,1074.8134,10.8359, 5.0 ); // Locatia 2 else if( listitem == 2 ) SetPlayerCheckpoint( playerid, 1099.5839,1601.5763,12.5469, 5.0 ); // Locatia 3 } Dupa cum vezi, sunt 3 locatii, ca in exemplul meu. Pentru a adauga checkpointul, tu va trebui sa adaugi un rand nou, in functie de modul in care ai tu organizate locatiile, folosind exemplul meu. In exemplul urmator o sa ma folosesc de switch, adica primul exemplu pe care ti l-am dat mai sus, si voi adauga un checkpoint nou pentru noua locatie adaugata. Deci, voi adauga: case 3: SetPlayerCheckpoint( playerid, 2459.7097, 1324.9181, 10.8203, 5.0 ); // Noua locatie adaugata Aici trebuie sa fii atent la 2 lucruri foarte importante: Va trebui sa cresti numarul locatiei cu 1 (+1), spre exemplu, numarul ultimei mele locatii (din exemplu) a fost 2, deci am adaugat 3 (case 3: ..bla bla bla). Lafel se procedeaza si in al 2-lea exemplu pe care ti l-am dat, doar ca de data asta va trebui sa adaugi si 'else' inainte de if, care pe romaneste inseamna ('sau daca'), rezultatul fiind => else if( listitem == 3 ) SetPlayerCheckpoint.. etc. Pentru ca probabil, tu in dialogul tau vei gasi variabile precum 'CP[playerid] = Un Numar' sau 'Checkpoint[playerid] = Un Numar', spre exemplu: case 0: { SetPlayerCheckpoint( playerid, 2459.7097, 1324.9181, 10.8203, 5.0 ); CP[ playerid ] = 1; } sau => switch( dialogid ) { case 0: bla bla bla case 1: bla bla bla case 2: bla bla bla case 3: bla bla bla } CP[ playerid ] = 1; [...] In cazul in care te regasesti in primul exemplu, va trebui sa adaugi si acea variabila, cum il ai in celelalte dialoguri, sau in exemplul pe care ti l-am oferit. Ok, acum mai ai un singur lucru de facut, va trebui sa introduci coordonatele checkpointului tau, pentru noua locatie. Pentru a face asta, foloseste comanda /save in locul in care vrei sa apara checkpointul, dupa care, navigeaza in pc-ul tau pana in folderul Decuments -> Gta San Andreas User Files -> SAMP, in care vei gasi un fisier tip Note (.txt) cu numele saved-possitions sau ceva de genul, nu mai stiu exact. Il vei deschide, iar ultimul rand din lista va fi noua ta locatie va fi ceva de genul => AddPlayerClass(un numar (care simbolizeaza skinul tau), coordonata_1, coordonata_2, coordonata_3, etc etc. Ce ne intereseaza pe noi sunt coordonatele 1, 2 si 3. Le vei copia, cu tot cu virgula dintre ele (doar cele dintre coordonate, nu si dinainte sau de dupa) si le vei inlocui cu coordonatele din ultima ta locatie, cea adaugata de tine in gamemode, la dialogul tau, dupa exemplul urmator: Vei adauga coordonatele cum am eu exemplul mai jos SetPlayerCheckpoint(playerid, coordonata_1, coordonata_2, coordonata_3, Cat_de_mare_sa_fie_cercul); In loc de coordonata 1, 2 si 3, vei adauga coordonatele pe care le-ai copiat din fisierul pe care ti-am spus sa-l cauti mai sus. Exemplu: SetPlayerCheckpoint(playerid, 2459.7097, 1324.9181, 10.8203, 5.0); In loc de 'Cat_de_mare_sa_fie_cercul', poti pune 5.0, 10.0, 7.0 (e doar un exemplu). Asta reprezinta cat de mare sa fie acel cerc rosu, care reprezinta checkpointul. Deci cat de mare sa fie raza checkpointului. Cam asta e. Am incercat sa-ti raspund cat mai detaliat si mai clar. Desi nu ma pot numi un profesor, sper sa intelegi ceva. Oricum, te mai poti lua si dupa exemplele din gamemodeul tau sau din alte gamemodeuri. In cazul in care ai vrut toata comanda, cu ce ti-am dat mai sus iti poti face singur comanda daca ai ZCMD sau YCMD ca procesor de comenzi.
    1 point
  44. Baza de date nu este conectata cum trebuie. Pentru mai multe detalii intra in mysql_log.txt.
    1 point
  45. un mod de joc nu trebuie doar sa aiba cele mai optime functii care exista, cuvantul optim, inseamna alegeeea celei mai bune metode dintre mai multe posibilitati, dar ca un mod de joc sa fie optim trebui sa fie si bine aranjat, sa nu faci string.uri inutile, sa lucrezi cat mai ordonat, sa nu folosesti stock.urile si functiile aiurea, sa nu faci mii de timere, sa nu folosesti prea mult public OnPlayerUpdate, si tot asa, optimizarea vine din parti mic , adica un pic de colo un pic de dincolo, se aduna, degeaba va certati voi ca GVar, Pvar si nu stiu ce e mai rapid decat o variabila normala, astea sunt niste cacaturi, optimizarea vine din lucrurile din care probabil nici nu realizati ca le faceti. Si pana la urma ce atata tam-tam ca a cui este gm.ul mai optim, fiecare sa.si vada de treaba lui, de optimizarea lui si de modul lui de joc. De-asta nu avem succes cu serverele ca stam sa ne uitam in curu' bugged.ului sa vedem daca e mai optim ca al nostru..
    1 point
  46. foreach() e tot un loop bazat pe for(;;). Timpul de executie e identic in cazul in care ambele au acelasi numar de iteme prin care trebuie sa treaca. Spre exemplu, daca ai 500 / 500 jucatori conectati, timpul de procesare va fi acelasi in ambele situatii (exceptand in cazul in care folosesti si functia IsPlayerConnected(playerid) intr-un loop normal, atunci foreach devine mai rapid deoarece acea verificare lipseste, validarea jucatorului facandu-se la conectarea / deconectarea sa in foreach). Totusi, ca exemplu, sa zicem ca sunt 500 / 500 de jucatori conectati si nu exista niciun call suplimentar la o alta functie in cazul unui loop in detrimentul celeilalte: new l, x = GetPlayerPoolSize(); for(l = 0; l != x; l++) //etc. foreach(Player, i) // etc. Astfel, timpul ar trebui sa fie acelasi. Foreach e mai rapid in anumite situatii, nu in toate. Exista situatii precum cea din exemplul de mai sus, care cred ca e si singura situatia :)), in care timpul de procesare va fi acelasi in cazul ambelor abordari. Chestiile care fac lag pe un server (pe langa cele deja mentionate mai sus de ceilalti) sunt in general: 1. Codul inutil din functii si comenzi (gen IsPlayerConnected(playerid) intr-o comanda... obicei stupid preluat de prin GF-uri... un jucator neconectat nu va putea folosi o comanda...) si nu numai... exemple sunt numeroase, asta mi-a venit prima in minte deoarece o vad extrem de des in 99% din scripturile RP. 2. Proasta optimizare a unor functii apelate des, gen: -> OnPlayerUpdate(playerid) - prefer sa nici nu folosesc functia asta in scripturile mele pentru ca exista zeci de abordari mult mai eficiente. Functia e apelata la fiecare update al unui jucator, adica extrem de des intr-o singura secunda... daca ai un numar foarte mare de jucatori si ceva cod in ea... server-ul o sa ajunga sa nu mai proceseze mare lucru. -> OnPlayerKeyStateChange(playerid, newkeys, oldkeys) - si asta e o functie des apelata. Cea mai ok abordare aici mi se pare aceea in care verifici ce key a fost apasat mai intai, iar abia apoi verifici alte variabile si rulezi restul codului ce ar trebui executat in functie de tasta apasata, dupa returnezi (return 0/1;) o valoare pentru a oprii celelalte verificari, care oricum vor fi reluate cand jucatorul apasa din nou o tasta... -> OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ) - functia asta e destul de des apelata. Cea mai ok abordare pentru mine e de-a verifica arma cu care jucatorul trage printr-un switch(weaponid) deoarece sunt anumite arme pe care nu am nevoie sa le detectez. In functie de arma cu care trage jucatorul, rulez restul verificarilor si codului... altfel, trec peste (default: return 1;). 3. Folosirea variabilelor si/sau a unor array-uri in detrimentul chiar si a functiilor native. Nu o sa exemplific exact cum, dar in majoritatea cazurilor, e mai ok sa stochezi intr-o variabila ce returneaza o functie precum GetPlayerVehicleID(playerid) si sa folosesti variabila in detrimentul functiei daca oricum codul acela s-ar repeta de o groaza de ori. Asta deoarece: Viteza de procesare in cazul unui server de SA-MP e urmatoarea (ordinea e de la cea mai rapida la cea mai inceata): -> 1. Nothing -> 2. Constants -> 3. Variables -> 4. Arrays -> 5. Native functions ->6. Custom functions -> 7. Remote functions 4. Evitarea folosirii unor functii custom in cazul in care nu vei folosii acea functie decat o singura data. 5. Folosirea unor timere si loops atunci cand poti face altfel, fara ele. Exista metode foarte simple prin care poti evita folosirea unor timere, si chiar a unor loops. In script-ul meu nu ma folosesc de niciun loop la intrarea intr-o casa/afacere/gang house sau la schimbarea hostname-ului in mod aleator. Tot ce folosesc e mysql si trei variabile. 6. Multe altele, dar ma opresc aici :)). Pawn e single threaded, ceea ce inseamna ca si server-ul de SA-MP e tot single threaded. O aplicatie single-threaded ruleaza codul in ordinea in care e accesat. Asta inseamna ca in cazul in care sunt accesate de server functiile: GetPlayerPos(...), TeleportPlayer(...) si comanda /ban, prima functie procesata va fi GetPlayerPos(...) iar abia apoi celelalte doua si tot asa... daca intr-una dintre functii exista foarte mult cod care mai e si prost optimizat, atunci poate aparea lag-ul, deoarece server-ul trebuie sa astepte pana ce functia aceea este executata complet, pentru a putea continua sa proceseze restul actiunilor precum update-urile trimise de jucatori. Sunt multe exemple si sfaturi ce ti le pot da din experienta. Iti vei da seama insa in timp pe masura ce inaintezi cum ruleaza codul... care sunt abordarile cele mai ok si asa mai departe... totul depinde de la caz la caz... de la script la script... fiecare e script e diferit si are nevoie de abordari diferite pentru a fi eficient.
    1 point
  47. Nu, nu imi vine sa cred ma WopsS, mai lasat cu gura cascata. Daca scria oricine altcineva nu ma miram si nu ma entuziasmam, dar findca e de la tine, nu imi vine sa cred ca dupa atata timp, te lasa inima sa postezi si tu asa ceva
    1 point
  48. runix si nicusor voi chiar vreti ban pe forumul asta? terminati cu laudele de mari scripteri cand voi nu stiti ce e ala un callback
    1 point
This leaderboard is set to Bucharest/GMT+03:00


×
×
  • 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.