Jump to content

Banditul

Moderator
  • Posts

    1,134
  • Joined

  • Last visited

  • Days Won

    96

Everything posted by Banditul

  1. Banditul

    Unknown

    public OnGameModeInit() { MySQL(); SetGameModeText("GM vs 15832"); // Sau ce ai dori sa afiseze la Mode return 1; }
  2. Banditul

    Unknown

    Exact. Asta e problema. Ca nu ai setat o valoare pentru GameModeText iar daca nu seezi o valoarea pentru iti va aparea unknown la Mode chiar daca nu ai erori. Pentru ca unknown e valoarea defaupt/implicita
  3. Banditul

    Unknown

    Mergand pe presupunerea faptului ca pare un script pe care incerci sa ip faci de la 0. Va fi necesar sa folosesti functia https://open.mp/docs/scripting/functions/SetGameModeText Daca vrei ca GameModeText sa afiseze ceva scriptat din gm sausa treci in server.cfg linia gamemodetext nume aici Iti afiseaza unknown pentru ca aia e valoarea default pentru gamemodetext Edit: Functia o folosesti la OnGameModeInit
  4. https://open.mp/docs/scripting/functions/SendDeathMessage Sterge functia asta de la OnPlayerDeath si nu iti va mai aparea
  5. Considerand faptul ca pana la acel else pentru toate functiile care aveau nevoie de playerid(si care sunt pentru player) ai folosit extraid, pot sa intreb de ce la acele lini ai decis sa pui playerid? Inlocuieste playerid cu extraid
  6. Edit: Si mysql_format cum a mentioant NERS Ai uitat sa pui mysql_tquery(handle, query); Dupa mysql_format, nu e de aajuns doar sa scrii query trebuie sa si executi
  7. PS: Doar ce am recitit topicul si te intrebi cum ai putea adauga un astfel de sistem. Daca te referi la acest tutorial Din pacate in topic nu specifica nimic despre bani/level care din codul prezent in topic nu ar avea cum sa fie salvate mai ales ca nici schema bazei de date nu contine aceste date. Desigur totusi ne poti arata ce ai incercat sa faci si ce erori primesti ca sa iti putem indica problemele si ce poti repara dar iti ofer un mic cod eventual care sper ca te poate ajuta. Va fi nevoie sa adaugi tu in baza date cum ti-a fost explicat si in tutorial coloana pentru bani si level enum pInfo { pParola, pID, Money, // Adaugi acestea la pInfo Level // Evident le redenumesti cum doresti }; new P_Data[MAX_PLAYERS][pInfo]; GiveMoneyToPlayer(playerid, money) { P_Data[playerid][Money] += money; mysql_format(handle, query, sizeof(query), "UPDATE conturi SET `Money` = %i WHERE ID = %i", P_Data[playerid][Money], P_Data[playerid][pID]); mysql_tquery(handle, query); ResetPlayerMoney(playerid); GivePlayerMoney(playerid, P_Data[playerid][Money]); } GivePlayerLevel(playerid, level) { P_Data[playerid][Level] += level; mysql_format(handle, query, sizeof(query), "UPDATE conturi SET `Level` = %i WHERE ID = %i", P_Data[playerid][Level], P_Data[playerid][pID]); mysql_tquery(handle, query); SetPlayerScore(playerid, P_Data[playerid][Level]) // Presupun ca level se reflecta in tabelul de score } forward OnLogin(playerid); public OnLogin(playerid) { new rows, fields,temporar[200]; cache_get_data(rows, fields); if(rows) { cache_get_field_content(0, "Parola",temporar), format(P_Data[playerid][pParola], 25, temporar); P_Data[playerid][pID] = cache_get_field_content_int(0, "ID"); P_Data[playerid][Money] = cache_get_field_content_int(0, "Money"); ResetPlayerMoney(playerid); GivePlayerMoney(playerid, P_Data[playerid][Money]); // Ii resetam bani si ii oferim ce ar in baza de date astfel incat bani pe care ii vede in joc sa fie aceiasi P_Data[playerid][Level] = cache_get_field_content_int(0, "Level"); SetPlayerScore(playerid, P_Data[playerid][Level]) SpawnPlayer(playerid); } else { ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Parola incorecta!", "Te rog sa iti introduci parola corecta, pentru a te loga pe server.", "Logare", "Exit");// ii va da dialogul cu mesajul specific. } return 1; } Poti folosi aceste 2 functii pe care ti le-am dat pentru a oferi jucatorului bani/level acolo unde ai nevoie. Astfel incat sa nu fi nevoit sa tot copiezi acelasi cod peste tot, doar chemi functia.
  8. Daca arati ce cod ai facut, poate intelegem si noi ce ai facut gresit si ce trebuie reparat
  9. Pentru ca daca ai windows 10 si mai ales daca instalezi si alte programe precum visual studio sau orice program sau joc care iti instaleaza aceste runtime nu trebuie sa le instalezi tu, le instaleaza programul sau chiar si steam am observat ca instaleaza daca iti lipseste pentru a rula un joc
  10. Cateva observatii, poate intelegi ce e gresit. 1. Ai definit id dar nu ii aloci nici o valoare nicaieri desi incerci sa verifici daca acel id (care e 0) e logat pe server, daca are telefon etc 2. Ai acel foreach, presupun pentru a cauta nr introdus, problema e ca nu te folosesti de foreach deloc in schimb folosesti acelasi id care are valoarea 0 Dar presupun ca nu o sa gasesti o solutie asa ca poti da copy-paste de aici unde ti-am pus comanda reparata si presupun functionala https://pastebin.com/gTJ2fMnu
  11. Suna ca 5205 - Bumblebee video game beep https://open.mp/docs/scripting/resources/sound-ids
  12. Cea mai usoara metoda sa modifici MAX_PLAYERS in numarul tau de sloturi pe care il ai pe host pentru cel mai probabil ai multe array care depind de constanta asta. Imediat dupa a_samp poti pune #undef MAX_PLAYERS #define MAX_PLAYERS nr_sloturi Alta varianta care e strans legata de cea de sus, sa reduci marimea array-urilor la exact cat ai nevoie asta include si string (care e tot array)
  13. Presupunand faptul ca eroarea de fapt este la linia cu OtherTimer() si acel return true solutie e function Timers() { new i, anim, Float: animpos[3]; if (PlayerInfo[i][pAdmin] < 1 && ac_flyhack == 1) { anim = GetPlayerAnimationIndex(i), GetPlayerVelocity(i, animpos[0], animpos[1], animpos[2]); if(animpos[0] <= -0.800000 || animpos[1] <= -0.800000 || animpos[2] <= -0.800000 && anim == 1008) { SendAdmins(COLOR_RED2, "AdmWarning: %s (%d) este suspectat de Fly-Hack.", 1, GetName(i), i); new surfx = GetPlayerSurfingVehicleID(i); if(surfx == INVALID_VEHICLE_ID && !IsABike2(gLastCar[i])) { CheatWarnings[i] += 2; defer KickEx(i); } } } OtherTimer(); return true; } Ti-as sugera sa folosesti acoladele in stilul pus de mine, e mult mai usor sa urmaresti unde se termina de fapt functia. In cazul tau instructiunile tale de OtherTimer si return true nu apartiunea nici unei functii sau bloc de cod
  14. Sincer, as prefera sa vad lumea folosind github pentru scripturi asa stii exact ce descarci si mai ales multe persoane posteaza un gm dupa cateva zile ii fac "update" si posteaza din nou "v2" samd cand pe github poti face un simplu commit cu modificarea si sa vezi si ce exact s-a modificat. Dar na, e placut sa visezi uneori.
  15. Doar ce am scris fcnpc in google si primul rezultat https://github.com/ziggi/FCNPC
  16. https://www.if-koubou.com/articles/how-to/what-is-github-and-what-is-it-used-for.html https://code4.scout.ro/despre-git-si-github/ Si un video: Tutorial (nu te speria ca foloseste consola, exista si aplicatie grafica care te ajuta sa eviti comenzile in consola, dar trebuie sa intelegi ce fac) Cateva topicuri legate de github. In mare, github este o platforma pe care iti poti salva proiectele(nu neaparat cod) atat in mod privat cat si public(open-source). Se foloseste de git pentru a versiona proiectul (practic fiecare commit (modificare pe care o transmiti ca si finalizata) e salvata si poti reveni oricand la ea sau poti vedea exact ce modificari ai facut in acel commit). Folosesc github zilnic pot sa zic ca e ceva fara de care nu imi pot face proiectele (vreau sa imi salvez proiectul in cloud dar in acelasi vreau sa fiu capabil sa vad fiecare modificare pe care am facut-o etc si de asemenea vreau sa arat unui potential angajator proiectul mai usor) Cat despre sampctl nu am avut ocazia de il folosi prea mult din pacate trecand pe C# full time. Ce pot sa iti spun despre el este ca un "manager" de aplicatii poti sa zici, il atasezi proiectului tau, ii zici ce pluginuri/includeuri foloseste scriptul tau si el iti cauta si instaleaza automat, de asemenea poate fi configurat sa iti dea si compile la script si eventual sa iti si ruleze serverul dupa(pentru a testa). Din ce vad pe pagina de github a sampctl e explicat cum se foloseste, instaleaza si cred ca am vazut si un mic tutorial. Din pacate, ambele aplicatii cel mai usor le intelegi folosindu-le si testand fiecare lucru la ele sa vezi cu ochii tai ce se intampla, nu ai ce sa strici sau ceva. Si mie mi-a luat ceva sa inteleg branch la github pana cand am facut un repository doar ca sa ma joc cu functionalitatea pentru cac din ce gaseam ca si tutorial nu ma ajuta.
  17. Da aparent include presupun ca a fost putin facut pe fuga as zice. Din ce observ iti da eroarea ca e deja definit deoarece in loc sa fie facut hook la functie astfel incat sa fie atat apelata in script cat si in include a definit direct functia OnPlayerKeyStateChange Eventual ca si solutie poti folosi y_hooks in include respectiv si sa le modifici din public OnPlayerKeyStateChange in hook OnPlayerKeyStateChange Aici un topic despre y_hooks (presupun ca in topic foloseste sintaxa noua de la ysi 5) https://www.burgershot.gg/showthread.php?tid=625
  18. Pentru ca trebuie ori sa modifici tabelul users si la password2 sa adaugi o valoare default ori la query tau de insert sa inserezi si password2 impreuna cu restul
  19. Banditul

    Problema

    Avand personal un ssd pe care am instalat windows si aplicatii esentiale pot sa spun ca merita total. Lucrand cu un hdd pentru 4 ani se simte diferenta desi nu am avut aceste probleme descrise, era incet da dar nu chiar asa. Eventual sugerez si o scanare de virusi sau chiar sa monitorizezi din Task Manager toate procesele si sa vezi daca unul din ele iti consuma toate resursele
  20. Arata codul unde salvezi parola si de unde o incarci din fisiere Practic poti merge pe acelasi exemplu ca la parola si salvezi si restul doar ca adaptezi la tipul variabilei
  21. Banditul

    Admini.

    Daca coceai putin mai mult ideea ajungeai unde trebuie
  22. Ca si sfat in alegerea intre TextDraw: si PlayerTextDraw: este destul de simplu. Daca informatia pe care doresti sa o afisezi playerului prin textdraw este o informatie specifica doar lui (ex: speed-o-meter, obiectiv personal, progres pentru x, suma lui de bani etc) atunci recomandat este PlayerTextDraw:, daca informatia afisata este una generala (ex: ceas/data, nume server, x playeri inregistrati etc) care nu tine neparat de x player atunci recomandat este TextDraw:. Pentru ca , ca si exemplu, din 10 playeri doar 2 se afla in masina si pot vedea speed-o-meter nu ar avea sens sa fie afisat pentru toti mai ales ca cei 2 playeri pot calatori cu viteze diferite iar informatiile lor vor fi diferite si un textdraw paarticular are mai mult sens. De asemenea, nu ar avea sens sa creezi ceas/data pentru fiecare player in parte cand se conecteaza sa afiseze exact aceiasi informatie tuturor cand poti crea un singur textdraw pe care il afisezi la toti
  23. Ti-as sugera sa verifici in primul rand mysqlog/serverlog. Urmatorul lucru, verifica daca query pentru Update(playerid, pNormalCrate); este corect si de fapt actualizeaza NormalCrates
  24. Cel mai probabil ai nevoie de plugin mysql, care din intamplare nu ti se incarca. Apropo, ti-as recomanda sa nu pui .dll la plugins pe windows. Motvele pentru ca nu ti se incarca pot fi multiple, inclusiv eventual lipsa unui Visual C++ Redistributable instalat pe pc tau
  25. Banditul

    Warnning

    Presupun ca CarInfo[PlayerInfo[playerid][pCarKey][i]][cSpawned] este de fapt bool si tu il compari cu integer. Din ce vad functia SetVehicleParamsForPlayer nu cere bool deci doar if ar fi.
×
×
  • 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.