AI Core
Fahrzeugeai-fuel

ai-fuel für Entwickler

Wie du Sprit liest und setzt, während ai-fuel läuft, seine State Bags und seine internen Events.

ai-fuel hat keine Exports. Der Sprit eines Fahrzeugs ist der Entity-State-Bag fuel (0-100), vom Server verwaltet.

Lies und setze Sprit mit fuel.get(vehicle) und fuel.set(vehicle, level) der Lib (Server; fuel.get auch auf dem Client). Sie laufen über den Sprit-Layer von ai-core (in Lua rufst du seine Exports GetVehicleFuel und SetVehicleFuel auf ai-core auf), der den Bag fuel liest und schreibt, solange ai-fuel läuft, und mit dem anderen Spritskript spricht, wenn der Server stattdessen eines betreibt. Dein Skript funktioniert dann mit jedem Spritskript.

Sprit lesen und setzen

import { fuel } from "@aicore-fivem/lib/server";

// Ein Fahrzeug füllen, für das der Spieler gerade an einer eigenen Tankstelle bezahlt hat.
export function fillUp(vehicle: number): void {
  const before = fuel.get(vehicle);
  fuel.set(vehicle, 100);
  console.log(`fuel ${before} -> 100`);
}

Schreibe den Bag fuel nicht von einem Client: Der Server lehnt Schreibzugriffe von Clients ab (strikter State-Bag-Modus), und ai-fuel übernimmt vom Client des Fahrers ohnehin nur niedrigere Werte.

State Bags

BagAnTypBedeutung
fuelFahrzeug-EntitynumberSprit 0-100. Vom Server gesetzt. ai-vehicles legt ihn an, wenn es ein Fahrzeug im Besitz spawnt.
aiFuelNozzleSpieler{ x, y, z, netId } | undefinedDie Zapfsäule, deren Zapfpistole der Spieler hält (x, y, z), und die Network-ID des Fahrzeugs, in das sie eingesteckt ist (netId, null, solange in der Hand). Jeder Client in der Nähe nutzt es, um Zapfpistole und Schlauch zu zeichnen.
Lua (Client)
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local level = Entity(vehicle).state.fuel -- Zahl 0-100 oder nil vor dem ersten Setzen

Events

Das sind die eigenen Client-an-Server-Events von ai-fuel. Sie sind aufgeführt, damit du sie in Logs erkennst; rufe sie nicht aus anderen Skripten auf.

NameArtWas es macht
ai-fuel:consumeClient-Event(netId, fuel): Der Fahrer meldet einen niedrigeren Füllstand. Begrenzt auf 2 pro Sekunde; nur niedrigere Werte werden übernommen.
ai-fuel:takeNozzleClient-Callback(x, y, z): die Zapfpistole einer Zapfsäule nehmen. Begrenzt auf 1 pro Sekunde.
ai-fuel:plugClient-Callback(netId | null): die Zapfpistole in ein Fahrzeug stecken oder herausziehen. Begrenzt auf 2 pro Sekunde.
ai-fuel:returnNozzleClient-EventDie Zapfpistole wieder einhängen. Begrenzt auf 1 pro Sekunde.
ai-fuel:refuelClient-CallbackLässt den Fortschrittsbalken laufen, bucht ab und füllt den Tank.

Auf dieser Seite