AI Core
Pojazdyai-fuel

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

BagNaTypZnaczenie
fuelencja pojazdunumberPaliwo 0-100. Ustawiane przez serwer. ai-vehicles nadaje je przy tworzeniu posiadanego pojazdu.
aiFuelNozzlegracz{ x, y, z, netId } | undefinedDystrybutor, 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.
Lua (klient)
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local level = Entity(vehicle).state.fuel -- liczba 0-100 albo nil przed pierwszym ustawieniem

Zdarzenia

To własne zdarzenia klient-serwer ai-fuel. Są wymienione, abyś rozpoznał je w logach; nie wywołuj ich z innych skryptów.

NazwaRodzajCo robi
ai-fuel:consumezdarzenie klienta(netId, fuel): kierowca zgłasza niższy poziom. Limit 2 na sekundę; przyjmowane są tylko niższe wartości.
ai-fuel:takeNozzlecallback klienta(x, y, z): weź pistolet z dystrybutora. Limit 1 na sekundę.
ai-fuel:plugcallback klienta(netId | null): podłącz pistolet do pojazdu albo go wyjmij. Limit 2 na sekundę.
ai-fuel:returnNozzlezdarzenie klientaOdwieś pistolet. Limit 1 na sekundę.
ai-fuel:refuelcallback klientaProwadzi pasek postępu, pobiera opłatę i tankuje do pełna.

Na tej stronie