Привязки и подсказки клавиш
Прочитать клавишу, с которой был зарегистрирован Keybind библиотеки, показать и скрыть подсказки клавиш в HUD, прочитать подсказки, которые показывают HUD, и открыть экран клавиш.
ai-core отслеживает каждую клавишу, которую скрипты регистрируют через Keybind из библиотеки (TypeScript) или aiLib.Keybind (Lua). Благодаря этому вкладка Keybinds в админ-панели может менять клавишу скрипта по умолчанию, HUD могут показывать список подсказок клавиш слева на экране, а экран клавиш может показать каждую клавишу с действием.
Подсказка клавиши - это короткая строка в HUD: клавиша и что она делает (E Open trunk). Привязки могут объявить её своей опцией hint. Скрипт также может показывать подсказки какое-то время через ShowKeyHint, например управление инструментом, пока он используется.
GetKeybindKey
Возвращает клавишу, с которой был зарегистрирован Keybind библиотеки: клавишу, которую владелец сервера задал во вкладке Keybinds админ-панели, иначе собственную клавишу скрипта по умолчанию. Игрок всё ещё мог изменить её в настройках клавиш GTA; чтобы узнать клавишу, которую он действительно нажимает, читайте Keybind.currentKey у своей привязки.
Сторона: клиент · Ожидание: нет
GetKeybindKey(name: string): string | nulllocal key = exports['ai-core']:GetKeybindKey(name) -- string или nilПараметры
Prop
Type
Возвращает
string: клавиша в верхнем регистре ("F5", "E") или "" для привязки без клавиши по умолчанию. null, пока ai-core не ответил по этой привязке (вскоре после старта её ресурса), и для имён, которые не зарегистрировал ни один запущенный ресурс.
Пример
import { Keybind, resourceExport } from "@aicore-fivem/lib/client";
import { Locale } from "common";
const core = resourceExport("ai-core");
const open = new Keybind({
name: "myscript_open",
description: Locale("KEY_OPEN"),
defaultKey: "F5",
onPressed: () => console.log("open"),
});
RegisterCommand(
"myscript_keys",
() => {
console.log(`registered with: ${core.GetKeybindKey("myscript_open") ?? "not yet"}`);
console.log(`the player presses: ${open.currentKey}`);
},
false,
);ShowKeyHint
Показывает подсказку клавиши вашего ресурса в списке подсказок HUD, пока вы её не скроете. Используйте для клавиш, которые важны лишь какое-то время: управление инструментом, мини-игра, режим камеры. Клавиши, которые ваши привязки предлагают всегда, относятся к опции hint у Keybind.
Сторона: клиент · Ожидание: нет
ShowKeyHint(id: string, hint: KeyHintRequest): voidexports['ai-core']:ShowKeyHint(id, hint) -- или aiLib.keyHints.show(id, hint)Параметры
Prop
Type
KeyHintRequest
См. также KeyHintRequest.
Prop
Type
Возвращает
Ничего. Подсказка без текстового label или с нестроковым id игнорируется. Подсказка, у которой клавиша ни во что не разрешается (ни keybind, ни key не дают клавиши), сохраняется, но не выводится в списке.
Пример
import { keyHints } from "@aicore-fivem/lib/client";
import { Locale } from "common";
export function startCamera(): void {
keyHints.show("camera_zoom", { label: Locale("HINT_ZOOM"), key: "SCROLL", icon: "magnifying-glass" });
keyHints.show("camera_exit", { label: Locale("HINT_EXIT"), keybind: "myscript_camera" });
}
export function stopCamera(): void {
keyHints.hide("camera_zoom");
keyHints.hide("camera_exit");
}Подсказки выводятся в том порядке, в котором скрипты их показали, после подсказок, объявленных привязками. Подсказки вашего ресурса удаляются, когда он останавливается.
HideKeyHint
Скрывает одну подсказку клавиши, которую показал ваш ресурс.
Сторона: клиент · Ожидание: нет
HideKeyHint(id: string): voidexports['ai-core']:HideKeyHint(id) -- или aiLib.keyHints.hide(id)Параметры
Prop
Type
Возвращает
Ничего.
Пример
См. пример ShowKeyHint.
GetKeyHints
Возвращает строки подсказок клавиш, которые HUD должны показывать прямо сейчас: подсказки, объявленные привязками для текущей ситуации игрока (пешком или в транспорте, как владелец сервера задал их в панели), плюс подсказки, которые показывают скрипты. HUD читает это один раз при старте, а затем следит за клиентским событием ai-core:client:keyHints, которое несёт тот же список после каждого изменения.
Сторона: клиент · Ожидание: нет
GetKeyHints(): KeyHintView[]local hints = exports['ai-core']:GetKeyHints() -- массив { id, key, label, icon? }Параметры
Нет.
Возвращает
KeyHintView[] в порядке отображения. Пустой массив, когда ни одна подсказка не подходит.
Prop
Type
Пример
import { resourceExport } from "@aicore-fivem/lib/client";
import { KEY_HINTS, type KeyHintView } from "@aicore-fivem/shared";
const core = resourceExport("ai-core");
// Список подсказок клавиш своего HUD.
function draw(hints: KeyHintView[]): void {
SendNUIMessage({ action: "keyHints", data: hints });
}
draw(core.GetKeyHints());
on(KEY_HINTS.changedEvent, draw);OpenKeyboard
Открывает экран клавиш ai-core: клавиатуру, на которой подсвечена каждая клавиша с действием, а под ней написано, что она делает. Клавиши показаны так, как игрок назначил их сейчас. Его открывает пункт Keys в радиальном меню; может любой скрипт. Пока он открыт, HUD скрыты.
Сторона: клиент · Ожидание: нет
OpenKeyboard(): voidexports['ai-core']:OpenKeyboard()Параметры
Нет.
Возвращает
Ничего. Вызов, когда экран уже открыт, ничего не делает. Игрок закрывает его на самом экране.
Пример
import { resourceExport } from "@aicore-fivem/lib/client";
const core = resourceExport("ai-core");
RegisterCommand("keys", () => core.OpenKeyboard(), false);HUD
Скрыть и показать все HUD, пока открыт ваш полноэкранный интерфейс, узнать, видны ли HUD, и открыть собственные настройки запущенного HUD.
Синхронизация погоды и времени
Приостановить синхронизацию погоды и времени сервера в игре одного игрока, пока ваш скрипт задаёт свои (интерьер, сцена), возобновить её и узнать, приостановлена ли она.