Motorschaden Bug / Fehler

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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

    Einmal editiert, zuletzt von Tobi_Wayne ()

  • Ja, in dem du das so machst:
    SetTimer("OnVehicleMotorDown",1138,1); //Unter OnGameModeInit


    forward OnVehicleMotorDown();
    public OnVehicleMotorDown()
    {
    new Float:hp;
    for(new i;i<MAX_VEHICLES;i++)// Schleife durch alle Fahrzeuge
    {
    GetVehicleHealth(i,hp);//HP vom Fahrzeug "i" auslesen, HP wird in "hp" gespeichert
    if(hp <= 250)SetVehicleHealth(i,255.0);//Wenn "hp" unter oder gleich 250 ist, dann wird HP vom Fahrzeug "i" auf 255.0 gesetzt
    }
    return 1;
    }
    Einen Timer, der durch alle Fahrzeuge geht, und die HP jeweils wieder ein Stück nach oben setzt, sofern HP 250 oder kleiner ist.