Классы
Статы, идеальное соотношение · Умения и вехи, как получить · Души · Сравнение классов
Воин · Жрец · Некр · Лучник · Шаман · Мист · Бард · Инж · Демон
Игровой процесс
Как одеваться · Драконий облик · Наследие Богов · Фарм золота
Прохождения локаций
Мониторинг серверов и редактор аддонов
Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.
Подсказки из игры на вашем сайте
Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.
-
Постов
291 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Магазин
Галерея
Весь контент Zeno
-
TracksInfoZ Просмотр файла Показывает временно отсутствующие отслеживаемые объекты (конкретно бафы на БГ). Списком известные или все во время сбора информации, а также отсутствующие известные на миникарте. Известные забиваются заранее через файл настроек или задаются сбором информации до выхода с карты. В известные заранее добавлены отслеживаемые объекты с БГ и Доминиона. Можно выбрать показывать ли список, названия в списке, на миникарте и собирать ли новую информацию отдельно с помощью меню по правому щелчку мыши на названии. Добавил Zeno Добавлено 31.10.2022 Категория Аддоны
-
По-моему технически возможно, но умение, скорее всего, после прерывания нужно будет использовать повторно. Посмотрю по возможности.
-
Версия 3.6
3 838 раз скачали
Показывает временно отсутствующие отслеживаемые объекты (конкретно бафы на БГ). Списком известные или все во время сбора информации, а также отсутствующие известные на миникарте. Известные забиваются заранее через файл настроек или задаются сбором информации до выхода с карты. В известные заранее добавлены отслеживаемые объекты с БГ и Доминиона. Можно выбрать показывать ли список, названия в списке, на миникарте и собирать ли новую информацию отдельно с помощью меню по правому щелчку мыши на названии.Бесплатный -
-
Скорее всего, не секрет, но EVENT_UNIT_HEALTH_CHANGED лучше уже не использовать - его удалят. Если только цели, то, думаю, достаточно будет обрабатывать событие о смене цели EVENT_AVATAR_TARGET_CHANGED, при котором производить регистрацию и дерегистрацию обработчиков событий EVENT_OBJECT_HEALTH_CHANGED и EVENT_OBJECT_BUFFS_CHANGED с фильтрами по цели. Крайне желательно запоминать статус регистраций, т.к. его нельзя проверить. Если предполагать их статус и предположение окажется неверным, то будет вылетать некритическая ошибка (будет писать в лог, если у игрока он включен, а выполнение продолжится). А проводить дерегистрацию обязательно потому что есть предел в 500 регистраций обработчиков. Есть другой способ. По EVENT_SECOND_TIMER использовать object.GetHealthInfo(avatar.GetTarget()) и object.GetBuffs(avatar.GetTarget()). Раз в секунду сами спрашиваем здоровье и бафы цели.
-
Как-то так должно работать, хотя мне почему-то кажется, что 40 размер шрифта великоват. function LogToChat(chatText) -- [138] Что ещё за цифровые комментарии? local wtChat = stateMainForm:GetChildUnchecked("ChatLog",false):GetChildUnchecked("Container",true) -- Это текстовый контейнер чата? if not wtChat or not wtChat.PushFrontValuedText then return end -- Видимо, не нашли чат или нашли не чат? if not common.IsWString(chatText) then chatText = userMods.ToWString(chatText) end -- [146] Опять они! local valuedText = common.CreateValuedText() -- Создаём новый объект с текстом и получаем на него ссылку local format = "<html fontname='AllodsFantasy' fontsize='40' shadow='1'><rs class='color'><r name='text'/></rs></html>" -- Это наша отформатированная строка с тегом для подстановки valuedText:SetFormat(userMods.ToWString(format)) -- Задаём нашу строку valuedText:SetClassVal("color", "LogColorRed") -- Подставляем класс valuedText:SetVal("text", chatText) -- Подставляем текст wtChat:PushFrontValuedText(valuedText) -- Пихаем наш объект с текстом в начало контейнера чата. Наверное, после этого оно должно появится в активной вкладке чата и будет там висеть, если снег не пойдёт end -- function [153] И снова! function GetCurrencyValue(currencyId) -- Возвращает кол-во валюты по CurrencyId local currencyValue = avatar.GetCurrencyValue(currencyId) -- Получаем кол-во и макс. кол-во валюты if currencyValue then return currencyValue.value end -- Возвращаем только количество, если нет ошибки end function GetCurrencyIdByName(currencyName) -- Возвращает ссылку на валюту (CurrencyId) по её имени local avatarCurrencies = avatar.GetCurrencies() or {} -- Получаем валюты for _, currencyId in pairs(avatarCurrencies) do -- Очередность перебора не имеет значения, индекс тоже local currencyInfo = currencyId:GetInfo() -- Получаем информацию о валюте под очередным индексом if currencyInfo and currencyInfo.name and userMods.FromWString(currencyInfo.name) == currencyName then return currencyId end -- Если ошибки нет и валюта имеет то же имя, что и искомая, то возвращаем ссылку на эту валюту (CurrencyId) end end function print_GG() -- Главная функция со странным названием local currencyName = "Соверен" -- Задаём имя нужной валюты local currencyId = GetCurrencyIdByName(currencyName) -- Получаем ссылку на нужную нам валюту по её имени if not currencyId then -- Если валюта не найдена, отправляем функции вывода в чат сообщение об этом и завершаем работу LogToChat(currencyName..": нет в наличии.") return end local currencyValue = GetCurrencyValue(currencyId) or 0 -- Получаем кол-во валюты по ссылке на валюту LogToChat(currencyName..": "..tostring(currencyValue)) -- Отправляем функции вывода в чат собранную строку с именем и кол-вом валюты end function Init() -- Инициализация if not avatar.IsExist() then -- Если нет аватара, будем запускать снова при появлении аватара, а пока всё common.RegisterEventHandler(Init,"EVENT_AVATAR_CREATED") return end print_GG() -- Вызываем главную функцию со странным названием end Init() -- Запускаем Если вкратце по ошибкам, то: - Очень много ненужного и неиспользуемого (почти половина строк). - Есть подозрение, что функция вывода в чат откуда-то выдрана, уже больно в ней много лишнего для текущей задачи, но наверное, рабочая. - Главная функция ничего не делает. То есть не ищет соверены и не получает их значение и не вызывает для этого другие функции. - local str = ("Соверен: ", currentValue) - это попытка присвоить одной переменной два значения, причём второе значение - это переменная, которая нигде не объявлена (а точнее объявлена локальной в другой функции, которая нигде не вызывается). Результатом подобного будет присвоение переменной исключительно первого значения. - Главная функция пытается передать две локальных переменных аргументами функции вывода в чат (LogToChat( str, str2)), которая принимает только один аргумент (function LogToChat(param1)). Результатом подобного будет передача лишь первого аргумента. - Процесс выполнения до передачи в чат был такой: Init() -> print_GG() -> local str = "Соверен: " -> LogToChat(str) ... Конечно же, в чате всегда "Соверен: ", ведь никаких других вариантов и быть не может.
-
Технически возможно. Посмотрю, как будет время. Но мне кажется, будет хуже, потому что разноцветные точки будут перекрывать друг друга, если находятся в одном месте, как они перекрывают друг друга без всяких дополнений.
-
Если переменная пустая после перебора валют, то такой валюты найдено не было. По-моему, тут возможно 4 варианта - стоит нерусская локаль, стоит нерусский клиент, стоит не windows-1251 кодировка скрипта, у персонажа нет такой валюты вообще. 1. Время и язык > Язык и регион > Административные языковые параметры > Изменить язык системы... В выпадающем списке выбрать "Русский (Россия), галку "Бета версия" убрать. Подтверждить изменения. 2. Вместо "Соверен" в скрипте искать соответствующую языку запись. 3. Скрипт дополнения должен быть в кодировке windows-1251, а не UTF-8, который обычно ставят все программы по умолчанию. Большинство программ позволяет сконвертировать кодировку в любую сторону, способ зависит от программы. В Блокноте, например, Файл > Сохранить как... В выпадающем списке выбрать ANSI. Подтвердить сохранение. 4. В игре открыть информацию о персонаже, вкладку Ценности, категорию Награды, перематывать в поисках Соверен. Если такой нет, получить Соверен на Ал-Риате или взять персонажа с такой валютой.
-
local soverenId local avatarCurrencies = avatar.GetCurrencies() for _, currencyId in pairs(avatarCurrencies) do local currencyInfo = currencyId:GetInfo() if currencyInfo and userMods.FromWString(currencyInfo.name) == "Соверен" then soverenId = currencyId break end end soverenId в результате будет ссылкой на CurrencyID соверенов или будет пустым.
-
По-моему это предлагается искать самостоятельно с помощью имеющегося инструментария. Должно быть где-то в валютах аватара по идее. local avatarCurrencies = avatar.GetCurrencies() for _, currencyId in pairs(avatarCurrencies) do local currencyInfo = currencyId:GetInfo() if currencyInfo then common.LogInfo("common", currencyInfo.name, "[", tostring(currencyInfo.sysName), "]: ", tostring(avatar.GetCurrencyValue(currencyId).value),"/",tostring(currencyInfo.maxValue)) end end Показывает, что соверены в этом есть, просто у них нет sysName, поэтому их нельзя найти с помощью avatar.GetCurrencyId(sysName). Так что каждый раз получаем таблицу, а её перебираем до соответствия по имени, не забывая переводить WString в string для сравнения. Найденную ссылку на CurrecnyId скорее всего можно просто запомнить один раз, вряд ли она изменяется в процессе сессии.
-
###Cartographer###O7.1##Exclamation01##E47EEC#B7FC64#FFFFF0B7##1889#14F5##Suslanger##Suslanger::##Уро-Борос##Место%_появления%_Уро-Бороса##Суслангер##Суслангер##Пески%_джиннов### ###Cartographer###O7.1##Exclamation01##E99EA4#B42850#FFFF8D84##1BF0#1858##Suslanger##Suslanger::##Уро-Борос##Место%_появления%_Уро-Бороса##Суслангер##Суслангер##Пески%_ифритов### ###Cartographer###O7.1##Exclamation01##EEB8E4#B30AC4#FFFEF8D7##1F53#1955##Suslanger##Suslanger::##Уро-Борос##Место%_появления%_Уро-Бороса##Суслангер##Суслангер##Пески%_ифритов### ###Cartographer###O7.1##Exclamation01##EC83A8#B08254#FFFF1D4B##1DDC#1B92##Suslanger##Suslanger::##Уро-Борос##Место%_появления%_Уро-Бороса##Суслангер##Суслангер##Пески%_ифритов### ###Cartographer###O7.1##Exclamation01##E27188#AB6E54#FFFF7E76##172D#2010##Suslanger##Suslanger::##Уро-Борос##Место%_появления%_Уро-Бороса##Суслангер##Суслангер##Пески%_ифритов### ###Cartographer###O7.1##Exclamation01##E1E6DC#B128BC#FFFFFAEF##16D1#1AFF##Suslanger##Suslanger::##Уро-Борос##Место%_появления%_Уро-Бороса##Суслангер##Суслангер##Пески%_джиннов### ###Cartographer###O7.1##Exclamation01##E3B8E0#B3EA34#1AC5##1806#188F##Suslanger##Suslanger::##Уро-Борос##Место%_появления%_Уро-Бороса##Суслангер##Суслангер##Пески%_джиннов### ###Cartographer###O7.1##Exclamation01##E12D50#B5D1B4#D96##1655#16E0##Suslanger##Suslanger::##Уро-Борос##Место%_появления%_Уро-Бороса##Суслангер##Суслангер##Пески%_джиннов### ###Cartographer###O7.1##Exclamation01##EBD890#AAFB7C#FFFF95BE##1D6A#2075##Suslanger##Suslanger::##Уро-Борос##Место%_появления%_Уро-Бороса##Суслангер##Суслангер##Пески%_ифритов### ###Cartographer###O7.1##Exclamation01##E65E9C#AAAC94#FFFF53D0##19C8#20BB##Suslanger##Suslanger::##Уро-Борос##Место%_появления%_Уро-Бороса##Суслангер##Суслангер##Пески%_ифритов### ###Cartographer###O7.1##Exclamation01##E8D12C#B09320#FFFF5882##1B68#1B83##Suslanger##Suslanger::##Уро-Борос##Место%_появления%_Уро-Бороса##Суслангер##Суслангер##Пески%_ифритов### ###Cartographer###O7.1##Exclamation01##EA2888#ACED88#FFFF3D8D##1C4B#1EBD##Suslanger##Suslanger::##Уро-Борос##Место%_появления%_Уро-Бороса##Суслангер##Суслангер##Пески%_ифритов### Все места появления Уро-Бороса. Координаты точно в местах остановки во время погони (там же где и появляется).
-
PartyMapZ Просмотр файла Показывает маркеры аватара/группы/рейда на карте и миникарте. Зеленым - аватар, синим - группа, оранжевым - другие группы рейда. Можно выбрать точки или маркеры, а также их размер. Можно отображать имена над маркерами и их размер. Кроме того, можно отдельно выбрать показывать ли маркеры на карте/миникарте или маркеры по типу (аватар/группу/рейд). Настраивается через текстовый файл Settings.txt в корневой папке дополнения или меню настроек в игре. Вход в настройки осуществляется через кнопку на плашке дополнения в меню дополнений главного меню игры. Shows avatar/group/raid markers on the map and minimap. Green - avatar, blue - group, orange - other raid groups. You can select dots or markers, as well as their size. You can display names above markers and their size. You can also separately select whether to display markers on the map/minimap or markers by type (avatar/group/raid). Addon is configured via the Settings.txt text file in the root folder of the addon or the settings menu in the game. You can access the settings via the button on the addon plate in the addons menu of the game's main menu. Добавил Zeno Добавлено 18.10.2022 Категория Аддоны
-
Версия 5.0
12 530 раз скачали
Показывает маркеры аватара/группы/рейда на карте и миникарте. Зеленым - аватар, синим - группа, оранжевым - другие группы рейда. Можно выбрать точки или маркеры, а также их размер. Можно отображать имена над маркерами и их размер. Кроме того, можно отдельно выбрать показывать ли маркеры на карте/миникарте или маркеры по типу (аватар/группу/рейд). Настраивается через текстовый файл Settings.txt в корневой папке дополнения или меню настроек в игре. Вход в настройки осуществляется через кнопку на плашке дополнения в меню дополнений главного меню игры. Shows avatar/group/raid markers on the map and minimap. Green - avatar, blue - group, orange - other raid groups. You can select dots or markers, as well as their size. You can display names above markers and their size. You can also separately select whether to display markers on the map/minimap or markers by type (avatar/group/raid). Addon is configured via the Settings.txt text file in the root folder of the addon or the settings menu in the game. You can access the settings via the button on the addon plate in the addons menu of the game's main menu.Бесплатный -
Есть документация по Lua и документация по API Аллодов. К Lua есть куча справочников, где в отличии от документации, понятно написано и есть примеры. OnSlash - скорее всего функция обработчик события. Event, Reaction описаны в документации API. wtChat - скорее всего переменная содержащая ссылку на виджет. Widget описаны в документации API. valuedText - типа данных, описан в документации API.
-
Тогда вот это должно быть неверно. Частая ошибка использование пути "Папка игры\Mods" вместо правильного. Правильный путь к папкам дополнений и файлам типа pak "Папка игры\data\Mods\Addons" Правильный путь к описателю каждого дополнения "Папка игры\data\Mods\Addons\Папка дополнения\AddonDesc.(UIAddon).xdb"
- 5 ответов
-
- 1
-
-
- дайджест
- новый контент
-
(и ещё 1 )
C тегом:
-
- 5 ответов
-
- дайджест
- новый контент
-
(и ещё 1 )
C тегом:
-
Так парой сообщений выше они все есть по идее. Из этих списков я на данный момент уточнил координаты и подтвердил все, кроме одного. Толи не попадается, толи там не бывает (но вроде бывает). Будут все, скину целиком. https://alloder.pro/forums/topic/1444-cartographer/?do=findComment&comment=54864 https://alloder.pro/forums/topic/1444-cartographer/?do=findComment&comment=54866
-
https://alloder.pro/forums/topic/5953-raidbuffsz/?do=findComment&comment=54667
-
[21:55:00]Error: addon ShipControl(1644947130): Game::LuaAstralGetHubRadius: astral hub zone not found, details: int __cdecl Game::LuaAstralGetHubRadius(struct lua_State *) func: GetHubRadius, field, line: -1, defined: C, line: -1, [C] func: EVENT_ASTRAL_HUB_CHANGED, field, line: 811, defined: Lua, line: 800, [string "Mods/Addons/ShipControlSA/Scripts/ShortMap.lua"] func: ShortMap_ShowAll, global, line: 1148, defined: Lua, line: 1132, [string "Mods/Addons/ShipControlSA/Scripts/ShortMap.lua"] func: AvatarShip, upvalue, line: 848, defined: Lua, line: 805, [string "Mods/Addons/ShipControlSA/Scripts/Main.lua"] func: ?, ?, line: 868, defined: Lua, line: 866, [string "Mods/Addons/ShipControlSA/Scripts/Main.lua"] Версия 76. Возможная причина - залёт в хаб лютого или в пустой хаб внутри.
