Классы
Статы, идеальное соотношение · Умения и вехи, как получить · Души · Сравнение классов
Воин · Жрец · Некр · Лучник · Шаман · Мист · Бард · Инж · Демон
Игровой процесс
Как одеваться · Драконий облик · Наследие Богов · Фарм золота
Прохождения локаций
Мониторинг серверов и редактор аддонов
Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.
Подсказки из игры на вашем сайте
Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.
-
Постов
761 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Магазин
Галерея
Весь контент LEM
-
PhantasmalKillerCD Просмотр файла Самопальный таймер для отслеживания перезарядки вех "Трёхгранный клинок" и "Смертоносная тень". Команды: /pkcd - активирует/деактивирует перемещение /pkcd size 42 - размер /pkcd fade 1 - прозрачность (от 0 до 1) /pkcd reset - сбрасывает настройки После прочтения фикса возникает мысль про дебаф на цели с временем перезарядки, но ничего подобного. В скрытых бафах ничего похожего нет. Быть может он есть, просто не на клиенте. Ничего не напоминает? Для господства лучника и некроманта хотя бы был скрытый баф, от которого можно было отталкиваться. В текущем же исполнении нет даже этого. Спасибо хоть описание скорректировали. Добавил LEM Добавлено 24.09.2021 Категория Аддоны
- 1 ответ
-
- баффы и дебаффы
- классовое
-
(и ещё 1 )
C тегом:
-
Версия 1.2
377 раз скачали
Самопальный таймер для отслеживания перезарядки вех "Трёхгранный клинок" и "Смертоносная тень". Команды: /pkcd - активирует/деактивирует перемещение /pkcd size 42 - размер /pkcd fade 1 - прозрачность (от 0 до 1) /pkcd reset - сбрасывает настройки После прочтения фикса возникает мысль про дебаф на цели с временем перезарядки, но ничего подобного. В скрытых бафах ничего похожего нет. Быть может он есть, просто не на клиенте. Ничего не напоминает? Для господства лучника и некроманта хотя бы был скрытый баф, от которого можно было отталкиваться. В текущем же исполнении нет даже этого. Спасибо хоть описание скорректировали.Бесплатный- 1 отзыв
-
- 1
-
-
- баффы и дебаффы
- классовое
-
(и ещё 1 )
C тегом:
-
Его нельзя найти в stateMainForm, но есть и другой способ: local widgetTypes = { [ENUM_ADDON_TYPE_NONE] = 'ENUM_ADDON_TYPE_NONE', -- нет типа, тип не известен [ENUM_ADDON_TYPE_USER] = 'ENUM_ADDON_TYPE_USER', -- пользовательский аддон [ENUM_ADDON_TYPE_PROTECTED] = 'ENUM_ADDON_TYPE_PROTECTED', -- аддон разработчика (обычный интерфейсный аддон) } local wtContextActionbar = common.GetAddonMainForm('ContextActionbar') print(wtContextActionbar:GetName()) print(widgetTypes[wtContextActionbar:GetAddonType()]) print(wtContextActionbar:GetNamedChildren()) В логах такой вот печальный результат: [22:51:45]Info: addon Test(0): [22:51:45.492]: ContextActionbar [22:51:45]Info: addon Test(0): [22:51:45.493]: ENUM_ADDON_TYPE_PROTECTED [22:51:45]Error: addon Test(0): Widgets::LuaGetNamedChildren: can't get protected widget's children, details: int __cdecl Widgets::LuaGetNamedChildren(struct lua_State *) func: GetNamedChildren, method, line: -1, defined: C, line: -1, [C] func: Init, local, line: 866, defined: Lua, line: 846, [string "Mods/Addons/Test/Scripts/ScriptMai..."] func: ?, ?, line: 1134, defined: main, line: 0, [string "Mods/Addons/Test/Scripts/ScriptMai..."] [22:51:45]Info: addon Test(0): [22:51:45.494]: {} Главную форму ContextActionbar "запротектили". Всё.
-
-
Не смотрел событие, инсижки можно применять, но статы не изменяются. Из-за этого аддон уходит в бесконечную прокрутку до срабатывания защиты.
-
Правка для вещей 3 тира. Изначально я надеялся, что подойдет itemLib.CanUseOnItem(sourceId, targerId) или itemLib.GetBlockingPredicateCause(itemId), но увы. А еще нет готовой функции для получения тира, поэтому пришлось сделать свою. local function getItemTier(itemId) local category = itemLib.GetCategory(itemId) local categoryInfo = category and itemLib.GetCategoryInfo(category) local tier = categoryInfo and categoryInfo.sysName and string.match(categoryInfo.sysName, 'Tier(%d+)') -- sysName = 'Tier03' return tier and tonumber(tier) or -1 end Также случайно обнаружил, что третий тир не максимальный. P.S. Кстати, в бою GetBlockingPredicateCause выдаст {isInNotPredicate = true, sysCause = "ENUM_ActionFailCause_NotInCombat"}. Можешь потом как-нибудь задействовать ее, чтобы не проверять состояние боя самому. StatManager.zip
-
if string.find(name, 'Помощник:') then -- end Почему бы не детектить помощников таким образом? Не придется все названия вписывать.
-
Могу предложить два варианта: Первый вариант для всех юнитов do -- советую положить себе куда-то эти две полезные функции function table.normalize(t) if t[0] ~= nil then table.insert(t, 0, nil) end return t end --[[ function table.denormalize(t) if t[0] == nil and t[1] ~= nil then t[0] = table.remove(t, 1) end return t end --]] end local units = {} common.RegisterEventHandler(function(p) if not units[p.unitId] then -- необязательная проверка для параноиков units[p.unitId] = { name = object.GetName(p.unitId) } -- chat(units[p.unitId].name, p.unitId, 'spawned') end end, 'EVENT_UNIT_SPAWNED') common.RegisterEventHandler(function(p) if units[p.unitId] then -- chat(units[p.unitId].name, p.unitId, 'despawned') units[p.unitId] = nil end end, 'EVENT_UNIT_DESPAWNED') local function InitAvatar(avatarId) for _, unitId in ipairs(table.normalize(avatar.GetUnitList())) do units[unitId] = { name = object.GetName(unitId) } end end local function Init() if avatar.IsExist() then InitAvatar(avatar.GetId()) else local function onAvatarCreated(p) common.UnRegisterEventHandler(onAvatarCreated, 'EVENT_AVATAR_CREATED') InitAvatar(p.id) end common.RegisterEventHandler(onAvatarCreated, 'EVENT_AVATAR_CREATED') end end Init() Второй вариант с фильтрацией по имени do -- советую положить себе куда-то эти две полезные функции function table.normalize(t) if t[0] ~= nil then table.insert(t, 0, nil) end return t end --[[ function table.denormalize(t) if t[0] == nil and t[1] ~= nil then t[0] = table.remove(t, 1) end return t end --]] end local units = {} local names = { ['Клыкастый кабан'] = true, } local function filter(name) -- можно воспользоваться common.CompareWString(text1, text2) return names[userMods.FromWString(name)] end common.RegisterEventHandler(function(p) if not units[p.unitId] then -- необязательная проверка для параноиков local name = object.GetName(p.unitId) if filter(name) then units[p.unitId] = { name = name } -- chat(units[p.unitId].name, p.unitId, 'spawned') end end end, 'EVENT_UNIT_SPAWNED') common.RegisterEventHandler(function(p) if units[p.unitId] then -- chat(units[p.unitId].name, p.unitId, 'despawned') units[p.unitId] = nil end end, 'EVENT_UNIT_DESPAWNED') local function InitAvatar(avatarId) for _, unitId in ipairs(table.normalize(avatar.GetUnitList())) do local name = object.GetName(unitId) if filter(name) then units[unitId] = { name = name } end end end local function Init() if avatar.IsExist() then InitAvatar(avatar.GetId()) else local function onAvatarCreated(p) common.UnRegisterEventHandler(onAvatarCreated, 'EVENT_AVATAR_CREATED') InitAvatar(p.id) end common.RegisterEventHandler(onAvatarCreated, 'EVENT_AVATAR_CREATED') end end Init()
-
Пока не планируется.
-
Исправлено (Script.lua 145 строка доп. проверка виджета) StatManager.zip
-
UniStatBonusChecker Просмотр файла Показывает, когда господство не дает бонус. Команды: /usbc dnd - активирует/деактивирует перемещение /usbc reset - сбрасывает позицию Некромантам советую взглянуть на аддон GospodstvoNekromanta. Добавил LEM Добавлено 07.11.2020 Категория Аддоны
-
AlRihatChestsDetector Просмотр файла Помощник в поиске сундуков Ал-Риата, а также: Сундук (Иса) Экю, Пыльца фей (Айрин) Старинный сундук (Тающий остров) Сокровище, Большое сокровище (Суслангер) Сундук, Сокрытый сундук (Джигран) Сундук (Кадаган) Сундук (Кватор) Перемещать полоски можно с зажатым шифтом. /arcd reset - сбрасывает позицию Отдельная благодарность: ЛилиГраймз - идеи, тестирование ЛюблюДиму - идеи, автор меток Добавил LEM Добавлено 07.11.2020 Категория Аддоны
-
TrinketCooldown Просмотр файла Показывает время восстановления бонусов от амулета и аугментаций брони. Команды: /tc dnd - активирует/деактивирует перемещение /tc reset - сбрасывает позицию Если вам требуется оповещение о срабатывании бонусов амулета, то взгляните на NotifyTrink2. Добавил LEM Добавлено 07.11.2020 Категория Аддоны
-
TooltipExpirationTime Просмотр файла Показывает дату и время сгорания предметов в их описании. Добавил LEM Добавлено 07.11.2020 Категория Аддоны
-
-
-
Версия 2.8
58 651 раз скачали
Помощник в поиске сундуков Ал-Риата, а также: Сундук (Иса) Экю, Пыльца фей (Айрин) Старинный сундук (Тающий остров) Сокровище, Большое сокровище (Суслангер) Сундук, Сокрытый сундук (Джигран) Сундук (Кадаган) Сундук (Кватор) Перемещать полоски можно с зажатым шифтом. /arcd reset - сбрасывает позицию Отдельная благодарность: ЛилиГраймз - идеи, тестирование ЛюблюДиму - идеи, автор метокБесплатный -
-
Есть три способа решить эту проблему: 1. Экранируем кавычки "\"Злая девка\" пошла ко дну! Меня Вонючий Жо прислал!" 2. Оборачиваем реплику в одинарные кавычки '"Злая девка" пошла ко дну! Меня Вонючий Жо прислал!' 3. Используем синтаксис многострочного текста [["Злая девка" пошла ко дну! Меня Вонючий Жо прислал!]]
-
-
Просто применение не всех умений можно отловить. Информация в файле очень старая, проще включить отображение всех кулдаунов. [19:29:33]Info: addon CooldownInfo(0): [19:29:33.410] buff_added [19:29:33]Info: addon CooldownInfo(0): [19:29:33.416] buff: name 'Драконье зелье поглощения', remaining 9.979, duration 10, stackCount 1, stackLimit 1, isStackable false, isNeedVisualizeDuration true [19:29:33]Info: addon CooldownInfo(0): [19:29:33.420] spell: name 'Драконье зелье поглощения', rank 1, predicted 300, texture true [19:29:33]Info: addon CooldownInfo(0): [19:29:33.425] object: name 'Лево', id 7519, sys 'ENGINEER', owner 'none' [19:47:41]Info: addon CooldownInfo(0): [19:47:41.219] buff_added [19:47:41]Info: addon CooldownInfo(0): [19:47:41.224] buff: name 'Кровь Арейсии', remaining 4.98, duration 5, stackCount 1, stackLimit 1, isStackable true, isNeedVisualizeDuration true [19:47:41]Info: addon CooldownInfo(0): [19:47:41.230] spell: name 'Выпить', rank 1, predicted 300, texture false [19:47:41]Info: addon CooldownInfo(0): [19:47:41.234] object: name 'Лево', id 7519, sys 'ENGINEER', owner 'none' [19:47:41]Info: addon CooldownInfo(0): [19:47:41.239] [19:47:41]Info: addon CooldownInfo(0): [19:47:41.244] healing_received [19:47:41]Info: addon CooldownInfo(0): [19:47:41.249] spell: name 'Выпить', rank 1, predicted 300, texture false [19:47:41]Info: addon CooldownInfo(0): [19:47:41.253] object: name 'Лево', id 7519, sys 'ENGINEER', owner 'none'
-
Перемещать список умений можно было всегда. В версии 3.3 появилась возможность менять размер. Файла нет и аддоны ничего не пишут туда скорее всего из-за того, что в файле \Personal\Global.cfg не выставлено значение user_mods_log_enable=1
-
Привет. Не могу написать это на английском, но у меня есть идея для этого аддона. Почему бы дополнительно не логировать параметры события? Я давно использую примерно такой код, когда надо посмотреть когда и с какими параметрами приходит событие: common.RegisterEventHandler(function(params) chat('EVENT_OBJECT_BUFFS_ELEMENT_CHANGED', params) end, 'EVENT_OBJECT_BUFFS_ELEMENT_CHANGED') В этом мне помогает неплохая функция advtostring и мой самодельный скрипт для отправки текста в чат. Если не хочется использовать мой скрипт, то я тут набросал код для чата: common.RegisterEventHandler(function(params) local time = common.GetLocalDateTime() local valuedText = common.CreateValuedText() common.SetTextValues(valuedText, { format = userMods.ToWString('<html color="0xffccc5b7" fontsize="14"><r name="time"/> [<r name="addon"/>]: <r name="event"/> <r name="params"/></html>'), time = { format = userMods.ToWString('<html><r name="h"/>:<r name="m"/>:<r name="s"/>.<r name="ms"/></html>'), h = common.FormatNumber(time.h, '2'), m = common.FormatNumber(time.min, '2'), s = common.FormatNumber(time.s, '2'), ms = common.FormatNumber(time.ms, '3') }, addon = userMods.ToWString('EventLogger'), event = userMods.ToWString('EVENT_OBJECT_BUFFS_ELEMENT_CHANGED'), params = userMods.ToWString(string.format('<html>%s</html>', string.gsub(advtostring(params, false), '%c', {['\t'] = ' ', ['\n'] = '<br/>'}))) }) ChatLog:PushValuedText(valuedText) end, 'EVENT_OBJECT_BUFFS_ELEMENT_CHANGED') Надеюсь, ты сможешь это перевести, либо поймешь идею по картинке и коду
- 1 ответ
-
- development
- tool
-
(и ещё 1 )
C тегом:
