Jump to content

Banditul

Moderator
  • Posts

    1,134
  • Joined

  • Last visited

  • Days Won

    96

Everything posted by Banditul

  1. Ce parte nu se executa? Ce cu lose/win? Iti spun exact de ce anume. Rand are valori intre 0-50 tu in switch verifici doar daca rand are valoare 0 sau 1. Probabilitatea ca rand sa ia acezte valori din cele 50 numere este mica de aceea spui ca nu ti se executa comanda mereu
  2. Atunci citeste dinou eroarea si aplica ce iti spune. Foloseste <YSI\y_hooks> in loc de <YSI/y_hooks> in orice fisier ce foloseste y_hooks (fie gm principal sau fisiere .inc)
  3. Ceea ce cauti tu nu se numeste criptare, ci hasurare pentru ca la criptare vei avea nevoie de o parola in plus doar pentru a decripta in schimb la hashurare este in inclus direct in string rezultat Ai probleme cu cel actual sau doresti sa implementezi acest sistem? Daca ai probleme cu cel actual doar specifica ce anume nu merge si ce erori intampini Daca vrei sa implementezi unul iti recomand bcrypt https://github.com/lassir/bcrypt-samp #include <a_samp> #include <bcrypt> #define BCRYPT_COST 12 forward OnPasswordHashed(playerid); forward OnPasswordChecked(playerid); public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DIALOG_REGISTRATION: { bcrypt_hash(inputtext, BCRYPT_COST, "OnPasswordHashed", "d", playerid); } case DIALOG_LOGIN: { // Variable hash is expected to contain the hash loaded from the database bcrypt_check(inputtext, hash, "OnPasswordChecked", "d", playerid); } } return 1; } public OnPasswordHashed(playerid) { new hash[BCRYPT_HASH_LENGTH]; bcrypt_get_hash(hash); printf("Password hashed for player %d: %s", playerid, hash); return 1; } public OnPasswordChecked(playerid) { new bool:match = bcrypt_is_equal(); printf("Password checked for %d: %s", (match) ? ("Match") : ("No match")); return 1; } Acest cod l-am luat direct din exemplul oferit in link acela de la bcrypt. Esssential ce ar trebui sa faci la DIALOG_LOGIN este sa extragi parola curenta din baza de date inainte sa chemi bcrypt_check astfel incat sa se poate verifica si eventual la register sa inserezi/actualizezi parola playerului care tocmai ce si-a facut la OnPasswordHashed astfel incat sa ai parola hashurata
  4. Si de ce ai vrea o versiune mai veche avand in vedere ca iti specifica exact de unde sa iei amx_assembly si ca trebuie sa fie "latest" version Daca vrei singura versiune de fapt care e din 2018 pur si simplu deschide link ala, du-te la releases si descarca 1.0
  5. Daca nu ai PlayerInfo inseamna ca ai alt array care iti stocheaza datele playerilor. Ti-as sugera sa te uiti la alte comenzi din gm tau si sa vezi ce se foloseste pentru stocarea acestor date si inlocuieste PlayerInfo cu ce ai tu
  6. 1.Verifici logurile atat serverlog.txt cat si mysql_log si vezi daca sunt erori si le rezolvi daca sunt 2. Postezi codul cu problema (care consideri tu ca are legatura), nu facem magie neagra sa ghicim ce ar fi gresit daca nu vedem codul
  7. Daca ai 200 slot pui 200 la MAX_PLAYERS. Daca aveai 201 sloturi puneai 201 Problema apare cand nr sloturi e mai mare decat numarul definit in MAX_PLAYERS
  8. Cel mai probabil ai mai multe sloturi de 100 si cel mai probabil undeva la OnPlayerText (sau ceva ce face hook la callback) foloseste un array pentru playeri care nu a fost actualizat cum trebuie cu marimea necesara serverului. Ti-as recomanda sa folosesti MAX_PLAYERS pentru astfel de array care se foloseste pentru playeri astfel incat doar sa redefinesti valoarea MAX_PLAYERS cu valoarea de sloturi disponibile
  9. Da. Din pacate in mometul in care lipsesc acolade sau alte lucruri de genul conpilatorul este pe principiu "Nu e treaba mea, te descurci" Acum nu stiu sigur daca compilatorul actualizat de comunitate (acel zeex compiler) renunta la acest atact asupra vieti lui asa usor. Da, chiar ti-as recomanda un text editor ca notepad++/sublime text/visual studio code unde,crede-ma FOARTE folositor, iti aliniaza el codul in momentul in care pui { si incepi sa scrii ce ai de scris(daca e vorba de cod nou) sau chiar te ajuta sa vezi ce acolada corespunde cu ce acolada si sa vezi ce lipseste. Te poate ajuta enorm un astfel de editor fata de pawno doar pentru ca esti mai productiv si comiti mai putine greseli de genul
  10. Daca te referi la faptul ca imediat dupa parametrul result apare 0 nu are nici o legatura https://open.mp/docs/scripting/functions/strmid#! In functia strmid acolo unde se afla 0 este de fapt pozitia de start de unde sa inceapa sa extraga caractere si 0 inseamna de la inceputul stringului Si nu, nu va afecta cu aabsolut nimic daca o setezi 0 ShowCeas are valoarea 1 default (implicit) deoarece pur si simplu asta este logica scriptului. Cand un player nou isi face cont pe server scriptul doreste sa ii arate ceasul ca si setare de inceput (presupunand ca asta afecteaza valoarea) Metaforic: Sa zicem ca la Money se afla valoarea default setat 1000 asta inseamna ca orice nou jucator inserat in baza de date va avea mereu 1000 bani pentru ca asta gm/serverul respectiv doreste ca si setare de inceput pentru toti jucatori noi
  11. Chiar daca setezi 0 sau setezi gen Fara Ban sau orice alta valoare intodeuna va fi string. Presupunand faptul ca valoarea va fi afisata doar cand x are ban conditie pe care probabil o va indeplini doar daca primeste ban din script sau de la un admin deja valoarea initiala de la BReason va fi deja suprascrisa de o valoare gen A folosit cheats sau whatever Deci pe scurt ii poti oferi orice valoare doresti sincer, atat timp cat se intampla ca si presupunerea de mai sus. In principiu aceste valori default din baza de date date trebuie sa reflecte valorile default din gm (daca desigur sunt setate si in script)
  12. Problema e in felul urmatorul. Daca la nici una din coloane nu ai setat o valaore la DEFAULT si nu faci INSERT incluzand si coloana cu valoarea sa, iti va returna aceasta eroare legata de Sfatul meu este, sa atasezi la toate o valoare default daca nu ai in plan sa o faci prin INSERT (in functie de ce e necesar) sau sa introduci o valoare prin INSERT
  13. https://youtu.be/ckef09fIcMs Pare sa fie o problema de directx avand in vedere ca tot ce am gasit referitor la problema este sa schimbi din directx 11 sau 10.1 in directx 10 De asemenea as recomanda si sa actualizezi driverul placi video daca nu e actualizat de ceva timp
  14. In general faptul ca este 0kb inseamna ca a fost o eroare la compilare si compilarea a esuat(sau pur si simplu a esuat compilarea) Ti-as recomanda sa folosesti https://github.com/pawn-lang/compiler/releases (3.10.8 eventual daca nu vrei sa fi speriat de warning legate de const desi recomand ultima versiune). Descarci si pui ce se afla in bin in folderul pawno si dupa dai compile si adauga si acest fisier pawn.cfg tot in acelasi folder ca sa nu ai anumite erori pawn.cfg
  15. Username-ul tau de la baza de date nu ii este permis sa se conecteze remote serverul respectiv unde se afla baza de date respectiva. Ti-as recomanda sa revizuiesti inca o data datele pe care le primesti pentru conectare, este posibil sa fi nevoit sa folosesti spre exemplu localhost/127.0.0.1 in loc de un alt ip avand acces doar din localhost. Poti citi asta pentru putin mai multe informatii: https://www.tecmint.com/fix-error-1130-hy000-host-not-allowed-to-connect-mysql/ desi nu poti aplica ce se afla in topic pentru ca nu vei avea acces la acele detalii In cel mai rau caz va fi nevoie sa le trimiti un ticket
  16. https://github.com/pawn-lang/YSI-Includes Gasesti aici toate include-urile ce tin de YSI inclusiv y_amx
  17. Ai si un link? Sunt curios de versiunea asta de sscanf pe care nu vad sa o gasesc desi e a doua oara cand aud de ea
  18. Oh well, verificand topicurile mai vechi de pe forum (la care am mai raspusn si eu) ori este lipsa de main (care nu e cazul tau) sau legat de faptul ca pluginurile si includeurile acestora nu sunt actualizate. Aparent la cel putin doua persoane dupa actualizarea lor le-a mers Eventual ma gandesc la: streamer/crashdetect(daca folsoesti) si altele (nu as actualiza totusi plugin de mysql in cazul in care gm e mai vechi, e posibil sa fie destul de mult de munca)
  19. Verifica in gm tau sa vezi daca ai main() {} Undeva in cod, daca nu ai addauga-l inainte de orice functie cu public (de prreferat inainte de OnGameModeInit)
  20. Poti pune La OnPlayerConnect si dupa sa pui Inainte sa dai SpawnPlayer. Presupun ca ar trebui sa mearga
  21. Asta nu ar trebui sa se intample pentru ca ai Care iti verifica primul parametru si daca e invalid adica nu ai introdus nimic) pur si simplu nu se executa. (asta daca ai un space intre ) si return ) Ti-as recomanda sa folosesti unltima versiunea de sscanf https://github.com/maddinat0r/sscanf/releases/tag/v2.8.3 Descarca versiunea de win32, pune fisierul din folderul pawno>include sscanf2.inc si inlocuieste pe cel existent in folderul cu acelasi nume dingm tau. De asemea poti face cu plugin si sa inlocuiesti cu ce ai tu in folderul din gm Este posibil sa ai o versiune mai veche care are aumite buguri
  22. Nu se vede deoarece e posibil sa nu ai nici un fel de data incarcata in fvsVariables Chestia aia se numeste query si nu il bagi in database ci o folosesti in script, presupun ca trebuie folosit in OnGameModeInit public OnGameModeInit() { // Cod aici mysql_tquery(handle, "SELECT * FROM `server_fvs` ORDER BY `server_fvs`.`fvsID` ASC", "LoadServerFvs", ""); // Alt cod aici } LoadServerFvs() { // Aici codul pentru incarcarea datelor in variabilele tale } Daca ai copiat din alt script, ti-as sugera sa cauti acest cod de incarcare in acel script
  23. Inseamna ca ai un alt new string la un nivel mai sus, adica in exteriorul else if-ului else if(CP[playerid] == 100000). Solutie denumeste altfel acest new string la care e warning X Y si Z trebuie sa fie float adica new Float:X, Float:Y, Float:Z; Pentru ca functia respectiva asteapta float nu integer ca si parametru Asta inseamna ca cele doua simboluri cum le numeste compilatorul nu sunt folosite. Adica undeva in scriptul tau posibil exista aceste doua variabile globale new insta si new instac sauuuu cele doua sunt de fapt functi si nu sunt folosite nicaieri in cod
  24. Daca vrei sa folosesti case ai nevoie de switch. Nu merge fara switch OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { // Case cu dialoguri aici } }
  25. Depinde cum este setat SetTimer
×
×
  • 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.