zhem4ag
-
Постов
10 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Трекер ошибок
Магазин
Галерея
Сообщения, опубликованные zhem4ag
-
-
Добрый день.
Пара вопросов касательно данной темы:
Есть ли способ получить список экипировки другого персонажа, не инициировав событие осмотра персонажа?
Каким образом вытащить прибавку статов от ДО?
-
С уверенностью сказать не могу, но возможно можно получить описание предмета функцией:
Code:avatar.GetItemInfo( itemId )В таблице, которую она возвращает, есть поле:
Code:description: ValuedText or nil - описание с подставленными текущими значениями параметровМне кажется, что именно там должны быть такие подписи к предметам. Но сам я не проверял.
-
Да, это возможно.
Существует такая функция -
Code:avatar.GetItemBonus( itemId )Она как раз возращает несколько таблиц с информацией о бонусах предмета.
Code:-- библиотека:avatar
-- объявление:
function GetItemBonus( itemId )
-- параметры:
itemId: ObjectId (not nil) - идентификатор предмета
-- возвращаемые значения:
table or nil - таблица с информацией о предмете или nil (в случае ошибок)
поля:
innateStats: table - бонус к основным характеристикам персонажа, поля аналогичны таковым из avatar.GetInnateStats(), но поля base и effective содержат одинаковые значения
resistances: table - бонус к сопротивляемостям персонажа, поля аналогичны таковым из avatar.GetResistances(), но поля base и effective содержат одинаковые значения
misc: table - различные бонусы, поля:
armor: number (int) - результирующая броня
armorBonus: number (int) - бонус к базовому значению брони
minDamage: number (int)
maxDamage: number (int)
weaponSpeed: number (float)
spellPower: number (int) - например, для волшебных палочек
-- пример:
local bonus = avatar.GetItemBonus( itemId )
if bonus then
local armor = bonus.armor
end
-
Quote:Его нужно помещать в ту же папку, что и "развернутые" дополнения - data\Mods\Addons.
Я сам такие аддоны не устанавливал, поэтому гарантировать работу не могу.
Если не получится, то можно попробовать разархивировать. Написано, что *.pak файл - это просто ZIP-архив, внутри которого находится аддон в обычном виде. -
Скопировано из документации:
Quote:Упакованные пользовательские дополнения
Более удобным способом распространения пользовательских дополнений являются архивы. Архив представляет собой zip-архив и должен иметь расширение *.pak, zip-архив должен иметь стандартное (нормальное) сжатие. Его нужно помещать в ту же папку, что и "развернутые" дополнения - data\Mods\Addons. Например:
data\Mods\Addons\UserAddon01.pak
data\Mods\Addons\UserAddon02.pak
Путь до файлов внутри архива должен совпадать с путем до оригинальных файлов. Например, для дополнения UserAddon01, лежащего в каталоге Mods\Addons и содержащего файлы:
AddonDesc.(UIAddon).xdb
MainForm.(WidgetForm).xdb
ScriptUserAddon01.lua
версия в виде архива UserAddon01.pak должна содержать следующие файлы:
Mods\Addons\UserAddon01\AddonDesc.(UIAddon).xdb
Mods\Addons\UserAddon01\MainForm.(WidgetForm).xdb
Mods\Addons\UserAddon01\ScriptUserAddon01.lua
-
В процессе создания аддона появился вопрос - можно ли узнать имеющееся количество кристаллов у аккаунта?
Знаю, что можно узнать количество любой альтернативной валюты у текущего персонажа. А вот кристаллы общие для всех персонажей аккаунта. Уже довольно хорошо порылся, но так и не нашёл. Может у кого-то уже возникал данный вопрос?
-
Спасибо за совет. Попробую на досуге.
-
Не понимаю я чего-то. В теории всё должно работать. Дополнил функцию:
Code:function OnMailboxActivated()
LogInfo("mailStart...")
if mailBox.IsActive() then
mailIds = mailBox.RequestMailIds()
end
local mailCount = GetTableSize(mailIds)
LogInfo("mailCount = ", mailCount)
wtText:SetVal("value", common.FormatInt(mailCount, "%d"))
end
И на экране я вижу 0 и в mods.txt не вижу ошибок, только то что я хотел вывести:
Code:Info: addon Test: mailStart...
Info: addon Test: mailCount = 0
После всего этого, используя аддон AucEDSman, забираю все деньги из почты. Правда не всё сразу, а поочереди из каждого письма. Но он хоть как-то работает. А у меня-то говорит, что почта вообще пуста.
Есть идеи?
-
Недавно захотел написать свой аддон и для начала хотел поработать с почтой, но столкнулся со следующей проблемой.
Мне нужно было узнать число писем в почтовом ящике и для этого я написал следующее:
Code:Global("wtMainPanel", nil)
Global("wtText", nil)
Global("mailIds", {})
function RegEvents()
common.RegisterEventHandler(OnMailboxActivated, "EVENT_MAILBOX_ACTIVATED")
end
function RegWidgets()
wtMainPanel = mainForm:GetChildChecked("MainPanel", false)
wtText = wtMainPanel:GetChildChecked("Text", false)
end
function OnMailboxActivated()
mailIds = mailBox.RequestMailIds()
local mailCount = GetTableSize(mailIds)
wtText:SetVal("value", common.FormatInt(mailCount, "%d"))
end
function Init()
RegEvents()
RegWidgets()
end
Init()
В результате на экране я увидел 0, хотя в почте есть письма, правда они все были открыты.
Или функция RequestMailIds() возвращает только Id непрочитанных писем?
Если так, то как можно узнать список Id всех писем в почтовом ящике?
Рейтинк екиперофки
в Вопросы и ответы
Опубликовано
Тьфу, чего-то я раньше тупил. Понял, что определённая ДО шмотка определённого уровня имет свой рейтинг. Этот вопрос отпадает.
Но первый остаётся в силе. В данный момент при выборе в цель персонажа, вызывается функция осмотра персонажа. На это событие считается рейтинг экипировки и закрывается осмотр персонажа. Такая реализация блокирует ручной осмотр, что крайне не желательно. Если у вас будут идеи, буду рад услышать.