Skripta koju koristim: Radim svoj mod
Detaljan opis problema: Znaci ovaj mod radim vec neko vrijeme i na verziji 0.3z je sve bilo ok, ali na verziiji 0.3.7 odjednom OnPlayerStateChange ne odraduje posao koji bi trebalo. Ja udjem u vozilo i nista se ne dogadja bez obzira jesam li lider, clan ili uopce nemam veze sa tom org
Dio skripte:
[pawn]
if(PolicijskaAuta(vozilo))
{
if(PI[playerid][pClan] == 7)
{
RemovePlayerFromVehicle(playerid);
SCM(playerid, -1, ""PLAVA"Znao sam da nemogu voziti vozilo svojih kolega!");
}
else if(PI[playerid][pClan] != 1 && PI[playerid][pClan] != 7)
{
RemovePlayerFromVehicle(playerid);
SCM(playerid, -1, ""PLAVA"Ne mozete ukrasti vozilo Los Santos Police Department!");
PostaviWanted(playerid, "Pokusaj kradje Policijskog vozila", "Nepoznato");
}
}[/pawn]
Neke slike/video za lakse dobivanje pomoci(neobavezno): //
Bump
Pogledaj sta si iznad toga dodavao, ubaci crash detect da vidis da negdje gore iznad nije problem, dali su ti vozila definisana u array-u ili po ID-u ako su po ID-u onda moguce da su se pomjerila ako si dodao prije njih neka druga vozila...
Znaci ovo imam ispred za ocitavanje speedometra, za anticheat i za tuning vozila
[pawn]
if(newstate == PLAYER_STATE_DRIVER)
{
Speedo(playerid, 1);
new Float:vhelti; Zastita[playerid] = 1;
GetVehicleHealth(GetPlayerVehicleID(playerid), vhelti);
AutoHelti[playerid] = vhelti;
new idd = PI[playerid][pPosedovanjeAuta];
new carr = GetPlayerVehicleID(playerid);
if(GetPlayerVehicleID(playerid) == VoziloInfo[idd][vSadasnjiID])
{
SetVehicleModifications(idd, carr);
}
if(PolicijskaAuta(vozilo))
{
if(PI[playerid][pClan] == 7)
{
RemovePlayerFromVehicle(playerid);
SCM(playerid, -1, ""PLAVA"Znao sam da nemogu voziti vozilo svojih kolega!");
}
else if(PI[playerid][pClan] != 1 && PI[playerid][pClan] != 7)
{
RemovePlayerFromVehicle(playerid);
SCM(playerid, -1, ""PLAVA"Ne mozete ukrasti vozilo Los Santos Police Department!");
PostaviWanted(playerid, "Pokusaj kradje Policijskog vozila", "Nepoznato");
}
}// Tu se jos nadovezuje za druge orge[/pawn]
[pawn]new policecar[32];[/pawn]
[pawn]stock PolicijskaAuta(carid)
{
for(new i = 0; i < sizeof(policecar); i++)
{
if(carid == policecar) return 1;
}
return 0;
}[/pawn]
Ubacio sam crashdetect i ovo mi je izbacilo u log
[pawn]
[02:58:53] [debug] Run time error 4: "Array index out of bounds"
[02:58:53] [debug] Accessing element at negative index -1
[02:58:53] [debug] AMX backtrace:
[02:58:53] [debug] #0 002c9328 in ?? (0, 2, 1) from purp.amx
[02:58:53] [debug] #1 0000dbb8 in public OnPlayerStateChange (0, 2, 1) from purp.amx[/pawn]
Kuzim da neki Array index prelazi odredjenu vrijednost, ali neznam koji....
Nisi dobro onda prebrojao policijska vozila ako ti piše array index of bonus, ti si na primer stavio od 0 do 30 vozila, i treba da definišeš policecar[31], a ti si definisao [32], to ti je primjer, provjeri definiciju i broj vozila..
Rjeseno