Mesto
08.12.2016, 01:11
Подскажите пожалуйста как исправить
21:36:07] [debug] Run time error 4: "Array index out of bounds"
[21:36:07] [debug] Attempted to read/write array element at negative index -400
[21:36:07] [debug] AMX backtrace:
[21:36:07] [debug] #0 0019c2ac in public UpdateTimer () at D:\server\gamemodes\new.pwn:23017
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new vehid = GetPlayerVehicleID(playerid);
new string[80];
new Float:X, Float:Y, Float:Z, Float:X2, Float:Y2, Float:Z2;
new Float:veloc, modelid = GetVehicleModel(vehid)-400;
X2 = gVehicles[vehid][vX];
Y2 = gVehicles[vehid][vY];
Z2 = gVehicles[vehid][vZ];
GetVehiclePos(vehid, X, Y, Z);
veloc = PointToPoint3D(X2, Y2, Z2, X, Y, Z)/1000;
if(gVehicles[vehid][vEngine] == true && gTransport[modelid][trFuelable] == 1 && gVehicles[vehid][vFuel] > 0.0) // СТРОЧКА 23017
{
gVehicles[vehid][vFuel] -= (veloc/100)*gTransport[modelid][trConsumption]*2;
if(gVehicles[vehid][vFuel] <= 0.0)
{
gVehicles[vehid][vFuel] = 0.0;
ToggleEngine(vehid);
SendClientMessage(playerid, CGRAY, "Двигатель заглох.");
if((StartDerby == 3 || StartDerby == 2) && iDerby[playerid] != 0)
{
PlayerDerby--;
iDerby[playerid] = 0;
UpdateDerby();
DestroyVehicle(DerbyCar[1][playerid]);
DerbyCar[0][playerid] = -1;
DerbyCar[1][playerid] = -1;
SetPlayerPos(playerid, 827.0083,5.8989,1004.1870);
SetPlayerFacingAngle(playerid, 269.6992);
SetPlayerInterior(playerid, 3);
SetPlayerVirtualWorld(playerid, 300);
SendClientMessage(playerid, COLOR_GREY, "Вы были дисквалифицированы.");
}
}
else if(gVehicles[vehid][vHealth] <= 300.0)
{
gVehicles[vehid][vHealth] = 300.0;
ToggleEngine(vehid);
SendClientMessage(playerid, CGRAY, "Двигатель заглох");
if((StartDerby == 3 || StartDerby == 2) && iDerby[playerid] != 0)
{
PlayerDerby--;
iDerby[playerid] = 0;
UpdateDerby();
DestroyVehicle(DerbyCar[1][playerid]);
DerbyCar[0][playerid] = -1;
DerbyCar[1][playerid] = -1;
SetPlayerPos(playerid, 827.0083,5.8989,1004.1870);
SetPlayerFacingAngle(playerid, 269.6992);
SetPlayerInterior(playerid, 3);
SetPlayerVirtualWorld(playerid, 300);
SendClientMessage(playerid, COLOR_GREY, "Вы были дисквалифицированы.");
}
}
}
21:36:07] [debug] Run time error 4: "Array index out of bounds"
[21:36:07] [debug] Attempted to read/write array element at negative index -400
[21:36:07] [debug] AMX backtrace:
[21:36:07] [debug] #0 0019c2ac in public UpdateTimer () at D:\server\gamemodes\new.pwn:23017
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new vehid = GetPlayerVehicleID(playerid);
new string[80];
new Float:X, Float:Y, Float:Z, Float:X2, Float:Y2, Float:Z2;
new Float:veloc, modelid = GetVehicleModel(vehid)-400;
X2 = gVehicles[vehid][vX];
Y2 = gVehicles[vehid][vY];
Z2 = gVehicles[vehid][vZ];
GetVehiclePos(vehid, X, Y, Z);
veloc = PointToPoint3D(X2, Y2, Z2, X, Y, Z)/1000;
if(gVehicles[vehid][vEngine] == true && gTransport[modelid][trFuelable] == 1 && gVehicles[vehid][vFuel] > 0.0) // СТРОЧКА 23017
{
gVehicles[vehid][vFuel] -= (veloc/100)*gTransport[modelid][trConsumption]*2;
if(gVehicles[vehid][vFuel] <= 0.0)
{
gVehicles[vehid][vFuel] = 0.0;
ToggleEngine(vehid);
SendClientMessage(playerid, CGRAY, "Двигатель заглох.");
if((StartDerby == 3 || StartDerby == 2) && iDerby[playerid] != 0)
{
PlayerDerby--;
iDerby[playerid] = 0;
UpdateDerby();
DestroyVehicle(DerbyCar[1][playerid]);
DerbyCar[0][playerid] = -1;
DerbyCar[1][playerid] = -1;
SetPlayerPos(playerid, 827.0083,5.8989,1004.1870);
SetPlayerFacingAngle(playerid, 269.6992);
SetPlayerInterior(playerid, 3);
SetPlayerVirtualWorld(playerid, 300);
SendClientMessage(playerid, COLOR_GREY, "Вы были дисквалифицированы.");
}
}
else if(gVehicles[vehid][vHealth] <= 300.0)
{
gVehicles[vehid][vHealth] = 300.0;
ToggleEngine(vehid);
SendClientMessage(playerid, CGRAY, "Двигатель заглох");
if((StartDerby == 3 || StartDerby == 2) && iDerby[playerid] != 0)
{
PlayerDerby--;
iDerby[playerid] = 0;
UpdateDerby();
DestroyVehicle(DerbyCar[1][playerid]);
DerbyCar[0][playerid] = -1;
DerbyCar[1][playerid] = -1;
SetPlayerPos(playerid, 827.0083,5.8989,1004.1870);
SetPlayerFacingAngle(playerid, 269.6992);
SetPlayerInterior(playerid, 3);
SetPlayerVirtualWorld(playerid, 300);
SendClientMessage(playerid, COLOR_GREY, "Вы были дисквалифицированы.");
}
}
}