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
IsHandsUp(): booleanlocal 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
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
IsPointing(): booleanlocal 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
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
GetGestureProvider(): string | nulllocal 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
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
PlayEmote(name: string): booleanlocal 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
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
CancelEmote(): booleanlocal 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
GetEmoteProvider(): string | nulllocal 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
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");
}Radyal menü
Sunucu hangi radyal menüyü çalıştırırsa çalıştırsın; koşullar, alt menüler ve basma handler’larıyla öğe ekle, kaldır ve yenile.
Görünüm
Hangi kıyafet script’i çalışıyorsa çalışsın; bir karakterin görünümünü bir ped’e giydir, bir ped’in giydiği görünümü oku, kıyafet dükkanını, berberi ya da kıyafetler menüsünü aç ve oyuncuya bir meslek kıyafeti giydir.