Dieser Befehl setzt den Tankinhalt für einen Slot, eine Regler-ID aus dem AddOn heraus. So ist es möglich, den Tankinhalt bedingt durch eine Strafe zu entleeren oder als Bonus aufzufüllen.
Es sind allerdings nur Änderungen in min. 1 Prozentschritten möglich. Nachkommastellen werden nicht unterstützt.
Der Befehl setzt den Tankinhalt auf den angegebenen Wert. Möchte man den bisherigen TankStand einbeziehen, muss man diesen vorher auslesen, dann den neuen Wert berechnen und anschließend den neuen Wert setzen.
ACHTUNG:
„Tankinhalt laufend aktualisieren“ muss deaktiviert sein, ansonsten greift der AddOn-Befehl nicht.
Befehl | cpSetTankStand(slot : Integer, TankStand: Integer); |
---|---|
Funktion | Setzt den Tankinhalt pro Slot / Regler-ID auf den angegebenen Wert |
Typ | |
ab | 3.1.3 build 399 |
var iSlot : Integer; iID : Integer; iTankStandNeu : Integer; eTankStandAlt : Extended; sMeldung : String; begin // alle Slots verarbeiten for iSlot := 1 to cpCountOfSlots do begin // Slot einstellen und ID speichern Cockpit.Slot := iSlot; iID := Cockpit.SlotID; // alten Tankinhalt speichern eTankStandAlt := Cockpit.TankStand; // Tank des Führenden um 10% leeren if Cockpit.Position = 1 then iTankStandNeu := Trunc(eTankStandAlt) - 10 // P2-P6 bekommen 10% zusätzlich else iTankStandNeu := Trunc(eTankStandAlt) + 10; // Mehr als 100% macht keinen Sinn if iTankStandNeu > 100 then iTankStandNeu = 100; // Weniger als 0 geht auch nicht if iTankStandNeu < 0 then iTankStandNeu = 0; // Jetzt den neu ermittelten Tankstand zuweisen cpSetTankStand(iID, iTankStandNeu); end; end.
Dieser Code durchläuft alle Slots, speichert die ID und den aktuellen Tankinhalt. Anschließend wird die aktuelle Platzierung ermittelt. Handelt es sich um den Führenden, bekommt dieser 10% aus dem Tank „abgelasen“. Die Plätze 2 und folgende erhalten jeweils 10% hinzu.