AI Core
Mundo y herramientasai-smallresources

ai-smallresources para desarrolladores

Los exports de cliente, el evento del cinturón, los state bags y la metadata de ai-smallresources.

Para leer el cinturón o los gestos desde tu propio script, usa seatbelt.isOn() / seatbelt.onChange(fn) y gestures.isHandsUp() / gestures.isPointing() de la lib (cliente; en Lua aiLib.seatbelt, aiLib.gestures). Pasan por ai-core y funcionan con el script de cinturón o de emotes que esté en uso. Los exports de abajo son los que lee ai-core mientras responde ai-smallresources.

Los tres exports están en el cliente, son síncronos y leen al jugador local. GetSeatbelt está tipado como AiSmallResourcesClientExports en @aicore-fivem/shared; IsHandsUp e IsPointing no están tipados (usa callExport).

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

Exports de cliente

GetSeatbelt

Si el jugador local lleva puesto el cinturón.

Lado: Cliente · Espera: no

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

Devuelve

true cuando está abrochado, false cuando no. null cuando la función Seatbelt está desactivada en el panel, o el jugador no está en un vehículo con cinturón.

Ejemplo

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

// El icono de cinturón de un HUD: leer una vez y después seguir los cambios.
let worn = seatbelt.isOn();
seatbelt.onChange((value) => {
  worn = value;
});

Léelo en una acción o en un cambio de vehículo, nunca en cada frame.

IsHandsUp

Si el jugador local tiene las manos arriba (el gesto X).

Lado: Cliente · Espera: no

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

Devuelve

true mientras tiene las manos arriba, false en otro caso.

IsPointing

Si el jugador local está señalando (el gesto B).

Lado: Cliente · Espera: no

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

Devuelve

true mientras señala, false en otro caso.

Eventos

ai-smallresources:seatbelt

Se dispara en el cliente local cuando cambia el cinturón. El nombre es SEATBELT_EVENT en @aicore-fivem/shared. ai-core lo reenvía como su propio evento de cinturón, que escucha seatbelt.onChange de la lib; prefiere ese.

Lado: Cliente (evento local)

Prop

Type

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

Todos los demás eventos de ai-smallresources son internos (su cliente y su servidor).

State bags y metadata

NombreEnTipoSignificado
aiHoldjugadorstring | falseEl objeto de noticias que sujeta el jugador (newscam, newsmic, newsboom).
aiCarryingjugadornumberEl jugador está cargando a alguien (su id de servidor).
aiCarriedByjugadornumberAlguien está cargando al jugador (su id de servidor).
aiDivingjugadorbooleanEl jugador lleva puesto el equipo de buceo.
aiRealPlatevehículostringLa matrícula real mientras hay puesta una matrícula falsa.
aiMooredvehículobooleanEl barco está atado a un amarre.
diveOxygenmetadata de personaje (ai-core)numberSegundos de aire que quedan en la botella de buceo.
aiPlayerCount / aiMaxPlayersGlobalStatenumberJugadores conectados y plazas, se fijan mientras Discord Rich Presence está activado.
// Servidor: la matrícula real de un vehículo, sea falsa o no.
export function realPlate(vehicle: number): string {
  const real = Entity(vehicle).state.aiRealPlate as string | undefined;
  return real ?? GetVehicleNumberPlateText(vehicle);
}

Objetos usables

Registrados a través de la capa de inventario de ai-core, así que funcionan con el inventario que esté en uso: binoculars, firework1-firework4, newscam, newsmic, newsboom, fakeplate, notepad, note (metadata text y description), diving_gear, diving_fill.

En esta página