Vehicle with no fuel -
Lajko1 - 11.12.2013
Hey I have problem in my script I defined my vehicles that are not using fuel, some bikes and carts and so on.. here is stock:
pawn Код:
stock NoFuel(playerid)
{
new V = GetPlayerVehicleID(playerid);
if(V == 481 || V == 509 || V == 510 || V == 441 || V == 464 || V == 465 || V == 501 || V == 564 || V == 594)
{
return 1;
}
return 0;
}
And OnPlayerStateChange:
pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new vehicleid = GetPlayerVehicleID(playerid);
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
{
if(GetPlayerVehicleID(playerid) == NoFuel(vehicleid))
{
SetVehicleParamsEx(vehicleid,1,lights,alarm,doors,bonnet,boot,objective);
return 1;
}
if(oldstate-1 && newstate)
{
TextDrawHideForPlayer(playerid, vName[playerid]);
TextDrawHideForPlayer(playerid, vSpeed[playerid]);
TextDrawHideForPlayer(playerid, vGear[playerid]);
TextDrawHideForPlayer(playerid, vHP[playerid]);
TextDrawHideForPlayer(playerid, vFuel[playerid]);
TextDrawHideForPlayer(playerid, HP[playerid]);
TextDrawHideForPlayer(playerid, Speed[playerid]);
TextDrawHideForPlayer(playerid, Gear[playerid]);
TextDrawHideForPlayer(playerid, Veh[playerid]);
TextDrawHideForPlayer(playerid, Fuel[playerid]);
}
if(Carinfo[vehicleid][F] < 1)
{
TextDrawHideForPlayer(playerid, vName[playerid]);
TextDrawHideForPlayer(playerid, vSpeed[playerid]);
TextDrawHideForPlayer(playerid, vGear[playerid]);
TextDrawHideForPlayer(playerid, vHP[playerid]);
TextDrawHideForPlayer(playerid, vFuel[playerid]);
TextDrawHideForPlayer(playerid, HP[playerid]);
TextDrawHideForPlayer(playerid, Speed[playerid]);
TextDrawHideForPlayer(playerid, Gear[playerid]);
TextDrawHideForPlayer(playerid, Veh[playerid]);
TextDrawHideForPlayer(playerid, Fuel[playerid]);
SendClientMessage(playerid, COLOR_YELLOW,"{FF0000}INFO: {FFFFFF}This vehicle is out of fuel, buy gas can at any gas station and refuel it.");
SetVehicleParamsEx(vehicleid,0,lights,alarm,doors,bonnet,boot,objective);
return 1;
}
else if(Carinfo[vehicleid][F] > 1 && vehicleid != NoFuel(playerid))
{
SendClientMessage(playerid, COLOR_RED,"{FF6A22}INFO: {FFFFFF}Write {FF6A22}/engine {FFFFFF}to turn on engine.");
return 1;
}
}
return 1;
}
The problem is when I sit on bike vehicle params (in this case engine) is still turned off so I need to use /engine on it -.-' what is wrong?
Re: Vehicle with no fuel - Emmet_ - 11.12.2013
You are comparing the vehicle ID when you should be comparing the vehicle model.
pawn Код:
stock NoFuel(vehicleid)
{
switch (GetVehicleModel(vehicleid))
{
case 481, 509, 510, 441, 464, 465, 501, 564, 594:
return 1;
}
return 0;
}
Re: Vehicle with no fuel -
Lajko1 - 11.12.2013
It still tell me this:
pawn Код:
else if(Carinfo[vehicleid][F] > 1 && vehicleid != NoFuel(playerid))
{
SendClientMessage(playerid, COLOR_RED,"{FF6A22}INFO: {FFFFFF}Write {FF6A22}/engine {FFFFFF}to turn on engine.");
return 1;
}
Maybe because of this loop on Filterscript init?
pawn Код:
for(new vehicleid; vehicleid < MAX_VEHICLES; vehicleid++)
{
Carinfo[vehicleid][F] = 100;
}
Re: Vehicle with no fuel - Emmet_ - 11.12.2013
pawn Код:
else if(Carinfo[vehicleid][F] > 1 && vehicleid != NoFuel(GetPlayerVehicleID(playerid)))
{
SendClientMessage(playerid, COLOR_RED,"{FF6A22}INFO: {FFFFFF}Write {FF6A22}/engine {FFFFFF}to turn on engine.");
return 1;
}
The
NoFuel I've posted must not take "playerid" as a parameter.
Re: Vehicle with no fuel -
Lajko1 - 12.12.2013
Okay but it still say "write /engine to turn on the engine" if I sit on bike.. :/ this might help you to find problem in script
pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new vehicleid = GetPlayerVehicleID(playerid);
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
{
if(GetPlayerVehicleID(playerid) == NoFuel(vehicleid))
{
SetVehicleParamsEx(vehicleid,1,lights,alarm,doors,bonnet,boot,objective);
return 1;
}
if(oldstate-1 && newstate)
{
KillTimer(GasTimer[playerid]);
TextDrawHideForPlayer(playerid, vName[playerid]);
TextDrawHideForPlayer(playerid, vSpeed[playerid]);
TextDrawHideForPlayer(playerid, vGear[playerid]);
TextDrawHideForPlayer(playerid, vHP[playerid]);
TextDrawHideForPlayer(playerid, vFuel[playerid]);
TextDrawHideForPlayer(playerid, HP[playerid]);
TextDrawHideForPlayer(playerid, Speed[playerid]);
TextDrawHideForPlayer(playerid, Gear[playerid]);
TextDrawHideForPlayer(playerid, Veh[playerid]);
TextDrawHideForPlayer(playerid, Fuel[playerid]);
}
if(Carinfo[vehicleid][F] < 1)
{
TextDrawHideForPlayer(playerid, vName[playerid]);
TextDrawHideForPlayer(playerid, vSpeed[playerid]);
TextDrawHideForPlayer(playerid, vGear[playerid]);
TextDrawHideForPlayer(playerid, vHP[playerid]);
TextDrawHideForPlayer(playerid, vFuel[playerid]);
TextDrawHideForPlayer(playerid, HP[playerid]);
TextDrawHideForPlayer(playerid, Speed[playerid]);
TextDrawHideForPlayer(playerid, Gear[playerid]);
TextDrawHideForPlayer(playerid, Veh[playerid]);
TextDrawHideForPlayer(playerid, Fuel[playerid]);
SendClientMessage(playerid, COLOR_YELLOW,"{FF0000}INFO: {FFFFFF}This vehicle is out of fuel, buy gas can at any gas station and refuel it.");
SetVehicleParamsEx(vehicleid,0,lights,alarm,doors,bonnet,boot,objective);
return 1;
}
else if(Carinfo[vehicleid][F] > 1 && vehicleid != NoFuel(GetPlayerVehicleID(playerid)))
{
SendClientMessage(playerid, COLOR_RED,"{FF6A22}INFO: {FFFFFF}Write {FF6A22}/engine {FFFFFF}to turn on engine.");
return 1;
}
}
return 1;
}
Re: Vehicle with no fuel - Emmet_ - 12.12.2013
pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new vehicleid = GetPlayerVehicleID(playerid);
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
{
if(NoFuel(vehicleid))
{
SetVehicleParamsEx(vehicleid,1,lights,alarm,doors,bonnet,boot,objective);
return 1;
}
if(oldstate-1 && newstate)
{
KillTimer(GasTimer[playerid]);
TextDrawHideForPlayer(playerid, vName[playerid]);
TextDrawHideForPlayer(playerid, vSpeed[playerid]);
TextDrawHideForPlayer(playerid, vGear[playerid]);
TextDrawHideForPlayer(playerid, vHP[playerid]);
TextDrawHideForPlayer(playerid, vFuel[playerid]);
TextDrawHideForPlayer(playerid, HP[playerid]);
TextDrawHideForPlayer(playerid, Speed[playerid]);
TextDrawHideForPlayer(playerid, Gear[playerid]);
TextDrawHideForPlayer(playerid, Veh[playerid]);
TextDrawHideForPlayer(playerid, Fuel[playerid]);
}
if(Carinfo[vehicleid][F] < 1)
{
TextDrawHideForPlayer(playerid, vName[playerid]);
TextDrawHideForPlayer(playerid, vSpeed[playerid]);
TextDrawHideForPlayer(playerid, vGear[playerid]);
TextDrawHideForPlayer(playerid, vHP[playerid]);
TextDrawHideForPlayer(playerid, vFuel[playerid]);
TextDrawHideForPlayer(playerid, HP[playerid]);
TextDrawHideForPlayer(playerid, Speed[playerid]);
TextDrawHideForPlayer(playerid, Gear[playerid]);
TextDrawHideForPlayer(playerid, Veh[playerid]);
TextDrawHideForPlayer(playerid, Fuel[playerid]);
SendClientMessage(playerid, COLOR_YELLOW,"{FF0000}INFO: {FFFFFF}This vehicle is out of fuel, buy gas can at any gas station and refuel it.");
SetVehicleParamsEx(vehicleid,0,lights,alarm,doors,bonnet,boot,objective);
return 1;
}
else if(Carinfo[vehicleid][F] > 1 && !NoFuel(vehicleid))
{
SendClientMessage(playerid, COLOR_RED,"{FF6A22}INFO: {FFFFFF}Write {FF6A22}/engine {FFFFFF}to turn on engine.");
return 1;
}
}
return 1;
}
Re: Vehicle with no fuel -
Lajko1 - 12.12.2013
Thank you what about this code?
pawn Код:
if(GetPlayerVehicleID(playerid) == NoFuel(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid, COLOR_RED,"{FF6A22}INFO: {FFFFFF}You can't do that on this vehicle.");
If I'm sitting on bike I can still use it :/ - it's code from command
Re: Vehicle with no fuel - Emmet_ - 12.12.2013
No, that's not how you use it at all!
Change:
pawn Код:
if(GetPlayerVehicleID(playerid) == NoFuel(GetPlayerVehicleID(playerid)))
So change it to this code below. Any other code like that one above should be replaced with this one:
pawn Код:
if (NoFuel(GetPlayerVehicleID(playerid)))
Re: Vehicle with no fuel -
Lajko1 - 12.12.2013
Thank you

rep+