-
Posts
1,134 -
Joined
-
Last visited
-
Days Won
96
Content Type
Profiles
Forums
News
Documentation
Posts posted by Banditul
-
-
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
-
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?
-
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
-
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
- 1
-
#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)
-
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"); }
-
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
-
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
-
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
- 1
-
Inseamna ca in acel switch ai doua lini care ambele rezulta in case 17
-
@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
Citat(error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '+'3318111', `Respect`=`Respect`+'6', `JobGoal`='0' WHERE `JobGoal`>='40000' A...' at line 1
Va trebui sa cauti in gm dupa ceva asemanator cu
Citat'+'%d', `Respect`=`Respect`+'%d', `JobGoal`='%d' WHERE `JobGoal`>='%d' A...'
Pentru ca aparent ai o problema legata si de acest query care pare sa fie de UPDATE
-
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]
-
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
-
Acum 23 minute, VeLo a spus:
DIn cate am inteles de pe net, poate fi vorba si de o bucla infinita?
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
Citatglibc detected *** /home/gsp_834/IP-7777/samp03svr: corrupted double-linked list: 0x08699280
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
-
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
-
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); }
- 1
-
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
-
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
-
Si care ar fi aceasta eroare?
-
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
-
Citat
Unknown column 'PlayPoints' in 'field list' (Query: "UPDATE `users` SET `PlayPoints`='144' WHERE `id`='18'")
Unknown column 'PremiumPoints' in 'field list' (Query: "UPDATE `users` SET `PremiumPoints`='100' WHERE `id`='20'")
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
CitatUnknown column 'Money' in 'field list' (Query: "UPDATE `clans` SET `Money`='231234' WHERE `ID`='2'")
Iti lipseste coloane Money din tabelul clans
Citat[ERROR] cache_get_field_content_int - invalid datatype
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
- 1
-
Asta inseamna ca nu ai anumite udpate-uri la windows 7
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
-
Citat
error 035: argument type mismatch (argument 2)
Functia care se afla la linia asta e problema, nu array logo.
Citaterror 032: array index out of bounds (variable "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
-
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
Problema Scripting - Error 10
in Ajutor Scripting
Posted
Inseamna ca nu ai playerprogress.inc in folderul pawno>include
Il poti descarca de aici eventual: https://github.com/Southclaws/samp-progress