Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

ramirez

Разработчик аддонов
  • Постов

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

  • Посещение

Весь контент ramirez

  1. ramirez

    Calculator

    Calculator Просмотр файла Это такой калькулятор. Чтоб считать всякие цифры. Как открыть: нажатие на кнопку с плюсиком( в правом нижнем углу, таскается ). команда в чат - /calc, /clc, /calculator. для продвинутых пользователей - бинд горячей клавиши в input.cfg (в папке Personal) commonbindsection bind toggle_calculator 'CTRL' + 'DELETE' Как пользоваться: Пишем выражение, жмем ввод - появляется ответ. Все написанное можно копировать. У калькулятора есть память на последние 20 выражений: Запоминаются только успешно посчитанные выражения. Выражения перебираются кнопками-стрелочками "вверх" и "вниз". Q: Как посчитать, например, квадратный корень? A: Чтоб посчитать квадратный корень из 1000, нужно написать выражение sqrt( 1000 ). Поддерживаются все математические функции Lua, и еще немножко сверху: abs, acos, asin, atan, atan2, ceil, clamp, cos, deg, exp, floor, frexp, ldexp, log, log10, max, min, mod, pow, rad, random, randomseed, round, sign, sin, sqrt, tan, wrap, pi = 3.142. Эта штука умеет решать любые Lua-выражения, ибо тупо исполняет Lua-скрипт, но злоупотреблять этим не стоит. Как обычно, велкам пользоваться. Добавил ramirez Добавлено 17.08.2013 Категория Аддоны  
  2. ramirez

    Calculator

    Версия 3

    4 005 раз скачали

    Это такой калькулятор. Чтоб считать всякие цифры. Как открыть: нажатие на кнопку с плюсиком( в правом нижнем углу, таскается ). команда в чат - /calc, /clc, /calculator. для продвинутых пользователей - бинд горячей клавиши в input.cfg (в папке Personal) commonbindsection bind toggle_calculator 'CTRL' + 'DELETE' Как пользоваться: Пишем выражение, жмем ввод - появляется ответ. Все написанное можно копировать. У калькулятора есть память на последние 20 выражений: Запоминаются только успешно посчитанные выражения. Выражения перебираются кнопками-стрелочками "вверх" и "вниз". Q: Как посчитать, например, квадратный корень? A: Чтоб посчитать квадратный корень из 1000, нужно написать выражение sqrt( 1000 ). Поддерживаются все математические функции Lua, и еще немножко сверху: abs, acos, asin, atan, atan2, ceil, clamp, cos, deg, exp, floor, frexp, ldexp, log, log10, max, min, mod, pow, rad, random, randomseed, round, sign, sin, sqrt, tan, wrap, pi = 3.142. Эта штука умеет решать любые Lua-выражения, ибо тупо исполняет Lua-скрипт, но злоупотреблять этим не стоит. Как обычно, велкам пользоваться.
    Бесплатный
  3. С этого места подробней, пожалуйста. InspectAPI, чатовая строка и mods.txt меня устраивают полностью. Показывать скриптовые и клиентские ошибки в аддоне все равно возможности нет.
  4. AdvLogInfo.zip В файлике два скрипта. Один имплементирует глобальную функцию advtostring(), другой - LogInfo() и еще немного полезностей. Эта LogInfo() с помощью advtostring() умеет смотреть внутрь табличек, не боится рекурсии, вытягивает из данных их тип и контент, если возможно, снабжает тайм-тегом, ну и все такое. Расширяемо. Еще там прикручена возможность запускать скрипты из строки ввода чата. Типа: /script tinyfps LogInfo( _G )
  5. Аддоноведение. Вступление. Собственно, вот текст базового FAQ, как мне видится (R.). Q: Что такое аддон? A: Аддоны - это такие штуки, которые призваны добавлять в интерфейс Аллодов Онлайн дополнительные возможности, и тем самым делать игру доступнее и интереснее. Собственно, Аддон - это единица расширения интерфейса Аллодов Онлайн. Благодаря открытому API создание аддонов доступно всем желающим. Q: Что необходимо знать, чтоб начать делать аддоны? A: Для успешной работы над аддонами необходимо: Обладать пониманием языков разметки вообще, и XML в частности; Обладать пониманием основ программирования; Иметь представление о том, что такое event-driven programming; (http://en.wikipedia....ven_programming) Быть знакомым со скриптовым языком Lua вообще, и его версии 5.0.3 в частности (http://www.lua.org/); Понимать, что такое и зачем бывает нужен Application Programming Interface (API); Ознакомиться с документацией по Lua API Аллодов; (c:\Allods\data\Mods\Docs\ModdingDocuments.zip) Понимать, что такое и как работает текстовая кодировка; Знать основы цифровой графики, как она устроена, и как с ней работать; Понимать основы интерфейсного дизайна. * Вместо c:\Allods\, понятное дело, подразумевается место установки клиентской программы Аллодов Онлайн "в компьютере". Для простоты далее это тоже будет C:\Allods\. Q: Что нужно иметь под рукой, чтобы делать аддоны? A: Из программ для начала разработки аддона вполне достаточно установить любой текстовый редактор, имеющий расширенные возможности для работы с программным кодом. Используется для редактирования скриптов и ресурсов. Популярным решением является Notepad++ (www.notepadplusplus.org). Он невелик, бесплатен, имеет достаточно богатые возможности для работы с кодом, и располагает широким набором плагинов. Из плагинов стоит установить NPPExec для проверки и исполнения скриптов, и XMLTools для проверки синтаксиса XML. Также стоит разжиться приличным графическим редактором, чтобы иметь возможность рисовать и редактировать текстуры для своего аддона. Идеальным решением справедливо считается Adobe Photoshop, но он к сожалению стоит много денег. Из бесплатных заменителей подойдет GIMP или Paint.NET. Для изучения языка Lua крайне желательно заиметь бинарные файлы компилятора и интерпретатора Lua (http://sourceforge.n....3/Executables/). Это даст возможность писать, проверять и исполнять маленькие скриптовые программки для быстрых тестов возможностей и особенностей языка. Компилятор пригодится для проверки скриптов на наличие синтаксических ошибок. Из внешней документации в первую очередь следует непрерывно курить http://www.lua.org/m...5.0/manual.html (инструкция к Lua) и http://www.lua.org/pil/ (учебник по Lua). И то и то написано создателем Lua, в них есть ответы на все вопросы, читайте внимательно. На русском языке есть http://www.lua.ru/doc/ (перевод инструкции к 5.1). К сожалению по-русски читается хуже. Q: Так что такое аддон все-таки? A: Технически, аддон - это вполне определенная куча файлов, помещенная в данные клиента Аллодов Онлайн. Все эти файлы содержат ссылки друг на друга, и тем самым все вместе объединены в древовидную структуру с одним файлом в качестве корня. Кучу файлов делает аддоном этот конкретный файл, и его имя всегда AddonDesc.(UIAddon).xdb. Это корневой описатель всякого аддона, и содержит в себе все ссылки на скрипты и основные ссылки на прочие файлы из кучи. Всякая папка с файлами, содержащая файл с именем AddonDesc.(UIAddon).xdb, и помещенная по адресу c:\Allods\data\Mods\Addons\ будет трактоваться запущенной игрой как аддон, и игра честно попытается его загрузить и подготовить к работе. Если сей процесс пройдет успешно, в игре станет доступен предоставляемый аддоном дополнительный интерфейс. Q: А как же аддоны работают? A: Аддоны начинают работать только при непосредственном входе в игру выбранным персонажем. В какой-то момент, пока на экране нам показывают экран с прогрессом загрузки уровня, стартует процесс инициализации аддонов. Прежде всего из файлов читается все дерево ресурсов, начиная с AddonDesc.(UIAddon).xdb и далее по ссылкам, и по мере чтения преобразуется в соответствующее ему дерево разнообразных объектов в памяти игры. Затем происходит чтение и выполнение скриптов аддона, подряд по списку ссылок, каждый скрипт исполняется как отдельный chunk. На иницииализации скрипты подготавливают аддон к работе, в частности на инициализации скрипты объявляют и регистрируют в игре функции-обработчики игровых событий. То есть скрипты объясняют игре, какие скриптовые действия и в ответ на какие события следует предпринимать. После инициализации всех скриптов аддон готов к работе, и начинается инициализация следующего аддона. Вся дальнейшая активность аддона заключается в периодических вызовах игрой зарегистрированных обработчиков событий в моменты, когда эти события происходят. Q: А подробнее про файлы? A: Файлы, составляющие аддон, бывают следующих видов: Файлы ресурсов аддона (*.xdb). Это текстовые файлы в формате XML, представленные в кодировке UTF-8 w/o BOM. Они описывают всевозможные логические элементы, кирпичи, из которых строится интерфейс аддона. Файлы *.xdb делятся на виджеты, группы подгружаемых (related) ресурсов, описатели текстур, текстурные слои и корень AddonDesc.(UIAddon).xdb. Файлы скриптов (*.lua), текстовые файлы, содержащие Lua-скрипты аддона, в кодировке ANSI. Эти скрипты полностью управляют поведением аддона в игре. - Файлы текстур (*.bin), упакованные в оригинальный бинарный формат Аллодов Онлайн растровые текстуры. Это кусочки графики, картинки, из которых складывается видимая часть интерфейса. Всегда идут в комплекте с ресурсами-описателями. - Файлы с текстами (*.txt), текстовые файлы, содержащие локализуемые текстовые данные, в кодировке UCS-2 Little Endian (UTF-16). Эти файлы теоретически позволяют хранить и предоставлять аддону тексты на любом национальном языке мира. Q: Что такое тогда <имя аддона>.pak? A: Разработчики Аллодов Онлайн предоставили возможность запаковывать любые файлы аддона в zip-архив с расширением .pak. Внутри архива структура папок должна повторять исходную с корнем в папке \data. То есть, при открытии архива внутри будут находиться \Mods\Addons\<папка аддона>\<файлы аддона>. Всякий файл с расширением .pak, будучи помещенным в папку c:\Allods\data\Mods\Addons\, будет трактован игрой как упаковка с аддоном, и на запуске игры будет предпринята попытка его чтения.
  6. Заменить лапшу функциями.
  7. Можно. Но с локальной переменной меньше индексаций, меньше иструкций на выполнение и меньше копипасты. По-хорошему, ее еще за цикл надо вынести. Пишите меньше говнокода.
  8. Рухнет с ошибкой, т.к. tbl[n] это nil, а nil не индексируется. Правильно так: local t = {} for kk, vk in vi do t[kk] = vk end t[4] = vj tbl[n] = t
  9. А все потому, что таблицы передаются по ссылке, а не по значению. То есть, ты в { 1, 2, 3 } пишешь сначала [4] = 7, затем туда же 8, затем туда же 9. В результате получается { 1, 2, 3, 9 }, остальное затерто.
  10. Я конвертирую только в одну сторону. В этом случае ошибка округления не накапливается. А в результате мне по барабану режимы выравнивания placement.
  11. Вот работающий пример WidgetDnD. Работает с любым выравниванием виджета. WidgetDnD.zip
  12. Вот работающий пример pickMask в кнопке, если кому еще интересно. PickMask.zip
  13. Нет, эта поддержка сама по себе тяжелее, чем весь аддон. TransparentInput добавил. Если нужен ФПС в панели, вот весь его код, встраивайте: local widget, T, fps = mainForm:GetChildChecked( "fps", false ), 0, 0 local function handler() local t = common.GetLocalDateTime().overallMs fps = fps + 1 if ( t - 1000 ) > T then widget:SetVal( "fps", common.FormatInt( math.floor( fps * 1000 / ( t - T ) + 0.5 ), "%d" ) ) T, fps = t, 0 end widget:PlayFadeEffect( 1, 1, 1, EA_MONOTONOUS_INCREASE, common.GetAddonName() ) end common.RegisterEventHandler( handler, "EVENT_EFFECT_FINISHED", { wtOwner = widget } ) widget:PlayFadeEffect( 1, 1, 1, EA_MONOTONOUS_INCREASE, common.GetAddonName() )
  14. Почему это? Храни на него ссылку, а потом используй заново, в чем проблемы? В WorldDamage так делаю, все работает.
  15. А имя? <localizedNameFileRef href="name.txt" /> ?
  16. Этот твой пример убивает виджеты по всей игре. Любые аддоны будут спамить ошибки. Вообще любые, стандартные тоже. Зачем так делать, объяснишь? И почему я должен писать защиту от идиотов, которые делают подобные вещи? Всем вокруг: не ставьте себе аддонов, которые занимаются подобной ерундой, и таких ошибок не будет.
  17. Это-то зачем? А свою сделать - это уже не модно?
  18. Аддоны обрабатывают ивенты вразнобой, им пофигу на имя. Приведенный код - это полный армагеддон по всему интерфейсу. Не понимаю, зачем кому-то это может понадобиться. Отлавливание завершения эффектов ради нажатия кнопок - это странно. Проще на реакцию подписаться, не?
  19. Скопируй из Profiles. В инструкции написано, что галочки делают. Там вообще все написано, читай.
  20. Причем здесь "говорила"? Виджет становится невалидным, только когда уничтожен. Это вызов Destroy, или перезагрузка аддона. Других вариантов нет. Я виджеты никогда не уничтожаю. Поэтому в InspectAPI таких ошибок не бывает.
  21. Вранье, я никогда не убиваю свои виджеты.
  22. Ха, и ты его нажал? =) Попробуй покрутить размеры Control3D в Main. =)
×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования