- 4,777
- 5,402
Данный модуль позволяет создавать, удалять и изменять горячие клавиши во время работы скрипта.
Функции:
Регистрирует горячую клавишу. Клавиши должны указываться как таблица, например {vkeys.VK_MENU, vkeys.VK_3}. Аргумент pressed отвечает за то как будет вызываться колбэк, true - при нажатии клавиш, false - при зажатии.
Удаление клавиш. С версии 1.1.0 добавлена "перегрузка" функции и в качестве аргумента принимается таблица клавиш (в этом случае будут удалены все точные совпадения и возвращено кол-во удаленных биндов) или ID сочетания (в этом случае вернется только результат удаления)
Проверка существования клавиш. По аналогии с удалением добавлена перегрузка, при указании клавиш - вернет первый найденый ID, при указании ID - клавиши.
Смена зарегистрированных клавиш.
Получаем текущие нажатые клавиши. Вторым значением возвращает true если последняя нажатая клавиша не модификация (Alt, Ctrl, Shift). Единственным аргументом принимает вариацию отображения текущих клавиш в таблице, true - вместо ID клавиш будут использованы имена.
Получить таблицу зарегистрированных клавиш.
Структура таблицы:
Событие onHotKey вызывается при каждом срабатывании клавиши. Для блокировки срабатывания колбека верните false. Пример:
Пример:
Установка: файл rkeys.lua поместить в папку moonloader/lib
Автор: DonHomka
Функции:
Регистрирует горячую клавишу. Клавиши должны указываться как таблица, например {vkeys.VK_MENU, vkeys.VK_3}. Аргумент pressed отвечает за то как будет вызываться колбэк, true - при нажатии клавиш, false - при зажатии.
Lua:
int id = registerHotKey(table keys, bool pressed, function callback)
Lua:
bool result, int count = unRegisterHotKey(table keys)
bool result = unRegisterHotKey(int id)
Lua:
bool result, int id = isHotKeyDefined(table keys)
bool result, table keys = isHotKeyDefined(int id)
Lua:
bool result = changeHotKey(int id, table keys)
Lua:
table keys, bool end = getCurrentHotKey(bool show_name_keys)
Lua:
table keys = getAllHotKey()
Lua:
tHotKey {
keys,
pressed,
callback
}
Lua:
function rkeys.onHotKey(id, keys)
if sampIsChatInputActive() or sampIsDialogActive() or isSampfuncsConsoleActive() then
return false
end
end
Пример:
Lua:
local rkeys = require 'rkeys'
function main()
keys[1] = rkeys.registerHotKey({vkeys.VK_MENU, vkeys.VK_3}, true, function ()
sampAddChatMessage("Test", -1)
rkeys.changeHotKey(keys[1], {vkeys.VK_MENU, vkeys.VK_2})
rkeys.registerHotKey({vkeys.VK_MENU, vkeys.VK_4, vkeys.VK_5}, true, function ()
sampAddChatMessage("Test2", -1)
rkeys.unRegisterHotKey({vkeys.VK_MENU, vkeys.VK_4, vkeys.VK_5})
end)
end)
while true do
wait(0)
if wasKeyPressed(vkeys.VK_F2) then
print(#rkeys.getAllHotKey())
end
end
end
Установка: файл rkeys.lua поместить в папку moonloader/lib
Автор: DonHomka
Вложения
Последнее редактирование: