В этой неверноятно маленькой статье я расскажу о очень важной функции которые нам дали близзард, по факту я её первое время считал бесполезной, ибо никак не мог найти её применения. Если что я о BlzFrameGetChildrenCount и её подруге BlzFrameGetChild
function BlzFrameGetChildrenCount (frame) return integer end --native
function BlzFrameGetChild (frame, index) return frame2 end --native
BlzFrameGetChildrenCount возвращает число детей у любого заданного фрейма, ну а BlzFrameGetChild , возвращает фрейма-ребёнка по индексу.
Если кто не знает, то ранее можно было только создавать детей, указывая для них родительский фрейм, ну и просто узнавать родителя через GetParant.
И вот, благодаря совместным мучениям, но pro100master нашел на 10 минут раньше чем я, было найдено решение одного ужасно неприятного бага, благодаря новой функции, а именно:
Если кто не знает, то ранее можно было только создавать детей, указывая для них родительский фрейм, ну и просто узнавать родителя через GetParant.
И вот, благодаря совместным мучениям, но pro100master нашел на 10 минут раньше чем я, было найдено решение одного ужасно неприятного бага, благодаря новой функции, а именно:
Некликабельность области 12 элементов в панели приказов, даже если сами кнопки скрыты перемещены, удалены. И существовал лишь дикий костыль, при котором пришлось задирать всю консоль в облака (вверх) или за экран, а потом писать второй костыль на опускание чата, ибо тогда он задирался или же улетал в небытие.
Если кто ещё не понял, я о этой области
Любой фрейм в этой области может существовать, но на него не буду действовать никакие события, типа клика, наведения и всех остальных, для тех кто ещё не понял о чем я:
Если что это видео вот с этой замечательной наработки
www.hiveworkshop.com/threads/lua-ui-move-able-frame.319958/#post..., которая была сделана ещё до патча, и до того как мы это нашли, хз знает ли Tasyen.
Конечно, к его наработке в его тестовой карте это не слишком применимо, так как он не убирает саму панель приказов, но максимально акуально реализовано вот тут
Удаление треклятой рамки, позволило отрисовать заново кнопки на панели приказов и получить события наведения, клика, да и прокрутки мыши..
Если из новичков при попытке создания своего интерфейса столкнётся с этой проблемой то вот ответ.
Проблеме было больше года, и вот самое изящное решение, в 1 строчку
Удаление треклятой рамки, позволило отрисовать заново кнопки на панели приказов и получить события наведения, клика, да и прокрутки мыши..
Если из новичков при попытке создания своего интерфейса столкнётся с этой проблемой то вот ответ.
Проблеме было больше года, и вот самое изящное решение, в 1 строчку
BlzFrameSetScale(BlzFrameGetChild(BlzGetFrameByName("ConsoleUI",0),5), 0.001)
Ред. MpW
отключаете родителя-ячейку <- ставите свой фрейм