Jump to content

Banditul

Moderator
  • Posts

    1,134
  • Joined

  • Last visited

  • Days Won

    96

Everything posted by Banditul

  1. GetVehNumber(playerid) { new nr = 0; for(new i = 0; i < MAX_VEHICLES; i++) if((!strcmp(CarInfo[i][cOwner], GetName(playerid))) && (!CarInfo[i][cType])) nr++; return nr; } Sunt fara idei daca asa nu merge. Avand in vedere ca enum-ul tau de CarInfo incepe de la 0 pana la MAX_VEHICLES(presupun ca ai 2000 sau MAX_VEHICLES la enum) Functia asta e singura problema , pentru ca de incarcat din cate ziceai se incarca....
  2. Nu asa functioneaza un enum.....Si for ala.... GetVehNumber(playerid) { new nr = 0; for(new i = 1; i <= Total_Veh_Created; i++) if(strmatch(CarInfo[i][cOwner], GetName(playerid)) && !CarInfo[i][cType]) nr++; return nr; } Asa ar fi sugestia mea, presupunand ca Total_Veh_Created e variabila globala si retine numarul de vehicule incarcate din baza de date(nu sunt sigur daca va merge) Cand iei date dintr-un enum , trebuie sa specifici 2 parametri nu 1, 1 e id la care faci referire si al doilea e propietate pe care vrei sa o acesezi
  3. Pe langa faptul ca functia LoadPlayerCar() Nu este public , presupun ca folosesti mysql_tquery (http://wiki.sa-mp.com/wiki/MySQL/R40#mysql_tquery) specifica faptul ca functia pe care vrei sa o folosesti ca callback trebuie sa fie public si cu forward inainte de a fi folosita... Poate arati GetVehNumber(playerid) sa vedem cum e si in ce conditi intoarce 1 si nu 0?
  4. https://pastebin.com/cQXUJrnm if(vehicleid == FastTCars[0] || (vehicleid == FastTCars[1] || (vehicleid == FastTCars[2] || (vehicleid == FastTCars[3] || (vehicleid == FastTCars[4] || (vehicleid == FastTCars[5] || (vehicleid == FastTCars[6] || (vehicleid == FastTCars[7] ||) Nu pui paranteza langa fiecare vehicleid, ori pui la inceput/sfaritul if-ului ori pui fiecare vehicleid == FastTCars[] in paranteza. De asta nu are suficienta memorie
  5. Nu o poti scoate pentru ca e limita unui integer pe 32 bit , n-ai csf. Te poti gandi doar la o modalitate de a trece pe langa , si o parte din ele le-am mentionat....Daca gasesti tu alte posibilitati....Dar nu , nu poti sparge acea limita, doar daca se va face sa-mp pentru 64 bit(nu se va intampla ) sau face Kalcor un long long integer precum e in acel include....
  6. Tu ai scanat URL nu fisierele https://www.virustotal.com/#/file/9cd468639f1c90ce1428fe53e28eea6f4ecb38259a7c8c85e84e1fe97208bdc9/detection Conform asta sunt virusi in acea arhiva(presupun ca din cazua executabilelor sau/si DLL)
  7. Poti incerca sa folosesti acest includ: http://forum.sa-mp.com/showthread.php?t=598933 (nu stiu cum functioneaza sau daca functioneaza) Sau ai putea avea mai multe variabile si cand una ajunge la o anumita suma sa fie folosita cealalta etc etc Sau http://forum.sa-mp.com/showthread.php?t=37299 Sau http://forum.sa-mp.com/showpost.php?p=3685240&postcount=13 Sunt foarte multe posibilitati , trebuie doar sa te gandesti. Sa gandesti logic
  8. Pai cel mai usor e sa verifici variabila de login (gen IsLogged sau stiu eu) care se seteaza pe 1 dupa ce te-ai logat cu parola si pui verificare la OnPlayerCommandPerformed sau OnPlayerCommandReceived si daca e 0 faci un return 0 sau return cu mesaj ca nu e logat Asta mi se pare cel mai logic si normal. Dar presupun ca mai sunt si alte modalitati
  9. Evident ca nu, e ca si masina fara rezervor. Tu poti sa bagi, da nu se stocheaza.... Edit: Desigur, daca schimbi modalitate de salvare/incarcare date pe y_ini sau mai stiu eu, atunci merge si fara baza de date
  10. Banditul

    Problema

    Se vede clar ce nu e bine. Nu ii se incarca mysql plugin *facepalm* Evenrual descarca-l iar si incearca sau instaleaza visual c++ 2015 ,2013 si 2010
  11. Banditul

    Ajutor

    Scuze de raspunsul intarziat. Am skype, da nu-l mai folosesc de 2 luni. Discord: Banditul#1549
  12. Poti folosi #pragma dynamic <un numar de mii(50000)> (asta nu e rezolvarea, e doar o metoda de a ocoli) Incearca sa folosesti ultima versiune de crashdetect si mysql r39-6 (https://github.com/Zeex/samp-plugin-crashdetect/releases https://github.com/pBlueG/SA-MP-MySQL/releases/tag/R39-6 ) Incearca inainte sa pui pragma dynamic. Si as recomanda sa compilezi gm cu -d3 pentru a vedea exact sursa erori (https://github.com/Zeex/samp-plugin-crashdetect/wiki/Compiling-scripts-with-debug-info) Si daca nu folosesti intentionat YSI recomand sa-l stergi din include , nu are rost sa-l ti atat timp cat tu stii ca nu-l folosesti...
  13. Banditul

    Ajutor

    Nu stiu de ce ai avea nevoie de de acel timer care iti spune cat e ceasu dar.... Poate sa o faca in multe feluri, probabil ceva ascuns pe acolo.....Si daca te referi la antisqlinjection cu chestia aia de verifica caracterele din inputtext e inutila dupa mine, la fel de bine te poti asigura ca nu primesti sqlinjection prin folosirea %e in loc de %e in mysql_format (asta daca folosesti mysql_format pentru a scrie query) Un mod la care ma gandesc eu sa vezi ce face, este sa faci un printf la cele mai comune publice , gen OnDialogResponse etc etc si in acel printf sa afisezi numele , id dialog(sau ma rog, cmd etc etc depinde de functie) Asta e un mod prin care poti vedea ce face mai exact ca sa pice serverul(un fel de tracking)
  14. Hmm interesant. Pune si include-ul proaspat descarcat odata cu pluginul si punel in includes si dai recompile....Pentru ca in poza a doua spune ca versiunea de plugin nu e aceasi cu include https://github.com/urShadow/Pawn.CMD/releases Daca ai facut ce ti-am spus, atunci scuza-ma dar chiar nu am idee. Pentru ca eu unul nu vad alta rezolvare...
  15. Descarca pawn.cmd si pune-l la plugins si in server.cfg
  16. Nu zic ca e evident dar iti zice foarte clar ce sa faci.... Deschizi include mSelection si cauti cauti "ms_total_lists" si cresti valoarea cu zece sau ma rog sau reduci din listele pe care le ai....
  17. Si ce e in neregula cu faptul ca compilatorul iti spune versiunea , firma producatoare si anu de dezvoltare? E perfect normal sa apara aia...
  18. La final nu are nici un sens sau folosinta, de fapt nici nu trebuie sa atribui nimic pentru ca e o valoare pasata de la callback deci daca ii atribui ceva te autodistrugi. Deci mai bine sterge-l
  19. Pentru ca daca se sinucide, id-u de la killer e invalid deci acea verificare e inutila acolo
  20. In primul rand fa un printf si vezi daca este chematOnPlayerDeath in cazu asta. Daca este , dai ClearAninations si pune SetPlayerHealth(playerid, -1.0)
  21. Multumesc :3 Voiam sa fac mai multe la gm idei multe dar lipsa de timp....Sper sa-i fie cuiva de folos.
  22. A venit timpul sa ma despart pe bune de acest gamemode la care am editat o mare parte din timp si care a rulat o perioada de timp..... Gamemode original: http://forum.sa-mp.com/showthread.php?t=196493 Nu prea ar fi multe de spus despre acest gamemode , dar voi icnerca sa fac o mica descriere: Fata de gm original gm acesta ruleaza pe mysql r41-3 pentru ca modalitatea de salvarea a conturilor era inceata si se buguia am decis sa sa ii fac un update la mysql. Au fost scoase masinile de la spawn, fiind inlocuite cu masini de munca pe care le primesti la tastarea comenzi /getworkcar astfel incat sa reduc lag-ul provocat... Contine sistem de level , primesti o suma random de exp dupa fiecare work incheiat (creste odata cu levelul) Foloseste smartCMD inloc de zmcd nu pentru ca ar fi mai rpaid sau mai stiu eu ce , dar are anumite functionalitati interesante( http://forum.sa-mp.com/showthread.php?p=3786819 ) Nu va asteptati sa gasiti totul intr-un singur fisier pwn, pentru ca gm-ul a fost scris in stil modular Nu prea stiu ce sa mai spun. Descoperiti voi daca vreti.... Poze:
  23. format(string,sizeof(string) , "[%s]%s", tag, name); if(strcmp(ClanInfo[clanid][cClanTag], "NULL", false) == 0){ strdel(string, 0, sizeof(tag)+1); SetPlayerName(playerid, string); } else{ SetPlayerName(playerid, PlayerInfo[playerid][pNormalName]); } Presupunand faptul ca tag-ul e primul si cacontine paranteze Daca nu contine paranteze, poti tsegre acel +1 de la strdel si va sterge exact tag-ul Da e foarte interesant , pentru ca varianta de mai sus trebuiasa mearga avand in vedere ca presupun ca in ClanTag e stocat NULL
  24. Nu vad unde setezi numele cu tag, dar am incercat sa fac ceva sa nu-ti mai seteze NULL for(new clanid; clanid < MAX_CLANS; clanid++){ if(strcmp(ClanInfo[clanid][cClanTag], "NULL", false) == 0){ SetPlayerName(playerid, PlayerInfo[playerid][pNormalName]); } else{ SetPlayerName(playerid, /*Numele cu tag*/); } } Asta ar fi idea de baza , sa verifici daca ce se afla acolo e NULL si daca nu e sa-i setezi tag-ul Edit: if(strcmp(ClanInfo[PlayerInfo[playerid][pMember]][cClanTag], "NULL", false) == 0){ SetPlayerName(playerid, PlayerInfo[playerid][pNormalName]); } else{ SetPlayerName(playerid, /*Numele cu tag*/); } Foloseste al doilea cod daca id-ul clanului este acelasi cu id-ul stocat in pMember. Adica mai pe scurt, daca id-urile clanurilor incep de la 1 si in pMember este stocat 1 pentru primul clan(s.a.m.d.)
  25. new str[180]; mysql_format(SQL,str,sizeof(str),"UPDATE users SET CarLic = 1,CarLicT = 10,GunLic = 1,GunLicT = 10,FlyLic = 1,FlyLicT = 10,BoatLic = 1,BoatLicT = 10 WHERE name = '%e'",PlayerInfo[i][pNormalName]); mysql_tquery(SQL,str,"",""); Lungimea la str nu era destul de mare sa suporte 148 caractere(fara numele juatorului care e 24) Se se observa faptul ca nu ti-a mai scris nimic dupa ' , si asa iti dai seamna de faptul ca nu poate "scrie" tot
×
×
  • 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.