AI Core
Mundo e ferramentasai-exitsleeping

ai-exitsleeping para desenvolvedores

Exports do servidor e do cliente, eventos de hook e o formato do corpo dormindo do ai-exitsleeping.

O ai-exitsleeping tem um export do servidor, três exports do cliente e quatro eventos de hook locais (os hooks editáveis do script original). Nenhum é tipado em @aicore-fivem/shared: em TypeScript chame-os com callExport.

Exports do servidor

AddCreateCheck

Adiciona uma verificação que roda quando um jogador sai do jogo. Retorne false para não deixar corpo dormindo (um apartamento, uma zona de evento, uma prisão). Use quando seu script conhece lugares onde um corpo não deve ficar.

Lado: Servidor · Espera: não

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)

Parâmetros

Prop

Type

Retorno

Nada. A verificação é removida sozinha quando seu recurso para.

Exemplo

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

// Sem corpos dormindo dentro da arena do evento (200 m ao redor do centro dela).
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,
);

Para um lugar fixo, uma Hidden area no painel faz o mesmo sem código.

Exports do cliente

PlayerLoaded

Acorda o corpo do jogador local e começa a mostrar os corpos ao redor. Chame-o a partir de um script de spawn depois do spawn final dele, e só quando o Wake up on do painel for PlayerLoaded export (spawn script).

Lado: Cliente · Espera: não

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

Retorno

Nada. Uma segunda chamada antes da próxima troca de personagem não faz nada.

SetHidden

Esconde todos os corpos dormindo neste cliente enquanto houver algum motivo ativo. Use enquanto o jogador está em um lugar onde os corpos ficariam estranhos (um interior shell, uma cutscene).

Lado: Cliente · Espera: não

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

Parâmetros

Prop

Type

Retorno

Nada. Seus motivos são removidos quando seu recurso para.

Exemplo

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

Esconde a opção de carregar neste cliente enquanto houver algum motivo ativo (suas próprias regras: um minigame, uma prisão).

Lado: Cliente · Espera: não

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

Retorno

Nada. Mesmas regras de motivos que SetHidden. Carregar já é bloqueado em um veículo, enquanto caído e enquanto algemado.

Eventos de hook

Eventos locais (não enviados pela rede) que você pode escutar.

ai-exitsleeping:created

Um corpo dormindo foi criado para um personagem que saiu do jogo. Lado: Servidor.

Prop

Type

ai-exitsleeping:removed

Um corpo dormindo sumiu (acordou, expirou, foi desligado). Lado: Servidor. Argumento: charId: number.

ai-exitsleeping:positionChanged

A posição de um corpo mudou (carregado, levado em um veículo, colocado no chão). Lado: Servidor. Argumentos: charId: number, coords: { x, y, z, heading }.

ai-exitsleeping:client:pedSpawned

Um ped dormindo foi criado neste cliente. Lado: Cliente. Argumentos: ped: number (um ped local, não em rede), view: SleeperView.

// Servidor: registra no log todo corpo que aparece e desaparece.
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

Eventos internos

ai-exitsleeping:wake, area, client:area, look, startCarry, stopCarry, putInVehicle, takeOut ficam entre o cliente e o servidor dele; não os chame.

Nesta página