AI Core
Essenciaisai-hud

ai-hud para desenvolvedores

Os exports do ai-hud para necessidades (fome, sede, estresse) e as configurações do HUD dele, e o que ele lê de outros scripts.

As necessidades são números de 0 a 100 guardados na metadata do personagem (hunger, thirst, stress, as chaves do QB). Fome e sede contam para baixo (100 = cheio); o estresse conta para cima (0 = calmo). O ai-hud é o único script que as escreve.

Para adicionar estresse a partir do seu script, use a camada de estresse do AI Core (o stress da lib, o export AddStress), que funciona com qualquer HUD que estiver rodando. Os efeitos de comida e bebida pertencem ao item: defina os valores Hunger, Thirst e Stress do item no painel do ai-inventory, e o ai-hud os aplica quando o item é usado.

Exports do servidor

SetNeed e AddNeed são tipados como AiHudServerExports em @aicore-fivem/shared (resourceExport("ai-hud") em TypeScript). GetNeeds não é tipado: chame-o com o callExport("ai-hud", "GetNeeds", source) da lib.

GetNeeds

Lê as necessidades de um jogador carregado.

Lado: Servidor · Espera: não

Signature
GetNeeds(source: number): { hunger: number; thirst: number; stress: number } | null
Lua
local needs = exports['ai-hud']:GetNeeds(source) -- tabela ou nil

Parâmetros

Prop

Type

Retorno

{ hunger, thirst, stress } | null: cada valor 0-100 (decimais mantidos). null quando o jogador não tem um personagem carregado.

SetNeed

Define uma necessidade com um valor.

Lado: Servidor · Espera: não

Signature
SetNeed(source: number, need: "hunger" | "thirst" | "stress", value: number): void
Lua
exports['ai-hud']:SetNeed(source, 'hunger', 100)

Parâmetros

Prop

Type

Retorno

Nada. Não faz nada quando o jogador não tem um personagem carregado ou um argumento é inválido. O novo valor é salvo no personagem e enviado ao HUD do jogador quando o valor arredondado muda.

AddNeed

Muda uma necessidade por um valor.

Lado: Servidor · Espera: não

Signature
AddNeed(source: number, need: "hunger" | "thirst" | "stress", delta: number): void
Lua
exports['ai-hud']:AddNeed(source, 'thirst', 25)

Parâmetros

Prop

Type

Retorno

Nada.

Exemplo

import { callExport, resourceExport, onClientCallback } from "@aicore-fivem/lib/server";
import { fail } from "@aicore-fivem/lib/shared";

const hud = resourceExport("ai-hud");

// Uma máquina de refrigerante: enche um pouco a sede, recusa quando o jogador não está com sede.
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 };
});

Esses exports só funcionam enquanto o ai-hud está rodando. Se o dono substituir o ai-hud por outro HUD, suas chamadas falham. A camada de estresse do AI Core (AddStress) continua funcionando com outros HUDs.

Exports do cliente

Tipados como AiHudClientExports.

ExportO que faz
OpenSettings(): voidAbre as configurações do HUD do jogador (o mesmo que /hud). Outros scripts abrem as configurações de qualquer HUD pelo OpenHudSettings() do AI Core.
SetMinimapAlways(on: boolean): voidO interruptor próprio de um administrador (o menu do ai-admin): mantém o minimapa a pé, não importa o que o painel diga, só para este jogador.
GetMinimapAlways(): booleanSe esse interruptor está ligado.

O que o ai-hud lê

FontePara quê
Evento de servidor do AI Core itemUsed (source, name, status)Soma os valores hunger, thirst, stress do item.
Evento de cliente do AI Core CORE.clientHudVisibleEvent (visible)Esconde o HUD enquanto um menu de tela cheia está aberto (hud.hide(reason) da lib a partir de qualquer script).
Dicas de teclas do AI Core (ai-core:client:keyHints, GetKeyHints())A lista de teclas à esquerda.
State bag de veículo fuelO marcador de combustível.
State bag de jogador proximity e os eventos pma-voice:setTalkingMode / pma-voice:radioActiveAlcance da voz, falando, rádio.
seatbelt da lib (a camada de cinto do AI Core)O aviso de cinto de segurança.
inventory.currentWeapon() da libO quadro da arma.

Eventos

Os eventos próprios do ai-hud (resource/common/hud.ts) são internos. Um está aberto só para o próprio cliente dele: ai-hud:stress (cliente para servidor, 1 a 5 pontos, no máximo dois por segundo). Outros scripts adicionam estresse no servidor através do AI Core.

Nesta página