Как такое можно провернуть облазил весь интернет, допустим юнит нажал на кнопку Q и повернулся туда куда расположен курсор.
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
27
3 года назад
Отредактирован MpW
2
на каком патче сидите?
плохо искали. я уже таких много находил в последнее время. на движение WASD не скажу. но можно найти примеры. поиск со словами WASD
пример
0
8
3 года назад
0
МрачныйВорон, я нашел пример на jass там настроено когда зажимаешь кнопки мне нужно когда отпускаешь не знаю как пишется это lua не знаю вообще пока jass учу.
Загруженные файлы
0
27
3 года назад
Отредактирован MpW
0


так у всех кнопок, фреймов и прочее есть приставка к переменной Down - нажимание, и UP - отпускание. Посмотри. Но я сам еще не пробовал. Только с Shift-ом. И то по причине не работы события с Shift.
0
8
3 года назад
Отредактирован N7 Molot
0
if
(IsButtonPresed(Когда тут пишу Down вылетает ошибка)(loc_pl,OSKEY_Q))thencall BJDebugMsg("Игрок " + I2S(GetConvertedPlayerId(loc_pl)) + " держит Q")
	endif
0
27
3 года назад
Отредактирован MpW
0
jasonrus96,
смотри. С мышью там все понятно, событие нажатия и отпускания кнопки мыши. С клавиатурой такого нету. Я еще и сам не вкурил окончательно. Но тут можно записать состояния. Когда вы держите кнопку, у вас постоянно всплывает один и тот же key. Если его отпустить, то у вас перестанет показывать.
Есть еще
BlzGetTriggerPlayerMetaKey() == 1 (жмут/держат) <= если держите кнопку, периодически у вас дебаг будет выводить о том, что кнопка зажата.
BlzGetTriggerPlayerMetaKey() == 0 (опускают) <= при опускании кнопки вам покажут ноль.
плюс нужно учитывать эти комбинации клавиш, числа будут разные. пока не знаю как работает это, но понял что несколько значении суммируются. Пример A = 1, B = 2. комбинация A+B=3. Хотя я сам не до конца понимаю работу. А что если у вас 1+3 или 2+2 - сумма одинаковая? так что не буду лезть вперед паровозом. ладно я на отдых
код с Shift
        --чекаем pressed 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)

тут еще помни, что события клавиш и мыши нужно регистрировать после инициализации, то есть после 0.00 сек. А то во время загрузки могут нажать и сфаталит игра
0
4
3 года назад
Отредактирован Padparadscha
0
МрачныйВорон, meta keys - shift, control, alt, META(win)
BlzGetTriggerPlayerMetaKey() - проверка, нажаты ли эти кнопки; если кнопка нажата, возвращает число нажатой мета клавиши (не знаю, правильно ли так называть на русском), shift = 1, control = 2, alt = 4, META = 8; если нажаты несколько кнопок, то складывается: shift+control = 3; shift + control + alt = 1+2+4 = 7.
0
8
3 года назад
0
Lua Lua Lua
0
27
3 года назад
0
jasonrus96, зачем учить Jass, если есть Lua?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.