Jump to content
Alloder.pro: about Allods with love
Search In
  • More options...
Find results that contain...
Find results in...

New program for writers

We turn from quantity to quality and tell you how we will supplement the Allods Team program with rewards in rubles.

More

The new Updater

Let us to introduce the new addon updater software and to share the details

Read more

Alloder 2.0

We have started the process of project evolve, and this relates not only, and not even primarily of the site's view

Read more

2D - 3D object.AttachWidget2D


icreator
 Share

Recommended Posts

по-моему уже давно это не работает вообще:

object.AddToProjected(id, 0)

к тому же в обновлении 2.0.09.10 [8.09.2011] запретили ставить 2Д метки на объекты, которые не отслеживаются в GetProjectedInfo

и вообще 3Д метки с ошибками ставятся на объекты. есть какие мысли по этому поводу?

Link to comment
Share on other sites

The object.AddToProjected function has always been only available to objects that are recognized by the Detectors. These include astral monsters (look at the add-on AMIT), quest/vendor NPCs, group/raid members, detected devices, so on..

This function has never included enemy/friendly players.

This is due to the projectedInfo being usable to check real ranges.

As for your 2d/3d widget problem, it would seem there is some invisible panel in the way. Perhaps some priority adjustments might fix this?

Link to comment
Share on other sites

object.AddToProjected(id, 0) - просто все объекты, которые могут быть детектированы и так уже добавлены в Projects. Вызов данной функции ничего не делает ((

кстати теперь на астральных мобах 2D не работает, хотя они есть на карте...

Link to comment
Share on other sites

Кстати, Айси, чтобы аддон не выдавал ошибки (описание которых я скидывал в откаченной нынче теме) нужно чтобы в функции AddWidget3D параметры autoResizeX, autoResizeY не были оба равны true. Т.е. или рассчет по высоте, или по ширине, или ни то ни другое. Если и то и другое - выдается непонятная ошибка.

Например в TargetsManager\Scripts\GUI2D-as3D.lua 28 строка, функция в которой вызывается AddWidget3D в котором оба параметра равны true.

Кстати что мне стало интересно - может ли параметр minSizeLimit быть больше чем maxSizeLimit? Логически напрашивается ответ "нет", но увеличение виджета при отдалении юнита иногда могло бы быть полезно.

Link to comment
Share on other sites

Из неудобств я заметил то, что если виджет приаттачить к какому-либо объекту, а потом использовать object.DetachWidget3D( objectId, widget ), после чего попытаться снова приаттачить виджет уже к ДРУГОМУ объекту - виджет будет вести себя точно так же как если бы он был приаттачен сперва к одному, а потом ко второму объекту без использования функции DetachWidget3D.

Кстати в таком случае виджет ведет себя странно, аттачась к объектам из списка в непонятном порядке...

И это ксати вызывает подозрение что функция DetachWidget3D попросту скрывает виджет.

Link to comment
Share on other sites

  • 2 weeks later...

Короче по поводу 3Д виджетов... Яхереюдорогаяредакция... Больше нет слов...

==

Провел собственные исследования:

Как я думаю правельная последовательность действий(вероятно дорогие криэйторы думают иначе, но они ж молчат):

Славабогу свой Control3DSafe создавать не нужно - есть любезно передоставленый

Находится по адресу : stateMainForm:GetChildUnchecked( "MainAddonMainForm", false ):GetChildChecked("MainScreenControl3D", false)

1. Добавляем в него свой 2Д виджет (AddWidget3D). С параметрами разбирается каждый по своему. За каким сделаны сразу 2 параметра autoResizeX, autoResizeY - опять же знают только дорогие и любимые

2. Хочим повесить метку над обьектом (AttachWidget3D), по вкусу регулируем высоту подвешивания.

3. Хочим убрать нафиг эту метку (DetachWidget3D или даже кардинально DetachAllWidgets3D). Хренас2 - нифига не меняется - как висел - так и продолжает висеть и радовать

4. Хочим повесить на другой обьект - аналогично п.2. Но тут возникает интересная фигня:

а) оба обьекта видны на экране - метка висит на 1-м. Хотя, если они передвигаются - может прыгать от 1 к другому (т.е. исчезает на одном и появляется на другом)

б) виден только 1 из обьектов - висит на нем

в) убегаем нафиг от 1-го обьекта как чтобы он пропал - метка ессно остается висеть на 2-м

Отсюда вывод: DetachWidget3D или ваще не работает или фраза " "Отвязывает" указанный контрол как Widget3D от объекта." криэйторами понимается как то по другому, не так как я, ущербный, думаю

Ах да, еще одна мелочь:

3Д виджеты аттачатся не всегда. Походу есть проверки не влазит ли он в какой нить другой 3Д обьект и вообще будет ли виден игроку. Так к многим девайсам оно не аттачится, к некоторым юнитам тоже (логики не понял)

Если виджет не приаттачился приходит замечательный евент EVENT_CANNOT_ATTACH_WIDGET_3D в котором приходит только ИД обьекта. Догадывася сам че там не приаттачилось и почему... "Попытайся, дорогОй, еще раз, а вдруг получится.."

При этом развешиванием 3Д меток занимается какой то из стандартных аддонов и при этом весьма успешно => приходит куча ивентов EVENT_CANNOT_ATTACH_WIDGET_3D, видимо кому то нужных.... песец...

===

ЗЫ. Ну да, можно ради каждого юнита добавлять 2Д-виджет в 3Д-контрол, аттачить(если не получилось - пробовать снова и снова) и, когда не нужна метка, удалять нафиг обратно (RemoveWidget3D). И так далее для каждого нового обьекта.

Вероятно эта последовательность действий и является правельной работой с 3Д-контролом по мнению любимых и родных

Link to comment
Share on other sites

  • 1 month later...

мой первый пост на этом форуме.

я только начал вплотную разбираться с Lua (в частности с АО addons api). захотел кое-что сделать по своему, понадобилось ставить метки. но перечитав темы форума по несколько раз только накопилась куча вопросов (потому как практики написания чего-либо на Луа ноль).

объясните пожалуйста на какие объекты можно сейчас ставить метки (в особенности widget3D), с юнитами все понятно, с устройствами вроде тоже, только не знаю точно какие объекты считаются устройствами.

а также как правильно добавить 2Д-виджет в 3Д-контрол и приатачить его?

Link to comment
Share on other sites

NamePlateBars2 смотрел, но с одного взгляда не поймешь всего, но я в том не переживаю (потому как Delphi, javascript+html+css+php освоил самостоятельно, с Lua тоже разберусь).

в своем вопросе выразился не точно,

- я хочу узнать к чему можно вообще приатачить метку/виджет. в частности к каким объектам относятся квестовые ресурсы (межевые камни, шишки на ЦС и т.п.) а также астральные камни? NamePlateBars2 вешает названия на все устройства что найдет, но перечисленое не относится к ним.

- сейчас возможно вешать метку видную через препятствия?

Link to comment
Share on other sites

1) Экспериментируй. Астральные камни - тоже "девайсы". Они приходят в EVENT_DEVICE_SPAWNED. Можно ли вешать на них 3Д виджеты - люди говорят что нет, я не пробовал. Еще, говорят, нелзя вешать на сундуки на арене смерти.

2) Нет, нельзя. Можно вешать только 2Д(2д "3д" потому что плоские) виджеты которые параллельны плоскости экрана. Если они будут очень большого размера - их "может быть видно" сквозь препятствия. Например если приаттачить к объекту охрененно большое "солнышко" с лучами то можно будет легко понять где находися объект.

Link to comment
Share on other sites

Пример:

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Д виджет (панель/кнопка/еще че).

Кстати кнопки как-то "не так" аттачатся, т.е. приаттачить кнопку на которую можно будет нажать теперь вроде как нельзя.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

By using our site you agree to the Terms of Use