AI Core
API başvurusuai-core client export’ları

Hareketler ve emote’lar

Sunucu hangi emote menüsünü çalıştırırsa çalıştırsın; eller yukarıda ve işaret etmeyi kontrol et, emote’ları adıyla oynat ve durdur ve hangi emote script’inin cevap verdiğini gör.

Eller yukarı, işaret etme ve emote’lar bir emote script’inden gelir. ai-core hangisi çalışıyorsa ona sorar, böylece bir polis araması ("elleri yukarıda mı?") ya da bir meslek animasyonu hepsiyle çalışır.

İki liste ayrı tutulur, çünkü her script ikisini birden yapmaz:

  • Hareketler (eller yukarı, işaret etme): tgiann-emotes, codem-emotemenu, rpemotes (ve rpemotes-reborn), 0r-animmenu, ai-smallresources. Bu sırayla çalışan ilki cevap verir.
  • Emote’lar (adıyla oynat, durdur): tgiann-emotes, rpemotes (ve rpemotes-reborn), scully_emotemenu, dpemotes. Bu sırayla çalışan ilki cevap verir.

IsHandsUp

Hareketleri cevaplayan emote script’i hangisiyse ona göre yerel oyuncunun ellerinin yukarıda olup olmadığını söyler.

Taraf: Client · Bekler: hayır

İmza
IsHandsUp(): boolean
Lua
local up = exports['ai-core']:IsHandsUp() -- ya da aiLib.gestures.isHandsUp()

Parametreler

Yok.

Dönüş değeri

boolean: eller yukarıdayken true. Yukarıda değilken ya da hiçbir hareket script’i çalışmıyorken false.

Örnek

resource/client/rob.ts
import { gestures, notify } from "@aicore-fivem/lib/client";
import { Locale } from "common";

RegisterCommand(
  "surrender_check",
  () => notify(Locale(gestures.isHandsUp() ? "HANDS_UP" : "HANDS_DOWN")),
  false,
);

Bu yalnızca yerel oyuncuyu okur. Başka bir oyuncunun ellerinin yukarıda olup olmadığını öğrenmek için (bir soygun, bir arama) server’a sor, o da o oyuncunun client’ına sorar.

IsPointing

Hareketleri cevaplayan emote script’i hangisiyse ona göre yerel oyuncunun işaret edip etmediğini söyler.

Taraf: Client · Bekler: hayır

İmza
IsPointing(): boolean
Lua
local pointing = exports['ai-core']:IsPointing() -- ya da aiLib.gestures.isPointing()

Parametreler

Yok.

Dönüş değeri

boolean: işaret ederken true. Etmezken, hiçbir hareket script’i çalışmıyorken ya da çalışan söyleyemiyorken (0r-animmenu’de işaret etme kontrolü yok) false.

Örnek

resource/client/index.ts
import { gestures } from "@aicore-fivem/lib/client";

RegisterCommand("ispointing", () => console.log(gestures.isPointing()), false);

GetGestureProvider

Eller yukarı ve işaret etmeyi cevaplayan emote script’inin resource adını döndürür.

Taraf: Client · Bekler: hayır

İmza
GetGestureProvider(): string | null
Lua
local provider = exports['ai-core']:GetGestureProvider() -- ya da aiLib.gestures.provider()

Parametreler

Yok.

Dönüş değeri

string: resource adı ("tgiann-emotes"). Desteklenen script’lerden hiçbiri çalışmıyorsa null.

Örnek

resource/client/index.ts
import { gestures } from "@aicore-fivem/lib/client";

// Kendi eller yukarı tuşunu yalnızca hiçbir emote script’i bir tane sunmuyorsa kullan.
if (gestures.provider() === null) console.log("no gesture script, enabling my own hands-up key");

PlayEmote

Çalışan emote script’inin bir emote’unu komut adıyla oynatır; oyuncuların /e’den sonra yazdığı ad ("sit", "notepad").

Taraf: Client · Bekler: hayır

İmza
PlayEmote(name: string): boolean
Lua
local played = exports['ai-core']:PlayEmote(name) -- ya da aiLib.gestures.playEmote(name)

Parametreler

Prop

Type

Dönüş değeri

boolean: ad geçerliyse ve bir emote script’inden onu oynatması istendiyse true. Geçersiz bir ad için ya da hiçbir emote script’i çalışmıyorken false. true emote’un o script’te var olduğunu kanıtlamaz: bilinmeyen bir ad sadece hiçbir şey oynatmaz.

Örnek

resource/client/notes.ts
import { gestures, progress } from "@aicore-fivem/lib/client";
import { Locale } from "common";

// Çubuk çalışırken not defteri emote’uyla bir not yazar.
export async function writeNote(): Promise<boolean> {
  gestures.playEmote("notepad");
  const done = await progress({ label: Locale("WRITING"), duration: 5000, canCancel: true });
  gestures.cancelEmote();
  return done;
}

CancelEmote

Çalışan emote script’inde yerel oyuncunun oynattığı emote’u durdurur. Script’inin oyuncunun ellerine ihtiyacı olduğunda kullan (kelepçeleme, yere düşürme, bir mini oyun).

Taraf: Client · Bekler: hayır

İmza
CancelEmote(): boolean
Lua
local stopped = exports['ai-core']:CancelEmote() -- ya da aiLib.gestures.cancelEmote()

Parametreler

Yok.

Dönüş değeri

boolean: bir emote script’inden durması istendiğinde true (hiçbir şey oynamıyorken de), hiçbir emote script’i çalışmıyorken false.

Örnek

PlayEmote örneğine bak.

GetEmoteProvider

Emote’ları adıyla oynatan emote script’inin resource adını döndürür.

Taraf: Client · Bekler: hayır

İmza
GetEmoteProvider(): string | null
Lua
local provider = exports['ai-core']:GetEmoteProvider() -- ya da aiLib.gestures.emoteProvider()

Parametreler

Yok.

Dönüş değeri

string: resource adı ("rpemotes"). Desteklenen emote script’lerinden hiçbiri çalışmıyorsa null.

Örnek

resource/client/index.ts
import { gestures, player } from "@aicore-fivem/lib/client";

// Sunucunun emote script’ini tercih et, olmazsa düz bir animasyona geç.
export function sitDown(): void {
  if (gestures.emoteProvider() !== null) gestures.playEmote("sit");
  else void player.playAnim("anim@amb@business@bgen@bgen_no_work@", "sit_phone_phoneputdown_idle_nowork");
}

Bu sayfada