Jump to content

Digest March

We talk about what was done and updated in the past month. We help keep abreast of events.

March

Servers monitoring and the Addons Editor

We present you two legends. All dreams come true.

Servers monitoring The Addons Editor

Game tooltips

Tooltips provide a way for 3rd party fansites and extensions to display detailed information on mouseover.

Read more

The Addons Updater

Let us to introduce the addons updating software and to share the details

Read more Download

Получение активного маунта юнита


Susanin

Recommended Posts

Как можно получить активного маунта юнита без открывания окна осмотра персонажа?

 

Категория Inspect позволяет нам проинспектировать юнита и используя функцию avatar.GetInspectInfo() получить:

1.Ранг умения подсматривать чужие предметы;

2.Маунт юнита.

 

Однако, тут есть различия. Если использовать следующий код:

 

avatar.StartInspect( unitId )

 

local inspectInfo = avatar.GetInspectInfo()

 

avatar.EndInspect()

 

то, окошко инспектирования игрока в интерфейсе не открывается, ранг пристального взгляда в inspectInfo есть (поле rank заполнено), а вот маунта нет (поле mountId не заполнено).

 

Получить маунта удалось только стартовав инспекцию и по событию EVENT_SECOND_TIMER получать inspectInfo и только после этого завершать инспектирование. То есть функция avatar.GetInspectInfo() возвращает mountId только спустя достаточное длительное время после начала инспектирования.

При этом в интерфейсе на некоторое время открывается окно осмотра персонажа, что совсем не желательно.

 

Пробовал использовать библиотеку LibGS от hal.dll, прописав там в методе GetFullInfo заполнение поля result.mountId = info.mountId. Однако маунт все равно nil.

 

Может кто подсказать решение?

 

 

 

Link to comment
Share on other sites

думаю это баг, надо передать разработчикам.

либо как-то связано с тем, садился ли осматриваемый персонаж на маунта или нет.

Link to comment
Share on other sites

Персонаж точно находится на маунте в момент осмотра

Link to comment
Share on other sites

попробуй по EVENT_INSPECT_MOUNT_CHANGED вызвать avatar.GetInspectInfo()

  • Upvote 1
Link to comment
Share on other sites

avatar.StartInspect( unitId )   local inspectInfo = avatar.GetInspectInfo()   avatar.EndInspect()

 

ЛоЛ. Ты это все в 1 функции зафигарил?

 

Может кто подсказать решение?

1. Научиться читать

2. EVENT_INSPECT_STARTED

3. Быть готовым к конфликту с другими инспектирующими аддонами

===

Susanin, logg

Разработчики аддонов

еще раз ЛОЛ

Edited by Nikon
Link to comment
Share on other sites

Пробовал использовать библиотеку LibGS от hal.dll, прописав там в методе GetFullInfo заполнение поля result.mountId = info.mountId. Однако маунт все равно nil.

Именно это заставило меня не писать про то, как работает инспект по эвентам, поскольку в либе это учитано. Если по EVENT_INSPECT_FINISHED нету mountId это баг.

Nikon

Пользователи

Лол

Link to comment
Share on other sites

ЛоЛ. Ты это все в 1 функции зафигарил?

1. Научиться читать

2. EVENT_INSPECT_STARTED

3. Быть готовым к конфликту с другими инспектирующими аддонами

===

Susanin, logg

Разработчики аддонов

еще раз ЛОЛ

 

1.Читать умею

2.Пробовал и не работает

3.Все аддоны кроме моего были отключены

4.Прежде чем обозвать кого-то дураком, попробуй это сделать сам

Link to comment
Share on other sites

Пробовал использовать библиотеку LibGS от hal.dll, прописав там в методе GetFullInfo заполнение поля result.mountId = info.mountId. Однако маунт все равно nil.

Именно это заставило меня не писать про то, как работает инспект по эвентам, поскольку в либе это учитано. Если по EVENT_INSPECT_FINISHED нету mountId это баг.

Nikon

Пользователи

Лол

 

 

Если напишите вкратце, как работает инспект по эвентам, буду признателен. Изучал его работу по LibGS, но мне не хватает, так сказать, сухой вытяжки основных принципов и моментов на русском языке для общего понимания :)

Link to comment
Share on other sites

Спасибо, Илья! По EVENT_INSPECT_MOUNT_CHANGED avatar.GetInspectInfo() выдает mountId

 

Делаю так:

 

Стартую инспекцию и по EVENT_INSPECT_MOUNT_CHANGED получаю inspectInfo с маунтом и заканчиваю инспекцию. Окно осмотра персонажа не появляется. На глаз клиент где-то на 0,1 секунды замирает. Можно как-то эту задержку свести к 0?

Link to comment
Share on other sites

Работает примерно так:

вызываешь avatar.StartInspect( unitId )

приходит эвент EVENT_INSPECT_STARTED

проверяешь твой ли это аддон запустил инспектирование и выполняешь какие-либо действия,

по завершению вызываешь avatar.EndInspect()

и приходит эвент EVENT_INSPECT_FINISHED

  • Upvote 1
Link to comment
Share on other sites

Да, примерно так всё и понимал. Для определения маунта, получается, такая связка не подходит. Ни при EVENT_INSPECT_STARTED, ни при последующем EVENT_INSPECT_FINISHED маунт не определен. Только по событию EVENT_INSPECT_MOUNT_CHANGE.

 

Еще раз, спасибо, за подсказку!

Link to comment
Share on other sites

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  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.

×
×
  • Create New...

Important Information

By using our site you agree to the Terms of Use