public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(vehicleid == 422)
{
if(UserStats[playerid][KeysBob] == 0)
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,engine,lights,alarm,0,bonnet,boot,objective);
}
else
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,engine,lights,alarm,1,bonnet,boot,objective);
}
}
return 1;
}
SetVehicleParamsForPlayer(vehicleid, playerid, objective, doorslocked);
Try
Код:
SetVehicleParamsForPlayer(vehicleid, playerid, objective, doorslocked); |
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(vehicleid == 422)
{
if(UserStats[playerid][KeysBob] == 0)
{
SetVehicleParamsForPlayer(vehicleid, playerid, 0, 1);
}
else
{
SetVehicleParamsForPlayer(vehicleid, playerid, 0, 0);
}
}
return 1;
}
if(UserStats[playerid][KeysBob] == 0)
{
// your code...
}
if(UserStats[playerid][KeysBob] == 1)
{
// your code...
}
There's no no point in creating the same two variables for the same use. Just create them once. You could try it like this:
pawn Код:
|
public OnFilterScriptInit() //Or OnGameModeInit() if you're using a gamemode
{
SetTimer("BobCheck", 1000, true);
return 1;
}
forward BobCheck();
public BobCheck()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
for(new v = 0; v < MAX_VEHICLES; v++)
{
if(GetVehicleModel(v) == 422)
{
if(UserStats[i][KeysBob] == 1) //If they have keys
{
SetVehicleParamsForPlayer(v, i, 0, 0); //Unlock Vehicle (Bobcat)
}
else
{
SetVehicleParamsForPlayer(v, i, 0, 1); //Lock Vehicle (Bobcat)
}
}
}
}
}
return 1;
}