Gesty i emotki
Sprawdzaj ręce w górze i wskazywanie, odtwarzaj i zatrzymuj emotki po nazwie i sprawdzaj, który skrypt emotek odpowiada, niezależnie od menu emotek na serwerze.
Ręce w górze, wskazywanie i emotki pochodzą ze skryptu emotek. ai-core pyta ten, który działa, więc przeszukanie przez policję ("czy ma ręce w górze?") albo animacja pracy działa z każdym z nich.
Dwie listy są trzymane osobno, bo nie każdy skrypt robi obie rzeczy:
- Gesty (ręce w górze, wskazywanie): tgiann-emotes, codem-emotemenu, rpemotes (i rpemotes-reborn), 0r-animmenu, ai-smallresources. Odpowiada pierwszy działający w tej kolejności.
- Emotki (odtwarzanie po nazwie, zatrzymanie): tgiann-emotes, rpemotes (i rpemotes-reborn), scully_emotemenu, dpemotes. Odpowiada pierwszy działający w tej kolejności.
IsHandsUp
Mówi, czy lokalny gracz ma ręce w górze, według skryptu emotek, który odpowiada na gesty.
Strona: Klient · Czeka: nie
IsHandsUp(): booleanlocal up = exports['ai-core']:IsHandsUp() -- albo aiLib.gestures.isHandsUp()Parametry
Brak.
Zwraca
boolean: true, gdy ręce są w górze. false, gdy nie są albo gdy nie działa żaden skrypt gestów.
Przykład
import { gestures, notify } from "@aicore-fivem/lib/client";
import { Locale } from "common";
RegisterCommand(
"surrender_check",
() => notify(Locale(gestures.isHandsUp() ? "HANDS_UP" : "HANDS_DOWN")),
false,
);To czyta tylko lokalnego gracza. Aby wiedzieć, czy inny gracz ma ręce w górze (napad, przeszukanie), zapytaj serwer, który pyta klienta tego gracza.
IsPointing
Mówi, czy lokalny gracz wskazuje, według skryptu emotek, który odpowiada na gesty.
Strona: Klient · Czeka: nie
IsPointing(): booleanlocal pointing = exports['ai-core']:IsPointing() -- albo aiLib.gestures.isPointing()Parametry
Brak.
Zwraca
boolean: true podczas wskazywania. false, gdy nie wskazuje, gdy nie działa żaden skrypt gestów albo gdy działający nie umie tego stwierdzić (0r-animmenu nie ma sprawdzania wskazywania).
Przykład
import { gestures } from "@aicore-fivem/lib/client";
RegisterCommand("ispointing", () => console.log(gestures.isPointing()), false);GetGestureProvider
Zwraca nazwę zasobu skryptu emotek, który odpowiada na ręce w górze i wskazywanie.
Strona: Klient · Czeka: nie
GetGestureProvider(): string | nulllocal provider = exports['ai-core']:GetGestureProvider() -- albo aiLib.gestures.provider()Parametry
Brak.
Zwraca
string: nazwa zasobu ("tgiann-emotes"). null, gdy nie działa żaden z obsługiwanych skryptów.
Przykład
import { gestures } from "@aicore-fivem/lib/client";
// Używaj własnego klawisza rąk w górze tylko wtedy, gdy żaden skrypt emotek go nie oferuje.
if (gestures.provider() === null) console.log("no gesture script, enabling my own hands-up key");PlayEmote
Odtwarza emotkę działającego skryptu emotek po jej nazwie komendy, czyli nazwie, którą gracze wpisują po /e ("sit", "notepad").
Strona: Klient · Czeka: nie
PlayEmote(name: string): booleanlocal played = exports['ai-core']:PlayEmote(name) -- albo aiLib.gestures.playEmote(name)Parametry
Prop
Type
Zwraca
boolean: true, gdy nazwa jest poprawna i skrypt emotek został poproszony o jej odtworzenie. false dla niepoprawnej nazwy albo gdy nie działa żaden skrypt emotek. true nie dowodzi, że emotka istnieje w tym skrypcie: nieznana nazwa po prostu niczego nie odtwarza.
Przykład
import { gestures, progress } from "@aicore-fivem/lib/client";
import { Locale } from "common";
// Pisze notatkę z emotką notatnika, dopóki trwa pasek.
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
Zatrzymuje emotkę, którą odtwarza lokalny gracz, w działającym skrypcie emotek. Używaj tego, gdy twój skrypt potrzebuje rąk gracza (skuwanie, powalenie, minigra).
Strona: Klient · Czeka: nie
CancelEmote(): booleanlocal stopped = exports['ai-core']:CancelEmote() -- albo aiLib.gestures.cancelEmote()Parametry
Brak.
Zwraca
boolean: true, gdy skrypt emotek został poproszony o zatrzymanie (także gdy nic nie było odtwarzane), false, gdy nie działa żaden skrypt emotek.
Przykład
Zobacz przykład PlayEmote.
GetEmoteProvider
Zwraca nazwę zasobu skryptu emotek, który odtwarza emotki po nazwie.
Strona: Klient · Czeka: nie
GetEmoteProvider(): string | nulllocal provider = exports['ai-core']:GetEmoteProvider() -- albo aiLib.gestures.emoteProvider()Parametry
Brak.
Zwraca
string: nazwa zasobu ("rpemotes"). null, gdy nie działa żaden z obsługiwanych skryptów emotek.
Przykład
import { gestures, player } from "@aicore-fivem/lib/client";
// Preferuj skrypt emotek serwera, w przeciwnym razie zwykła animacja.
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");
}Menu radialne
Dodawaj, usuwaj i odświeżaj elementy w menu radialnym, którego używa serwer, z warunkami, podmenu i obsługą naciśnięć.
Wygląd
Nałóż wygląd postaci na peda, odczytaj wygląd, który ped nosi, otwórz sklep z ubraniami, fryzjera lub menu strojów i ubierz gracza w strój pracy, niezależnie od używanego skryptu ubrań.