Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

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


Susanin

Рекомендуемые сообщения

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

 

Категория 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.

 

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

 

 

 

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

 

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

 

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

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

2. EVENT_INSPECT_STARTED

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

===

Susanin, logg

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

еще раз ЛОЛ

Изменено пользователем Nikon
Ссылка на комментарий
Поделиться на другие сайты

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

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

Nikon

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

Лол

Ссылка на комментарий
Поделиться на другие сайты

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

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

2. EVENT_INSPECT_STARTED

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

===

Susanin, logg

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

еще раз ЛОЛ

 

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Nikon

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

Лол

 

 

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

Ссылка на комментарий
Поделиться на другие сайты

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

 

Делаю так:

 

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

 

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

Ссылка на комментарий
Поделиться на другие сайты

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования