user02 Posted January 21, 2015 Share Posted January 21, 2015 Добрый день. Подскажите кто знает про создание и использование меток в игре. На форму нашел вот эту тему. Там есть пример: Пример: Code: local wtControl3D = stateMainForm:GetChildChecked( "MainAddonMainForm", false ):GetChildChecked( "MainScreenControl3D", false ) OurWidget = mainForm:CreateWidgetByDesc(2DWidget:GetWidgetDesc()) local size = {} size.sizeX = 1 size.sizeY = 1 wtControl3D:AddWidget3D( OurWidget , size, object.GetPos(avatar.GetId()), false, false, 75.0, WIDGET_3D_BIND_POINT_HIGH, 1, 1 ) object.AttachWidget3D( v, wtControl3D, OurWidget , 3 ) OurWidget :Show(true) Где 2DWidget - это некий 2Д виджет (панель/кнопка/еще че). Кстати кнопки как-то "не так" аттачатся, т.е. приаттачить кнопку на которую можно будет нажать теперь вроде как нельзя. Хотелось бы научиться и понять как можно и правильно: 1. Вешать на юниты (мобов играков) свои виджеты. например информацио баффах с возможнгостью обнавления информации о времени, стаках и т.п. 2. Для отслеживания изменения времени и стаков баффа нужно осуществлять с использованием события EVENT_SECOND_TIMER? Quote Link to comment Share on other sites More sharing options...
Ollaf Posted January 21, 2015 Share Posted January 21, 2015 (edited) Добрый день. Подскажите кто знает про создание и использование меток в игре. На форму нашел вот эту тему. Там есть пример: Пример: Code: local wtControl3D = stateMainForm:GetChildChecked( "MainAddonMainForm", false ):GetChildChecked( "MainScreenControl3D", false ) OurWidget = mainForm:CreateWidgetByDesc(2DWidget:GetWidgetDesc()) local size = {} size.sizeX = 1 size.sizeY = 1 wtControl3D:AddWidget3D( OurWidget , size, object.GetPos(avatar.GetId()), false, false, 75.0, WIDGET_3D_BIND_POINT_HIGH, 1, 1 ) object.AttachWidget3D( v, wtControl3D, OurWidget , 3 ) OurWidget :Show(true) Где 2DWidget - это некий 2Д виджет (панель/кнопка/еще че). Кстати кнопки как-то "не так" аттачатся, т.е. приаттачить кнопку на которую можно будет нажать теперь вроде как нельзя. Хотелось бы научиться и понять как можно и правильно: 1. Вешать на юниты (мобов играков) свои виджеты. например информацио баффах с возможнгостью обнавления информации о времени, стаках и т.п. 2. Для отслеживания изменения времени и стаков баффа нужно осуществлять с использованием события EVENT_SECOND_TIMER? С первым вопросом пока ничем не могу помочь, а со вторым - могу. Пользуйся событиями: EVENT_OBJECT_BUFF_ADDED и EVENT_OBJECT_BUFFS_CHANGED Edited January 21, 2015 by Ollaf Quote Link to comment Share on other sites More sharing options...
logg Posted January 21, 2015 Share Posted January 21, 2015 object.AttachWidget3D( v, wtControl3D, OurWidget , 3 ) v это id юнита и размер сделай не 1на1 пиксель это size.sizeX = 1 size.sizeY = 1 SECOND_TIMER тоже используется для проверки бафов, хотя он иногда может врать до секунды Quote Link to comment Share on other sites More sharing options...
user02 Posted January 21, 2015 Author Share Posted January 21, 2015 спасибо, буду пробовать... Quote Link to comment Share on other sites More sharing options...
user02 Posted January 23, 2015 Author Share Posted January 23, 2015 Все что тут описано работает. Единствнное не понял как правильно отслеживать изменение стаков бафов и времени. На данныый момент вижу только 2 способа через событие EVENT_SECOND_TIMER и через событие EVENT_EFFECT_FINISHED. Кто что может посоветовать? Quote Link to comment Share on other sites More sharing options...
Ollaf Posted January 23, 2015 Share Posted January 23, 2015 Для корректировки времени - EVENT_SECOND_TIMER Для набора бафов - EVENT_OBJECT_BUFFS_CHANGED Для стаков - EVENT_OBJECT_BUFFS_ELEMENT_CHANGED Возможно пригодится EVENT_OBJECT_BUFF_ADDED - только для отслеживания новых бафов. Quote Link to comment Share on other sites More sharing options...
user02 Posted January 23, 2015 Author Share Posted January 23, 2015 спасибо Quote Link to comment Share on other sites More sharing options...
Recommended Posts