Jump to content

Banditul

Moderator
  • Posts

    1,134
  • Joined

  • Last visited

  • Days Won

    96

Community Answers

  1. Banditul's post in Animatie actor was marked as the answer   
    https://team.sa-mp.com/wiki/ApplyActorAnimation.html
    Ultimu parametru, e timpul in milisecunde deci ar veni 4000 nu 4
  2. Banditul's post in Kicking "o valoare pentru up" because they didn't logon to the game. was marked as the answer   
    Stiu ca asta se intampla in momentul in care serverul este 'blocat' (processaza altceva) si nu poate procesa si OnPlayerConnect in acelasi timp care e foarte probabil cand serverul porneste ai e nevoie sa xonfigureze lucruri.
    O posibila rezolvare, care face codul sa ruleze mai efficient, este sa nu compilezi gm cu -d3 (debug mode) astfel incat sa fie generat cod mai eficient, si inlocuiesti crashdetect cu JIT (care optimizeaza codul in timpul rulari). Considerand faptul ca ai inceput sa folosesti YSI codul care este rulat la pornire e posibil sa ruleze ceva mai incet pentru ca configureaza multe lucruri si nu prea are importanta pentru ca este procesat o singura data.
    Eventual poti incerca open.mp care ruleaza mult mai eficient si mult mai bine si care are multe buguri rezolvate.
  3. Banditul's post in PHPMyAdmin was marked as the answer   
    format(szDialog, sizeof(szDialog), "%s%s %d\n", szDialog, szName, szAdmin);
    Il pui in loop unde preiei numele/blacklist, si nu il pui si dupa. Pentru ce ai facut tu iti va arata doar ultima valoare care ti-o returneaza in loop.
  4. Banditul's post in foreach was marked as the answer   
    Nu e nici o diferenta. Dar daca folosesti prima sintaxa si nu primesti warning legat de faptul ca sintaxa e veche atunci inseamna ca folosesti o versiune foarte antica de YSI sau folosesti acel foreach standalone care e la fel de antic si care recomandat nu ar trebui folosite.
    Noile versiuni de YSI au destul de multe imbunatatiri atat de performanta cat si noi functionalitati.
  5. Banditul's post in Cum imi dau admin din baza de date. was marked as the answer   
    Simplu. Intri in tabul SQL si executi un query de genul
    UPDATE users SET Admin=x WHERE Id=1;
    Doar ca tu ai alta problema, faptul ca coloana Id nu e primary key si nici auto_incremented si in cazul acesta daca faci alte conturi nu o sa se salveze
  6. Banditul's post in Streamer plugin error was marked as the answer   
    Doar daca eventual il compilezi tu pe sistem centos7 (poate e nevoie si de ceva modificari nu stiu). Altfel o versiunea mai veche 2.9.4 2.9.3 care iti functioneaza
  7. Banditul's post in Long callback execution detected (hang or performance issue) was marked as the answer   
    Poti pune long_call_time 0 in server.cfg ca sa dezactivezi aia. Nu prea ai ce optimiza la YSI doar eventual sa folosesti ultima versiune si poate sa nu folosesti debug mode cand rulezi scriptul pe host(adica sa nu compilezi cu -d3)
  8. Banditul's post in Respawn masini was marked as the answer   
    Doar o idee nu spun ca asta e problema dar daca ai masinile cu CreateVehicle unul dintre parametri este respawn_delay
    CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren=0) Atat timp cat nu este -1 masinile tale for fi respawnate automat in functie de acel delay (secunde) daca nu sunt folosite
  9. Banditul's post in Unknown was marked as the answer   
    public OnGameModeInit() { MySQL(); SetGameModeText("GM vs 15832"); // Sau ce ai dori sa afiseze la Mode return 1; }  
  10. Banditul's post in error 017: undefined symbol "playerid" was marked as the answer   
    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
  11. Banditul's post in Problema /sms was marked as the answer   
    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
  12. Banditul's post in Problema was marked as the answer   
    Depinde cum este setat SetTimer
  13. Banditul's post in Problema SetTimer was marked as the answer   
    Nu are cum sa functioneze daca nu ii pasezi valorile necesare ca sa le poata procesa
    SetTimerEx("JobVehicleReload", 10000, false, "ii", playerid, GetPlayerVehicleID(playerid));  
  14. Banditul's post in Doua erori. was marked as the answer   
    Problema ta e in felul urmator.
    if(PlayerInfo[playerid][pWantedLevel] > 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "You can't rob a business when you have wanted."); Daca te uiti la acest if se termina cu return, daca deschizi acolade pentru acel if sunt nefolosite, nu au sens. In consecinta acel else arunca eroare pentru ca nu are nici un sens pentru compilator. Daca stergi ce am zis mai sus, rezulta asta
    CMD:rob(playerid, params[]) { if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to login first."); if(PlayerInfo[playerid][pLevel] < 3) return SendClientMessage(playerid, COLOR_LIGHTRED, "You need level 3 to do this."); if(PlayerInfo[playerid][pWantedLevel] > 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "You can't rob a business when you have wanted."); if(IsACop(playerid)) return SCM(playerid,COLOR_WHITE,"{FFB870}You're a cop."); for(new i = 1; i < sizeof(HouseInfo); i++) { if(PlayerToPoint(3, playerid,HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez])) { SetTimerEx("SpargeUsa", 5000, 0, "i", playerid); GameTextForPlayer(playerid, "~r~Asteapta sa spargi usa...", 5000, 4); TogglePlayerControllable(playerid, 0); BusinessRob[playerid] = 3; if(PlayerInfo[playerid][pPremiumAccount] == 0) { PlayerInfo[playerid][pRob] -= 10; } else if(PlayerInfo[playerid][pPremiumAccount] == 1) { PlayerInfo[playerid][pRob] -= 8; } Update(playerid,pRobx); total_objects[playerid] = 0; rob_time[playerid] = 180; PlayerTextDrawSetString(playerid, RobPTD, "Loading..."); PlayerTextDrawShow(playerid, RobPTD); } } if(PlayerInfo[playerid][pPremiumAccount] == 0) { SendClientMessage(playerid, COLOR_WHITE, "{FFB870}You don't have 10 rob points."); } else if(PlayerInfo[playerid][pPremiumAccount] == 1) { SendClientMessage(playerid, COLOR_WHITE, "{FFB870}You don't have 8 rob points."); } return 1; return 1; } Motiv pentru care ultimul tau return nu poate fi atins, pentru  ca comanda deja s-a finalizat. In concluzie codul corect este
    CMD:rob(playerid, params[]) { if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "You need to login first."); if(PlayerInfo[playerid][pLevel] < 3) return SendClientMessage(playerid, COLOR_LIGHTRED, "You need level 3 to do this."); if(PlayerInfo[playerid][pWantedLevel] > 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "You can't rob a business when you have wanted."); if(IsACop(playerid)) return SCM(playerid,COLOR_WHITE,"{FFB870}You're a cop."); for(new i = 1; i < sizeof(HouseInfo); i++) { if(PlayerToPoint(3, playerid,HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez])) { SetTimerEx("SpargeUsa", 5000, 0, "i", playerid); GameTextForPlayer(playerid, "~r~Asteapta sa spargi usa...", 5000, 4); TogglePlayerControllable(playerid, 0); BusinessRob[playerid] = 3; if(PlayerInfo[playerid][pPremiumAccount] == 0) { PlayerInfo[playerid][pRob] -= 10; } else if(PlayerInfo[playerid][pPremiumAccount] == 1) { PlayerInfo[playerid][pRob] -= 8; } Update(playerid,pRobx); total_objects[playerid] = 0; rob_time[playerid] = 180; PlayerTextDrawSetString(playerid, RobPTD, "Loading..."); PlayerTextDrawShow(playerid, RobPTD); } } if(PlayerInfo[playerid][pPremiumAccount] == 0) { SendClientMessage(playerid, COLOR_WHITE, "{FFB870}You don't have 10 rob points."); } else if(PlayerInfo[playerid][pPremiumAccount] == 1) { SendClientMessage(playerid, COLOR_WHITE, "{FFB870}You don't have 8 rob points."); } return 1; }  
  15. Banditul's post in Deelay la comanda was marked as the answer   
    CMD:test(playerid, params[]) { if (timpComanda[playerid] > gettime()) return SendClientMessage(playerid, -1, "Nu poti folosi comanda inca"); // comanda timpCoamnda[playerid] = gettime() + timpInMilisecunde; } Ar veni cam asa ceva
  16. Banditul's post in Inca putin ajutor... ? was marked as the answer   
    public PNSPlaja(playerid) Daca functia necesita playerid doar ca va fi nevoie sa o chemi cu playerid de unde vrei sa o chemi
    Scriptu nu are de unde sa stie la ce player te referi daca nu ii spui tu, daca era un limbaj de programare bazat pe obiecte si referinta clar era mai usor de facut sa stie ce player
  17. Banditul's post in sa_mp server nefunctional was marked as the answer   
    Poate sa fie multe motive, cel mai bine e sa te uiti in server_log.txt si sa vezi ce problema se specifica. Eventual, desi nu are legatura, mysql log
  18. Banditul's post in Am nevoie de ajutor! was marked as the answer   
    https://stackoverflow.com/questions/50690076/phpmyadmin-error-incorrect-format-parameter
    Problema e ca fisierul .sql pe care il incarci e prea mare. Avand in vedere ca pe host nu ai control asupra serverului de MySQL nu poti modifica setarile(daca ai access totusi le poti modifica conform raspunsurilor din acel link). Daca nu ai access solutia e sa stergi din fisierul .sql toate conturile/logs etc (toate datele legate de INSERT INTO (cele care nu sunt necesare desigur, ca doar nu vrei sa stergi ceva de care gm are nevoie)). Sau eventual sa compresezi fisierul astfel incat sa fie suficient de mic
  19. Banditul's post in Cum sa invat sa scriptez? was marked as the answer   
    Daca nu intelegi nimic din tutoriale/wiki ti-as recomanda cu toata caldura sa inveti bazele programarii (de preferat C++ sau C# sau Java) si sa incepi de aici. De la tipuri de date la if etc. Sincer, la inceput nici eu nu intelegeam mare lucru, dupa am facut in anu 1 de facultate C++ si totu a parut mult mult mai clar. Avand bazele programarii face multe lucruri mai clare si usor de digerat
  20. Banditul's post in Cum compar inputtext cu o data pentru comanda de deposit was marked as the answer   
    Nu poti compara un string cu un numar in felul acesta si in nici un caz nu poti stoca un string intr-o variabila de tip numeric si inputtext nu are playerid, e string are doar index de la 0 la 144(parca) nu stiu exact care e maximum pe care un player il poate scrie intr-un dialog
    if(IsNumeric(inputtext)) { new bani = strval(inputtext); if(bani <= PlayerInfo[playerid][pBani]) { PlayerInfo[playerid][pBani] -= bani; PlayerInfo[playerid][pBaniBanca] += bani; new string[128]; format(string, sizeof(string), "Ai depozitat %s", bani); SCM(playerid, galben, string); GivePlayerMoney(playerid, bani); } else { SCM(playerid, rosu, "EROARE: Nu ai suficienti bani!"); } } else { SCM(playerid, rosu, "EROARE: Trebuie sa introduci doar cifre!"); } Si nu pui punct si virgula la un if, niciodata
  21. Banditul's post in Functie was marked as the answer   
    MIN_BET are o valoare definita? Daca da presupunerea mea e ca nu merge sa folosesti constante ca valori default la argumentele functiei, inlocuiesti MIN_BUT cu valoarea exacta
  22. Banditul's post in salut, asi vrea si eu un tutorial cum sa micsorez .amx mai explicit was marked as the answer   
    new string[10000]; new PlayerInfo[MAX_PLAYERS][pInfo]; new array[numar]; Da stringurile sunt array-uri de caractere
    Poate micsorarea stringurilor la mariema necesara pentru respectiva sarcina
  23. Banditul's post in Run time error [19] was marked as the answer   
    Nu ai 2013 x86 il ai x64 si pluginele sunt pex86. Iti apare mai detaliat probabil pentru ca ai nativechecker
  24. Banditul's post in Eroare BURNED AndreiGB was marked as the answer   
    Rezolvarea ta se afla aici. Am scris-o destul de detaliat
  25. Banditul's post in Compile error [/setstaff - errors] was marked as the answer   
    Sunt foarte sigur ca o comanda ca /setstaff nu foloseste functiile la care iti da erori. In al doilea rand, aici te ajutam dar nu facem in locul tau. E ajutor scripting nu "scripteaza pentru mine"
    CMD:setstaff(playerid, params[]) { ShowPlayerDialog(playerid, 69, DIALOG_STYLE_LIST, "Staff", "1. Seteaza helper\n2. Seteaza admin\n3. Seteaza lider", "Ok", "Inchide"); } Si cum banuiam, lipsea un punct si virgula la sfarstiul liniei de ShowPlayerDialog
×
×
  • 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.