AI Core
Справочник APILib: клиент

Клавиши

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)
Lua
local key = aiLib.Keybind.new(options)

Параметры

Prop

Type

KeybindOptions

Prop

Type

Тип подсказки: KeyHintWhen.

Члены

Prop

Type

Пример

resource/client/index.ts
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 стабильным: переименование создаёт новую клавишу, и каждый игрок теряет клавишу, которую назначил для старой. Никогда не создавайте две клавиши с одним именем, даже в разных ресурсах.

На этой странице