Реклама

ramirez

Разработчик аддонов
  • Публикации

    224
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    9

О ramirez

  • Звание
    Lua Guru

Профиль

  • Пол
    Мужской

Посетители профиля

3 779 просмотров профиля
  1. common.GetApiType( buffInfo.description ) - расскажет подробно, какая именно это userdata. Есть подозрение, что это ValuedText. И по этой причине глупый LogInfo не может придумать ничего лучше, чем сделать tostring и вывести результат.
  2. Злые все стали. Событие все-таки есть. Но поймать его нельзя, т.к. это событие врукопашную посылается одним стандартным аддоном другому стандартному аддону. События, посылаемые стандартными аддонами не ловятся пользовательскими аддонами. Разрабы довольно давно спецом отпилили это дело. С тех пор стало нельзя перехватывать запросы на инфотипы, например. Автоматически ответить тоже нельзя, единственный возможный ответ - нажать мышкой нужную кнопку в окне. Тогда аддон окна пошлет событие-ответ аддону-инициатору, который его поймает и сам произведет все нужные действия. Типа, удалит предмет. Еще раз повторю: вмешаться в этот обмен событиями из пользовательских аддонов нельзя.
  3. Виджеты можно копировать, но нельзя создавать из ничего, нужен файл ресурса.
  4. Чтобы открывать в игре, надо прописать в input.cfg в Personal строку, что-то вроде bind toggle_damage_done 'CTRL' + 'INSERT' Нажатие открывает окошко. В окошке - параметры всех приходящих со времени старта аддона ивентов EVENT_UNIT_DAMAGE_RECEIVED, выстроенные в дерево по категориям source, target, spellId, buffId, abilityId. Левый клик в строку разворачивает свиток, правый - открывает свиток в отдельном окне. Каждый свиток опять же выстроен деревом по тем же признакам, минус выбранный, и так до упора. Все цифры уронов даны в виде минимум, максимум, среднее арифметическое, сумма всего, количество ударов. Нулевые уроны не регистрируются, насколько помню. Аддон позволяет смотреть кто кого сколько раз и насколько сильно ударил конкретным спеллом, баффом или абилкой, в любых сочетаниях. Например, все применения файерболла вообще. Или все применения только спеллов по кабанчику от всех вокруг, или от конкретного игрока. Мобы различаются по objectId, игроки - по имени, про петов - не помню. Случайно народился такой странный аддон, давно уже. В ДПСометр не превратился, развитие не планируется. Да, в таком виде он не удобный, но может кому будет нужно, цифры сверять. DamageDone.pak
  5. if common.CompareWString( mission.GetShardName(), userMods.ToWString( "Нужный шард" ) ) ~= 0 then --- some code end if userMods.FromWString( mission.GetShardName() ) ~= "Нужный шард" then --- some code end
  6. Не будет никакой параллельности, не надо морочить себе голову. Пишите меньше и проще, и будет меньше проблем в дальнейшем.
  7. Собственно, сабж. Все текстурки (tga и bin) и ресурсы xdb, которые использовал в окошках InspectWidgets и InspectAPI. Elements.zip
  8. Все проще. В этом экшн-слоте есть виджет. Зовется Button. На клики посылает реакции slot_pressed и slot_pressed_rmb. Создать виджет слота из шаблона, подписаться на реакции его кнопки.
  9. В Аллодах не бывает интовых persistent id. Если обж пропал, а потом объявился снова - у него новый id.
  10. Даже если юнит после деспавна тут же отспавнится обратно, он отспавнится с новым id. Старый id по-любому протухает, и это надо обрабатывать.
  11. Посмотрел из любопытства. Скажу кое-что: - Не стоит включать в библиотеку внутренние обработчики событий и всякие private функции. Если они действительно private, лучше объявить их как локальные переменные. В этом случае к ним невозможно будет получить доступ за пределами библиотеки, а внутри они будут жить как upvalues. - Вообще, стоит больше пользоваться локальными переменными, они - безусловное и бесплатное добро в плане оптимизации и безопасности кода. Вплоть до того, что все функции в библиотеке объявить локально и работать с ними в таком виде, а уже в самом конце напихать в либу все, что public. В этом случае они не будут всякий раз доставаться через GETGLOBAL и GETTABLE (или чем там теперь пользуется LuaJIT), и их невозможно будет поймать и подменить снаружи, ни случайно, ни специально. - Возможно стоит подумать насчет динамической подписки на события типа EVENT_INSPECT_STARTED и EVENT_INSPECT_FINISHED, т.е. обрабатывать их только тогда, когда сам же и инициировал инспекцию. Это может избавить от проверок, по крайней мере от некоторых, и от множества ложных срабатываний. Про Inspect не знаю, но с DnD такой подход прекрасно работает.
  12. Показывает только баффы на самом себе. Кавычки не помогут, только навредят. Имя писать прям как есть, с учетом больших букв. Вообще, на аллодере всяких настраиваемых бафф-панелей - десятки, чего вы вцепились в несчастный старый аддон?
  13. Здравствуйте. Автор уже давно не занимается аддонами и не играет в Аллоды. Настолько давно, что понятия не имеет, о какой полоске речь. Про баффы сталка: аддон полностью открыт, *.pak - это обычный zip. Если поменять имена баффов в файлах KanonLight.txt и KanonPurity.txt на нужные, а в скрипте поменять проверку на класс, т.е. в строчке if avatar.GetClass() ~= "PALADIN" then "PALADIN" поменять на "STALKER", то получится то, что вам надо.
  14. Объект может существовать, но при этом не являться юнитом. Например, это девайс. Проверьте, откуда приходит этот айдишник.
  15. Я давно забил на Аллоды, и аддонами больше не занимаюсь. НЕМНОГО изменить не получится, там все заточено на ДВА баффа. Если двух баффов хватит - просто поменяйте названия баффов в Kanon***.txt. Если мало - исходники открыты, попросите кого-нибудь еще.