Hallo Community,
ich habe mittlerweile mitbekommen, das in meinem Script ein Fehler vorhanden ist, und zwar bei dem Motorschaden.
Wenn man einen Motorschaden hat, geht der Motor aus wie es auch sein soll, aber wenn man dann noch drauf schießt, oder andere das Fahrzeug rammen usw, dann fängt das Auto an zu brennen und explodiert, aber genau das ist was ich verhindern möchte.
Mein Wunsch ist es, das wenn ein Motorschaden entsteht, das dieser permanent bleibt, bis ein Mechaniker das Fahrzeug repariert oder man selber einen Werkzeugkasten benutzt.
Ich habe hier mal den Code von einem OnVehicleDeath, dort ist auch der Motorschaden vorhanden.
PS: Motorschaden ist MotorDown[vehicleid]
public OnVehicleDeath(vehicleid,killerid)
{
new Float:vehfireX,Float:vehfireY,Float:vehfireZ;
format(VehicleRadioStream[vehicleid],128,"NONE");
if(UCL[vehicleid] != 0) for(new i=0;i<10;i++){ DestroyObject(sirene[i][vehicleid]); }
UCL[vehicleid] = 0;
KillTimer(vFahrzeug[vehicleid][VehicleEngineTimer]);
VehicleLoadTank[vehicleid] = 0;
Motor[vehicleid] = false;
lightson[vehicleid] = false;
motorhaube[vehicleid] = false;
kofferraum[vehicleid] = false;
RefillVehicle[vehicleid] = 0;
RepairAVehicle[vehicleid] = 0;
vFahrzeug[vehicleid][Handbremse] = 0;
if(IsVehicleABus(vehicleid) && VehicleOnDuty[vehicleid] == true)
{
VehicleOnDuty[vehicleid] = false;
if(IsValidDynamic3DTextLabel(buspriceinfo[vehicleid]))
{
DestroyDynamic3DTextLabel(buspriceinfo[vehicleid]);
}
}
if(IsVehicleATaxi(vehicleid) && VehicleOnDuty[vehicleid] == true)
{
VehicleOnDuty[vehicleid] = false;
if(IsValidDynamic3DTextLabel(taxipriceinfo[vehicleid]))
{
DestroyDynamic3DTextLabel(taxipriceinfo[vehicleid]);
}
}
if(IsVehAStadium1Vehicle(vehicleid) || IsVehAStadium2Vehicle(vehicleid) || IsVehAStadium3Vehicle(vehicleid) || IsVehAStadium4Vehicle(vehicleid) || IsVehAStadium5Vehicle(vehicleid) || IsVehAStadium6Vehicle(vehicleid))return 1;
GetVehiclePos(vehicleid,vehfireX,vehfireY,vehfireZ);
AddFire(vehfireX+2,vehfireY,vehfireZ,GetVehicleVirtualWorld(vehicleid),true);
AddFire(vehfireX+2,vehfireY+2,vehfireZ,GetVehicleVirtualWorld(vehicleid),false);
AddFire(vehfireX+4,vehfireY+2,vehfireZ,GetVehicleVirtualWorld(vehicleid),false);
AddFire(vehfireX+4,vehfireY+4,vehfireZ,GetVehicleVirtualWorld(vehicleid),false);
AddFire(vehfireX+2,vehfireY+4,vehfireZ,GetVehicleVirtualWorld(vehicleid),false);
AddFire(vehfireX+2,vehfireY+6,vehfireZ,GetVehicleVirtualWorld(vehicleid),false);
AddFire(vehfireX+3,vehfireY+5,vehfireZ,GetVehicleVirtualWorld(vehicleid),false);
AddFire(vehfireX+5,vehfireY+3,vehfireZ,GetVehicleVirtualWorld(vehicleid),false);
MotorDown[vehicleid] = 1;
vFahrzeug[vehicleid][Carbomb] = 0;
vFahrzeug[vehicleid][KofferraumGanja] = 0;
vFahrzeug[vehicleid][KofferraumKokain] = 0;
vFahrzeug[vehicleid][KofferraumMaterials] = 0;
vFahrzeug[vehicleid][KofferraumOpium] = 0;
vFahrzeug[vehicleid][KofferraumSpice] = 0;
vFahrzeug[vehicleid][KofferraumLunchpakete] = 0;
vFahrzeug[vehicleid][KofferraumC4] = 0;
vFahrzeug[vehicleid][KofferraumWerkzeugkasten] = 0;
vFahrzeug[vehicleid][KofferraumBenzinkanister] = 0;
ForEachPlayer(playerid)
{
if(vehicleid == PlayerInNewsVan[playerid])
{
SetPlayerPosEx(playerid,vehfireX,vehfireY,vehfireZ);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
CreateExplosion(-219.6105,1408.2527,27.7656,0,10);
SetPlayerACHealth(playerid,0);
PlayerInNewsVan[playerid] = -1;
}
if(vehicleid == PlayerInJourney[playerid])
{
SetPlayerPosEx(playerid,vehfireX,vehfireY,vehfireZ);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
CreateExplosion(767.9480,1402.6608,-4.5741,0,10);
SetPlayerACHealth(playerid,0);
PlayerInJourney[playerid] = -1;
}
}
ForEachPlayer(playerid)
{
for(new slot=0;slot<MAX_PLAYER_VEHS;slot++)
{
if(vehicleid == Pfahrzeug[slot][playerid][Vehicle])
{
Pfahrzeug[slot][playerid][HP] = 350.0;
}
}
}
for(new fv;fv<MAX_FVEHS;fv++)
{
if(Fahrzeug[fv][Fraktion] != 0 && Fahrzeug[fv][Vehicle] == vehicleid)
{
Fahrzeug[fv][HP] = 350.0;
}
}
new day=GetDayName();
gettime(stunde,minute,sekunde);
if(day == 1 || day == 2 || day == 3 || day == 4 || day == 5 || day == 6)
{
if(stunde<14||stunde>20){}
else
{
for(new fv;fv<MAX_FVEHS;fv++)
{
if(Fahrzeug[fv][Fraktion] != 0 && Fahrzeug[fv][Vehicle] == vehicleid)
{
Fahrzeug[fv][HP] = 350.0;
MotorDown[fv] = 0;
}
}
MotorDown[vehicleid] = 0;
}
}
for(new me=0;me<sizeof(Mechanikerfahrzeuge);me++)
{
if(vehicleid == Mechanikerfahrzeuge[me])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new l=0;l<sizeof(Leichenwagen);l++)
{
if(vehicleid == Leichenwagen[l])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new b=0;b<sizeof(Busse);b++)
{
if(vehicleid == Busse[b])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new t=0;t<sizeof(Trucks);t++)
{
if(vehicleid == Trucks[t])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new k=0;k<sizeof(Kehrfahrzeuge);k++)
{
if(vehicleid == Kehrfahrzeuge[k])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new p=0;p<sizeof(Postwagen);p++)
{
if(vehicleid == Postwagen[p])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new m=0;m<sizeof(Maehdraescher2);m++)
{
if(vehicleid == Maehdraescher2[m])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new t=0;t<sizeof(Taxis);t++)
{
if(vehicleid == Taxis[t])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new e=0;e<sizeof(Eiswagen);e++)
{
if(vehicleid == Eiswagen[e])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new m=0;m<sizeof(Muellwagen);m++)
{
if(vehicleid == Muellwagen[m])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new m=0;m<sizeof(PolizeiWaffentransport);m++)
{
if(vehicleid == PolizeiWaffentransport[m])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 3500.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new mi=0;mi<sizeof(Minenbagger);mi++)
{
if(vehicleid == Minenbagger[mi])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new z=0;z<sizeof(Zigtransporter);z++)
{
if(vehicleid == Zigtransporter[z])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new b=0;b<sizeof(BauarbeiterFahrzeug);b++)
{
if(vehicleid == BauarbeiterFahrzeug[b])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new t=0;t<sizeof(Transportflugzeuge);t++)
{
if(vehicleid == Transportflugzeuge[t])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new t=0;t<sizeof(Transportflugzeuge2);t++)
{
if(vehicleid == Transportflugzeuge2[t])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
for(new t=0;t<sizeof(Transportflugzeuge3);t++)
{
if(vehicleid == Transportflugzeuge3[t])
{
MotorDown[vehicleid] = 0;
vFahrzeug[vehicleid][FailGas] = 0;
vFahrzeug[vehicleid][HP] = 1000.0;
vFahrzeug[vehicleid][Tank] = VehicleInfo[GetVehicleModel(vehicleid)-400][vtankvolumen];
}
}
return 1;
}
Kann mir bitte jemand helfen/sagen wie ich es hin bekomme das der Motorschaden dauerhaft bleibt bis man das Fahrzeug repariert?
Danke im Voraus