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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

Вопросы и ответы по офф. API


Гость truepassword

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

Добрый привет!

Начал ковырять этот api, но почему-то при чтении документации получаю больше вопросов, чем ответов.

Поэтому решил создать тему, для задания вопросов и получения ответов.

1) Как получить имя своего персонажа. Например, для написания отладочной информации самому себе в приват.

2) Как просто открыть сумку с лутом не собирая автоматом все трофеи для последующего изучения содержимого.

Во время написания вопросов нашёлся и один ответ:

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

Code:

local oldId = avatar.GetTarget()

avatar.TargetSelf()

Global("myId", avatar.GetTarget())

Global("myName", object.GetName(myId))

if oldId == nil then

avatar.UnselectTarget()

else

avatar.SelectTarget(oldId)

end

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

  • Ответов 50
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

оооо а азчем так сложно ???? *))) или мы не ищем простых путей ?

Как получить имя юнита ( и вчастности персонажа )

Code:

local PlayerName = object.GetName( avatar.GetId() )

local CurrentTargetName

if avatar.GetTarget() then

    CurrentTargetName = object.GetName( avatar.GetTarget() )

end

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

Вообще нужно создавать отдельную ветку "Вопросы по API" или что-то в этом духе

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

Совсем забыл о функции avatar.GetId() =)

А вот с мешочками так и не разобрался. И id трупа с мешочком получил, и id мешочка получил, а как его заставить открыться - хз. Я так понял открывать нужно с помощью object.Use( objectId, filter ), но не получается....

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

3) как получить список объектов, предметов, игроков и т.п. в неком радиусе аватара?

4) было бы очень хорошо поиметь аналог функции LogInfo, но для записи данных в любой файл

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

2truepassword

Хехе учимся копать мануалы *)))))

EVENT_UNITS_CHANGED

Событие посылается раз в кадр, если за этот кадр в зоне действия аватара появляется или исчезает юнит.

-- поля:

spawned: table of ObjectId - индексированная с 0 таблица идентификаторов появившихся юнитов

despawned: table of ObjectId - индексированная с 0 таблица идентификаторов исчезнувших юнитов

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

спасибо, годится.

не поверишь, последние лет 5 занимаюсь именно копанием в манах....

кто ж знал что EVENT_UNITS_CHANGED подписан как "Событие посылается раз в кадр, если за этот кадр в зоне действия аватара появляется или исчезает юнит." А я искал что-то "в радиусе", "рядом", "вокруг" и .т.п.

чувствую от нивала нормальных описаний не дождёмся. мб пора начать писать расширенный ман с большим кол-вом примеров =)

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

Человеческому учебнику БЫТЬ, как только я сам толком разберусь с API. С текстурами (и с их негуманным конвертером) уже, восновном, разобрался. Сейчас копаюсь в API...

Так же, собираемся сделать мануал наподобие http://www.php.net/manual/en/. Чтобы все могли комментировать, дополнять человеческие описания функций и примеры использования кода :)

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

СЛА(Славик, Владислав???), надо бы "организоваться" в этом вопросе... ибо у меня тоже есть "наработки" полезные всем модмейкерам которые известны только мне(на форуме и в релизах "аддов" я не увидел, использующих их, решений)...

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

какого типа должнв бытиь тгашки чтобы конвертироваться? у меня не конвертятся (failed) пробовал 16 бит и 24 бита

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

TGA 16b не берёт ВООБЩЕ. Баг :)))

TGA 32b и TGA 24b должен брать. Конвертер особенно заточен под TGA 32b.

ВАЖНО: Как написано в инструкции, конвертируемые TGA обязаны находиться где-то в одной из под-папок \data\Mods\. Если нет - то "failed"! Эпический маразм! Я как-нибудь напишу свой конвертер, удобный и интуитивно понятный.

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

Мм работаю с динамикой. с WidgetPanel все проходит на ура, но вот WidgetTextView падает на этапе WidgetTextView:GetWidgetDesc()

В апи написано что должно работать для всех виджетов. Это у меня руки кривые или оно и правдо не пашет?

--

Отбой. Кривые руки детектед.

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

1. Заметил что при обработке событый проходит несколько миллисекунд прежде чем события доходят до моего аддона. Например

EVENT_AVATAR_PRIMARY_TARGET_CHANGED основной ui обрабатывает влет а мне приходится ждать. Есть ли способы изменить очередность? и что делает RegisterLayoutManagedAddon( { type = ADDON_TYPE_HUD, side = SCREEN_SIDE_TOP } ) - может он и устанавливает приоритет?

2. Есть ли возможность динамического добавления вариантов для кнопки?

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

Всем привет!

Для выполнения контекстного действия есть avatar.RunContextAction, а как выполнить действие в определенном слоте панели действий?

Заранее спасибо.

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

Quote:
Есть ли способы изменить очередность

нет, нету. (можешь попробовать отключить оригинальный аддон :))
Вообще мне кажется что событие начинается везде одинаково, но из за разных задержек, пингов и прочих лагов игровых - обрабатывается по разному.
Quote:
что делает RegisterLayoutManagedAddon( { type = ADDON_TYPE_HUD, side = SCREEN_SIDE_TOP } )

Мне кажется это подключаются у них разные библиотеки, например так подключается "прятанье виджетов по esc". в котором задается очередность их прятанья, разные функции для управления, ну и всякие константы...
Quote:
2. Есть ли возможность динамического добавления вариантов для кнопки?

Вариантов чего? анимации? я не видел подобного. Вариантов названия? используй relatedtext
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

пофиксили вроде данные фичи

ЗЫ юзай AutoHotKey

...

Возможно ли запустить exe из lua?

Было бы здорово если бы AutoHotkey макросы запускались по игровому событию..

Добавлено: нельзя, защита от вирусов =))

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

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

Code:
function OnEventChatMessage  ( params )

local mes = common.GetAddonRelatedText( "message4" )

if params.sender  == common.GetAddonRelatedText( "message2" )

group.ChatWhisper( object.GetName(avatar.GetId()), mes )

end

end

message2 - текстовый файл с именем персонажа

message4 - текст, который я должен сам седбе сказать (просто проверяю таким образом, проходит ле условие или нет)

Сам евент проходит (проверял, отключая условие if ). Тоесть без условия, при любой месаге в чат, скрипт

Code:
group.ChatWhisper( object.GetName(avatar.GetId()), mes )
выполняется. Что я сделал не так? Ткните меня носом, если не трудно.
Ссылка на комментарий
Поделиться на другие сайты

Quote:
if params.sender == common.GetAddonRelatedText( "message2" )

это ты проверяешь на равенство два разных userdata? О.о
Code:
if common.CompareWString( params.sender, common.GetAddonRelatedText( "message2" ) ) == 0

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

Огромное спасибо, просто в языках я не силен (даже по русскому у меня 3), пишу практически наугад =)))

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

Странно, но с текстом

Code:
if common.CompareWString( params.sender, common.GetAddonRelatedText( "message2" ) ) == 0

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

Все, разобрался, сам дурак....

Я в проверке забыл добавить THEN =))))

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

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

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

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

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

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

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


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

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

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