ai-fuel para desarrolladores
Cómo leer y fijar el combustible con ai-fuel en marcha, sus state bags y sus eventos internos.
ai-fuel no tiene exports. El combustible de un vehículo es el state bag de entidad fuel (0-100), que lleva el servidor.
Lee y fija el combustible con fuel.get(vehicle) y fuel.set(vehicle, level) de la lib (servidor; fuel.get también en el cliente). Pasan por la capa de combustible de ai-core (en Lua, llama a sus exports GetVehicleFuel y SetVehicleFuel en ai-core), que lee y escribe el bag fuel mientras ai-fuel está en marcha y habla con el otro script de combustible cuando el servidor usa uno en su lugar. Así tu script funciona con cualquier script de combustible.
Leer y fijar el combustible
import { fuel } from "@aicore-fivem/lib/server";
// Llena un vehículo que el jugador acaba de pagar en una gasolinera propia.
export function fillUp(vehicle: number): void {
const before = fuel.get(vehicle);
fuel.set(vehicle, 100);
console.log(`fuel ${before} -> 100`);
}No escribas el bag fuel desde un cliente: el servidor rechaza las escrituras del cliente (modo estricto de state bags), y de todos modos ai-fuel solo acepta valores más bajos del cliente del conductor.
State bags
| Bag | En | Tipo | Significado |
|---|---|---|---|
fuel | entidad de vehículo | number | Combustible 0-100. Lo fija el servidor. ai-vehicles lo inicializa cuando hace aparecer un vehículo en propiedad. |
aiFuelNozzle | jugador | { x, y, z, netId } | undefined | El surtidor cuyo boquerel tiene el jugador (x, y, z), y el network id del vehículo al que está conectado (netId, null mientras está en la mano). Cada cliente cercano lo usa para dibujar el boquerel y la manguera. |
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local level = Entity(vehicle).state.fuel -- number 0-100, o nil antes de la primera vez que se fijaEventos
Estos son los eventos propios de cliente a servidor de ai-fuel. Se listan para que los reconozcas en los logs; no los llames desde otros scripts.
| Nombre | Tipo | Qué hace |
|---|---|---|
ai-fuel:consume | evento de cliente | (netId, fuel): el conductor informa de un nivel más bajo. Limitado a 2 por segundo; solo se aceptan valores más bajos. |
ai-fuel:takeNozzle | callback de cliente | (x, y, z): coger el boquerel de un surtidor. Limitado a 1 por segundo. |
ai-fuel:plug | callback de cliente | (netId | null): conectar el boquerel a un vehículo, o sacarlo. Limitado a 2 por segundo. |
ai-fuel:returnNozzle | evento de cliente | Volver a colgar el boquerel. Limitado a 1 por segundo. |
ai-fuel:refuel | callback de cliente | Lleva la barra de progreso, cobra y llena el depósito. |