Problem mit einem Turbolader Script

  • Hi,


    ich brauche für meinen Case Steiger ein Script welches dem Fahrzeug im Drehzahlbereich um die 1000 RpM einen Leistungsschub verpasst, ähnlich wie ein Turbolader das auch macht.
    Gerade am Berg "kackt" der Schlepper beim ziehen von schweren Lasten gerne mal ab.


    Also hab ich mich mal auf die Suche nach einen Script gemacht, was sowas kann.
    Nach einer Weile fand ich in einem Schlepper ein Nitro Script, welches mit einer Taste ausgelöst wird.
    Das Script habe ich als Grundlage für mein TurboCharger Script benutzt(NEIN, ich habe keinen Code kopiert! Lediglich die Funktionsweise ist ähnlich!).


    Bei meinem Script soll ab einer Drehzahl von 1000 RpM ein Overlayicon eingeblendet werden und es soll eine Drehzahlerhöhung zum ca. 1500 rpm erfolgen.
    Die Werte sind erstmal nur Testweise!


    Zu meinem Erstaunen lud das Script auf Anhieb fehlerfrei :D
    Wenn die angegebene Drehzahl erreicht wird erscheint das Icon am rechten Rand aber die erhoffte Leistung bleibt aus :(


    Hier mal meinem Script:
    [lua]
    turboCharger = {};


    function turboCharger.prerequisitesPresent(specializations)
    return SpecializationUtil.hasSpecialization(Motorized, specializations);
    end;


    function turboCharger:load(xmlFile)
    self.hudTurboChargerPosX = 0.95;
    self.hudTurboChargerWidth = 0.04;
    self.hudTurboChargerPosY = 0.61;
    self.hudTurboChargerHeight = 0.06;
    self.infoPanelTurboChargerONPath = Utils.getFilename("Scripts/tcHud.dds", self.baseDirectory);
    self.hudTurboChargerONOverlay = Overlay:new("TurboChargerON", self.infoPanelTurboChargerONPath, self.hudTurboChargerPosX, self.hudTurboChargerPosY, self.hudTurboChargerWidth, self.hudTurboChargerHeight);
    self.showhudTurboCharger = false;
    end;


    function turboCharger:delete()
    if self.hudTurboChargerONOverlay ~= nil then
    self.hudTurboChargerONOverlay:delete();
    end;
    end;


    function turboCharger:mouseEvent(posX, posY, isDown, isUp, button)
    end;


    function turboCharger:keyEvent(unicode, sym, modifier, isDown)
    end;


    function turboCharger:update(dt)

    if self.motor.lastMotorRpm > 1000 then
    self.showhudTurboCharger = true;
    self.motor.maxRpm[3] =2500
    self.fuelUsage =0.0049
    else
    self.showhudTurboCharger = false;
    self.motor.maxRpm[3] =2000
    self.fuelUsage =0.0038
    end;

    end;


    function turboCharger:draw()
    if self.showhudTurboCharger == true then
    self.hudTurboChargerONOverlay:render();
    end;
    end;
    [/lua]


    Ich bin mir noch nicht sicher, wofür die [3] steht, ich vermute mal für die 3te Fahrstufe ?(
    Auf jeden Fall wird so keine Leistungssteigerung erzieht :(


    Ich weiß, das man die Leistung auch mit den Werten in der XML ändern kann aber dort sind sie dann dauerhaft und das ist nicht gewollt!
    Wenn das Script soweit funktioniert wollte ich es so machen, das diese Leistungssteigerung nur erzielt wird, wenn ein Gerät angehängt ist (onAttach), da der Schlepper bei Leerfahrt von der Leistung her ok ist.


    Hat da jemand eine Idee warum es nicht geht?


    LG
    Webby

  • Zitat

    Drehmoment (Kraft) = torque


    Das ist die Erklärung für dein Problem. Nur die maximale Drehzahl erhöhen bringt auch höchstens eine Endgeschwindigkeitssteigerung, sonst nix.


    Und ich kann auch nur empfehlen für die Kraftsteigerung eine Funktion zu ermitteln. Wenn der Turbolader urplötzlich greift und dann urplötzlich wieder nachlässt bekommt man bestimmt kein angenehmes Fahrverhalten.

  • Hmm ok, dann werde ich es mal mit torque versuchen, ich hatte gehofft, das eine Erhöhung der Geschwindigkeit ausreichen würde.
    Da diese ja auch am Berg erwünscht wäre.


    Also meinst du, es wäre Sinnvoll erstmal den aktuellen Torque Wert auszulesen und diesen dann 'langsam' zu steigern?
    Das Auslesen kriege ich hin, aber beim langsam steigern/senken wird es für mich eng werden 8|

  • Maximale Höchstgeschwindigkeit ändert ja gar nix an der aktuellen Geschwindigkeit.


    Jo, genau. Langsam steigern und dann langsam wieder abschwächen. Eine passende Funktion dafür kenne ich auch nicht, die müsste man sich dann wohl mit Try&Error erarbeiten. Gute Mathekenntnisse wären da natürlich extrem hilfreich.
    Ich würde ja anbieten dir dabei zu helfen (das Projekt klingt nämlich ganz interessant), aber mein Desktop will zur Zeit nicht.

  • Lol, ja das Problem kenne ich^^
    Naja ich versuche erstmal mir den Wert auszulesen und zu speichern, damit ich ihn später wieder setzen kann.
    Problem ist, das ich 2 Torque Werte in der XML stehen hab :(

    XML
    <torque rpm="100" torque="0.7"/>
    <torque rpm="2400" torque="0.92"/>


    Naja mal gucken.

  • Ich würde das Ganze so verstehen :
    Aus diesen Werten bastelt der LS beim Laden des Fahrzeuges eine Art Leistungskurve. Ingame wird anhand dieser und der aktuellen Motordrehzahl der Antrieb berechnet.


    PS : Wenn du self.maxRpm[3] erhöhst, merkst du die Drehzahlerhöhung nur wenn du die 3 Fahrstufe einschaltest. Da allerdings ein rpmLimit gleich dieser Variable gesetzt wird, kann man im Nachhinein die Drehzahl nicht erhöhen (es wird immer der kleinere Wert genutzt) - es sei denn, du erhöhst auch das rpmLimit. Deswegen blieb dein gewünschter Leistungsschub aus ;)


    Der Motor ist eine wirklich heikle Sache :D


    MFG

  • Die Sache ist im LS sowieso nicht so ganz passend, Drehzahl, Kraft etc.. Die Werte beeinflussen nicht das was sie in echt tun. Da hast du wirklich besser wenn du in der XML versuchst die Beschleunigungs und Kraftkurve so realistisch wie möglich zu machen..



    LG

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!