Jump to content

Banditul

Moderator
  • Posts

    1,134
  • Joined

  • Last visited

  • Days Won

    96

Everything posted by Banditul

  1. Eroarea iti spune exact problema pe care o ai si dupa mine e clara Va fi nevoie sa folosesti #include <YSI\y_hooks> in loc de #include <YSI/y_hooks> in gm tau + includes care folosesc y_hooks
  2. Run time error 20: "Invalid index parameter (bad entry point)" Inseamna ca nu ai main in gm tau main(){} De preferat asta va fi printre primele lucruri imediat dupa partea de #include CMySQLConnection::Connect - (error #2002) Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) Asta in schimb sugereaza ca serverul de mysql nu ruleaza, cel putin nu la adresa specificata (adica la ip respectiv) si de aceea nu se poate conecta. In cazul acesta daca nu ai acces la server (cel mai probabil ai cumparat host) va trebuie sa trimiti un ticket catre cei de la care ai cumparat host si sa ii intrebi de eroarea asta
  3. In primul query nu ai coloana Cash in baza de date pentru tabelul server_accounts In al doilea query, ai pus tilda in loc apostrof. cum am spus, tilda e doar pentru coloane nu pentru valori deci va fi nevoie sa folosesti WHERE `ID` = '%d'
  4. As verifica mysql_log sa vad daca sunt probleme pentru ca ce ai tu acolo nu s-a modificat intre versiuni Edit: Nu trebuie sa pui ` la %d , daca vrei neaparat sa pui ceva poti pune apostrof ' . Tilda ` e doar pentru coloane nu si pentru valori
  5. public OnGameModeInit() { DisableInteriorEnterExits(); return 1; } Folsoesti DisableInteriorEnterExits()
  6. Edit: Nu trebuie sa pui ; la o instructiune de if Si ce incerci sa faci mai exact? Ca vad ca ai doua lini asemanatoare. Incerci sa compari daca jucatorul e in una din locatii?
  7. @Dumby 24Acea linie se pune in interiorul OnGameModeInit dupa linia handle = mysql_connect();
  8. Deschide Task Manager ( Ctrl + Alt + Del ) si vezi gasi acolo optiunea pentru "Services" sau poti deasemenea scrie "services.msc" in bara de cautare a windows (start menu) si sa verifici acolo pentru orice urma de MySQL care iti ruleaza
  9. Uhm, in principal este din prima incercare callback-ul fiind chemat chiar in momentul in care player intra in checkpoint(folosind un gm de trucking care era bazat pe checkpoint-uri nu am avut probleme cu asta doar cand server-ul/player-ul aveau lag (ping etc)), imi vin in minte 2 idei dar nu sunt sigur 1. Exista o posibilitatea ca ceva cod aflat in OnPlayerEnterCheckpoint care este executat indifierent de situatie sa ingreuneze executia codului pentru finzaliarea cursei (putin probabil daca ma gandesc) 2. Sa existe alt cod undeva in gamemode care dureaza mult sa se execute (care ingreuneaza in mare parte executarea in parametri a altor functii) si oarecum sa intarzie executarea OnPlayerEnterCheckpoint Sunt doar niste teori totusi pentru ca functia in sine nu are delay implicit deci altceva ii blocheaza executia
  10. Problema ta e faptul ca ai un set de acolade care nu au nici un fel sens care cel mai probabil iti blocau o alta eroare else if(CP[playerid] == 6901) { if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "{008080}JOB >> {ffffff}Get out of the vehicle and press 'H' to take the package and deliver it."); if(GetPVarInt(playerid, "InHand") == 0) return SendClientMessage(playerid, -1, "{008080}JOB >> {ffffff}You don't have the package in arms."); new strings[64]; new materiale = 1000 + random(5000); format(strings, sizeof strings, "{008080}JOB >> {ffffff}You received %s materials.", FormatNumber(materiale)); SendClientMessage(playerid, -1, strings); DisablePlayerCheckpoint(playerid); facemateriale[playerid] = 0; CP[playerid] = 0; SetPVarInt(playerid, "InHand", 0); SetPlayerSpecialAction(playerid, 0); RemovePlayerAttachedObject(playerid, 6); ClearAnimations(playerid); PlayerInfo[playerid][pMats] += materiale; PlayerInfo[playerid][pArmsTimes] ++; Update(playerid,pMatsx); Update(playerid,pArmsTimesx); } Avand in vedere ca if de aici are deja un return, acoladele sunt doar de decor pentru ca orice se afla intre ele era executat oricum deoarece if-ul s-a finalizat odata cu return if(GetPVarInt(playerid, "InHand") == 0) Si din cauza acestor acolade(poate si mai multe in codul tau) puse degeaba mascau erori/lipsuri in codul tau sau cine stie ce altceva Practic codul tau postat pentru compilator arata ceva de genul if(GetPVarInt(playerid, "InHand") == 0) // Daca e true executa urmatoarea instructiune return SendClientMessage(playerid, -1, "{008080}JOB >> {ffffff}You don't have the package in arms."); // Instructiunea se termina aici { // Nu conteaza ce valoarea are if deoarece if-ul nu se mai aplica fiind deja executat (fie true sau false) // Se executa mereu }
  11. Multumit pentru suport moral, sper ca urmatorul post sa si ofere suport scripting On topic: Linia pe care ti-o indica este in regula. Ti-as sugera sa verifici cu 10-15 lini de cod mai sus de aceea linie deoarece compilatorul nu e mereu exact mai ales cand e vorba de lipsa ghilimelelor la un string(sau pozitionarea lor gresita) etc
  12. Ai doua variante sa rezolvi problema, daca vrei sa pastrezi PlayerText (presupunand faptul ca peste tot ai folosit functionalitatea de la acest tip de textdraw) solutia e urmatoarea: public OnPlayerConnect(palyerid) { SpeedometerPTD[0] = CreatePlayerTextDraw(playerid, 504.583007, 332.333221, "box"); PlayerTextDrawLetterSize(playerid, SpeedometerPTD[0], 0.000000, 8.360176); PlayerTextDrawTextSize(playerid, SpeedometerPTD[0], 633.923706, 0.000000); PlayerTextDrawAlignment(playerid, SpeedometerPTD[0], 1); PlayerTextDrawColor(playerid, SpeedometerPTD[0], -1); PlayerTextDrawUseBox(playerid, SpeedometerPTD[0], 1); PlayerTextDrawBoxColor(palyerid, SpeedometerPTD[0], 268435541); PlayerTextDrawSetShadow(playerid, SpeedometerPTD[0], 0); PlayerTextDrawSetOutline(playerid, SpeedometerPTD[0], 0); PlayerTextDrawBackgroundColor(playerid, SpeedometerPTD[0], 255); PlayerTextDrawFont(playerid, SpeedometerPTD[0], 1); PlayerTextDrawSetProportional(playerid, SpeedometerPTD[0], 1); // restul de textdraw folosind functiile de mai sus } Asta cu presupunerea ca folosesti functiile pentru PlayerTextDraw in restul gamemode-ului Daca nu folosesti ce am mentionat mai sus, modifici din PlayerText: in Text:
  13. Daca postezi al treilea topic la o diferenta de 1 ora referitor la aceasi problema care putea descrisa intr-un singur topic si bump la 3 sec dupa chiar nu te ajuta Revenind la topic, cum este defnit SpeedometerPTD? new Text:SpeedometerPTD sau new PlayerText:SpeedometerPTD?
  14. @nusuntalexIn primul rand, daca ai probleme legate de scripting si ai nevoie de ajutor te rog posteaza aici: https://www.sa-mp.ro/forums/forum/355-ajutor-scripting/ In al doilea rand, referitor la problema ta daca vrei sa comapri stringuri si sa creezi o functie care iti va returna faptul ca esti sau nu fondator va trebui mai intai de toate sa creezi acea functie EsteFondator(playerid) { } Asta este o functie, ca sa face vrei va trebui sa pui instructiunile intre acoalde { } Acum revenind la ce vrei tu sa faci EsteFondator(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name); return strcmp("nusuntalex16", name) == 0; } Ca sa compari doua cuvinte/propoziti s.a.m.d. trebuie sa folosesti functia strcmp pentru a le compara. Functia pe care tocmai ti-am dat-o va returna true (adevarat) in momentul in care numele jucatorului se potriveste cu numele mentionat Ca sa restrictionezi accessul unui jucator la o comanda sau altceva adaugi in ssitemul tau if (!EsteFondator(playerid)) return SendClientMessage(playerid, -1, "Nu esti fondator! Nu poti folosi aceasta functie!"); Poti inlocui -1 cu culoarea pe care o doresti Pentru a afla mai multe despre scripting poti folosi: https://www.sa-mp.ro/documentation/ unde vei gasi informatii despre functii din samp si altele
  15. Daca vrei sa gasesti include populare ca zcmd sau streamer cel mai usor e sa cauti dupa "samp include github" ex: https://www.google.com/search?client=firefox-b-d&q=samp+zcmd+github Si este primul link si de acolo iei fisierul .inc sau altceva iti mai trebuie Cat despre eroarea 100 inseamna ca nu ai acel include in folderul "pawno > include"
  16. https://www.open.mp/docs/scripting/resources/mapicons
  17. Singura varianta de a compila pe macos fara VM sau alte lucruri este https://github.com/pawn-lang/compiler/releases unde descarci fisierul pe care scrie macos
  18. Ce poti face e doar sa astepti raspunsul lor, fie pozitiv sau negativ
  19. https://github.com/CyberMor/sampvoice/releases Trebuie sa descarci sv_server daca vrei plugin/include Trebuie sa descarci sv_client ca sa il poti folosi ca si player Trebuie sa descarci sv_gamemode daca vrei un exemplu de cum sa il folsoesti
  20. Nu ai acel fisier in folderul pawno>includes sau compilatorul pe care il folosesti nu are acel fisier in folderul includes
  21. https://github.com/CyberMor/sampvoice Tot ce a luat a fost sa scriu "samp voice chat" si a fost primul link
  22. Nu are cum sa functioneze daca nu ii pasezi valorile necesare ca sa le poata procesa SetTimerEx("JobVehicleReload", 10000, false, "ii", playerid, GetPlayerVehicleID(playerid));
  23. 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; }
  24. Ma refeream la partea de masini, ai spus ca ai incercat doar ca nu se salveaza in tabelul respectiv ceea ce inseamna ca query respectiv e gresit. Ce trebuie sa faci e sa te asiguri ca query pe care il trimiti catre baza de date contine numele tabelului scris corect si coloanele pe care le ai si vrei sa fie salvate Ce ai trimis are legatura cu conturile si presupun ca e functional @Serbaq
  25. Poate oferind putin cod pe care l-ai incercat putea ajuta la indentificarea problemei mysql_format(connectiom, query, sizeof(query), "UPDATE masini SET Ceva = %i WHERE Id = %i", ceva, sqlIdMasina); mysql_tquery(conmnection, query); Asta ar fi cel mai simplu exemplu
×
×
  • 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.