Сколько ищу не могу понять как сделать анимированный фрейм за пределами основного экрана, например, такой, какой появляется при появлении нового героя вокруг его иконки, в классике ни единого упоминания о таком.

Для любых манипуляций за 08 06, нужно сменить родителя на ConsoleUIBackdrop
BlzFrameSetParent(frame, BlzGetFrameByName("ConsoleUIBackdrop", 0))
При это сам ConsoleUIBackdrop должен быть видим, не скрыт, а например убран за пределы или с нулевой прозрачностью
`
ОЖИДАНИЕ РЕКЛАМЫ...
13
Мне известен только костыльный метод... Делать на основе SIMPLEFRAME , а анимацию проигрывать таймером, заменяя текстуру
22
Nelloy, боже какой плохой совет! Это плитки в fdf пишеш размер и он сам будет поочередно менять чем твои таймеры

И к тому же это не картинка а модель который там и проигривает внутри текстуры
11
pro100master:
Nelloy, боже какой плохой совет! Это плитки в fdf пишеш размер и он сам будет поочередно менять чем твои таймеры

И к тому же это не картинка а модель который там и проигривает внутри текстуры
И так понятно, что в fdf прописывать надо, найти хотя бы стандартный, который я б наследовать мог.
По поиску даже не ясно, что искать SPRITE, MODEL или HILIGHT. Причем это что-то особое потому, что если взять например эту наработку-SPRITE, ее нельзя за границы пихнуть.
15
Для анимации используется спрайт, хороший пример тут
За пределами холста скорее всего адекватно не выйдет. Система координат ряда стандартных фреймов (которые простираются за пределы предоставленного нам холста) отличается от той, с которой нам позволено работать.
17
На map init можно частично трогать то, что в игре недоступно
Так что можно попытаться построить лестницу влево или вправо, крепя фреймы один к одному
Либо пошаманить с console_ui, раз её можно двигать вниз, значит можно и сторонам
30
N1ghtSiren, то что недоступно ты никак не потрогаешь и движок не даст вылезти за пределы 0.8-0.6 а будет просто сплющивать фрэймы у границ. Даже если их прикрепить к геройским иконкам.
13
Koladik, за пределами холста 0.8х0.6 могут быть только SIMPLEFRAME, SIMPLEBUTTON, SIMPLESTATUSBAR и SIMPLECHECKBOX(нерабочий).
11
Nelloy:
Koladik, за пределами холста 0.8х0.6 могут быть только SIMPLEFRAME, SIMPLEBUTTON, SIMPLESTATUSBAR и SIMPLECHECKBOX(нерабочий).
Мне кажется, на картинке хороший пример того, что это не совсем так, или это каким-то образом анимированный простой фрейм
GetLocalPlayer:
Для анимации используется спрайт, хороший пример тут
В моем предыдущем комменте тот же самый пример.
GetLocalPlayer:
адекватно не выйдет
Да хоть бы просто понять как это вообще возможно, эта штука же в каком-то файле прописана.
33
Для любых манипуляций за 08 06, нужно сменить родителя на ConsoleUIBackdrop
BlzFrameSetParent(frame, BlzGetFrameByName("ConsoleUIBackdrop", 0))
При это сам ConsoleUIBackdrop должен быть видим, не скрыт, а например убран за пределы или с нулевой прозрачностью
Принятый ответ
22
А есть и простой способ
Берем ширину экрана который в данной функции есть. и отнимаем ширину 0.8 и делим на двое и получаете результат оступ от центра 0.8 и смешаете оффсет на указаннй кординат левую точку.
33
pro100master, неа всё равно фрейм либо сплющится о границы либо вообще сожмётся в 0-пиксель и виден не будет
22
например
local padding = (1.02 - 0.8) / 2
Где 1.02 это ширина экрана из функции нового нативки
создаете слево фрейм где 0, 0 и устанавливаем оффсет на -padding

Bergi_Bear, ну потому что родитель не дает ему выйди за пределы фрейма. Это можно отвязать как свободный фрейм
33
N1ghtSiren:
На map init можно частично трогать то, что в игре недоступно
Так что можно попытаться построить лестницу влево или вправо, крепя фреймы один к одному
Либо пошаманить с console_ui, раз её можно двигать вниз, значит можно и сторонам
Способ что я описал выше, принадлежит Tasyen, но Сирен наш ещё 11 месяцев назад догадался до него, я тоже сам допёр где-то полгода, но потом забыл и пришлось прибегать к методу Tasyen
Чтобы оставить комментарий, пожалуйста, войдите на сайт.