04.02.2013, 15:48
im Trying to make a car system , with alarm flash lights enums and stuff but locking the car doesn't work for lastplayer[playerid] any suggestions here is code
PHP код:
#include <a_samp>
#include <IsKeyDown>
//---[Car Info]
#define FLASH_TIME 500
new AlarmTime[MAX_PLAYERS];
new LastVehicle[MAX_PLAYERS];
enum cInfo
{
cOwner[128],
cModel,
cOwned,
cEngine,
cLights,
cLock,
cAlarm,
cBonnet,
cBoot,
cObjective,
cPaintjob,
};
new CarInfo[MAX_CARS][cInfo];
public OnGameModeInit()
{
ManualVehicleEngineAndLights();
return 1;
}
public OnPlayerConnect()
{
LastVehicle[playerid] = 0;
}
public OnPlayerEnterVehicle(playerid,vehicleid,ispassenger)
{
new engine,lights,alarm,doors,bonnet,boot,objective;
new veh = GetPlayerVehicleID(playerid);
GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
if(CarInfo[cInfo][cEngine] == 1)
{
GameTextForPlayer(playerid,"~w~Ignition: ~g~Running",200,5);
SendClientMessage(playerid,-1,COLOR_YELLOW"<<Car Info>>"COLOR_WHITE" Ignition Already Running!");
SendClientMessage(playerid,-1,COLOR_YELLOW"<<Car Info>>"COLOR_WHITE" To Turn Off Ignition Press Key ~k~~TOGGLE_SUBMISSIONS~ ");
}
if(CarInfo[cInfo][cEngine] == 0)
{
GameTextForPlayer(playerid,"~w~Ignition: ~r~Off",200,5);
SendClientMessage(playerid,-1,COLOR_YELLOW"<<Car Info>>"COLOR_WHITE" Ignition Off!");
SendClientMessage(playerid,-1,COLOR_YELLOW"<<Car Info>>"COLOR_WHITE" To Turn On Ignition Press Key ~k~~TOGGLE_SUBMISSIONS~ ");
SendClientMessage(playerid,-1,COLOR_YELLOW"<<Car Info>>"COLOR_WHITE" To Turn On Alarm Type /alarmon !");
}
return true;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new string[24];
if(newstate == 2 && oldstate == 1)
{
format(string,sizeof(string),"~W~%s", VehicleNames[GetVehicleModel(GetPlayerVehicleID(playerid))-400]);
GameTextForPlayer(playerid, string, 1337, 1);
new veh = GetPlayerVehicleID(playerid);
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
if(CarInfo[cInfo][cAlarm] == 1)
{
GameTextForPlayer(playerid,"~r~Alarm: ~w~Been SetOff!",700,5);
SendClientMessage(playerid,-1,COLOR_YELLOW"<<Car Info>>"COLOR_WHITE" Alarm Has Been Set Off!");
SetVehicleParamsEx(veh,engine,1,1,doors,bonnet,boot,objective);
AlarmTime[playerid] = SetTimerEx("Alarm", FLASH_TIME, 1, "i", playerid);
SendClientMessage(playerid,-1,COLOR_YELLOW"<<Car Info>>"COLOR_WHITE" To Turn Off Alarm Type /alarmoff !");
}
}
return true;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
//---[Vehicle Commands]
//--[Engine]
if(PRESSED(KEY_SUBMISSION))
{
new State=GetPlayerState(playerid);
if(State!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,-1,COLOR_RED"<<Error>>"COLOR_WHITE" You Need To Be The Driver Of This Vehicle To Switch Ignition On/Off!");
{
new engine,lights,alarm,doors,bonnet,boot,objective;
new veh = GetPlayerVehicleID(playerid);
GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
if(CarInfo[cInfo][cEngine] == 0)
{
SetVehicleParamsEx(veh,1,lights,alarm,doors,bonnet,boot,objective);
CarInfo[cInfo][cEngine] = 1;
GameTextForPlayer(playerid,"~w~Ignition: ~g~On!", 200,3);
if(CarInfo[cInfo][cLights] == 0)
{
SendClientMessage(playerid,-1,COLOR_YELLOW"<<Car Info>>"COLOR_WHITE" To Turn On Lights Press Key ~k~~PED_FIREWEAPON~ ");
}
}
else
{
CarInfo[cInfo][cEngine] = 0;
SetVehicleParamsEx(veh,0,lights,alarm,doors,bonnet,boot,objective);
GameTextForPlayer(playerid,"~w~Ignition: ~r~Off!", 200,3);
if(CarInfo[cInfo][cLights] == 1)
{
SendClientMessage(playerid,-1,COLOR_YELLOW"<<Car Info>>"COLOR_WHITE" To Turn Off Lights Press Key ~k~~PED_FIREWEAPON~ ");
}
}
}
}
//--[Lights]
if(PRESSED(KEY_FIRE))
{
new State=GetPlayerState(playerid);
if(State!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,-1,COLOR_RED"<<Error>>"COLOR_WHITE" You Need To Be The Driver Of This Vehicle To Switch Lights On/Off!");
{
new engine,lights,alarm,doors,bonnet,boot,objective;
new veh = GetPlayerVehicleID(playerid);
GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
if(CarInfo[cInfo][cLights] == 0)
{
SetVehicleParamsEx(veh,engine,1,alarm,doors,bonnet,boot,objective);
CarInfo[cInfo][cLights] = 1;
GameTextForPlayer(playerid,"~w~Lights ~g~On!", 200,3);
}
else
{
SetVehicleParamsEx(veh,engine,0,alarm,doors,bonnet,boot,objective);
CarInfo[cInfo][cLights] = 0;
GameTextForPlayer(playerid,"~w~Lights ~r~Off!", 200,3);
}
}
}
if(IsKeyDown(VK_KEYB9))//--- If keyboard number 9 is pressed
{
if(LastVehicle[playerid] != 0)
{
new Float:X, Float:Y, Float:Z;
GetVehiclePos(LastVehicle[playerid], X, Y, Z);
if(IsPlayerInRangeOfPoint(playerid, 10, X, Y, Z))
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(LastVehicle[playerid],engine,lights,alarm,doors,bonnet,boot,objective);
if(CarInfo[cInfo][cLock] == 0)
{
SetVehicleParamsEx(LastVehicle[playerid],engine,lights,alarm,1,bonnet,boot,objective);
GameTextForPlayer(playerid, "~w~Vehicle ~r~Locked!", 5000, 5);
return 1;
}
}
}
}