AI Core
Dünya ve araçlarai-exitsleeping

Geliştiriciler için ai-exitsleeping

ai-exitsleeping’in server ve client export’ları, hook event’leri ve uyuyan beden (sleeper) yapısı.

ai-exitsleeping’in bir server export’u, üç client export’u ve dört yerel hook event’i vardır (orijinal script’in düzenlenebilir hook’ları). Hiçbiri @aicore-fivem/shared içinde tiplenmemiştir: TypeScript’te onları callExport ile çağır.

Server export’ları

AddCreateCheck

Bir oyuncu çıkış yaptığında çalışan bir kontrol ekler. Uyuyan beden bırakmamak için false döndür (bir daire, bir etkinlik bölgesi, bir hapishane). Script’in bir bedenin kalmaması gereken yerleri biliyorsa kullan.

Taraf: Server · Bekler: hayır

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)

Parametreler

Prop

Type

Dönüş değeri

Hiçbir şey. Resource’un durduğunda kontrol kendiliğinden kaldırılır.

Örnek

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

// Etkinlik arenasının içinde uyuyan beden yok (merkezinin 200 m çevresi).
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,
);

Sabit bir yer için paneldeki bir Hidden area aynı işi kodsuz yapar.

Client export’ları

PlayerLoaded

Yerel oyuncunun bedenini uyandırır ve etraftaki bedenleri göstermeye başlar. Bir doğuş script’inden, onun kendi son doğuşundan sonra ve sadece paneldeki Wake up on değeri PlayerLoaded export (spawn script) olduğunda çağır.

Taraf: Client · Bekler: hayır

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

Dönüş değeri

Hiçbir şey. Bir sonraki karakter değişiminden önceki ikinci çağrı hiçbir şey yapmaz.

SetHidden

Herhangi bir sebep geçerli olduğu sürece bu client’taki her uyuyan bedeni gizler. Oyuncu bedenlerin yanlış görüneceği bir yerdeyken (bir shell iç mekân, bir ara sahne) kullan.

Taraf: Client · Bekler: hayır

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

Parametreler

Prop

Type

Dönüş değeri

Hiçbir şey. Resource’un durduğunda sebeplerin kaldırılır.

Örnek

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

Herhangi bir sebep geçerli olduğu sürece bu client’ta taşıma seçeneğini gizler (kendi kuralların: bir mini oyun, bir hapishane).

Taraf: Client · Bekler: hayır

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

Dönüş değeri

Hiçbir şey. Sebep kuralları SetHidden ile aynıdır. Taşıma araçtayken, yere düşmüşken ve kelepçeliyken zaten engellidir.

Hook event’leri

Dinleyebileceğin yerel event’ler (ağ üzerinden gönderilmez).

ai-exitsleeping:created

Çıkış yapan bir karakter için uyuyan bir beden oluşturuldu. Taraf: Server.

Prop

Type

ai-exitsleeping:removed

Uyuyan bir beden gitti (uyandı, süresi doldu, kapatıldı). Taraf: Server. Argüman: charId: number.

ai-exitsleeping:positionChanged

Bir bedenin konumu değişti (taşındı, araçla götürüldü, yere bırakıldı). Taraf: Server. Argümanlar: charId: number, coords: { x, y, z, heading }.

ai-exitsleeping:client:pedSpawned

Bu client’ta uyuyan bir ped oluşturuldu. Taraf: Client. Argümanlar: ped: number (yerel, ağa bağlı olmayan bir ped), view: SleeperView.

// Server: beliren ve kaybolan her bedeni logla.
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

Dahili event’ler

ai-exitsleeping:wake, area, client:area, look, startCarry, stopCarry, putInVehicle, takeOut kendi client’ı ile server’ı arasındadır; bunları çağırma.

Bu sayfada