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).
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
GetSeatbelt(): boolean | nulllocal worn = exports['ai-smallresources']:GetSeatbelt() -- true, false o nilDevuelve
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
IsHandsUp(): booleanlocal 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
IsPointing(): booleanlocal 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
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
| Nombre | En | Tipo | Significado |
|---|---|---|---|
aiHold | jugador | string | false | El objeto de noticias que sujeta el jugador (newscam, newsmic, newsboom). |
aiCarrying | jugador | number | El jugador está cargando a alguien (su id de servidor). |
aiCarriedBy | jugador | number | Alguien está cargando al jugador (su id de servidor). |
aiDiving | jugador | boolean | El jugador lleva puesto el equipo de buceo. |
aiRealPlate | vehículo | string | La matrícula real mientras hay puesta una matrícula falsa. |
aiMoored | vehículo | boolean | El barco está atado a un amarre. |
diveOxygen | metadata de personaje (ai-core) | number | Segundos de aire que quedan en la botella de buceo. |
aiPlayerCount / aiMaxPlayers | GlobalState | number | Jugadores 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.
ai-smallresources
Muchas funciones de juego pequeñas, cada una con su propio interruptor en el panel, más teletransportes, ascensores, asientos, amarres y Discord Rich Presence.
ai-exitsleeping
Un jugador que cierra sesión se queda en el mundo como un cuerpo dormido que otros pueden cargar y meter en vehículos.