public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (PRESSED(KEY_FIRE))
{
if (IsPlayerInAnyVehicle(playerid))
{
AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
}
}
return 1;
}
forward InfiniteNitro();
public OnGameModeInit()
{
SetTimer("InfiniteNitro", 1000, 1);
return 1;
}
public InfiniteNitro()
{
new vehicleid;
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
if(GetPlayerState(i)==2)
{
vehicleid=GetPlayerVehicleID(i);
if(CheckVehicle(vehicleid))
AddVehicleComponent(vehicleid,1010);
}
}
}
return 1;
}
stock CheckVehicle(vehicleid)
{
#define MAX_INVALID_NOS_VEHICLES 13
new InvalidNOSVehicles[MAX_INVALID_NOS_VEHICLES] =
{
522, 481, 441, 468, 448, 446, 513, 521, 510, 430, 520, 476, 463
};
for(new i = 0; i < MAX_INVALID_NOS_VEHICLES; i++)
{
if(GetVehicleModel(vehicleid) == InvalidNOSVehicles[i]) return false;
}
return true;
}
You may want to use a key like SUBMISSION, because if you activate NOS w/ FIRE and FIRE also gives you NOS...you'll get a quick burst before NOS is reapplied (which resets the NOS process). Know what I mean?
On my server I set the SUBMISSION (the '2' key by default) key to give NOS and fix the car. Might be something to think about . |
if (HOLDING(KEY_FIRE)){//add Nitro from vehicle
if(GetVehicleComponentInSlot(GetPlayerVehicleID(playerid),GetVehicleComponentType(1010)) != 1010){
AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);}
}else if ((oldkeys & KEY_FIRE) && !(newkeys & KEY_FIRE)){//remove Nitro from vehicle
if(GetVehicleComponentInSlot(GetPlayerVehicleID(playerid),GetVehicleComponentType(1010)) == 1010){
RemoveVehicleComponent(GetPlayerVehicleID(playerid),1010);}
}