AI Core
Monde et outilsai-exitsleeping

ai-exitsleeping pour les développeurs

Les exports serveur et client, les events de hook et la forme d’un dormeur dans ai-exitsleeping.

ai-exitsleeping a un export serveur, trois exports client et quatre events de hook locaux (les hooks modifiables du script d’origine). Aucun n’est typé dans @aicore-fivem/shared : en TypeScript, appelez-les avec callExport.

Exports serveur

AddCreateCheck

Ajoute une vérification qui s’exécute quand un joueur se déconnecte. Renvoyez false pour ne laisser aucun corps endormi (un appartement, une zone d’événement, une prison). Utilisez-la quand votre script connaît des endroits où un corps ne doit pas rester.

Côté : serveur · Attend : non

Signature
AddCreateCheck(id: string, check: (source: number, charId: number, coords: { x: number; y: number; z: number; heading: number }) => boolean): void
Lua
exports['ai-exitsleeping']:AddCreateCheck(id, function(source, charId, coords) return true end)

Paramètres

Prop

Type

Retour

Rien. La vérification est retirée d’elle-même quand votre ressource s’arrête.

Exemple

import { callExport } from "@aicore-fivem/lib/server";

// Pas de corps endormis dans l’arène d’événement (200 m autour de son centre).
const ARENA = { x: -324.0, y: -1968.0, z: 21.6 };
callExport("ai-exitsleeping", "AddCreateCheck", "arena",
  (_source: number, _charId: number, c: { x: number; y: number; z: number }) =>
    Math.hypot(c.x - ARENA.x, c.y - ARENA.y) > 200,
);

Pour un endroit fixe, une Hidden area dans le panneau fait la même chose sans code.

Exports client

PlayerLoaded

Réveille le corps du joueur local et commence à afficher les corps alentour. Appelez-le depuis un script d’apparition après sa propre apparition finale, et uniquement quand le Wake up on du panneau vaut PlayerLoaded export (spawn script).

Côté : client · Attend : non

Signature
PlayerLoaded(): void
Lua
exports['ai-exitsleeping']:PlayerLoaded()

Retour

Rien. Un second appel avant le prochain changement de personnage ne fait rien.

SetHidden

Masque chaque corps endormi sur ce client tant qu’au moins une raison est active. Utilisez-le pendant que le joueur est dans un endroit où les corps auraient l’air déplacés (un intérieur shell, une cinématique).

Côté : client · Attend : non

Signature
SetHidden(reason: string, hidden: boolean): void
Lua
exports['ai-exitsleeping']:SetHidden('myshell', true)

Paramètres

Prop

Type

Retour

Rien. Vos raisons sont retirées quand votre ressource s’arrête.

Exemple

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

export function enterShell(): void {
  callExport("ai-exitsleeping", "SetHidden", "shell", true);
}
export function leaveShell(): void {
  callExport("ai-exitsleeping", "SetHidden", "shell", false);
}

SetCarryBlocked

Masque l’option de port sur ce client tant qu’au moins une raison est active (vos propres règles : un mini-jeu, une prison).

Côté : client · Attend : non

Signature
SetCarryBlocked(reason: string, blocked: boolean): void
Lua
exports['ai-exitsleeping']:SetCarryBlocked('minigame', true)

Retour

Rien. Mêmes règles de raisons que SetHidden. Le port est déjà bloqué dans un véhicule, à terre et menotté.

Events de hook

Des events locaux (non envoyés sur le réseau) que vous pouvez écouter.

ai-exitsleeping:created

Un corps endormi a été créé pour un personnage qui s’est déconnecté. Côté : serveur.

Prop

Type

ai-exitsleeping:removed

Un corps endormi a disparu (réveillé, expiré, désactivé). Côté : serveur. Argument : charId: number.

ai-exitsleeping:positionChanged

La position d’un corps a changé (porté, transporté en véhicule, posé). Côté : serveur. Arguments : charId: number, coords: { x, y, z, heading }.

ai-exitsleeping:client:pedSpawned

Un ped endormi a été créé sur ce client. Côté : client. Arguments : ped: number (un ped local, non réseau), view: SleeperView.

// Serveur : journaliser chaque corps qui apparaît et disparaît.
on("ai-exitsleeping:created", (charId: number, view: { x: number; y: number; z: number }) => {
  console.log(`character ${charId} fell asleep at ${view.x}, ${view.y}, ${view.z}`);
});
on("ai-exitsleeping:removed", (charId: number) => {
  console.log(`character ${charId} woke up`);
});

SleeperView

Prop

Type

Events internes

ai-exitsleeping:wake, area, client:area, look, startCarry, stopCarry, putInVehicle, takeOut circulent entre son propre client et son serveur ; ne les appelez pas.

Sur cette page