Гайд Продолжение. панорама - меню и кд абилок врагов

Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
Liberalist ты не в курсе где найти onhover? или это и есть OnMouseMove ? Посмотреть вложение 282623
я уже не помню как я делал но как минимум там есть виртуальный метод CUIPanel::BHasHoverStyle(179 индекс щас функа есть она возвращает все флаги(styleflags в панорама дебаггере которые показывает), там LSB(flags & 1) это ховер флаг) можешь каждый кадр чекать у своих панелей и делать чтото потом на основании этого(возможно hittest true нужен для этого хз я не помню)
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
был бы очень благодарен если есть способ как то ловить хук на нажатие на саму панель а не на кнопку, просто моя итемпанель существует в основном из панели класса CPanel2D (а не CButton, etc. )
всмысле? кнопка это и есть панель(cbutton наследуется от cpanel2d) и в onmousebuttondown как раз может передаватся и обычная cpanel2d и cdropdown и cbutton и cslider(еще раз напоминаю они все наследуются от панель2д)
 
Начинающий
Статус
Оффлайн
Регистрация
30 Мар 2020
Сообщения
324
Реакции[?]
24
Поинты[?]
12K
всмысле? кнопка это и есть панель(cbutton наследуется от cpanel2d) и в onmousebuttondown как раз может передаватся и обычная cpanel2d и cdropdown и cbutton и cslider(еще раз напоминаю они все наследуются от панель2д)
хрен знает, поставил БП на Onmousedown и жму на панель ( CPanel2D ) и ничего не происходит. Когда кликаю на кнопку ( class CButton : CPanel2D) то бп работает. Сам либералист об этом говорил:
1722890418818.png
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
хрен знает, поставил БП на Onmousedown и жму на панель ( CPanel2D ) и ничего не происходит. Когда кликаю на кнопку ( class CButton : CPanel2D) то бп работает. Сам либералист об этом говорил:
Посмотреть вложение 282793
я конеш не особо копался(в частности своих панелей не создавал а с дотовскими тестил) но
1) хиттест=тру обязателен(возможно он и так по дефолту тру(и следовательно его не надо ставить т.к. он и так уже по дефолту стоит) я не тестил, но я тестил что с фалсом точно не будет работать)
2) онмауздаун срабатывает на самом дочернем элементе(ну логично, если кнопка внутри панели то на кнопку клик будет а не на панель которая её содержит)
3) онмауздаун срабатывает на <Panel>(например на консоль если на заголовок кликнуть(Header айди панели), или у консоли тоже ResizeDragTarget) но ток не совсем понял при каких условиях(ну скорее всего когда внутри нет элементов которые бы воровали онмауздаун)(хотя вроде я так понимаю есть еще случаи когда родитель может воровать онмауздаун у дочерней панели - например скроллбары в консоли - <HorizontalScrollBar> хендлит онмауздаун а до дочерней панели не доходит)
хз кароче надо больше тестить и особенно со своими собственными панелями но мне лень
ну и еще пример того как бп на CPanel2D срабатывает - кнопки(они не кнопки а панели на самом деле) в главном меню акт1 акт2 акт3 которые акты краунфолла переключают
скинь код(протестить со своими панелями) для создания панелей и всё такое все индексы и тд мне лень искать
 
Начинающий
Статус
Оффлайн
Регистрация
30 Мар 2020
Сообщения
324
Реакции[?]
24
Поинты[?]
12K
я конеш не особо копался(в частности своих панелей не создавал а с дотовскими тестил) но
1) хиттест=тру обязателен(возможно он и так по дефолту тру(и следовательно его не надо ставить т.к. он и так уже по дефолту стоит) я не тестил, но я тестил что с фалсом точно не будет работать)
2) онмауздаун срабатывает на самом дочернем элементе(ну логично, если кнопка внутри панели то на кнопку клик будет а не на панель которая её содержит)
3) онмауздаун срабатывает на <Panel>(например на консоль если на заголовок кликнуть(Header айди панели), или у консоли тоже ResizeDragTarget) но ток не совсем понял при каких условиях(ну скорее всего когда внутри нет элементов которые бы воровали онмауздаун)(хотя вроде я так понимаю есть еще случаи когда родитель может воровать онмауздаун у дочерней панели - например скроллбары в консоли - <HorizontalScrollBar> хендлит онмауздаун а до дочерней панели не доходит)
хз кароче надо больше тестить и особенно со своими собственными панелями но мне лень
ну и еще пример того как бп на CPanel2D срабатывает - кнопки(они не кнопки а панели на самом деле) в главном меню акт1 акт2 акт3 которые акты краунфолла переключают
скинь код(протестить со своими панелями) для создания панелей и всё такое все индексы и тд мне лень искать
эх скинуть код не выйдет ибо послушал тебя и начал делать рефакторизацию XDD и фиксить. Мне чтобы сделать просчет кд способки типа AbilityCD = (Enemy->LastSeenTime - GetGameTime()) пришлось переписовать 70% своего файла с логикой ибо у меня очень плохо было ))
 
Сверху Снизу