Клавиши
Keybind - клавиша, которую игрок может переназначить в настройках GTA и клавишу по умолчанию которой владелец сервера может изменить в админ-панели ai-core.
Каждая клавиша, которую слушает скрипт, это Keybind: игрок может изменить её в настройках GTA (Settings > Key Bindings > FiveM), владелец сервера может изменить её значение по умолчанию в админ-панели ai-core (вкладка Keybinds), и ничто не опрашивает клавиши каждый кадр.
new Keybind
Регистрирует переназначаемую клавишу. Клавиша по умолчанию берётся из админ-панели ai-core, если владелец задал её там, иначе из defaultKey. Lib регистрирует привязку клавиши, как только ai-core ответил (один обмен при старте); без ai-core она сразу использует defaultKey.
Сторона: Клиент · Ждёт: нет (регистрация завершается в фоне)
new Keybind(options: KeybindOptions)local key = aiLib.Keybind.new(options)Параметры
Prop
Type
KeybindOptions
Prop
Type
Тип подсказки: KeyHintWhen.
Члены
Prop
Type
Пример
import { createLocale, Keybind, NuiScreen } from "@aicore-fivem/lib/client";
const Locale = createLocale<typeof import("../../locales/en.json")>();
const screen = new NuiScreen("tablet");
const openKey = new Keybind({
name: "mytablet_open",
description: Locale("KEYBIND_OPEN_TABLET"),
defaultKey: "F5",
hint: "foot",
icon: "tablet-screen-button",
hintLabel: Locale("HINT_TABLET"),
onPressed: () => {
if (screen.isOpen) return;
// Сообщаем странице, какая клавиша снова её закрывает.
screen.open({ action: "open", data: { closeKey: openKey.currentKey } });
},
});
// Пока игрок в наручниках, клавиша ничего не делает.
export const setCuffed = (cuffed: boolean): void => openKey.disable(cuffed);Команда привязки содержит клавишу: +<name>_<key> (+mytablet_open_F5). Когда владелец меняет значение по умолчанию в панели, новая клавиша получает собственную привязку, которую получает каждый игрок, а старая перестаёт действовать. FiveM хранит старые привязки и собственное назначение каждого игрока для каждой команды, поэтому клавиша входит в имя. Другой ресурс, которому нужна клавиша этого Keybind, спрашивает клиентский экспорт ai-core GetKeybindKey(name).
Держите name стабильным: переименование создаёт новую клавишу, и каждый игрок теряет клавишу, которую назначил для старой. Никогда не создавайте две клавиши с одним именем, даже в разных ресурсах.
Экраны и управление
NuiScreen, hud, keyHints и controls - ваш собственный полноэкранный NUI, скрытие всех HUD, строки подсказок клавиш и отключённые элементы управления.
Слои через ai-core
medical, appearance, gestures, seatbelt, fuel, mdt, radial, world и inventory - клиентские вызовы, которые достигают того скрипта смерти, одежды, эмоций, ремня, топлива, MDT, радиального меню, погоды или инвентаря, который запущен на сервере.