ai-fuel para desenvolvedores
Como ler e definir o combustível com o ai-fuel rodando, seus state bags e seus eventos internos.
O ai-fuel não tem exports. O combustível de um veículo é o state bag de entidade fuel (0-100), mantido pelo servidor.
Leia e defina o combustível com fuel.get(vehicle) e fuel.set(vehicle, level) da lib (servidor; fuel.get também no cliente). Eles passam pela camada de combustível do ai-core (em Lua, chame os exports GetVehicleFuel e SetVehicleFuel do ai-core), que lê e escreve o bag fuel enquanto o ai-fuel roda e conversa com o outro script de combustível quando o servidor roda um no lugar dele. Assim seu script funciona com qualquer script de combustível.
Lendo e definindo o combustível
import { fuel } from "@aicore-fivem/lib/server";
// Enche um veículo que o jogador acabou de pagar em um posto personalizado.
export function fillUp(vehicle: number): void {
const before = fuel.get(vehicle);
fuel.set(vehicle, 100);
console.log(`fuel ${before} -> 100`);
}Não escreva o bag fuel a partir de um cliente: o servidor recusa escritas de clientes (modo estrito de state bags), e de qualquer forma o ai-fuel só aceita valores menores vindos do cliente do motorista.
State bags
| Bag | Em | Tipo | Significado |
|---|---|---|---|
fuel | entidade do veículo | number | Combustível 0-100. Definido pelo servidor. O ai-vehicles o inicializa quando cria um veículo próprio. |
aiFuelNozzle | jogador | { x, y, z, netId } | undefined | A bomba cujo bico o jogador segura (x, y, z) e o id de rede do veículo em que ele está encaixado (netId, null enquanto está na mão). Todo cliente por perto o usa para desenhar o bico e a mangueira. |
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local level = Entity(vehicle).state.fuel -- número 0-100, ou nil antes da primeira definiçãoEventos
Estes são os eventos próprios do ai-fuel do cliente para o servidor. Eles estão listados para você reconhecê-los nos logs; não os chame a partir de outros scripts.
| Nome | Tipo | O que faz |
|---|---|---|
ai-fuel:consume | evento do cliente | (netId, fuel): o motorista informa um nível menor. Limitado a 2 por segundo; só valores menores são aceitos. |
ai-fuel:takeNozzle | callback do cliente | (x, y, z): pega o bico de uma bomba. Limitado a 1 por segundo. |
ai-fuel:plug | callback do cliente | (netId | null): encaixa o bico em um veículo, ou o retira. Limitado a 2 por segundo. |
ai-fuel:returnNozzle | evento do cliente | Pendura o bico de volta. Limitado a 1 por segundo. |
ai-fuel:refuel | callback do cliente | Roda a barra de progresso, cobra e enche o tanque. |