Mein Motorsystem mit Motorschaden:
oben beim Script:
new IsDamage[MAX_VEHICLES] = 0;
new Motor[MAX_VEHICLES] = 0;
forward DamageCarAbfrage (playerid);
bei OnGameModeInit
SetTimer("DamageCarAbfrage",100,true);
bei OnPlayerEnterVehicle:
new vid = GetPlayerVehicleID(playerid),Float:vehleben;
GetVehicleHealth(vid,vehleben);
if(vehleben <= 250.0)//Motorschaden Abfrage
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,0,lights,alarm,doors,bonnet,boot,objective);
IsDamage[vid] = 1;
SetVehicleHealth(vid,250.0);
Motor[vid]=0;
}
Bei OnPlayerKeyStateChange:
if((newkeys & KEY_NO) && !(oldkeys & KEY_NO))//musst halt deine Starttaste nehmen, ich benutze die Taste "N"
{
new vid = GetPlayerVehicleID(playerid),Float:vehleben;
GetVehicleHealth(vid,vehleben);
if(vehleben <= 250.0) return 1;
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 481) return 1;
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new string[256];
new engine,light,alarm,doors,bonnet,boot,objective;
new veh = GetPlayerVehicleID(playerid);
GetVehicleParamsEx(veh,engine,light,alarm,doors,bonnet,boot,objective);
if(Motor[veh] == 0)
{
SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,light,alarm,doors,bonnet,boot,objective);
format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~w~Motor ~g~An");
GameTextForPlayer(playerid, string, 4000, 3);
Motor[veh] = 1;
}
else
{
SetVehicleParamsEx(veh,VEHICLE_PARAMS_OFF,light,alarm,doors,bonnet,boot,objective);
format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~w~Motor ~r~Aus");
GameTextForPlayer(playerid, string, 4000, 3);
Motor[veh] = 0;
}
}
}
Ganz unten:
public DamageCarAbfrage(playerid)//Damage Car Abfrage
{
new vid = GetPlayerVehicleID(playerid),Float:vehleben;
GetVehicleHealth(vid,vehleben);
if(vehleben <= 250.0)
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,0,lights,alarm,doors,bonnet,boot,objective);
IsDamage[vid] = 1;
SetVehicleHealth(vid,250.0);
Motor[vid]=0;
}
return 1;
}
Hier nochmal der Befehl(ocmd) der muss ganz unten hin
ocmd:motor(playerid,params[]) //Motor System
{
new vid=GetPlayerVehicleID(playerid);
if(Motor[vid]==1)
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,0,lights,alarm,doors,bonnet,boot,objective);
Motor[vid]=0;
}
if(Motor[vid]==0)
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,1,lights,alarm,doors,bonnet,boot,objective);
Motor[vid]=1;
}
return 1;
}
//edit: Ich hoffe das meinst du so, und unter 250 vehleben brennt das car
//edit2: /motor Befehl