Добавлен Survivalist
Приветствую, начал изучать vjass, появился первый вопрос, как забиндить способность на клавиши 1, 2 и.т.д. видел на ютубе реализовать ума не хватает научился пока только с интерфейсом работать.
Принятый ответ
Survivalist,
можно по-разному реализовывать. как у него реализовано мне неведомокак забиндить способность на клавиши 1, 2,3 итд
- Можно отслеживать положение курсора, находится ли он внутри кнопки. И одновременно отслеживать нажатие кнопки клавиатуры 1,2,3,4,5 итд. И менять.
- Можно перетаскивать фрейм. Допустим, у вас есть панель способностей как на скрине, а есть еше большое окно со всеми способностями и описанием.
- 2.1. Можно фрейм тащить за курсором, у вас есть куча ячеек, и их нужно тоже проверять на присутствие курсора внутри. и когда курсор окажется в ячейке 1, отслеживаем клик, и меняете. Но реализация сложна из-за трудности определения положения мыши
- 2.2. Можно просто в большом окне изменить. Там кнопочка изменить. И когда жмете на фрейм-кнопку, вам открывают прицел, и вы выбираете.
что мы помним про клавиши
Если нужно зафокусить какую-нибудь клавишу, то можно применить два способа:
- указать в самом fdf-file (как на хайве учат)
- или попробовать отслеживать событиями нажатия на клавиши (пример специальные клавиши вроде Shift и похожие нельзя будет отслеживать). Но найдено решение
пример с Shift - нажатие и отпускание
do
local InitGlobalsOrigin = InitGlobals -- хукаем функцию InitGlobals
function InitGlobals()
InitGlobalsOrigin()
--чекаем отпускание Shift
--https://www.hiveworkshop.com/threads/oskey-player-key-event.319903/
local ShiftOn = 0
TimerStart(CreateTimer(),0,false, function()
print("Create Keys")
for index = 8,255 do
local trigger = CreateTrigger()
TriggerAddAction(trigger, function()
if index == 160 and ShiftOn ~= BlzGetTriggerPlayerMetaKey() then
if BlzGetTriggerPlayerMetaKey() == 1 then
ShiftOn = 1
print("Shift нажат")
elseif BlzGetTriggerPlayerMetaKey() == 0 then
ShiftOn = 0
print("Shift отпущен")
end
--if GetLocalPlayer() ~= nil then
-- ShiftOn = BlzGetTriggerPlayerMetaKey()
--end
end
--print("OsKey:",index, "meta",BlzGetTriggerPlayerMetaKey())
end)
local key = ConvertOsKeyType(index)
for metaKey = 0,15,1 do
BlzTriggerRegisterPlayerKeyEvent(trigger, Player(0), key, metaKey, true)
BlzTriggerRegisterPlayerKeyEvent(trigger, Player(0), key, metaKey, false)
end
end
print("Done")
print("Press Keys to show the index of that oskey and its metakey")
end)
end
end
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. MpW