Jump to content

Banditul

Moderator
  • Posts

    1,134
  • Joined

  • Last visited

  • Days Won

    96

Everything posted by Banditul

  1. Inseamna ca nu ai playerprogress.inc in folderul pawno>include Il poti descarca de aici eventual: https://github.com/Southclaws/samp-progress
  2. Pentru ca exista o sansa intr-o mie ca editorul cu care ai deschis si salvat fisierul systems.inc sa fi adaugat ceva suplimentar formatului pe care noi nu putem sa il vedem si sa nu ii placa compilatorului (sursa https://forums.alliedmods.net/showthread.php?t=304895 ) La altceva nu ma pot gandi pentru ca codul este pur si simplu "curat" si nu vad absolut nici o eroare evidenta sau ceva. Eventual ma gandesc ca ai putea deschide fisierul systems.inc direct cu pawno, sa salvezi folosind pawno si dupa sa iti deschizi gm si sa il compilezi
  3. Ok. Codul este bun, atat timp cat constantele ca pCashx etc sunt definite. Pare in regula. O intrebare, cu ce editezi systems.inc? Cu notepad? Pawno?
  4. Orice #include nu se pune in OnGameModeInit ci la inceputul scriptului, de obicei langa alte #include (de preferabil daca este ceva custom ca si systems atunci trebui pus la captul acestei liste). Sterge din OnGameModeInit si pune-l unde trebuie si trimite erorile pe care le primesti cand incluzi systems in mod corect
  5. Da si la urmatorul dialog la fel, lipseste inchiderea de la switch. Daca folosesti pawno ti-as recomanda alt text editor cum ar fi sublime text 3 sau visual studio code pentru in aceste editoare lipsa unei acolade e mai usor de vazut/indentificat
  6. #include <systems> Asta se afla cumva in OnGameModeInit? Pentru ca nu acolo se pun include-uri. Eventual pune #include <systems> dupa restul include-urilor (adica dupa toate acele a_samp etc)
  7. Iti lipseste o acolada care inchide switch case DIALOG_SHOP_TREASURE: { new szDialog[1100]; if(!response) { InShop[playerid] = 0; return 1; } listitem --; switch(listitem) { case -1: { strcat(szDialog, "Pentru mai multe detalii [/help --> Treasure]"); } case 0: { format(szDialog, sizeof(szDialog), "Esti sigur ca vrei sa-ti achizitionezi un cont premium?\nPentru asta, ai nevoie de 800 Treasure Points.\n\n\ Avantaje:\n-Interes 0.2 la payday\n- 2 RP-uri o data la 5 ore\n- Poti avea 5 masini personale in total\n\ - numarul (/carplate) o sa fie de culoare portocalie.\n- acces la comanda /pcolor.\n- Poti pune pana la 100 obiecte in casa."); SetPVarInt(playerid, "TreasurePoints", 800); } case 1: { format(szDialog, sizeof(szDialog), "Esti sigur ca vrei sa-ti stergi 10 FP-uri?\nPentru asta, ai nevoie de 150 Treasure Points."); SetPVarInt(playerid, "TreasurePoints", 150); } case 2: { format(szDialog, sizeof(szDialog), "Esti sigur ca vrei sa-ti schimbi numele?\nPentru asta, ai nevoie de 200 Treasure Points. "); SetPVarInt(playerid, "TreasurePoints", 200); } case 3: { format(szDialog, sizeof(szDialog), "Esti sigur ca vrei sa-ti stergi un warn?\nPentru asta, ai nevoie de 350 Treasure Points."); SetPVarInt(playerid, "TreasurePoints", 350); } case 4: { format(szDialog, sizeof(szDialog), "Esti sigur ca vrei sa-ti achizitionezi un MP3?\nPentru asta, ai nevoie de 120 Treasure Points."); SetPVarInt(playerid, "TreasurePoints", 120); } case 5: { format(szDialog, sizeof(szDialog), "Esti sigur ca vrei sa-ti achizitionezi un Rare Voucher?\nPentru asta, ai nevoie de 500 Treasure Points."); SetPVarInt(playerid, "TreasurePoints", 500); } case 6: { format(szDialog, sizeof(szDialog), "Esti sigur ca vrei sa-ti achizitionezi un iPhone?\nPentru asta, ai nevoie de 170 Treasure Points.\n\n\ Avantaje:\n- Numar format din 4 cifre\n- Texte modificate la /call respectiv /sms\n- Acces la comanda /reply (/re)."); SetPVarInt(playerid, "TreasurePoints", 170); } SelectedItem[playerid] = listitem; ShowPlayerDialog(playerid, DIALOG_SHOP_TREASURE1, DIALOG_STYLE_MSGBOX, "Treasure Shop:", szDialog, "Ok", "Back"); } // Switch tau se termina aici ceea ce e gresit Varianta corecta e case DIALOG_SHOP_TREASURE: { new szDialog[1100]; if(!response) { InShop[playerid] = 0; return 1; } listitem --; switch(listitem) { case -1: { strcat(szDialog, "Pentru mai multe detalii [/help --> Treasure]"); } case 0: { format(szDialog, sizeof(szDialog), "Esti sigur ca vrei sa-ti achizitionezi un cont premium?\nPentru asta, ai nevoie de 800 Treasure Points.\n\n\ Avantaje:\n-Interes 0.2 la payday\n- 2 RP-uri o data la 5 ore\n- Poti avea 5 masini personale in total\n\ - numarul (/carplate) o sa fie de culoare portocalie.\n- acces la comanda /pcolor.\n- Poti pune pana la 100 obiecte in casa."); SetPVarInt(playerid, "TreasurePoints", 800); } case 1: { format(szDialog, sizeof(szDialog), "Esti sigur ca vrei sa-ti stergi 10 FP-uri?\nPentru asta, ai nevoie de 150 Treasure Points."); SetPVarInt(playerid, "TreasurePoints", 150); } case 2: { format(szDialog, sizeof(szDialog), "Esti sigur ca vrei sa-ti schimbi numele?\nPentru asta, ai nevoie de 200 Treasure Points. "); SetPVarInt(playerid, "TreasurePoints", 200); } case 3: { format(szDialog, sizeof(szDialog), "Esti sigur ca vrei sa-ti stergi un warn?\nPentru asta, ai nevoie de 350 Treasure Points."); SetPVarInt(playerid, "TreasurePoints", 350); } case 4: { format(szDialog, sizeof(szDialog), "Esti sigur ca vrei sa-ti achizitionezi un MP3?\nPentru asta, ai nevoie de 120 Treasure Points."); SetPVarInt(playerid, "TreasurePoints", 120); } case 5: { format(szDialog, sizeof(szDialog), "Esti sigur ca vrei sa-ti achizitionezi un Rare Voucher?\nPentru asta, ai nevoie de 500 Treasure Points."); SetPVarInt(playerid, "TreasurePoints", 500); } case 6: { format(szDialog, sizeof(szDialog), "Esti sigur ca vrei sa-ti achizitionezi un iPhone?\nPentru asta, ai nevoie de 170 Treasure Points.\n\n\ Avantaje:\n- Numar format din 4 cifre\n- Texte modificate la /call respectiv /sms\n- Acces la comanda /reply (/re)."); SetPVarInt(playerid, "TreasurePoints", 170); } } SelectedItem[playerid] = listitem; ShowPlayerDialog(playerid, DIALOG_SHOP_TREASURE1, DIALOG_STYLE_MSGBOX, "Treasure Shop:", szDialog, "Ok", "Back"); }
  8. Ar fi foarte de ajutor daca ai posta si linia e cod la care e eroare. Din pacate eroarea e putin ca generala si poate sa fie orice
  9. Banditul

    Eroare

    Se refera la faptul ca eroarea pe care o primesti este cauzata de fatpul ca 1 sau mai multe plugin-uri pe care le-ai puse (in server.cfg la linia plugins) nu s-a incarcat/a avut o eroare si nu a putut fi incarcat de catre server. Verifica serverlog dupa "Plugin faield to load" sau ceva asemenator
  10. Eroarea speicifica faptul ca iti lipseste ; de undeva. Din pacate fara cod nu pot face magie neagra si sa iti spun exact de unde. Poti da Ctrl+G in orice editor folosesti, cauta numarul linie unde ti se spune ca apare eroarea si "scaneaza" linia respectiva si cateva lini mai sus pana gasesti ; lipsa din codul tau
  11. Inseamna ca in acel switch ai doua lini care ambele rezulta in case 17
  12. @praunedoSingura problema care ar putea avea legatura cu faptul ca nu te poti loga pe care o vad ar fi faptul ca iti lipseste coloana pHealth din tabelul, presupun, users. Daca folosesti phpmyadmin va trebui sa deschizi tabelul users, in tab structure sa adaugi o noua coloana cu numele pHealth si tipul de data float. Desigur mai este si CMySQLResult::GetRowDataByName() - invalid row index ('0') , problema e ca asta poate proveni de la orice query de tip SELECT care incearca sa iti ia din baza de date dintr-un tabel care pare sa fie gol Cat despre Va trebui sa cauti in gm dupa ceva asemanator cu Pentru ca aparent ai o problema legata si de acest query care pare sa fie de UPDATE
  13. Atat timp cat password e de marime 33 (32 + null terminator) adica new password[33] ar trebui sa functioneze. Eventual poti mentiona marimea stringului direct in functie la parametru si sa ai string[33]
  14. @VeLo Aparent, lucru pe care nu il stiam nici eu, array sunt pasate ca si referinta in pawn precum raspunsul pe care l-ai primit aici https://burgershot.gg/showthread.php?tid=1446 sugereaza ceea ce inseamna ca functia ta poate pur si simplu sa fie stock Adrian(playerid, string[], V) { new A, B, C; if(!V) { switch(random(5)) { case 0: V = 1; case 1: V = 3; case 2: V = 5; case 3: V = 7; case 4: V = 9; } PlayerInfo[playerid][pLoserLevel] = V; } switch(V) { case 1: { A = 3; B = 4; C = 7; } case 3: { A = 8; B = 9; C = 1; } case 5: { A = 3; B = 7; C = 4; } case 7: { A = 1; B = 3; C = 9; } case 9: { A = 5; B = 2; C = 6; } } for(new i, l = strlen(string); i < l; i++) { switch(string[i]) { case 48..57: { string[i] += A; if(string[i] > 57) string[i] -= 10; } case 65..90: { string[i] += B; if(string[i] > 90) string[i] -= 26; } case 97..122: { string[i] += C; if(string[i] > 122) string[i] -= 26; } } } } Si sa o folosesti new parola[144]; Adrian(playerid, parola, v); Si parola va contine exact acel hash
  15. Daca te referi la OnGameModeInit cam improbabil avand in vedere ca oricum callbackul e chemat o singura data la pornirea serverului. Dar desigur exista o sansa In cazul in care folosesti streamer 2.9.4 cu crashdetect 4.20 as recomanda eventual 2 moduri. 1. Sa setezi in server.cfg long_call_time 0 (de preferat dupa plugins) si sa vezi daca iti mai da crash serverul 2. Sa stergi crashdetect din server.cfg si sa testezi doar cu streamer si sa vezi daca iti da crash serverul Desi venind vorba de bucle infinita posibil sa se afle in crashdetect 4.20 in anumite circumstante. Desi eroarea specifica ca e vorba de linkedl ist Care e o posibila conssecinta a 2 sau mai multe pluginuri incompatibile din habar n-am ce motiv Edit: Eventual poti compila gm folosind -d3 ca si parametru pawn.cfg (poti pune fisierul in folderul pawno) si eventual va arata exact linia la care ai problema legata de acest warning referitor la timpul executiei
  16. Din pacate OnGameModeInit intodeuna va dura mult sa fie procesat, in special in cazurile in care e vorba si de alte includeuri ex sscanf/YSI etc care manipuleaza acest callback pentru a-si seta anumite aspecte cum ar fi resetarea unor variabile sau setarea unei valori etc Poti folosi long_call_time milisecunde in server.cfg pentru a modifica asta. Il poti seta 0 si astfel nu iti va mai arata nici un astfel de warning, sau eventual o valoare mai mare de 5000 (5 milisecunde) astfel incat posibil sa ignore OnGameModeInit dar totusi sa iti raporteze probleme legate de alte functii/callback Sau poti sa ignori warning total pentru ca tot ce face e sa iti arate ce functii/callback iti "blocheaza" serverul nu e nimic altceva Referitor la faptul ca iti da crash serverul, da intradevar exista posibilitatea ca pluginul de crashdetect sa nu fie chiar atat de compatibil cu gm tau/hostul/alte pluginuri si sa genereze asta. Sau poate sa fie eventual o alta cauza. Din ce vad in eroarea de la crash specifica faptul ca este vorba de streamer.so
  17. Crede-ma nu e nimic efficient sau bun la metoda aia de hash, as folosi bcrypt sau in cel mai rau caz sha256 inclus in sa-mp. Dar nu sutem aici sa dezbatem acest topic Iti dau doua posibile metode la care ma gandesc eu cum ai putea face, cu singuranta sunt mai multe. In princpiu, problema functiei este faptul ca string nu are o marime declaarata stock Adrian(playerid, string[], V) { new A, B, C, returnedString[144]; if(!V) { switch(random(5)) { case 0: V = 1; case 1: V = 3; case 2: V = 5; case 3: V = 7; case 4: V = 9; } PlayerInfo[playerid][pLoserLevel] = V; } switch(V) { case 1: { A = 3; B = 4; C = 7; } case 3: { A = 8; B = 9; C = 1; } case 5: { A = 3; B = 7; C = 4; } case 7: { A = 1; B = 3; C = 9; } case 9: { A = 5; B = 2; C = 6; } } for(new i, l = strlen(string); i < l; i++) { switch(string[i]) { case 48..57: { string[i] += A; if(string[i] > 57) string[i] -= 10; } case 65..90: { string[i] += B; if(string[i] > 90) string[i] -= 26; } case 97..122: { string[i] += C; if(string[i] > 122) string[i] -= 26; } } } strcpy(returnedString, string); return returnedString; } Sau stock Adrian(playerid, const string[], V) { new A, B, C, returnedString[144]; strcpy(returnedString, string); if(!V) { switch(random(5)) { case 0: V = 1; case 1: V = 3; case 2: V = 5; case 3: V = 7; case 4: V = 9; } PlayerInfo[playerid][pLoserLevel] = V; } switch(V) { case 1: { A = 3; B = 4; C = 7; } case 3: { A = 8; B = 9; C = 1; } case 5: { A = 3; B = 7; C = 4; } case 7: { A = 1; B = 3; C = 9; } case 9: { A = 5; B = 2; C = 6; } } for(new i, l = strlen(returnedString); i < l; i++) { switch(returnedString[i]) { case 48..57: { returnedString[i] += A; if(returnedString[i] > 57) returnedString[i] -= 10; } case 65..90: { returnedString[i] += B; if(returnedString[i] > 90) returnedString[i] -= 26; } case 97..122: { returnedString[i] += C; if(returnedString[i] > 122) returnedString[i] -= 26; } } } return returnedString; } In caz ca dintr-un motiv sau altul nu ai strcpy stock strcpy(dest[], const source[], len = sizeof(dest)) { dest[0] = '\0'; return strcat(dest, source, len); }
  18. Puteai raspunde la acest topic in continuare https://www.sa-mp.ro/forums/topic/35356-nu-ma-logheaza/?tab=comments#comment-199874 In loc sa postezi alt topic cu exact aceasi problema Posteaza serverlog/mysqlog si codul de la login unde ar afisezi dialogul jucatorului
  19. Um am cautat si am gasit ca este de fapt o "familie" de include pentru acest anti cheat Acest fs contine cumva si #include <Anti_cheat_pack> cumva? Sau ceva asemanator? Ce am gasit: https://github.com/samp-anti-cheat/Anti_cheat_pack contine toate include necesare pentru a face un anti cheat. In test.pwn deasemenea este si un exemplu Totusi nu inteleg de ce ar zice ca nu exista OnPlayerCarTroll pentru ca daca creezi ceva chiar si public devine o functie valida si existenta
  20. Din pacate nu poti. Acea "umbra" este de fapt jocul care incearca sa afiseze obiectul la o rezolutie mai mica( LOD mai mic) chiar daca el nu mai exista . Singura solutie e sa scazi din "draw distance" din setarile jocului astfel incat ca nu mai incerce sa incarce obiectul cu LOD mic
  21. Iti lipsesc 2 coloane din tabelul users, PlayPoints respectiv PremiumPoints . Ca sa rezolvi asta va fi nevoie sa modifici acel tabel users si sa le adaugi Iti lipseste coloane Money din tabelul clans Poate sa fie strict legat de faptul ca nu iti gaseste 1 sau mai multe coloane din aceastea 3 cand incerci sa incarci datele din tabelul respectiv
  22. Banditul

    Help

    Asta inseamna ca nu ai anumite udpate-uri la windows 7 https://superuser.com/questions/1492060/procedure-entry-point-setdefaultdlldirectories-could-not-be-located-kernel32-dll Poti descarca update-ul care contine acele functii necesare programului pe care doresti sa il rulezi de aici: https://www.catalog.update.microsoft.com/Search.aspx?q=KB4457144
  23. Functia care se afla la linia asta e problema, nu array logo. Asta pentru ca Logo poate avea doar 4 valori adica index 0,1,2 si 3. Index 4 depaseste definitia array-ului Deasemenea, data viitoare posteaza si codul la care ai eroarea nu doar eroarea astfel incat sa fie mai usor de indentificat
  24. Daca ai corectat aceasta problema in gm, atunci problema posibil sa fie in unul din fisierele .inc incluse in gm Eventual daca nu se afla nici in fisierele .inc (putin probabil) as sugera sa folosesti acest compilator: https://github.com/pawn-lang/compiler/releases/tag/v3.10.8 Atat fisierele pe care le descarci de la acel libk cat si fisierul pe care l-am atasat le pui in folderul pawno Altceva inafara de verificarea fiecarui fisier folosit pentru acea "eroare" nu prea e pawn.cfg
×
×
  • 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.