Есть прицел искусственный. И когда наводим на точку, в некоторых места она подкрашивается красным/зеленым. Там где нельзя красным, а там где можно зеленым. Короче у меня обычный невидимый прицел канала channel. Ему все равно, что там. Когда жму, прицел закрывается. Нужно, чтобы в точках, где нельзя ниче ставить, не закрывался (ипа нельзя).
Можно ли каким то способом сделать так, чтобы он не закрывался?
И похоже прицел придется вызывать только Force hot key? Горячие клавиши это просто проблема, но иначе никак. Они не всегда активируются, ибо кнопка должна быть видима. Задержки надо делать.
Можно ли каким то способом сделать так, чтобы он не закрывался?
И похоже прицел придется вызывать только Force hot key? Горячие клавиши это просто проблема, но иначе никак. Они не всегда активируются, ибо кнопка должна быть видима. Задержки надо делать.
нашел только интересную функцию, где можно прятать курсор. Мб пошаманить с интерфейсом ссылка. тогда другие наработки посредством channel теряют смысла
---@param enable boolean
function BlzEnableCursor(enable) end -- (native)
Принятый ответ
Как сделать так, чтобы прицел не закрывался?
- отслеживаем клик по зданию/абилке (не каст!!) <= начало вызова прицела. Эти новые рефорджеские события
- создаем невидимый фрейм на весь экран. Он будет располагаться ниже, чем весь интерфейс. Но закроет игровую область. Это значит, что вы можете делать все (двигать прицел, перемещать камеру и пр). Но вы не сможете мышью кликнуть по цели, тк клик идет по фрейму. У вас останется открытый таргет. Одновременно с этим вы не сможете выделить юнитов, объекты на карте и прочее. Только кнопки интерфейса работают.
frame = BlzCreateFrameByType("BUTTON", "", BlzGetFrameByName("ConsoleUIBackdrop", 0), "", 0)
BlzFrameSetSize(frame, 1.088, 0.6)--размер, распространяем на весь экран
BlzFrameSetAbsPoint(frame, FRAMEPOINT_CENTER, 0.4, 0.3) --создаем в центре экрана
BlzFrameSetVisible(frame, false) --если нужно чтобы работал показываем, не нужно прячем. А мб и каждый раз пересоздавать. просто у меня при инициализации один раз создан на всю игру
- Движение курсора - отслеживаем событием движения. И чекаем координаты.
- отслеживаем клик. Есть события мыши - правая и левая. Правая отмена, левая нажатие. Еще можно отслеживать клик фрейма. Тут как бы мы можем чекать условие - подходит, не подходит.
- ну и отмены отслеживаем, чтобы убрать этот фрейм (если его не убрали).
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. MpW
Ред. MpW
ReplaceableTextures\CommandButtons\BTNCancel.blp
или framehandle к кнопке cancel?
Ред. MpW