Gesten und Emotes
Erhobene Hände und Zeigen prüfen, Emotes per Name abspielen und stoppen und sehen, welches Emote-Skript antwortet, egal welches Emote-Menü der Server nutzt.
Erhobene Hände, Zeigen und Emotes kommen aus einem Emote-Skript. ai-core fragt das, das läuft, sodass eine Polizeidurchsuchung („sind seine Hände oben?“) oder eine Job-Animation mit jedem von ihnen funktioniert.
Zwei Listen werden getrennt geführt, weil nicht jedes Skript beides kann:
- Gesten (Hände hoch, Zeigen): tgiann-emotes, codem-emotemenu, rpemotes (und rpemotes-reborn), 0r-animmenu, ai-smallresources. Das erste, das in dieser Reihenfolge läuft, antwortet.
- Emotes (per Name abspielen, stoppen): tgiann-emotes, rpemotes (und rpemotes-reborn), scully_emotemenu, dpemotes. Das erste, das in dieser Reihenfolge läuft, antwortet.
IsHandsUp
Sagt, ob der lokale Spieler die Hände oben hat, in dem Emote-Skript, das Gesten beantwortet.
Seite: Client · Wartet: nein
IsHandsUp(): booleanlocal up = exports['ai-core']:IsHandsUp() -- oder aiLib.gestures.isHandsUp()Parameter
Keine.
Rückgabe
boolean: true, solange die Hände oben sind. false, wenn nicht oder wenn kein Gesten-Skript läuft.
Beispiel
import { gestures, notify } from "@aicore-fivem/lib/client";
import { Locale } from "common";
RegisterCommand(
"surrender_check",
() => notify(Locale(gestures.isHandsUp() ? "HANDS_UP" : "HANDS_DOWN")),
false,
);Das liest nur den lokalen Spieler. Um zu wissen, ob ein anderer Spieler die Hände oben hat (ein Überfall, eine Durchsuchung), frage den Server, der den Client dieses Spielers fragt.
IsPointing
Sagt, ob der lokale Spieler zeigt, in dem Emote-Skript, das Gesten beantwortet.
Seite: Client · Wartet: nein
IsPointing(): booleanlocal pointing = exports['ai-core']:IsPointing() -- oder aiLib.gestures.isPointing()Parameter
Keine.
Rückgabe
boolean: true, solange er zeigt. false, wenn nicht, wenn kein Gesten-Skript läuft oder das laufende es nicht sagen kann (0r-animmenu hat keine Zeige-Prüfung).
Beispiel
import { gestures } from "@aicore-fivem/lib/client";
RegisterCommand("ispointing", () => console.log(gestures.isPointing()), false);GetGestureProvider
Gibt den Ressourcennamen des Emote-Skripts zurück, das erhobene Hände und Zeigen beantwortet.
Seite: Client · Wartet: nein
GetGestureProvider(): string | nulllocal provider = exports['ai-core']:GetGestureProvider() -- oder aiLib.gestures.provider()Parameter
Keine.
Rückgabe
string: der Ressourcenname ("tgiann-emotes"). null, wenn keines der unterstützten Skripte läuft.
Beispiel
import { gestures } from "@aicore-fivem/lib/client";
// Nutze deine eigene Hände-hoch-Taste nur, wenn kein Emote-Skript eine anbietet.
if (gestures.provider() === null) console.log("no gesture script, enabling my own hands-up key");PlayEmote
Spielt ein Emote des laufenden Emote-Skripts über seinen Befehlsnamen ab, den Namen, den Spieler nach /e tippen ("sit", "notepad").
Seite: Client · Wartet: nein
PlayEmote(name: string): booleanlocal played = exports['ai-core']:PlayEmote(name) -- oder aiLib.gestures.playEmote(name)Parameter
Prop
Type
Rückgabe
boolean: true, wenn der Name gültig ist und ein Emote-Skript aufgefordert wurde, es abzuspielen. false für einen ungültigen Namen oder wenn kein Emote-Skript läuft. true beweist nicht, dass das Emote in diesem Skript existiert: Ein unbekannter Name spielt einfach nichts ab.
Beispiel
import { gestures, progress } from "@aicore-fivem/lib/client";
import { Locale } from "common";
// Schreibt eine Notiz mit dem Notizblock-Emote, während der Balken läuft.
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
Stoppt das Emote, das der lokale Spieler im laufenden Emote-Skript abspielt. Nutze es, wenn dein Skript die Hände des Spielers braucht (Fesseln, ein Niederschlag, ein Minispiel).
Seite: Client · Wartet: nein
CancelEmote(): booleanlocal stopped = exports['ai-core']:CancelEmote() -- oder aiLib.gestures.cancelEmote()Parameter
Keine.
Rückgabe
boolean: true, wenn ein Emote-Skript zum Stoppen aufgefordert wurde (auch wenn nichts lief), false, wenn kein Emote-Skript läuft.
Beispiel
Siehe das Beispiel zu PlayEmote.
GetEmoteProvider
Gibt den Ressourcennamen des Emote-Skripts zurück, das Emotes per Name abspielt.
Seite: Client · Wartet: nein
GetEmoteProvider(): string | nulllocal provider = exports['ai-core']:GetEmoteProvider() -- oder aiLib.gestures.emoteProvider()Parameter
Keine.
Rückgabe
string: der Ressourcenname ("rpemotes"). null, wenn keines der unterstützten Emote-Skripte läuft.
Beispiel
import { gestures, player } from "@aicore-fivem/lib/client";
// Bevorzuge das Emote-Skript des Servers, falle auf eine einfache Animation zurück.
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");
}Radialmenü
Einträge im Radialmenü, das der Server nutzt, hinzufügen, entfernen und aktualisieren, mit Bedingungen, Untermenüs und Handlern beim Drücken.
Aussehen
Das Aussehen eines Charakters auf einen Ped legen, das Aussehen lesen, das ein Ped trägt, das Kleidungsgeschäft, den Friseur oder das Outfit-Menü öffnen und den Spieler in ein Job-Outfit kleiden, egal welches Kleidungs-Skript läuft.