Jump to content

Matt

VIP
  • Posts

    555
  • Joined

  • Last visited

  • Days Won

    13

Everything posted by Matt

  1. Arata-ne codul cand iti apare dialogul de register.
  2. Pana la 3500 de la 100 mai e O_o
  3. https://github.com/pBlueG/SA-MP-MySQL/releases Nu era greu sa cauti si tu pe google..
  4. cand imi cereai ajutorul pe privat nu mai faceai din astea. Nu e frumos sa musti mana care te hraneste. @Leonard si a facut aparitia pokemonul asta iar O_O
  5. Arata functia OnPlayerTakeDamage sau OnPlayerGiveDamage
  6. Puteti sa nu va mai certati la mine pe topic? ????
  7. Momentan n-am nimic de vanzare, te anunt daca apare cv
  8. Fara cod nu te putem ajuta, arata-ne functia Timers().
  9. Versiunea de SQL cu care ai compilat nu corespunde cu cea pe care o folosesti ca si plugin.
  10. Ce am facut mai sus e doar un mic aspect asupra query urilor de care nu toata lumea tine cont dar care produce mult lag si dupa se intreaba de ce nu au ticks, am si spus "mic tutorial"..
  11. Din functia "givePlayerAward" ai: PlayerInfo[playerid][pExp] = amount; Care ar fi trebuit sa fie: PlayerInfo[playerid][pExp] += amount;
  12. Mna, eu le-am dat un truc de optimizare doar nu o sa le zic tot acum ????
  13. Helau. Bun, cu totii stim ce este optimizarea si in ce consta. Totusi, codul facut ca si 'drumul ce mai scurt' nu este toata optimizarea. Query-urile SQL au nevoie de un timp pana sa fie terminate si daca nu le distribuiti bine in cod o sa aveti Tick Drops. Acele Tick Drops apar cand server-ul asteapta ca acel query executat de voi sa fie completat. Astazi vreau sa va explic cateva trucuri prin care nu o sa aveti probleme. Pentru inceput, avem exemplul: mysql_format(SQL, query, "UPDATE `users` SET `Money`=%d WHERE `ID`=%d", PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pSQLID]); mysql_query(SQL, query); Sa zicem ca vrem sa punem acest query intr-un timer de 1 secunda. Dupa fiecare secunda server-ul va astepta ca acest query sa fie executat, dar pe noi nu ne intereseaza asta, asa ca server-ul va astepta practic degeaba in fiecare secunda ca acest query sa fie terminat . De asta trebuie sa facem acest query threaded. mysql_format(SQL, query, "UPDATE `users` SET `Money`=%d WHERE `ID`=%d", PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pSQLID]); mysql_tquery(SQL, query, "", ""); Bun, care e diferenta dintre un query threaded si unul normal: Pai, query-ul normal pune in asteptare script-ul server-ului, in timp ce query-ul threaded se executa separat. Practic, nu deranjeaza server-ul sa zic asa. Printr-un desen sper sa intelegeti mai bine: https://imgur.com/gSr89YQ La stanga avem query-uri non-threaded iar la dreapta avem query threaded. Query-urile non-threaded sunt necesare doar cand ai un query de la care astepti un raspuns, cum ar fi: mysql_format(SQL, query, "SELECT * FROM `users` WHERE `Admin` != 0"); mysql_query(SQL, query); // deoarece avem nevoie de randurile rezultate pentru a fi prelucrate for(new i, j = cache_get_row_count(); i != j; i++) { new name[MAX_PLAYER_NAME]; cache_get_field_content(i, "Name", name); SendClientMessage(playerid, -1, name); } Sau putem sa facem o metoda mai optimizata folosind query threaded: mysql_format(SQL, query, "SELECT * FROM `users` WHERE `Admin` != 0"); mysql_tquery(SQL, query, "ShowAdmins", "d", playerid); // sa zicem ca am bagat acest query intr-o comanda, playerid = jucatorul care a folosit comanda . . . forward ShowAdmins(playerid); public ShowAdmins(playerid) { for(new i, j = cache_get_row_count(); i != j; i++) { new name[MAX_PLAYER_NAME]; cache_get_field_content(i, "Name", name); SendClientMessage(playerid, -1, name); } return 1; } Astfel, server-ul nu va fi deranjat iar adminii nostri se vor afisa dupa aprox. cateva milisecunde mai tarziu. (aproape ca nici nu se observa diferenta) Daca am gresit cu ceva astept sa ma corectati si sper ca v-a prins bine acest mic tutorial.
  14. Ar trebui sa ai o functie MP_OPC in gm care are un loop care depaseste limita unui vector. Arata-ne functia
  15. LoadProperty(); LoadSVehicles(); LoadClans(); LoadGraffiti(); LoadBizz(); LoadStuff(); LoadTurfs(); LoadFactions(); LoadPickups(); LoadLabels(); load_apartaments(); load_ap_map(); /*LoadTrainings();*/ LoadSystems(); LoadJobs(); LoadFurnitures(); LoadSafeZones(); Una din functiile astea are o problema in genul celor pe care ti le-am zis mai sus.
×
×
  • Create New...