Неактуально Исходник Софт [Module] RKeys | v1.1.0

Статус
В этой теме нельзя размещать новые ответы.

AnWu

Известный
Автор темы
Всефорумный модератор
4,777
5,402
Данный модуль позволяет создавать, удалять и изменять горячие клавиши во время работы скрипта.

Функции:
Регистрирует горячую клавишу. Клавиши должны указываться как таблица, например {vkeys.VK_MENU, vkeys.VK_3}. Аргумент pressed отвечает за то как будет вызываться колбэк, true - при нажатии клавиш, false - при зажатии.
Lua:
int id = registerHotKey(table keys, bool pressed, function callback)
Удаление клавиш. С версии 1.1.0 добавлена "перегрузка" функции и в качестве аргумента принимается таблица клавиш (в этом случае будут удалены все точные совпадения и возвращено кол-во удаленных биндов) или ID сочетания (в этом случае вернется только результат удаления)
Lua:
bool result, int count = unRegisterHotKey(table keys)
bool result = unRegisterHotKey(int id)
Проверка существования клавиш. По аналогии с удалением добавлена перегрузка, при указании клавиш - вернет первый найденый ID, при указании ID - клавиши.
Lua:
bool result, int id = isHotKeyDefined(table keys)
bool result, table keys = isHotKeyDefined(int id)
Смена зарегистрированных клавиш.
Lua:
bool result = changeHotKey(int id, table keys)
Получаем текущие нажатые клавиши. Вторым значением возвращает true если последняя нажатая клавиша не модификация (Alt, Ctrl, Shift). Единственным аргументом принимает вариацию отображения текущих клавиш в таблице, true - вместо ID клавиш будут использованы имена.
Lua:
table keys, bool end = getCurrentHotKey(bool show_name_keys)
Получить таблицу зарегистрированных клавиш.
Lua:
table keys = getAllHotKey()
Структура таблицы:
Lua:
tHotKey {
    keys,
    pressed,
    callback
}
Событие onHotKey вызывается при каждом срабатывании клавиши. Для блокировки срабатывания колбека верните false. Пример:
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
 

Вложения

  • rkeys.lua
    6.9 KB · Просмотры: 117,376
Последнее редактирование:

AnWu

Известный
Автор темы
Всефорумный модератор
4,777
5,402
 
Статус
В этой теме нельзя размещать новые ответы.