Доки, ресурсы и полезная информация
В форуме 35 тем
-
- 12 подписчиков
- 57 ответов
- 689,3 млн просмотров
API (для версии 15.0) Общее описание и установка Создание пользовательских дополнений Описание полей ресурсов виджетов Пример универсального слота для отображения предметов или заклинаний Lua API - функции и события, предоставляемые клиентом игры (категории, енумы, эвенты, виджеты) Список изменений в Lua API Инструкции Введение в разработку аддонов Как научиться программировать на Lua за 15 минут (на английском) Lua за 60 минут Инструкция для разработчика аддонов Как сделать свой аддон (старая тема) Как правильно описывать текстуры Создание графическ…
Последний ответ от Lafayette, -
- 2 подписчиков
- 140 ответов
- 182,7 млн просмотров
Всем доброго времени суток! У меня возникло желание заняться разработкой аддонов, но столкнулся вот с какой проблемой. В документации по написанию аддонов (от Нивал) не нашел ничего касательно создания GUI. Поковырял другие аддончики, но опять куча вопросов. Если с самим LUA и API клиента вроде бы все понятно, но вот касательно создания GUI. 1. Все файлы *.xdb это по сути XML файлы. И в связи с этим возникает вопрос по их составлению. (неизвестен перечень разделов и ключей) 2. Существует ли какая то типизация контролов? (кнопки, списки, комбобоксы...) Либо все контролы однотипны?
Последний ответ от logg, -
LibGS Просмотр файла (Для разработчиков аддонов) LibGS (LibGearScore) - библиотека инспектирования персонажей игроков. Рекомендуется использовать в аддонах, которые показывают гирскор, руны, и прочие характеристики экипировки персонажей игроков. Библиотека берет на себя всё общение с API игрового клиента (avatar.StartInspect, avatar.EndInspect, EVENT_INSPECT_STARTED, EVENT_INSPECT_FINISHED), скрывая от аддона особенности их работы, самостоятельно решая возможные конфликты между аддонами, и выдает в аддон результат инспектирования в удобном виде. Прошу разработчиков принять участие в тестировании Если кто-то ув…
Последний ответ от LEM, -
- 60 ответов
- 11,2 тыс просмотра
Привествую комрады.... Я думаю сделать билбиотеку классов. Это упростит разработку и повысит читабильность кода. Суть в том чтобы создать набор классов для работы с компонентами, удобную и понятную обертку над Ниваловским АПИ, а так же обизательно реализовать там систему проверок и логирования ошибок, что значительно упростит дебаг. Эту библиотеку каждый сможет скачать и использовать. Планирую обновлять тему и при вашем содействии расширять функционал данной библиотеки. Что сделано: 1. WidgetsContainerClass - это класс для управления виджетами. Включает в себя - создание, виджетов 2мя способами и общие для всех виджетов фукции управления. Описание: 1.1 CreateWidg…
-
- 1 подписчик
- 43 ответа
- 20,1 тыс просмотра
HOW-TO: Многоязычный аддон (АО 1.1.02+) Updated: 2011-02-17 (Пример локализации SampleLocalization_2011-02-17.zip исправлен для версии АО 2.0.03) (This post will be translated to English later) Вместо вступления Ещё одна глава пока ненаписанного учебника по созданию аддонов... Так вот. Как нам всем известно, в АО не существует никакого встроенного, "прозрачного" механизма для поддержки локализаций в аддонах. А как хотелось бы!.. Именно сейчас настал тот момент, когда нужно действовать. Как мы уже не раз доказывали всему АО-сообществу, когда разработчики АО не идут навстречу к разработчикам аддонов, разработчики аддонов, как настоящие спартанцы, всё равно добивают…
Последний ответ от Setras, -
- 7 подписчиков
- 34 ответа
- 17,3 тыс просмотров
LibDnD Просмотр файла Официальная версия LibDnD для аддонов. Рекомендуется разработчикам аддонов использовать данную версию LibDnD в своих аддонах. В ближайшем будущем планируется добавления новых плюшек, в т.ч. перенос некоторых плюшек из других аддонов. Если требуется какой-то особенный дополнительный функционал, или кто-то готов поделиться своим, то можно об этом попросить на странице разработки LibDnD. HOW-TO: LibDnD.lua - Библиотека Drag&Drop Простейший пример использования LibDnD Файл LibDnD.lua нужно включить в AddonDesc.(UIAddon).xdb, в секции <ScriptFileRefs>: <ScriptFileRefs> …
Последний ответ от OLDodin, -
- 13 подписчиков
- 21 ответ
- 14,6 тыс просмотра
Есть несколько типичных моментов по починке старых аддонов. Если вы самостоятельно пофиксили работу того или иного аддона - прикрепите архив к посту в теме поддержки аддона, либо скиньте мне в личку, а я уже обновлю дистрибутив аддона в нашем файловом архиве. Сообща можно и горы свернуть, поэтому фиксим и выкладываем, выкладываем и фиксим Фиксы для 5.0.2 (с луа версии 5.0 до луа версии 5.1) Какие аддоны фиксить? Да, грубо говоря, все, что обновлены раньше 23 июля (за может быть парой исключений).
Последний ответ от webbar, -
- 5 подписчиков
- 15 ответов
- 5,5 тыс просмотра
Inspect Widgets Просмотр файла Аддон для разработчиков, позволяет смотреть и менять параметры всех виджетов в игре. Предупреждение Этот аддон представляет ценность прежде всего для разработчиков. Никаких игровых преимуществ не дает. Cделан, чтобы наконец можно было быстро посмотреть, что творится с виджетами аддона. Инструкция по применению Для возможности запуска аддона в папке Personal создаем файл input.cfg(ANSI) и пишем туда следующее: commonbindsection bind toggle_widget_tools 'CTRL' + 'HOME' Для ленивых работает команда в чат /inspectwidgets. Далее: Ctrl+Home или команда в чат открывает корневое окошко аддона. Это …
Последний ответ от EvgenCrastan, -
- 6 подписчиков
- 12 ответов
- 4,6 тыс просмотр
Inspect API Просмотр файла Аддон для разработчиков, показывает практически все доступные из API данные Предупреждение Этот аддон представляет ценность прежде всего для разработчиков. В игре он не помогает, а скорее наоборот, мешает. Cделан с целью перестать лазить по документации и постоянно логировать, что же там на самом деле пришло в скрипт. Инструкция по применению Для возможности запуска аддона в папке Personal создаем файл input.cfg(ANSI) и пишем туда следующее: commonbindsection bind toggle_debug_info 'CTRL' + 'ENTER' bind toggle_templates 'CTRL' + 'SHIFT' + 'ENTER' bind toggle_data 'CTRL' + 'ALT' + 'ENTER' Для лени…
Последний ответ от Dragagon, -
- 2 подписчиков
- 9 ответов
- 5,1 тыс просмотр
Уважаемые авторы аддонов! Пожалуйста, ознакомьтесь с изменениями, которые разработчики сделают в игре с обновлением 14.1, и подготовьте заранее обновления своих аддонов, чтобы зарелизить их как только - так сразу. Обновление 14.1 планируется в скором времени. Расшифровка переменных NAME это Fade Move Resize Rotation RotationWithChildren TextScale Новые API widget:Play[NAME]EffectSequence( sequenceParams ) Запускает на виджете цепочку эффектов типа NAME На виджете может существовать лишь одна цепочка \ эффект типа NAME Если на виджете уже есть активная цепочка эффектов NAME или эффект NAME то они будут прерваны Поля: …
Последний ответ от Lafayette, -
AO-Tools
от Гость gsomgsom- 9 ответов
- 9,4 тыс просмотра
По просьбе SLA, выкладываю ao-tools.zip https://alloder.pro/files/file/341-/ Allods Online Tools loc.extractor Allods Online pack.loc resource extractor. v0.4 by gsomgsom . Распаковывает ресурсы из файла pack.loc. Вызов: loc.extractor [file.loc] [patch_to] Распаковка может затянуться до 10 минут. Это вполне нормально. loc.compiler Allods Online pack.loc file compiler v0.5 by gsomgsom and kosh . Компилирует файл ресурсов pack.loc. Вызов: loc.compiler <patch> <file.loc> Компиляция может затянуться до 10 минут. Это вполне нормально. game.ver.info Allods Online game.version file viewer v0.2 by gsomgsom . Показывает содержимое файла game.version. Вызов: …
-
- 3 подписчиков
- 8 ответов
- 4,2 тыс просмотров
ScriptChatLogExt.lua Добавляет возможность отправлять свой текст в чат. Использование chat('#f15a5a', 1, '#f0c419', 'Hello!', '#4eba6f', nil, '#2d95bf', function()end, '#955ba5', {}, '#475556', stateMainForm, '#default') ChatLog(...) ChatLog:Push(...) ChatLog:PushValuedText(valuedText) Параметры ChatLog.capacity = 100 ChatLog.separator = ' ' ChatLog.format = userMods.ToWString('<html color="0xffccc5b7" fontsize="14"><r name="time"/> [<r name="addonName"/>]: <r name="text"/></html>') ChatLog.timeFormat = userMods.ToWString('<html><r name="h"/>:<r name="m"/>:<r name="s"/>.<r name="ms"/>&l…
Последний ответ от Slashuur, -
- 1 подписчик
- 6 ответов
- 2,9 тыс просмотров
AdvLogInfo.zip В файлике два скрипта. Один имплементирует глобальную функцию advtostring(), другой - LogInfo() и еще немного полезностей. Эта LogInfo() с помощью advtostring() умеет смотреть внутрь табличек, не боится рекурсии, вытягивает из данных их тип и контент, если возможно, снабжает тайм-тегом, ну и все такое. Расширяемо. Еще там прикручена возможность запускать скрипты из строки ввода чата. Типа: /script tinyfps LogInfo( _G )
Последний ответ от LEM, -
- 2 подписчиков
- 5 ответов
- 2,1 тыс просмотров
По моим наблюдениям Все вызовы api работают довольно медленно, а некоторые оооочень медленно. Например, очень медленный object.GetBuffInfo(), у кого тормозят аддоны в БГ/Рейдах/Арена Смерти/РЧД может из-за избытка таких вызовов. А значит нам нужно минимизировать кол-во таких вызовов. Приёмы для этого 1) Фильтры условий - перебираем/обрабатываем/храним не все, а лишь нужное в текущий момент Например, я минимизирую кол-во вызовов object.GetBuffInfo(), те убираю чтение этого бафа со всех, кроме таргет/пет/я, если нужны не все бафы, то фильтровать обработку только по нужным. 2) В ивентах только запоминать факт изменения чего либо, а обработку изменен…
Последний ответ от OLDodin, -
- 2 подписчиков
- 4 ответа
- 7,5 тыс просмотра
Содержание: UIAddon WidgetButton WidgetForm WidgetPanel Пояснения: <Name/ > - название параметра. {true|false} - допустимые значения. <Name>MyAddon</Name> - пример. UIAddon <Name /> - название аддона, {латинские буквы и цифры}. <Name>MyAddon</Name> <localizedNameFileRef href="" /> - локализованное название аддона, ссылка на текстовый файл. <localizedNameFileRef href="localizedName.txt" /> <localizedDescFileRef href="" /> - локализованное описание аддона, ссылка на текстовый файл. <localizedDescFileRef href="localizedDesc.txt" /> <AutoStart /> - па…
Последний ответ от Dragagon, -
LibBarChart
от Ollaf- 2 подписчиков
- 4 ответа
- 2,2 тыс просмотра
LibBarChart Просмотр файла LibBarChart - библиотека, позволяющая разработчикам аддонов рисовать диаграммы на экране. Рекомендуется использовать для наглядного представления информации в аддоне. Библиотека полностью берет на себя работу с интерфейсом игры. От разработчика требуются только параметры настройки, данные, по которым надо построить диаграмму и своевременное обновление информации на экране. Сама библиотека находится в папке BarChart. Документацию к библиотеке можно найти в папке doc. Простейшие примеры использования библиотеки можно найти в папке Sample. Исследуя аддоны, заметил, что слишком мало информации преподноситс…
Последний ответ от Ollaf, -
- 3 ответа
- 558 просмотров
1. Подготовка аудио-файлов Чтобы добавить свои звуки в аддоны нам потребуется установить FMOD Designer. Скачивайте из вложения инсталлятор fmoddesigner44464win-installer.exe. Единственное НО, Аллоды используют версию 4.44.54, я не нашел её в интернете и использовал чуть новее 4.44.64. Но, кажется, всё работает. Запускаем FMOD Designer, нажимаем File -> New Project... Создаем где-нибудь папку. ВАЖНО ЧТОБЫ НА ПУТИ НЕ БЫЛО РУССКИХ СИМВОЛОВ. Внизу в поле "Имя файла" пишем название проекта. ОНО ДОЛЖНО БЫТЬ УНИКАЛЬНЫМ и не совпадать с именами проектов внутри клиента и других аддонов. Никаких Interface, Sounds, Spells и т п. Проще всего назвать также как и ваш аддон.…
Последний ответ от Slashuur, -
- 3 ответа
- 1,8 тыс просмотров
Вот работающий пример WidgetDnD. Работает с любым выравниванием виджета. WidgetDnD.zip
Последний ответ от icreator, -
- 1 подписчик
- 2 ответа
- 2 тыс просмотров
Разрабы предоставили нам UserMods.* с несколькими функциями. Разберемся, как это работает. Вот пример: local userMuds = {} local debugCowmon = {} function debugCowmon.ToWs(astr) return "WSTR_"..astr end function userMuds.TestFunc() return "test" end local meta = {} function meta.__index(op, key) if key == "ToWString" then return debugCowmon.ToWs end return nil end setmetatable(userMuds, meta) Вызов: LogInfo(userMuds.TestFunc()) --вызов в обход __index LogInfo(userMuds.ToWString("testAstring")) --вызов с __index LogInfo(userMuds.OpenURL("http:\\ya.ru")) --ошибка скрипта (обращние к нулю) Что тут происходит? Для начала мы создаем 2 новые переменные, предс…
Последний ответ от Mankubus, -
- 1 подписчик
- 1 ответ
- 1,4 тыс просмотров
Написал на скорую руку прогу для преобразования 4байтового значения команды Lua 5.0 в значение оператора и операндов для него (A,B,C,Bx, sBx) и обратно. Утилита скорее "для себя", так что при измении sBx/Bx, например, меняются значения только A, B и C. Если хотите узнать, каким будет Bx при изменении sBx, выполните обратное преобразование. Ну, или потом доделаю. Скрин, собсно: Бинарь и исходники в аттаче. luaop_bin_w32.rar luaop_src.rar
Последний ответ от logg, -
- 1 ответ
- 510 просмотров
1. FMODProject В аддонах со звуками в файлах UIRelatedSounds мы ранее ссылались на FMODProject.xdb внутри клиента игры, например так: <?xml version="1.0" encoding="UTF-8" ?> <UIRelatedSounds> <Items> <Item> <name>InspirationUse</name> <resource> <project href="/SFX/Interface/Interface.(FMODProject).xdb" /> <name>Interface/MiniGame/BlackSmithing/inspiration_used</name> </resource> </Item> </Items> </UIRelatedSounds> Теперь, похоже, мы не сможем обратиться к файлу "/SFX/Interface/Interface.(FMODProject).xdb". Клиентские XDB файлы будут н…
Последний ответ от Slashuur, -
- 1 ответ
- 1,5 тыс просмотров
SimpleChatLog.lua It's a mix of ScriptAdvancedToString.luaChat.luaScriptChatLogExt.luaLog.lua libraries. chat(1-4 [message,notice,warning,error - message type],...[to Log on Chat]) or SimpleChat(1-4 [message,notice,warning,error - message type],...[to Log on Chat]) -- uses userMods.SendSelfChatMessage( message, messageLevel ) CustomChat(message, color, fontSize) -- just a Chat under different name LogInfo(... [to Log in mods.txt])
Последний ответ от самолет/Eksperyment, -
- 1 ответ
- 1,4 тыс просмотров
ScriptLogExt.lua Использование print(...) warning(...) LogInfo(...) LogWarning(...) LogError(...) LogMemory() common.LogInfo(...) common.LogWarning(...) common.LogError(...) common.LogMemory() Приятный бонус Библиотека совместима с функцией advtostring(). Достаточно подключить файл ScriptAdvancedToString.lua
Последний ответ от LEM, -
- 1 подписчик
- 1 ответ
- 2,1 тыс просмотров
More and more players from the European server are now downloading addons. But there are a lot of addons that are not translated for English, French, German or Turkish clients. Localizing an addon is not hard. This is the code I use ( Global("localization", "eng_eu") -- +----------------------------------+ -- |AO game Localization detection | -- |New conceptual detection by Ciuine| -- |Aesthetically improved by Ramirez | -- +----------------------------------+ local function GetGameLocalization() local id = options.GetOptionsByCustomType( "interface_option_localization" )[ 0 ] if id then local values = options.GetOptionInfo( id ).values …
Последний ответ от cristimirt, -
- 1 ответ
- 1,5 тыс просмотра
ScriptPackageExt.lua Использование require(modname) -- allods/data/Mods/Addons/ package.path = package.path..'../data/Mods/Addons/?;' package.path = package.path..'../data/Mods/Addons/?.lua;' package.path = package.path..'../data/Mods/Addons/?.luac;' local addonName = common.GetAddonName() -- allods/data/Mods/Addons/ADDON_NAME/ package.path = package.path..'../data/Mods/Addons/'..addonName..'/?;' package.path = package.path..'../data/Mods/Addons/'..addonName..'/?.lua;' package.path = package.path..'../data/Mods/Addons/'..addonName..'/?.luac;' -- allods/data/Mods/Addons/ADDON_NAME/Scripts/ package.path = package.path..'../data/Mods/Addons/'..addonName..'/Script…
Последний ответ от LEM,