-
Posts
422 -
Joined
-
Last visited
-
Days Won
2
Content Type
Profiles
Forums
News
Documentation
Posts posted by iSkull
-
-
Iti iese din aray, trebuie sa faci array-ul mai mare
-
Acum 53 minute, TheGodfather a spus:
Imi da aceeasi eroare in logurile serverului doar ca acum nu mai zice ca e index -2 ci e index -1
Ok, atunci, modifica codul in felul urmator, acum o sa fie in array, array-ul incepe de la 0 pana la numarul maxim - 1
Nu am de unde sa stiu ce ai in acel gm si cum functioneaza
new amount, rand = random(100), x; if(CrateModel[i] > 0) x = CrateModel[i] - 1; else x = 0;
-
Acum 1 minut, TheGodfather a spus:
Ok, o sa incerc. Totusi nu stiu cum pot reproduce eroarea, ca sa vad daca chestia asta o rezolva
Daca pui ce am scris in edit nu o sa-ti mai dea, pentru ca de fiecare data cand se va apela functia se va reverifica acel x, in ce aveai tu, daca CrateModel era -1 in multe cazuri cum ai de fata, cand se reapela functia iti mai scadea 1 si returna -2, in ce ti-am dat eu, daca CrateModel e -1, x va ramane -1, daca e 0 se va face x -1
new amount, rand = random(100), x = !CrateModel[i] ? 0 : CrateModel[i]-1; Poti face: new amount, rand = random(100), x; if(CrateModel[i] == -1) x = -1; else x = CrateModel[i] - 1;
-
Nu m-am uitat la linie, atunci poti face o verificare in felul urmator:
if(x < -1) x = 1;
Edit:
new amount, rand = random(100), x = !CrateModel[i] ? 0 : CrateModel[i]-1;
Poti face: new amount, rand = random(100), x;
if(CrateModel[i] == -1) x = -1;
else x = CrateModel[i] - 1;
-
[12:20:54] [debug] Run time error 4: "Array index out of bounds"
[12:20:54] [debug] Accessing element at negative index -2Iti iese din array, poti pune niste printf-uri sa vezi care si cum iese, e mare functia, nu putem afla de unde e problema
Ex:
printf("Player ID: %d", playerid); // la on playerconnect ca si exemplu si iti va scrie in consola la fiecare conectare
-
Model
new LockRent[MAX_VEHICLES]; // definesti la inceput de gm dupa include-uri // la dialogul cu dialog_rent sau ce ai tu pe acolo imediat dupa PlayerInfo[playerid][pRentCar] = CreateVehicle pui LockRent[PlayerInfo[playerid][pRentCar]] = 0; // descuiat SetVehicleParamsEx(PlayerInfo[playerid][pRentCar], VEHICLE_PARAMS_OFF, lights, alarm, 0, bonnet, boot, 0); YCMD:lock(playerid, params[], help) { if(!PlayerInfo[playerid][pRentCar]) return 1; new string[75]; LockRent[PlayerInfo[playerid][pRentCar]] = (LockRent[PlayerInfo[playerid][pRentCar]]) ? (0) : (1); SetVehicleParamsEx(PlayerInfo[playerid][pRentCar], VEHICLE_PARAMS_OFF, lights, alarm, LockRent[PlayerInfo[playerid][pRentCar]], bonnet, boot, 0); format(string, sizeof(string), "Vehiculul de tip %s a fost %s cu succes!", getVehicleName(GetVehicleModel(PlayerInfo[playerid][pRentCar])), (LockRent[PlayerInfo[playerid][pRentCar]]) ? ("incuiat") : ("descuiat")); SendClientMessage(playerid, -1, string); return 1; } // la distrugere pui LockRent[vehicleid] = 0;
- 1
-
Faci variabila noua pe masina, o faci la rentcar pe 1 => locked/ 0 => unlocked, setezi parametrii din noua variabila
la /lockrent te folosesti de variabila
-
PlayerInfo[playerid][pRentCar] = 1; nu isi mai are rostul, il poti sterge
in rest e ok
O problema ar fi aici: getVehicleName(PlayerInfo[playerid][pRentCar]) => getVehicleName(GetVehicleModel(PlayerInfo[playerid][pRentCar]))
Nu poti genera denumirea vehiculului daca nu iei modelul acestuia
Inlocuieste si vezi daca primesti mesaj, am vazut ca ai acel SCM nu stiu cum l-ai definit
-
arata partea cu rentcar cum ai facut
-
Posibil sa ai pe textdraw meniul, nu ai textdrawrile facute sau nu sunt puse in comanda respectiva
-
Tu ai rentcar definit global din ce vad, trebuie sa faci pe jucator
Poti pune if(PlayerInfo[playerid][pRentCar] > 0) return SendClientMessage(playerid, -1, "Ai deja o masina inchiriata.");
iar la rentcar = CreateVehicle(model, x, y, z, angle, color1, color2, time);
poti pune PlayerInfo[playerid][pRentCar] = CreateVehicle(model, x, y, z, angle, color1, color2, time); // e ptr fiecare jucator in parte pe o singura variabila
-
Acum 34 minute, NERS a spus:
schimba linia cu mysql format in asta:
mysql_format(handle, string, sizeof(string), "UPDATE `conturi` SET `RespectPoints` = '%d', `Level` = '%d' WHERE `ID` = '%d'", P_Data[playerid][pRespectPoints], P_Data[playerid][pLevel], P_Data[playerid][pID]);
si dedesubt adauga:
mysql_tquery(handle, string, "", "");
@IosifR Ti-a explicat el ca la ####, iti e lene sa citesti?
Si oricum trebuie marit string-ul la 80-85 ca are 77 de caractere
@IosifR Pune mana si uita-te pe tutoriale intai de mysql, nu ca ai facut si iti da eroare sau ca nu primeste update la baza de date
-
Posibil sa ai restrictie, sa joci doar de pe un cont
-
Mai ai de învățat, trebuie să ai Microsoft visual c++ instalat, toate versiunile atat x86 cât și x64, nu e neapărat de la ce ai pus tu acolo
-
Am uitat sa-ti zic, R41-3
definesti SQL: new MySQL: SQL;
MAX_PLAYERS => este definit de pachetul SA:MP
MAX_PLAYER_NAME => este definit de pachetul SA:MP
P_DATA => e de la enum pInfo/pVariable cum ai definit tu in gamemode, poate ai PlayerInfo/PlayerData
stock-ul ti l-am definit in pastebin, mi se pare normal daca tu iei doar partea de mysql
-
ai probleme la LoginTimer
Ex:
new login_timer[MAX_PLAYERS]; public OnPlayerConnect(playerid) { login_timer[playerid] = -1; login_timer[playerid] = SetTimerEx("LoginTimer", 30000, false, "i", playerid); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Introdu parola:", "Ok", "Close"); } public OnPlayerDisconnect(playerid, reason) { if(login_timer[playerid] != -1) { KillTimer(login_timer[playerid]); login_timer[playerid] = -1; } } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DIALOG_LOGIN: { // daca jucatorul s-a logat cu succes KillTimer(login_timer[playerid]); login_timer[playerid] = -1; } } return 1; } forward LoginTimer(playerid) public LoginTimer(playerid) { KillTimer(login_timer[playerid]); login_timer[playerid] = -1; }
-
Ai aici un model: https://pastebin.com/yS8KKAYL
-
Inlocuieste acea functie cu asta: GetPlayerDistanceFromPoint
ex: new float: dist;
dist = GetPlayerDistanceFromPoint(playerid, x, y, z);
-
Acum 1 oră, matei_ a spus:
Cum e pusa bine? Ca daca pui ; si dupa deschizi acolada, primesti warning pentru unreachable code si eroare pentru empty statement. Fa-ma sa inteleg...
Nu am vazut " ; ", e greseala mea aici, dar eu ma refeream la linia 28216 pentru ca acolo ii dadea eroarea
-
Acum 4 ore, Yonut a spus:
Ai compilat gamemode-ul?
Daca da, inloc de mysql_tquery foloseste mysql_query si fara "".
Acum 2 ore, nQeed a spus:adauga Update(playerid, pCash);
Update(playerid, pLevel);daca nu merge Update(playerid, pCashx);
Update(playerid, pLevelx);sunteti asa de destepti de dati prin gropi, mysql_query e pentru altceva, a folosit bine mysql_tquery, problema e la stocarea numelui sau variabila in baza de date in tabelul respectiv nu exista, data viitoare sa va asigurati ca el are deja anumite lucruri definite, nu toate gm-urile sunt la fel, sau voi va numiti scripteri dupa 3 luni
poti pune o varianta de test in urmatorul fel si vei vedea daca functioneaza sau nu
stock getName(playerid) { new name[MAX_PLAYER_NAME] = "Unknown"; if(IsPlayerConnected(playerid)) GetPlayerName(playerid, name, MAX_PLAYER_NAME); return name; } CMD:test(playerid, params[]) // daca folosesti ZCMD { new string[100]; mysql_format(SQL, string, sizeof(string), "UPDATE `table` SET `Money` = '%d' WHERE `Name` = '%e'", GetPlayerMoney(playerid), getName(playerid)); mysql_tquery(SQL, string, "", ""); return 1; }
-
Descarca crashdetect, nu are treaba libraria YSI cu ce patesti tu acolo
-
Acum 1 oră, matei_ a spus:
La linia 21218 ai ; pusă aiurea.
e pus bine, mai invata putin,
e posibil din cauza primelor warninguri sa ti se returneze si acolo, trebuiesc rezolvate la rand, eroarea de la lini 28216 e inexistenta, e posibil daca ai copiat mai multe coduri din alte gm-uri, deja ultima eroare iti zice ca sunt prea multe erori, deja depaseste limita impusa de pawno, verifica daca acel pAdmin si PlayerInfo exista in gm-ul tau, pentru PlayerInfo sa fie new PlayerInfo[MAX_PLAYERS][pInfo] ar trebui sa fie definit, iar pAdmin in interiorul enumeratorului
Nu este prima data cand vad erori pe linii corecte din cauza altora
-
Crashdetect se pune primul la plugins, posibil sa nu ai anumite Microsoft visual c++ instalate
-
Acum 22 ore, David2k a spus:
Daca ai unknown poti baga la ongamemodeinit SetGameModeText("VenoMarius GM"); sau cum vr tu.
Ori ai o limita maritaExemplu:
new turf[25];
si tu ai undeva turf[26] sau mai mult de duci la new turf[25] si pui cate ai folosite.
asta e un exemplu poate ai alta functie.
Nu are treaba un array cu denumirea modului de joc in cazul in care nu stiai
Posibil sa nu ai la plugin-uri .so ca si extensie, sau platforma pe care incerci sa urci nu este compatibila cu ceea ce pui tu, daca ei folosesc CENTOS7 tu trebuie sa ai la fel, daca e pe linux trebuie sa ai la fel, aici gasesti ce-ti cer ei(https://github.com/pBlueG/SA-MP-MySQL/releases) ii intrebi ce folosesc ca si sistem si iti descarci versiunea pe care o folosesti la gamemode + sistemul cerut
Bug opencrates gamemode HPQ123
in Ajutor Scripting
Posted · Edited by iSkull
Nu imi trebuie.. nu mai fac proiecte.. doar mai ajut pe aici pe colo, pune doar ce ti-am dat mai sus