CMD:engine(playerid, params[]) { new vehicleid, carid, model; if (IsPlayerInAnyVehicle(playerid)) { vehicleid = GetPlayerVehicleID(playerid); model = GetVehicleModel(vehicleid); carid = Car_GetID(vehicleid); } else return SendErrorMessage(playerid, "You are not in any vehicle."); if (!IsEngineVehicle(vehicleid)) return SendErrorMessage(playerid, "This vehicle doesn't have an engine."); if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendErrorMessage(playerid, "You can't do this as you're not the driver."); if (PlayerData[playerid][pInjured]) return SendErrorMessage(playerid, "You can't do this while being injured or dead."); if (ReturnVehicleHealth(vehicleid) <= 300) return SendErrorMessage(playerid, "This vehicle is totalled and can't be started."); if (CoreVehicles[vehicleid][vehFuel] < 1) return SendErrorMessage(playerid, "The fuel tank is empty."); if (carid != -1 && Car_IsOwner(playerid, carid) || CoreVehicles[vehicleid][vehTemporary] || CoreVehicles[vehicleid][vehRental] && PlayerData[playerid][pRentedVehicle] == vehicleid || CoreVehicles[vehicleid][vehJob] || (PlayerData[playerid][pFaction] != -1 && CarData[carid][carFaction] == GetFactionType(playerid)) || PlayerData[playerid][pCarKeys] == carid) { switch (GetEngineStatus(vehicleid)) { case false: { SetEngineStatus(vehicleid, true); ShowPlayerFooter(playerid, "You have ~g~started~w~ the engine!"); SendNearbyMessage(playerid, 30.0, COLOR_PURPLE, "** %s inserts the key into the ignition and starts the engine of the %s.", ReturnName(playerid, 0), ReturnVehicleModelName(model)); } case true: { SetEngineStatus(vehicleid, false); ShowPlayerFooter(playerid, "You have ~r~stopped~w~ the engine!"); SendNearbyMessage(playerid, 30.0, COLOR_PURPLE, "** %s inserts the key into the ignition and stops the engine of the %s.", ReturnName(playerid, 0), ReturnVehicleModelName(model)); } } } else SendErrorMessage(playerid, "You don't have the keys to this vehicle."); return 1; }
[14:21:12] [debug] Run time error 4: "Array index out of bounds" [14:21:12] [debug] Accessing element at negative index -1 [14:21:12] [debug] AMX backtrace: [14:21:12] [debug] #0 0018a534 in public cmd_engine (4, 7397284) from LSLRP.amx [14:21:12] [debug] #1 native CallLocalFunction () from samp03svr [14:21:12] [debug] #2 00017ca8 in public OnPlayerCommandText (4, 7397252) from LSLRP.amx
CMD:engine(playerid, params[])
{
new
vehicleid,
carid,
model;
if (IsPlayerInAnyVehicle(playerid)) {
vehicleid = GetPlayerVehicleID(playerid);
model = GetVehicleModel(vehicleid);
carid = Car_GetID(vehicleid);
}
else
{
SendErrorMessage(playerid, "You are not in any vehicle.");
}
if (!IsEngineVehicle(vehicleid))
{
SendErrorMessage(playerid, "This vehicle doesn't have an engine.");
}
if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
{
SendErrorMessage(playerid, "You can't do this as you're not the driver.");
}
if (PlayerData[playerid][pInjured])
{
SendErrorMessage(playerid, "You can't do this while being injured or dead.");
}
if (ReturnVehicleHealth(vehicleid) <= 300)
{
SendErrorMessage(playerid, "This vehicle is totalled and can't be started.");
}
if (CoreVehicles[vehicleid][vehFuel] < 1)
{
SendErrorMessage(playerid, "The fuel tank is empty.");
}
if (carid != -1 && Car_IsOwner(playerid, carid) || CoreVehicles[vehicleid][vehTemporary] || CoreVehicles[vehicleid][vehRental] && PlayerData[playerid][pRentedVehicle] == vehicleid || CoreVehicles[vehicleid][vehJob] || (PlayerData[playerid][pFaction] != -1 && CarData[carid][carFaction] == GetFactionType(playerid)) || PlayerData[playerid][pCarKeys] == carid)
{
switch (GetEngineStatus(vehicleid))
{
case false:
{
SetEngineStatus(vehicleid, true);
ShowPlayerFooter(playerid, "You have ~g~started~w~ the engine!");
SendNearbyMessage(playerid, 30.0, COLOR_PURPLE, "** %s inserts the key into the ignition and starts the engine of the %s.", ReturnName(playerid, 0), ReturnVehicleModelName(model));
}
case true:
{
SetEngineStatus(vehicleid, false);
ShowPlayerFooter(playerid, "You have ~r~stopped~w~ the engine!");
SendNearbyMessage(playerid, 30.0, COLOR_PURPLE, "** %s inserts the key into the ignition and stops the engine of the %s.", ReturnName(playerid, 0), ReturnVehicleModelName(model));
}
}
}
else SendErrorMessage(playerid, "You don't have the keys to this vehicle.");
return 1;
}
PHP код:
|
CMD:engine(playerid, params[])
{
new vehicleid, carid, model;
if(!IsPlayerInAnyVehicle(playerid)) return SendErrorMessage(playerid, "You are not in any vehicle.");
if(!IsEngineVehicle(vehicleid)) return SendErrorMessage(playerid, "This vehicle doesn't have an engine.");
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendErrorMessage(playerid, "You can't do this as you're not the driver.");
if(PlayerData[playerid][pInjured]) return SendErrorMessage(playerid, "You can't do this while being injured or dead.");
if(ReturnVehicleHealth(vehicleid) <= 300) return SendErrorMessage(playerid, "This vehicle is totalled and can't be started.");
if(CoreVehicles[vehicleid][vehFuel] < 1) return SendErrorMessage(playerid, "The fuel tank is empty.");
if(carid != -1 && Car_IsOwner(playerid, carid) || CoreVehicles[vehicleid][vehTemporary] || CoreVehicles[vehicleid][vehRental] && PlayerData[playerid][pRentedVehicle] == vehicleid || CoreVehicles[vehicleid][vehJob] || (PlayerData[playerid][pFaction] != -1 && CarData[carid][carFaction] == GetFactionType(playerid)) || PlayerData[playerid][pCarKeys] == carid)
{
switch (GetEngineStatus(vehicleid))
{
case false:
{
SetEngineStatus(vehicleid, true);
ShowPlayerFooter(playerid, "You have ~g~started~w~ the engine!");
SendNearbyMessage(playerid, 30.0, COLOR_PURPLE, "** %s inserts the key into the ignition and starts the engine of the %s.", ReturnName(playerid, 0), ReturnVehicleModelName(model));
}
case true:
{
SetEngineStatus(vehicleid, false);
ShowPlayerFooter(playerid, "You have ~r~stopped~w~ the engine!");
SendNearbyMessage(playerid, 30.0, COLOR_PURPLE, "** %s inserts the key into the ignition and stops the engine of the %s.", ReturnName(playerid, 0), ReturnVehicleModelName(model));
}
}
}
SendErrorMessage(playerid, "You don't have the keys to this vehicle.");
return 1;
}
CMD:engine(playerid, params[])
{
new vehicleid, carid, model;
if(IsPlayerInAnyVehicle(playerid)) vehicleid = GetPlayerVehicleID(playerid), model = GetVehicleModel(vehicleid), carid = Car_GetID(vehicleid);
else return SendErrorMessage(playerid, "You are not in any vehicle.");
if(!IsEngineVehicle(vehicleid)) return SendErrorMessage(playerid, "This vehicle doesn't have an engine.");
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendErrorMessage(playerid, "You can't do this as you're not the driver.");
if(PlayerData[playerid][pInjured]) return SendErrorMessage(playerid, "You can't do this while being injured or dead.");
if(ReturnVehicleHealth(vehicleid) <= 300) return SendErrorMessage(playerid, "This vehicle is totalled and can't be started.");
if(CoreVehicles[vehicleid][vehFuel] < 1) return SendErrorMessage(playerid, "The fuel tank is empty.");
if(carid != -1 && Car_IsOwner(playerid, carid) || CoreVehicles[vehicleid][vehTemporary] || CoreVehicles[vehicleid][vehRental] && PlayerData[playerid][pRentedVehicle] == vehicleid || CoreVehicles[vehicleid][vehJob] || (PlayerData[playerid][pFaction] != -1 && CarData[carid][carFaction] == GetFactionType(playerid)) || PlayerData[playerid][pCarKeys] == carid)
{
switch(GetEngineStatus(vehicleid))
{
case false:
{
SetEngineStatus(vehicleid, true);
ShowPlayerFooter(playerid, "You have ~g~started~w~ the engine!");
SendNearbyMessage(playerid, 30.0, COLOR_PURPLE, "** %s inserts the key into the ignition and starts the engine of the %s.", ReturnName(playerid, 0), ReturnVehicleModelName(model));
}
case true:
{
SetEngineStatus(vehicleid, false);
ShowPlayerFooter(playerid, "You have ~r~stopped~w~ the engine!");
SendNearbyMessage(playerid, 30.0, COLOR_PURPLE, "** %s inserts the key into the ignition and stops the engine of the %s.", ReturnName(playerid, 0), ReturnVehicleModelName(model));
}
}
return 1;
}
SendErrorMessage(playerid, "You don't have the keys to this vehicle.");
return 1;
}
CoreVehicles[vehicleid][vehRental] && PlayerData[playerid][pRentedVehicle] == vehicleid
if(CoreVehicles[vehicleid][vehRental] == 1)
if(carid != -1 && Car_IsOwner(playerid, carid) || CoreVehicles[vehicleid][vehTemporary] == 1 || CoreVehicles[vehicleid][vehRental] == 1 && PlayerData[playerid][pRentedVehicle] == vehicleid || CoreVehicles[vehicleid][vehJob] == 1 || (PlayerData[playerid][pFaction] != -1 && CarData[carid][carFaction] == GetFactionType(playerid)) || PlayerData[playerid][pCarKeys] == carid)
What's the size of CoreVehicles?
And can you post the code for Car_IsOwner? |
Car_IsOwner(playerid, carid) { if (!PlayerData[playerid][pLogged] || PlayerData[playerid][pID] == -1) return 0; if ((CarData[carid][carExists] && CarData[carid][carOwner] != 0) && CarData[carid][carOwner] == PlayerData[playerid][pID]) return 1; return 0; }
You should assign values for your variables in if statement sentence.
For Example: PHP код:
PHP код:
|
CoreVehicles[vehicleid][vehRental] == 1
CoreVehicles[vehicleid][vehRental]