ai-fuel dla deweloperów
Jak odczytywać i ustawiać paliwo przy działającym ai-fuel, jego state bagi i wewnętrzne zdarzenia.
ai-fuel nie ma eksportów. Paliwo pojazdu to state bag encji fuel (0-100), utrzymywany przez serwer.
Odczytuj i ustawiaj paliwo przez fuel.get(vehicle) i fuel.set(vehicle, level) z biblioteki (serwer; fuel.get także na kliencie). Przechodzą przez warstwę paliwa ai-core (w Lua wywołaj jej eksporty GetVehicleFuel i SetVehicleFuel na ai-core), która czyta i zapisuje bag fuel, gdy działa ai-fuel, i rozmawia z innym skryptem paliwa, gdy serwer używa zamiast niego innego. Twój skrypt działa wtedy z każdym skryptem paliwa.
Odczyt i ustawianie paliwa
import { fuel } from "@aicore-fivem/lib/server";
// Zatankuj pojazd, za który gracz właśnie zapłacił na własnej stacji.
export function fillUp(vehicle: number): void {
const before = fuel.get(vehicle);
fuel.set(vehicle, 100);
console.log(`fuel ${before} -> 100`);
}Nie zapisuj bagu fuel z klienta: serwer odrzuca zapisy klientów (tryb strict state bag), a ai-fuel i tak przyjmuje od klienta kierowcy tylko niższe wartości.
State bagi
| Bag | Na | Typ | Znaczenie |
|---|---|---|---|
fuel | encja pojazdu | number | Paliwo 0-100. Ustawiane przez serwer. ai-vehicles nadaje je przy tworzeniu posiadanego pojazdu. |
aiFuelNozzle | gracz | { x, y, z, netId } | undefined | Dystrybutor, którego pistolet trzyma gracz (x, y, z), i ID sieciowe pojazdu, do którego jest podłączony (netId, null, gdy jest w ręce). Każdy klient w pobliżu używa tego do rysowania pistoletu i węża. |
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local level = Entity(vehicle).state.fuel -- liczba 0-100 albo nil przed pierwszym ustawieniemZdarzenia
To własne zdarzenia klient-serwer ai-fuel. Są wymienione, abyś rozpoznał je w logach; nie wywołuj ich z innych skryptów.
| Nazwa | Rodzaj | Co robi |
|---|---|---|
ai-fuel:consume | zdarzenie klienta | (netId, fuel): kierowca zgłasza niższy poziom. Limit 2 na sekundę; przyjmowane są tylko niższe wartości. |
ai-fuel:takeNozzle | callback klienta | (x, y, z): weź pistolet z dystrybutora. Limit 1 na sekundę. |
ai-fuel:plug | callback klienta | (netId | null): podłącz pistolet do pojazdu albo go wyjmij. Limit 2 na sekundę. |
ai-fuel:returnNozzle | zdarzenie klienta | Odwieś pistolet. Limit 1 na sekundę. |
ai-fuel:refuel | callback klienta | Prowadzi pasek postępu, pobiera opłatę i tankuje do pełna. |