Motor aus nach Unfall | OnVehicleDamageUpdate

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
  • Guten Abend,


    ich möchte, dass wenn ein Fahrzeug nur noch eine gewisse Anzahl an "Leben" hat, der Motor
    vom Fahrzeug ausgeht und die Variable "Motorschaden" den Wert "1" bekommt, so dass
    der Spieler beim Starten des Motors (mit /motor) sofort mit einer Fehlernachricht returned wird.


    Das sieht auch soweit ganz gut aus, jedoch habe ich das Problem, dass sobald das Fahrzeug
    unter 400 HP hat, es nicht ausgeht und nur ab und zu die ClientMessage ausgegeben wird!


    Soweit das Callback:


    Meine Werke

  • Wenn sich meine Scripting-Fähigkeiten nicht komplett verabschiedet haben, müsste das return 1; ganz unten eigentlich weg und dahin gehören, wo das mit dem SendClientMessage, FahrzeugInfo[i][..] = 1; usw steht ans Ende.


    Schlagt mich nicht wenns falsch ist. :D


    // Edit


    Btw. wofür machst du das überhaupt in einer Schleife? Sehe ich keinen Sinn drin nur unnötige Ressourcen verbrauchen.
    vehicleid und playerid sind doch gegeben, also für mich klingt das so danach, sobald ein Spieler Schaden an einem Fahrzeug bzw. an dem, worin er sitzt, anrichtet, wird dieses Callback aufgerufen und die vehicleid vom Spieler und die playerid vom Spieler zurückgegeben.


    Oder etwa nicht?

  • Wie sieht deine SetVehicleEngineOff Funktion aus, kannst du die bitte posten?


    Der Stock:



    Grundstätzlich kommt das return hinter den Code, da ich aber keine weiteren Codes in diesem Callback habe, wäre das überflüssig. :)
    Und das mit der Schleife (alle Fahrzeuge durchgehen) war ein Test, ob es vielleicht damit läuft X(

    Meine Werke

  • C
    SetVehicleEngineOff(i);

    zu:

    C
    SetVehicleEngineOff(vID);

    Danke schonmal, aber das Ganze ist nur halbfertig.
    Ich habe jetzt die Abfrage:

    Code
    if(FahrzeugInfo[i][fz_Motorschaden] == 1) return 1;


    Rausgenommen und jetzt geht das Fahrzeug zumindest schonmal JEDES MAL aus, wenn ich unter diesem abgefragtem Wert liege.
    Mein Problem ist jedoch nun, dass die Variable (fz_Motorschaden) für das Fahrzeug (warum auch immer) nicht auf 1 gesetzt wird und ich
    daher das Fahrzeug mit dem /motor Befehl wieder ganz normal starten kann...


    Das ganze sieht bis jetzt so aus:







    Zitat

    Meine Werke

  • WTF wieso immer for? Unnötig...


    Code
    stock SetVehicleEngineOff(vehicleid)
    {
    	new engine, lights, alarm, doors, bonnet, boot, objective;
    	GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    	SetVehicleParamsEx(vehicleid, 0, lights, alarm, doors, bonnet, boot, objective);
    	FahrzeugInfo[vehicleid][fz_Motor] = 0;
    	return 1;
    }
  • WTF wieso immer for? Unnötig...


    Code
    stock SetVehicleEngineOff(vehicleid)
    {
    	new engine, lights, alarm, doors, bonnet, boot, objective;
    	GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    	SetVehicleParamsEx(vehicleid, 0, lights, alarm, doors, bonnet, boot, objective);
    	FahrzeugInfo[vehicleid][fz_Motor] = 0;
    	return 1;
    }

    Ganz einfach, da die Fahrzeuge in einem ENUM (Fahrzeuginfo) eine EINDEUTIGE ID habe (fz_ID) !
    Daher diese Schleife...


    Aber danke ;)

    Meine Werke

  • Prinzipiell kannst du die Schleife hier schon weg lassen, aber da ich nicht weiß, ob und wie du es noch anders im Code verwendest, habe ich es so gelassen.


    Zwecks dem anderen Problem:
    So wie es momentan aussieht zeigt es in dem Post nicht an, kannst du das bitte nochmal posten, dass man es sieht?

  • Prinzipiell kannst du die Schleife hier schon weg lassen, aber da ich nicht weiß, ob und wie du es noch anders im Code verwendest, habe ich es so gelassen.


    Zwecks dem anderen Problem:
    So wie es momentan aussieht zeigt es in dem Post nicht an, kannst du das bitte nochmal posten, dass man es sieht?

    Ups :S


    Hier nochmal der momentane Stand:

    Meine Werke

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen