ai-exitsleeping dla deweloperów
Eksporty serwera i klienta, zdarzenia hooków i kształt śpiącego ciała w ai-exitsleeping.
ai-exitsleeping ma jeden eksport serwera, trzy eksporty klienta i cztery lokalne zdarzenia hooków (edytowalne hooki oryginalnego skryptu). Żadne nie są typowane w @aicore-fivem/shared: w TypeScript wywołuj je przez callExport.
Eksporty serwera
AddCreateCheck
Dodaje sprawdzenie, które uruchamia się, gdy gracz się wylogowuje. Zwróć false, aby nie zostawiać śpiącego ciała (mieszkanie, strefa wydarzenia, więzienie). Używaj, gdy twój skrypt zna miejsca, w których ciało nie może zostać.
Strona: serwer · Czeka: nie
AddCreateCheck(id: string, check: (source: number, charId: number, coords: { x: number; y: number; z: number; heading: number }) => boolean): voidexports['ai-exitsleeping']:AddCreateCheck(id, function(source, charId, coords) return true end)Parametry
Prop
Type
Zwraca
Nic. Sprawdzenie jest usuwane samo, gdy twój zasób się zatrzymuje.
Przykład
import { callExport } from "@aicore-fivem/lib/server";
// Bez śpiących ciał na arenie wydarzeń (200 m wokół jej środka).
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,
);Dla stałego miejsca Hidden area w panelu robi to samo bez kodu.
Eksporty klienta
PlayerLoaded
Budzi ciało lokalnego gracza i zaczyna pokazywać ciała w pobliżu. Wywołuj to ze skryptu spawnu po jego własnym ostatecznym spawnie i tylko wtedy, gdy Wake up on w panelu to PlayerLoaded export (spawn script).
Strona: klient · Czeka: nie
PlayerLoaded(): voidexports['ai-exitsleeping']:PlayerLoaded()Zwraca
Nic. Drugie wywołanie przed następną zmianą postaci nic nie robi.
SetHidden
Ukrywa każde śpiące ciało na tym kliencie, dopóki trwa jakikolwiek powód. Używaj, gdy gracz jest w miejscu, w którym ciała wyglądałyby źle (wnętrze shella, przerywnik).
Strona: klient · Czeka: nie
SetHidden(reason: string, hidden: boolean): voidexports['ai-exitsleeping']:SetHidden('myshell', true)Parametry
Prop
Type
Zwraca
Nic. Twoje powody są usuwane, gdy twój zasób się zatrzymuje.
Przykład
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
Ukrywa opcję noszenia na tym kliencie, dopóki trwa jakikolwiek powód (twoje własne zasady: minigra, więzienie).
Strona: klient · Czeka: nie
SetCarryBlocked(reason: string, blocked: boolean): voidexports['ai-exitsleeping']:SetCarryBlocked('minigame', true)Zwraca
Nic. Te same zasady powodów co w SetHidden. Noszenie jest już zablokowane w pojeździe, podczas powalenia i podczas skucia.
Zdarzenia hooków
Lokalne zdarzenia (niewysyłane przez sieć), których możesz nasłuchiwać.
ai-exitsleeping:created
Utworzono śpiące ciało dla postaci, która się wylogowała. Strona: serwer.
Prop
Type
ai-exitsleeping:removed
Śpiące ciało zniknęło (obudziło się, wygasło, zostało przełączone). Strona: serwer. Argument: charId: number.
ai-exitsleeping:positionChanged
Zmieniła się pozycja ciała (noszone, przewożone, odłożone). Strona: serwer. Argumenty: charId: number, coords: { x, y, z, heading }.
ai-exitsleeping:client:pedSpawned
Na tym kliencie utworzono śpiącego peda. Strona: klient. Argumenty: ped: number (lokalny, niesieciowy ped), view: SleeperView.
// Serwer: loguj każde ciało, które się pojawia i znika.
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
Zdarzenia wewnętrzne
ai-exitsleeping:wake, area, client:area, look, startCarry, stopCarry, putInVehicle, takeOut działają między jego własnym klientem a serwerem; nie wywołuj ich.