ai-hud para desarrolladores
Los exports de ai-hud para las necesidades (hambre, sed, estrés) y sus ajustes del HUD, y lo que lee de otros scripts.
Las necesidades son números de 0 a 100 guardados en la metadata del personaje (hunger, thirst, stress, las claves de QB). El hambre y la sed cuentan hacia abajo (100 = lleno); el estrés cuenta hacia arriba (0 = calma). ai-hud es el único script que las escribe.
Para añadir estrés desde tu script, usa la capa de estrés de AI Core (stress de la lib, export AddStress), que funciona con el HUD que esté en uso. Los efectos de comida y bebida van en el objeto: configura los valores Hunger, Thirst y Stress del objeto en el panel de ai-inventory, y ai-hud los aplica cuando se usa el objeto.
Exports de servidor
SetNeed y AddNeed están tipados como AiHudServerExports en @aicore-fivem/shared (resourceExport("ai-hud") en TypeScript). GetNeeds no está tipado: llámalo con callExport("ai-hud", "GetNeeds", source) de la lib.
GetNeeds
Lee las necesidades de un jugador cargado.
Lado: Servidor · Espera: no
GetNeeds(source: number): { hunger: number; thirst: number; stress: number } | nulllocal needs = exports['ai-hud']:GetNeeds(source) -- table o nilParámetros
Prop
Type
Devuelve
{ hunger, thirst, stress } | null: cada valor de 0 a 100 (con decimales). null cuando el jugador no tiene personaje cargado.
SetNeed
Fija una necesidad a un valor.
Lado: Servidor · Espera: no
SetNeed(source: number, need: "hunger" | "thirst" | "stress", value: number): voidexports['ai-hud']:SetNeed(source, 'hunger', 100)Parámetros
Prop
Type
Devuelve
Nada. No hace nada cuando el jugador no tiene personaje cargado o un argumento no es válido. El nuevo valor se guarda en el personaje y se envía al HUD del jugador cuando cambia su valor redondeado.
AddNeed
Cambia una necesidad en una cantidad.
Lado: Servidor · Espera: no
AddNeed(source: number, need: "hunger" | "thirst" | "stress", delta: number): voidexports['ai-hud']:AddNeed(source, 'thirst', 25)Parámetros
Prop
Type
Devuelve
Nada.
Ejemplo
import { callExport, resourceExport, onClientCallback } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";
const hud = resourceExport("ai-hud");
// Una máquina de refrescos: llena un poco la sed, se niega cuando el jugador no tiene sed.
onClientCallback("myscript:soda", (source) => {
const needs = callExport("ai-hud", "GetNeeds", source) as { thirst: number } | null;
if (!needs) return fail("NO_CHARACTER");
if (needs.thirst > 90) return fail("NOT_THIRSTY");
hud.AddNeed(source, "thirst", 20);
return { ok: true };
});Estos exports solo funcionan mientras ai-hud está en marcha. Si el dueño reemplaza ai-hud por otro HUD, tus llamadas fallan. La capa de estrés de AI Core (AddStress) sigue funcionando con otros HUD.
Exports de cliente
Tipados como AiHudClientExports.
| Export | Qué hace |
|---|---|
OpenSettings(): void | Abre los ajustes del HUD del jugador (lo mismo que /hud). Otros scripts abren los ajustes del HUD que esté en uso con OpenHudSettings() de AI Core. |
SetMinimapAlways(on: boolean): void | El interruptor propio de un administrador (menú de ai-admin): mantiene el minimapa a pie diga lo que diga el panel, solo para este jugador. |
GetMinimapAlways(): boolean | Si ese interruptor está activado. |
Lo que lee ai-hud
| Fuente | Para qué |
|---|---|
Evento de servidor de AI Core itemUsed (source, name, status) | Suma los valores hunger, thirst, stress del objeto. |
Evento de cliente de AI Core CORE.clientHudVisibleEvent (visible) | Oculta el HUD mientras hay un menú a pantalla completa abierto (hud.hide(reason) de la lib desde cualquier script). |
Ayudas de teclas de AI Core (ai-core:client:keyHints, GetKeyHints()) | La lista de teclas de la izquierda. |
State bag de vehículo fuel | El indicador de combustible. |
State bag de jugador proximity y los eventos pma-voice:setTalkingMode / pma-voice:radioActive | Alcance de voz, si habla, radio. |
seatbelt de la lib (la capa de cinturón de AI Core) | El aviso del cinturón. |
inventory.currentWeapon() de la lib | El recuadro del arma. |
Eventos
Los eventos propios de ai-hud (resource/common/hud.ts) son internos. Uno está abierto solo a su propio cliente: ai-hud:stress (cliente a servidor, de 1 a 5 puntos, como mucho dos por segundo). Otros scripts añaden estrés en el servidor a través de AI Core.