310 файлов

  1. Бесплатно

    Касается только игроков оф.серверов.
    Аддон необходим для получения ключа, используемого в привязке платных аддонов к аккаунту.
    Скачиваем и ставим аддон. Заходим в игру, включаем его, копируем ключ. Вставляем ключ в поле "ID игрового аккаунта" в настройках сайта. Готово! Теперь можно скачивать аддоны, и они будут работать на всех персонажах на привязанном аккаунте. Подробности, вопросы и ответы
    Only for players from official server.
    Addon needed for receiving special key of your game account, which uses in binding paid addons to game account.
    Download and install addon.
    Log in to game, enable addon, copy key.
    Paste it in the field "Game account ID" in profile settings.
    Done! Now you can download paid addons and they will work for all characters from binded game account.
    Details, questions and answers

    12 180 скачиваний

       (12 отзывов)

    Обновлено

  2. Бесплатно

    Возможности
    Установка, обновление и удаление аддонов: в​ том числе и для платных аддонов (после авторизации через меню "Настройки"). Отслеживание обновлений аддонов и уведомление о них. Автоматическая проверка обновлений аддонов каждые 10 минут. Самостоятельно обновит себя в случае выхода новой версии. По умолчанию аддоны, требующие обновления, уже отмечены, вам достаточно только нажать кнопку "Обновить".
    При первом запуске может потребоваться задать соответствия с некоторыми аддонами, которые программа не сможет распознать самостоятельно.
    Требования
    Windows Vista и выше (WinXP не поддерживается). Microsoft .NET Framework 4.5 (если отсутствует - программа установит его самостоятельно).

    17 314 скачивания

       (11 отзывов)

    Обновлено

  3. Бесплатно

    (Для разработчиков аддонов)
    LibGS (LibGearScore) - библиотека инспектирования персонажей игроков.
    Рекомендуется использовать в аддонах, которые показывают гирскор, руны, и прочие характеристики экипировки персонажей игроков.
    Библиотека берет на себя всё общение с API игрового клиента (avatar.StartInspect, avatar.EndInspect, EVENT_INSPECT_STARTED, EVENT_INSPECT_FINISHED), скрывая от аддона особенности их работы, самостоятельно решая возможные конфликты между аддонами, и выдает в аддон результат инспектирования в удобном виде.
    Прошу разработчиков принять участие в тестировании
    Если кто-то увидит или наткнется на какой-либо баг, огромная просьба писать сюда.
    Если есть предложения по работе аддона, фичам и содержанию таблицы, то тоже пишите сюда.
    Библиотека позаимствовала многие идеи из аддона TPI и немного из LibreGS, так что их авторам look_at_you_ и vitaliy75 огромное спасибо за вклад.
    По умолчанию библиотека автоматически считает гирскор текущей цели и присылает в аддон через эвент или callback-функцию.
    Во избежании самопроизвольно открывающегося окна инспектирования рекомендуется пользоваться данной библиотекой (в особенности это касается аддона NewTarget3DPvP, с которым наблюдаются кофликты).
    Поддерживает функцию unit.GetGearScore, добавленную в хотфиксе 6.0.00.36.
     
    На данный момент отсутствует подсчет гирскора для версий Аллодов 1.1-4.x. Если кто может, пожалуйста, поделитесь формулой или исходником.
    Как пользоваться:
    Опускаю подробности о добавлении скрипта в AddonDesc.(UIAddon).xdb...
    Существует несколько вариантов использования библиотеки:
    Если ваш аддон только для инспектировния текущей цели аватара, то необходимо выполнить следующие действия: I. Инициализировать библиотеку любым из следующих способов:
    Вызвать функцию GS.Init:  if GS.Init then GS.Init() end Вызвать функцию GS.EnableTargetInspection: GS.EnableTargetInspection( true ) Платным аддонам рекомендуется это делать после прохождения проверки системы привязки к нику персонажа. II. Обеспечить прием данных любым из следующих способов:
    Подписаться на сообщение LIBGS_GEARSCORE_AVAILABLE common.RegisterEventHandler( ShowGearScore, "LIBGS_GEARSCORE_AVAILABLE" )  Установить функцию обратного вызова GS.Callback = ShowGearScore ShowGearScore - функция вашего аддона, которая будет отображать гирскор в нужное окно.
    Имя функции может быть любое.
    В этой функции необходимо проверять, что сообщение пришло для вашего юнита.
    ShowGearScore должна быть уже объявлена на момент попытки её использования.
    Например:
    function ShowGearScore( params )   if params.unitId == avatar.GetTarget() then if params.gearscore then     MyWidget:SetClassVal("style", params.gearscoreStyle)     MyWidget:SetVal("gs", tostring(params.gearscore))     MyWidget:Show(true) else      MyWidget:SetClassVal("style", "tip_white")     MyWidget:SetVal("gs", "N/A")     MyWidget:Show(true) end   end end Аддону следует позаботиться о том, чтобы скрывать интерфейс в случае переключения таргета на НПС или сброса таргета, т.к. LibGS не присылает в этих случаях никаких сообщений.
    function onTargetChaged(params)   local unitId = avatar.GetTarget()   if not unitId or not object.IsUnit( unitId ) or not unit.IsPlayer( unitId ) or unit.IsPet( unitId ) then     MyWidget:Show(false)   end end Если ваш аддон для инспектировния любых юнитов (без выделения юнита в таргет), то для получения гирскора вышеуказанным способом необходимо вызвать функцию GS.RequestInfo: GS.RequestInfo ( unitIdToInspect ) И в ShowGearScore, соответственно, сделать: 
    if params.unitId == unitIdToInspect then ... В данном случае инициализировать библиотеку не обязательно, но желательно, несмотря на то, что она может инициализировать себя сама.
    На данный момент существует проблема особенность: если пользователь открыл встренное в клиент окно инспектирования, то инспектирование любого юнита не будет произведено, пока окно не будет закрыто.
    Стоит подождать следующих версий, в которых эта проблема будет решена.
    Если ваш аддон не предназначен для инспектировния текущей цели аватара, то рекомендуется отключить функцию автоматического инспектирования: GS.EnableTargetInspection( false ) Описание функций:
     
    GS.Init ( EnableTargetAutoInspection, SkipInitialTargetInspection ) Инициализирует библиотеку.
    Параметры функции аналогичны параметрам функции GS.EnableTargetInspection.
     
    GS.EnableTargetInspection ( Enable, SkipInitial ) Включает/отключает автоматическое инспектирование при смене цели аватара.
    Параметры:
    1. Enable: boolean
    true/nil - Включить авто-испектирование
    false - Выключить авто-испектирование
     
    2. SkipInitial: boolean
    Имеет смысл только при Enable=true/nil.
    По умолчанию, при перезагрузке аддона через меню дополнений LibGS автоматически проинспектирует текущую цель аватара.
    SkipInitial позволяет пропустить инспектирование, например, если библиотека инциализируется не с начала работы аддона.
    true - Пропустить инспектирование
    false/nil - Инспектировать текущую цель
    Следует помнить, что при перезагрузке всех аддонов, другие аддоны могут запрашивать инспектирование цели при инициализации, что приведет к приходу соообщения LIBGS_GEARSCORE_AVAILABLE раньше, чем может ожидаться.
    Функция аддона, получающая результат инспектирования (ShowGearScore) должна учитывать это.
     
    GS.RequestInfo ( unitId )  
    Запрашивает инспектирование юнита
    Параметры:
    unitId: ObjectId
    Id юнита, которого надо происпектировать.
     
    LIBGS_GEARSCORE_AVAILABLE ( params ) Глобальное сообщение с результатами инспектирования, посылаемое из ведущей LibGS после завершения инспектирования.
    Следует помнить, что если аддон подписывается на сообщение LIBGS_GEARSCORE_AVAILABLE, то сообщение может приходить даже если аддон не запрашивал инспектирование какого-либо юнита.
    Также следует помнить, что при перезагрузке всех аддонов, другие аддоны могут запрашивать инспектирование цели при инициализации, что приведет к приходу дополнительных сообщений LIBGS_GEARSCORE_AVAILABLE.
    Функция аддона, получающая результат инспектирования (ShowGearScore) должна учитывать это.
     
    GS.Callback ( params ) Функция аддона, которая будет вызвана из локального экземпляра LibGS при получении сообщения LIBGS_GEARSCORE_AVAILABLE.
    Аддон устанавливает это поле при необходимости, если не желает получать результат инспектирования через сообщение LIBGS_GEARSCORE_AVAILABLE.
     
    В качестве параметра в обработчик LIBGS_GEARSCORE_AVAILABLE (и в GS.Callback, если задана) передается таблица со следующими полями:
    unitId                  - ObjectId - Id юнита для которого подсчитан гирскор rank                    - number - ранг умения аватара Пристальный взгляд (0..6) inspected - boolean - можно ли происпектировать юнит частично или полностью (ранг достаточно высок) (false, true) reliable                - boolean - полностью ли происпектирован юнит (ранг достаточно высок) (false, true) Поля gearscore* могут отсутствовать, если у аватара недостаточный ранг умения (inspected==false). gearscore               - number - гирскор юнита gearscoreLevel          - number - средний уровень экипировки юнита, кроме драконьего облика (1..66) gearscoreQuality        - number - "актуальность" экипировки юнита - среднее качество, скорректированное с учетом разницы уровня игрока и экипировки, кроме драконьего облика (1..8 соответствует значениям между ITEM_QUALITY_JUNK..ITEM_QUALITY_RELIC) gearscoreStyle          - string - рекомендуемый стиль для отображения значения гирскора ('Junk'..'Relic') Поля equipment* могут отсутствовать, если у аватара недостаточный ранг умения (inspected==false). equipmentLevel          - number - средний уровень экипировки юнита, кроме драконьего облика (1..66) equipmentQuality        - number - среднее качество экипировки юнита, кроме драконьего облика (1..8 соответствует значениям между ITEM_QUALITY_JUNK..ITEM_QUALITY_RELIC) equipmentStyle          - string - рекомендуемый стиль для отображения среднего качества экипировки ('Junk'..'Relic') Поля runes* могут отсутствовать, если у аватара недостаточный ранг умения (inspected==false), или находимся на Pay-To-Play сервере. runes                   - таблица, индексированная по [DRESS_SLOT_*RUNE*], элемент - таблица с полями:     runeScore           - number - бонус к урону или лечению, даруемый данной руной в данный момент, в зависимости от того, куда она вставлена (0..??     runeQuality         - number - ступень руны (0..13)     runeStyle           - string - рекомендуемый стиль для отображения ступени ('Junk', 'Common'..'Legendary') runesQuality            - number - средняя ступень всех рун (0..13) runesQualityOffensive   - number - средняя ступень всех рун в атакующих слотах (0..13) runesQualityDefensive   - number - средняя ступень всех рун в защитных слотах (0..13) runesScoreOffensive     - number - общий бонус всех рун в атакующих слотах (0..?? runesScoreDefensive     - number - общий бонус всех рун в защитных слотах (0..?? runesStyle              - string - рекомендуемый стиль для отображения runesQuality ('Junk', 'Common'..'Legendary') runesStyleOffensive     - string - рекомендуемый стиль для отображения runesQualityOffensive ('Junk', 'Common'..'Legendary') runesStyleDefensive     - string - рекомендуемый стиль для отображения runesQualityDefensive ('Junk', 'Common'..'Legendary') Некоторые поля fairy* могут отсутствовать в зависимости от версии игрового клиента. fairy                   - string - ступень покровителя для отображения ('-', 'I'..'V') fairyLevel              - number - уровень покровителя (1..65) fairyQuality            - number - ступень покровителя (0..5) fairyScore              - number - [AO 3-4] бонус характиристики, даруемый покровителем (0..???) fairyScoreStat          - number - [AO 3-4] тип характиристики (INNATE_STAT_*) fairyScorePower         - number - [AO 5-6] бонус могущества (0..???) fairyScoreDamage        - number - бонус к урону (0..250%) fairyScoreHeal          - number - бонус к лечению (0..250%) fairyStyle              - string - рекомендуемый стиль для отображения ступени покровителя ('Junk', 'Goods'..'Epic') Поля *Style можно напрямую передавать в функцию MyTextView:SetClassVal(). Пример аддона LibreGS, переделанного под использование LibGS. Можно также обратить внимание на onTargetChaged, скрывающий интерфейс аддона:
    -------------------------------------------------------------------------------- -- GLOBALS -------------------------------------------------------------------------------- local ouText=nil local vtHello=nil -------------------------------------------------------------------------------- -- EVENT HANDLERS -------------------------------------------------------------------------------- function onSize(params)  local pco=widgetsSystem:GetPosConverterParams()  local plc=mainForm:GetPlacementPlain()  plc.alignY=WIDGET_ALIGN_LOW  plc.highPosY=0  plc.posY=0  plc.sizeY=157  plc.alignX=WIDGET_ALIGN_LOW  plc.posX=380  plc.sizeX=400  mainForm:SetPlacementPlain(plc) end function onTargetChaged(params)  local tid=avatar.GetTarget()  if not tid or not unit.IsPlayer(tid) then   mainForm:Show(false)  end end function ShowGearScore(params)   if params.unitId == avatar.GetTarget() then     ouText:SetVal("ttt",userMods.ToWString(tostring(math.floor(params.gearscore+0.5))))     mainForm:Show(true)   end end -------------------------------------------------------------------------------- -- INITIALIZATION -------------------------------------------------------------------------------- function Init() if GS.Init then GS.Init() end  onSize(nil)  mainForm:SetPriority(7000)  mainForm:SetTransparentInput(true)  mainForm:Show(true)  ouText=mainForm:GetChildChecked("ouText",false)  vtHello=common.CreateValuedText()  vtHello:SetFormat(userMods.ToWString([[<html><log fontsize="20"><r name="ttt"/></log></html>]]))  ouText:SetValuedText(vtHello)  ouText:Show(true)  local plc=ouText:GetPlacementPlain()  plc.posX=0  plc.posY=0  ouText:SetPlacementPlain(plc)    ouText:SetBackgroundColor( { r = 0.1; g = 0.1; b = 0.05; a = 0.9 } )    common.RegisterEventHandler( onTargetChaged, "EVENT_AVATAR_TARGET_CHANGED")  common.RegisterEventHandler( ShowGearScore, "LIBGS_GEARSCORE_AVAILABLE")  common.RegisterEventHandler( onSize, "EVENT_POS_CONVERTER_CHANGED")   end -------------------------------------------------------------------------------- Init() --------------------------------------------------------------------------------

    13 608 скачиваний

       (1 отзыв)

    Обновлено

  4. Бесплатно

    Официальная версия LibDnD для аддонов. Рекомендуется разработчикам аддонов использовать данную версию LibDnD в своих аддонах.
    В ближайшем будущем планируется добавления новых плюшек, в т.ч. перенос некоторых плюшек из других аддонов.
    Если требуется какой-то особенный дополнительный функционал, или кто-то готов поделиться своим, то можно об этом попросить на странице разработки LibDnD.
     
    HOW-TO: LibDnD.lua - Библиотека Drag&Drop
     
     
    Простейший пример использования LibDnD
     
    Файл LibDnD.lua нужно включить в AddonDesc.(UIAddon).xdb, в секции <ScriptFileRefs>:
    <ScriptFileRefs> <Item href="LibDnD.lua" /> ... </ScriptFileRefs> DnD.Init() - Инициализирует виджет для Drag&Drop. Это нужно только один раз, во время инициализации аддона, или позже, когда угодно. Повторные вызовы для того же самого виджета на данный момент нежелательны.
    Пример:
    DnD.Init( wtMainPanel ) Всё, Drag&Drop УЖЕ работает )
     
     
    Функция DnD.Init()
     
    Синтаксис:
    DnD.Init( wtMovable, wtReacting, fUseCfg, fLockedToScreenArea, Padding, KbFlag, Cursor )
    Обязательные параметры:
    1) wtMovable - ссылка на Widget.
    Виджет, КОТОРЫЙ нужно перемещать.
    НЕобязательные параметры (могут быть nil, или их можно вообще не писать):
     
    2) wtReacting - ссылка на Widget (nil = wtMovable).
    Виджет, на который привязывается реакция, т.е. виджет, ЗА КОТОРЫЙ будет перетаскиваться wtMovable. Это может быть сам wtMovable, то есть сама перетаскиваемая панель, но НЕ обязательно (!), это может быть что угодно, например, ЗАГОЛОВОК ОКНА, "дочерний" по отношению к ОКНУ wtMovable. Если не указан - виджет wtMovable перемещается сам за себя.
    3) fUseCfg - true/false (nil = false).
    Сохранять ли позицию виджета в конфиг-файл User.cfg. Если да, то сохранит в таблице с именем "DnD:<путь к виджету wtMovable в иерархии>", в секции, названной по имени аддона. Рекомендуется, чтобы все родительские виджеты wtMovable имели осмысленные, не динамические, уникальные имена.
    4) fLockedToParentArea - true/false (nil = true).
    Если true, то передвигаемый виджет нельзя даже частично утащить за края родительского окна (чаще всего ими являются края экрана). Таким образом он всегда будет находиться целиком на экране (если не переопределено в параметре Padding, см. ниже). А если false, то его можно утащить полностью, точно так же, как можно утаскивать окна в ОС Microsuxx Windows.
    5) Padding - число или таблица из 4 чисел {Верхний,Правый,Нижний,Левый} (nil = {0,0,0,0}).
    Если fLockedToParentArea=true, то действует Padding. Если хотите, чтобы за край окна всё-таки можно было частично утащить wtMovable на какую-то глубину, то можете заполнить таблицу. Например, это сделано в аддонах "PhanTime" и "HonorInfo", где по краям панели имеется "тень" толщиной 8 пикселей. Там эта таблица заполнена отрицательными числами, вот так: {-8,-8,-8,-8}. В случае передачи числа в качестве параметра, оно будет использовано в качестве глубины по всем направлениям.
     
    6) KbFlag - флаги управляющих клавиш KBF_*.
    Если надо, чтобы wtMovable двигался только при нажатии клавиш Shift, Ctrl или Alt, передаем здесь соответствующие флаги KBF_*:
    nil - нажатие любой из перечисленных клавиш не имеет никакого эффекта.
    KBF_NONE - Перетаскивание только при не нажатых клавишах
    KBF_SHIFT - Перетаскивание только при нажатой "Shift"
    KBF_ALT - Перетаскивание только при нажатой "Alt"
    KBF_CTRL - Перетаскивание только при нажатой "Ctrl"
    KBF_ANY - Перетаскивание только при любой нажатой клавиши из перечисленных
    7) Cursor - строка/false (nil = "drag").
    Стиль курсора, который будет устанавливаться при перетаскивании.
    nil/true - используется курсор по умолчанию: "drag".
    false - курсор не меняется при перетаскивании.
     
     
    Примеры использования DnD.Init()
     
    Виджет Окно (wtWindow), которое можно таскать за виджет Заголовок-окна (wtTitle), являющийся дочерним виджетом Окна:
    DnD.Init( wtWindow, wtTitle ) Виджет таскается сам по себе, И его позиция сохраняется между игровыми сессиями (создаёт секцию по названию аддона в файле User.cfg):
    DnD.Init( wtPanel, wtPanel, true ) или:
    DnD.Init( wtPanel, nil, true ) Виджет не сохраняет позицию между игровыми сессиями, и его можно утащить почти полностью за край экрана:
    DnD.Init( wtPanel, nil, false, true ) Позицию в конфиг не сохраняет, но за то, "тень" по краям текстуры фона окна аддона, имеющая
    толщину 8 пикселей со всех сторон, будет красиво задвигаться за край экрана (так сделано в аддонах "PhanTime" и "HonorInfo"):
    DnD.Init( wtMainPanel, nil, nil, nil, {-8,-8,-8,-8} ) или:
    DnD.Init( wtMainPanel, nil, nil, nil, -8 ) Делаем сразу три разных виджета передвигаемыми в одном аддоне:
    DnD.Init( wtTrayButton ) DnD.Init( wtMainWindow ) DnD.Init( wtConfigWindow ) Делаем передвигаемую wtMainPanel и все её дочерние виджеты в пределах родителя с учетом рамки в 4 пикселя при нажатой клавише Ctrl, с сохранением всех позиций в User.cfg:
    DnD.Init( wtMainPanel, nil, true ) for _,wtChild in pairs( wtMainPanel:GetNamedChildren() ) do DnD.Init( wtChild, nil, true, nil, 4, KBF_CTRL ) end Функция DnD.Enable()
    Синтаксис:
    DnD.Enable( wtWidget, fEnable )
     
    1) wtWidget - ссылка на Widget.
    Это может быть wtReacting или wtMovable, не важно, т.к. оба варианта работают.
    2) fEnable - true/false.
    Если true, то виджет будет реагировать на Drag&Drop, а если false, то Drag&Drop виджета будет запрещён (то есть, виджет будет "пристёгнут", и будет игнорировать все попытки перетаскивания).
    Этой функцией пользоваться НЕ обязательно, т.к. все виджеты, зарегистрированные в системе функцией DnD.Init(), по умолчанию, АКТИВНЫ. Но если возникнет необходимость "пристегнуть" такой виджет, то функция DnD.Enable() существует именно для этого. Она меняет статус виждета, перманентно разрешающий или запрещающий его Drag&Drop. "Пристегнуть" виджет можно командой DnD.Enable( ВашВиждет, false ), и он будет игнорировать все попытки перетаскивания. Если позже вам потребуется снова разблокировать его (снова сделать перетаскиваемым), то сделайте это командой DnD.Enable( ВашВиждет, true ).
    Функция DnD.Enable() может потребоваться вам, например, если вы захотите сделать в своём аддоне полноценную поддержку событий аддона AddonManager.
    Подробнее об этом написано здесь: Поддержка событий AddonManager в других аддонах
     
    Функция DnD.IsDragging()
    Синтаксис:
    DnD.IsDragging()
    Если в вашем аддоне есть перетаскиваемые кнопки (такие есть, например, в аддонах "DarkDPSMeter" и "GuildGui1b"), то вам пригодится функция DnD.IsDragging(). Чтобы при перетаскивании такой кнопки, ИЗБЕЖАТЬ нажатие на неё, вставьте такую строку в начало кода реакции на нажатие кнопки:
    if DnD.IsDragging() then return end Функция DnD.Remove()
    Синтаксис:
    DnD.Remove( wtWidget )
     
    1) wtWidget - ссылка на Widget.
    Виджет, который нужно разрегистрировать в системе DnD, чтобы его можно было безопасно уничтожить с помощью DestroyWidget. Передавать надо именно тот виджет, который собираетесь уничтожать.
    На данный момент не проверяет, зарегистрированы ли в системе дочерние по отношению к wtWidget виджеты, поэтому, если вы их регистрировали, то необходимо вызывать DnD.Remove и для них.
    Пример:
    for _,wtChild in pairs( wtMainPanel:GetNamedChildren() ) do DnD.Remove( wtChild ) end DnD.Remove( wtMainPanel ) wtMainPanel:DestroyWidget() Бонус: функции GetConfig() и SetConfig()
    Примеры:
    Получить весь конфиг аддона в виде ТАБЛИЦЫ (если он есть в User.cfg), или nil (если его там нет):
    Config = GetConfig() Получить из конфига значение переменной Name (если она есть) или nil (если её там нет).
    Имя переменной может быть строкой или числом, а значение - чем угодно, хоть таблицей.
    MyOption = GetConfig( Name ) Сохранить в конфиг-файл переменную Name со значением Value.
    Те же условия для имени и значения, что описаны в предыдущем примере.
    SetConfig( Name, Value ) Если передать только ОДИН параметр, но ТАБЛИЦУ, то все её переменные будут аккуратно добавлены (merged) в конфиг аддона. Именно добавлены. То есть, тупой перезаписи одной таблицы поверх другой эта функция НЕ делает.
    SetConfig( { ["A"] =5, [100] ={1,10,100}, ["Yes"] =true } ) Этим двум функциям НЕ нужно указывать название секции, т.к. они всегда пользуются секцией, названной именем аддона.

    3 899 скачиваний

       (2 отзыва)

    Обновлено

  5. Бесплатно

    Описание:
    Аддон отключает бескорыстную помощь в чётных секторах и предупреждает об этом. Теперь можно фармить сложные острова не беспокоясь о том, что вместо материала упадет материя.

    10 скачиваний

       (0 отзывов)

    Обновлено

  6. Бесплатно

    Где бы это было видано, что храброго воина обращали в курочку? А ежели кто да увидит, так засмеют!
    Аддон автоматически снимает с персонажа бафф "Курочка". 
    Основано на DelBV

    19 скачиваний

       (0 отзывов)

    Опубликовано

  7. Бесплатно

    Аддон для удаления секций из файла настроек.
    TLDR. Если размер вашего файла Personal\user.cfg меньше 1.5Мб, то аддон вам не нужен.
    На текущий момент (версия 8.0.1), есть проблемы связанные с размером файла Personal\user.cfg
    При любом изменении настроек, биндов, положений окошек, смене маунта (в том числе и при автоматическом переключении между броней и маунтом), а так же при записи любой информации из аддонов, игра запускает таймер, и через одну минуту сбрасывает настройки на диск. Запись приводит к блокировке основного потомка игры, который выглядит как небольшой фриз. При стандартном размере файла (130к), фриз практически не заметен. При увеличении размера до 1.5-2Мб фриз составляет порядка 0,2-0,3 секунды, а при 8Мб файле фриз будет 2-3 секунды.
    Некоторые аддоны, например TargetHealth, пишут в настройки по ходу боя, так что фриз будет ежеминутным.
    На размер user.cfg влияют аддоны, т.к. это единственное место, где они могут хранить информацию между сеансами игры. При этом отключение аддона, после того как он что-то записал в файл, никак не влияет на размер файла.
    Есть два способа "почистить" user.cfg
    1. Удалить Personal\user.cfg и его копию Personal\user.cfg.bak. После этого вы получите клиент с полностью сброшенными настройками.
    2. Удалить неиспользуемые секции настроек посредством встроенного API.
    Т.к. API игры не предоставляет возможность получить весь список секций, используется внешний скрипт для чтения файла настроек.
    Получение списка пользовательских секций (внимание, пути к файлу скрипта и к файлу настроек могут не соответствовать тем, что используются в примере) :
    powershell -NoExit ~\Downloads\Print-AllodsConfig.ps1 'c:\GamesMailRu\Аллоды Онлайн\Personal\user.cfg' -UserMods $true Смотрите на зеленые строчки (имена секций и их рамеры), находите те, которые занимают много места и больше не нужны и вставляете эти имена в окошко аддона. Затем кликаете на ''Удалить секции". Через 1 минуту наблюдаете за изменившимся размером Personal\user.cfg
    После использования, аддон можно отключить.

    66 скачиваний

       (0 отзывов)

    Опубликовано

  8. Бесплатно

    Показывает рейтинг экипировки персонажа, а также руны и покров.
    Отличие от InspectEquipRating  - не спамит ошибку в лог (у кого-то это может вызвать и микрофриз) при выборе цели на БГ.
     
    Сделан на основе LibGS. Имеет открытые исходники.
     

    306 скачиваний

       (0 отзывов)

    Опубликовано

    • Можно покупать для старых версий игры 6.0.1
  9. Бесплатно

    Информирование аватара о получаемом типе урона в бою, чтобы можно было понять какое лучше все использовать защитное зелье или какую защитную характеристику поднимать: физическую , божественную, стихийную, природную зашиту.

    275 скачиваний

       (1 отзыв)

    Обновлено

  10. Бесплатно

    Еще одна инкарнация ДПС-метра.
    В рейдах мне частенько не хватало информации с AoUMeter-а.
    Решил добавить:
     - отслеживание урона и используемых способностей не только от участников рейда.
     - отслеживание списка бафов и длительности их применения.
     - отслеживание причин смертей. (аддон показывает все события с персонажем за 10 секунд до смерти)
     - возможность сохранять бой для последующего анализа.
     - возможность анализа группы боев.
    Внимание! Сохраненные бои кладутся в users.cfg, что может приводить к последующим фризам. Так что не злоупотребляйте.
     

    624 скачивания

       (2 отзыва)

    Обновлено

  11. Бесплатно

    Предыстория:
    Меня сильно раздражало, что в таргет постоянно лезли лишние цели в таргет.
    Описание:
    Аддон сбрасывает таргет, если в него попал чей-либо пет, тем самым не давая выделить его в таргет.
    Внимание! Аддон сбрасывает с таргета всё, что в игре считаются питомцами (дружественные\враждебные питомцы язычников\некромантов, фантомы мистиков, наёмников и т.д.).
    Файл настройки - Settings.lua

    734 скачивания

       (0 отзывов)

    Обновлено

  12. Бесплатно

    Управление встроенными аддонами игры для повышения фпс.
    Использование
    Левый клик на кнопку - открывает меню выбора/создания сета Правый клик на кнопку - переключение режима, выгружает-загружает обратно аддоны согласно настройкам Текущий выбранный сет отмечается в меню тремя звездочками - *** Особенности
    Кнопка "Оптимизировать настройки" меняет настройки игры следующим образом (неуказанные оставляет текущими): выкл    Сглаживание вкл      Низкая детализация поверхности выкл    Тени под персонажами выкл    Процедурные текстуры выкл    Атмосферные эффекты выкл    Пост-эффекты выкл    Эффект свечения выкл    Мягкие частицы вкл      Скрывать боевые сообщения в логе боя вкл      Всегда использовать интерфейс отряда
    *Интерфейс отряда в формате 6*6 даёт выигрыш, тк следит/отрисовывает за меньшим числом бафов. Три базовых набора аддонов на отключение. Галочкой помечены аддоны на выгрузку. Пресеты проверены на нормальную работу. Можно самому выбрать аддоны на выгрузку, после выбора нужных нужно сохранить его При запуске игры автоматом выставляется для управления последний использованный сет Поддерживет AOPanel С AddonReloader лучше не использовать (он временное откл аддонов в моём аддоне запоминает у себя как постоянное) Советы:
    1) Если у вас есть сторонний баф менеджер, отключайте стандартный (1 столбец)
    2) Если интерфейс рейда не нужен, то его тоже отключите (4й столбец)
    3) Если не нужна миникарта, её тоже можно отключить (3й столбец)
    4) Для желающих отключить голосование за исключение на БГ - "Голосование" в последнем столбце
    5) Для желающих отключить значок-часы "Снижении производительности" , это "Дополнения" в последнем столбце (но отключится всё окно управления скачанными дополнениями)
     

    409 скачиваний

       (1 отзыв)

    Обновлено

    • Можно покупать для старых версий игры 6.0.1
  13. Бесплатно

    Прерывает каст умения барда "Танцующий клинок", если активен "Аспект Поддержки" и аватар находится бою.

    289 скачиваний

       (0 отзывов)

    Опубликовано

  14. Бесплатно

    Аддон отображает порезку контроля (диминишинг) у выбранной цели.
    Сверху секунды до отката, снизу информация о порезке контроля данной группы. 
    1 - нет порезки, иконка не отображается
    1/2 - порезка на 50%
    1/4 - порезка на 75%
    0 - порезка на 100% полный иммунитет, иконка серая.
    Команда /dimdnd включает/выключает режим перетаскивания за полупрозрачную черную панельку
    Команда /dimreset сбрасывает положение панельки на стандартное.
     
    В файле config.lua можно настроить размер иконок (по умолчанию 40)
    Global("Size",40) -- размер иконок И виды отображаемого типа контроля ShowType
    При значение false иконка данного типа не отображается.
    Global("ShowType",{     ["Slow"]=true, -- Замедление     ["Stun"]=true, -- Оглушение, Отталкивание     ["Fear"]=true, -- Страх     ["Silence"]=true, -- Немота, Обезоруживание     ["Blind"]=true, -- Ослепление, Дезориентация     ["Disable"]=true, -- Длительное обездвиживание, Заморозка, Усыпление, Очарование, Гипноз, Астрал })

    832 скачивания

       (1 отзыв)

    Обновлено

  15. Бесплатно

    Аддон, предупреждающий про все купола на Киросе. Надпись появляется во время купола и пропадает когда можно выбегать из него.
    Теперь показывает все купола на Киросе.
    Специально для моих золотых рыбок.

    737 скачиваний

       (0 отзывов)

    Обновлено

  16. 25.00 руб

    Данный аддон позволяет отслеживать баффы на себе, дружественных и враждебных игроках, мобах.
    Позволяет гибко настроить отображение каждого баффа.

    34 покупки   103 скачивания

       (0 отзывов)

    Обновлено

  17. Бесплатно

    Аддон автоматически (для этого надо "пообщаться" с Рогом) записывает производство ресурсов в Рогах Изобилия на Личном аллоде по всем персонажам.
    Также аддон автоматически увеличивает время производства ресурсов в Рогах Изобилия в случае грабежа (тоже надо "пообщаться" с ограбленным Рогом)
     
    Известный баг:
    при первом запуске аддона, уже работающие Роги c одинаковым видом ресурсов и количеством дней добавляюися в список лишь один раз, остальные Роги добавятся только при новом запуске производства.

    718 скачиваний

       (2 отзыва)

    Обновлено

  18. Бесплатно

    Данный аддон показывает оставшееся время до вашего отправления на астральный остров, бг, катакомбы джунов и т.д. Позволяет не переключаться по вкладкам в стандартном интерфейсе сражений.

    845 скачиваний

       (2 отзыва)

    Обновлено

  19. Бесплатно

    Снимает баф "Безумие войны" при появлении на игроке (полезно для танков)

    611 скачивание

       (0 отзывов)

    Опубликовано

  20. Бесплатно

    AutoQuest 
    Данный аддон служит для упрощения прокачки персонажа за очки судьбы.
    Аддон принимает все квесты которые можно сдать за очки судьбы, исполняет их если хватает очков и сдаёт сам если нет выбора награды

    1 696 скачиваний

       (2 отзыва)

    Опубликовано

  21. Бесплатно

    Добавляет отсчет времени для визуализатора проков.

    722 скачивания

       (0 отзывов)

    Опубликовано

  22. Бесплатно

    Да не нужен вам этот аддон. Чистите баф или скачайте пророк и впишите туда.

    922 скачивания

       (0 отзывов)

    Обновлено

  23. Бесплатно

    Показывает критический урон и отхил (всем, кроме бафов). Очень долго это творение пылилось на полке. Я немного отреставрировал и решил им поделиться. Сейчас оно уже не так актуально, но пусть будет. В давние времена оно не попало сюда. Изначальное авторство мне не известно.

    861 скачивание

       (0 отзывов)

    Опубликовано

  24. Бесплатно

    Прерывает каст умения некроманта "Кровавый пир", если активен "Аспект Поддержки" и аватар находится бою.

    458 скачиваний

       (1 отзыв)

    Обновлено

  25. Бесплатно

    Поможет отследить негодяев, которые так и подтягивают всех, когда вы носите ядра к Локусу.

    374 скачивания

       (0 отзывов)

    Опубликовано