AI Core
Mundo e ferramentasai-smallresources

ai-smallresources para desenvolvedores

Exports do cliente, o evento do cinto de segurança, state bags e metadata do ai-smallresources.

Para ler o cinto de segurança ou os gestos a partir do seu próprio script, use seatbelt.isOn() / seatbelt.onChange(fn) e gestures.isHandsUp() / gestures.isPointing() da lib (cliente; em Lua aiLib.seatbelt, aiLib.gestures). Eles passam pelo ai-core e funcionam com qualquer script de cinto ou de emotes que estiver rodando. Os exports abaixo são o que o ai-core lê enquanto o ai-smallresources responde.

Os três exports ficam no cliente, são síncronos e leem o jogador local. GetSeatbelt é tipado como AiSmallResourcesClientExports em @aicore-fivem/shared; IsHandsUp e IsPointing não são tipados (use callExport).

TypeScript
import { resourceExport, callExport } from "@aicore-fivem/lib/client";
const small = resourceExport("ai-smallresources");

Exports do cliente

GetSeatbelt

Se o jogador local está usando o cinto de segurança.

Lado: Cliente · Espera: não

Signature
GetSeatbelt(): boolean | null
Lua
local worn = exports['ai-smallresources']:GetSeatbelt() -- true, false ou nil

Retorno

true quando afivelado, false quando não. null quando o recurso Seatbelt está desligado no painel, ou o jogador não está em um veículo com cinto.

Exemplo

import { seatbelt } from "@aicore-fivem/lib/client";

// O ícone de cinto de um HUD: lê uma vez, depois acompanha as mudanças.
let worn = seatbelt.isOn();
seatbelt.onChange((value) => {
  worn = value;
});

Leia em uma ação ou em uma troca de veículo, nunca a cada frame.

IsHandsUp

Se o jogador local está com as mãos para cima (o gesto X).

Lado: Cliente · Espera: não

Signature
IsHandsUp(): boolean
Lua
local up = exports['ai-smallresources']:IsHandsUp()

Retorno

true enquanto as mãos estão para cima, false caso contrário.

IsPointing

Se o jogador local está apontando (o gesto B).

Lado: Cliente · Espera: não

Signature
IsPointing(): boolean
Lua
local pointing = exports['ai-smallresources']:IsPointing()

Retorno

true enquanto aponta, false caso contrário.

Eventos

ai-smallresources:seatbelt

Disparado no cliente local quando o cinto muda. O nome é SEATBELT_EVENT em @aicore-fivem/shared. O ai-core o repassa como seu próprio evento de cinto, que o seatbelt.onChange da lib escuta; prefira esse.

Lado: Cliente (evento local)

Prop

Type

Lua
AddEventHandler('ai-smallresources:seatbelt', function(worn)
  print('seat belt', worn)
end)

Todos os outros eventos do ai-smallresources são internos (do cliente e do servidor dele).

State bags e metadata

NomeEmTipoSignificado
aiHoldjogadorstring | falseO item de jornalismo que o jogador segura (newscam, newsmic, newsboom).
aiCarryingjogadornumberO jogador está carregando alguém (o id do servidor dele).
aiCarriedByjogadornumberO jogador está sendo carregado por alguém (o id do servidor dele).
aiDivingjogadorbooleanO jogador está usando o equipamento de mergulho.
aiRealPlateveículostringA placa real enquanto uma placa falsa está colocada.
aiMooredveículobooleanO barco está amarrado a uma amarração.
diveOxygenmetadata de personagem (ai-core)numberSegundos de ar restantes no tanque de mergulho.
aiPlayerCount / aiMaxPlayersGlobalStatenumberJogadores online e vagas, definidos enquanto o Discord Rich Presence está ligado.
// Servidor: a placa real de um veículo, falsa ou não.
export function realPlate(vehicle: number): string {
  const real = Entity(vehicle).state.aiRealPlate as string | undefined;
  return real ?? GetVehicleNumberPlateText(vehicle);
}

Itens usáveis

Registrados pela camada de inventário do ai-core, então funcionam com qualquer inventário que estiver rodando: binoculars, firework1-firework4, newscam, newsmic, newsboom, fakeplate, notepad, note (metadata text e description), diving_gear, diving_fill.

Nesta página