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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

worm

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

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

  • Посещение

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

  1. Ммм сейчас гляну... Но если честно не уверен что пойму. Розочка у тебя немного сложноваты аддоны в игре и в коде запутаться легко( Сетрас очень помог. много объяснил. Почти все готово. Осталось только фильтр этот сделать. и понять как Библиотеку днд использовать чтобы перемещать. и еще понять точнее это понятно что при наведение мыши реакция включает текстуру с прозрачностью и создается эффект свечения но непонятно где ошибка. Вот но самое главное фильтр.( Вообще столько интересных знаний появилось)) сейчас добью этот аддончик и перелопачу те 2)
  2. Ребят надо фильтр присобачить к строке ввода Вот нашел в доках <?xml version="1.0" encoding="UTF-8" ?> <UITextFilter> <ranges> <Item> <minChar>0</minChar> <maxChar>9</maxChar> </Item> </ranges> <isAllowObject>false</isAllowObject> </UITextFilter> Файл создал с названием EditLineTextFilter.(UITextFilter) Как его присоединить? или вообще как навести фильтр?
  3. Понять бы самому что конкретно там не пашет( Ладно это можно и под конец отложить. Теперь главное с текстовой формой разобраться Еще с деланна кнопочка при наведение не загорается( Видимо что-то с прозрачностью надо делать. Но это все украшательства. Сначала хочу понять саму механику работы форм
  4. А как организовать перетаскивание панельки? Смотрю ДПСметр там всего 1 функция на библиотеку с ДНД. а это поидеи и позволяет все перетаскивать. и вот нефига не работает(
  5. Ребяяяяяяяяяяяяяятаааа))))) Я сделал фон на главной панельки)))))
  6. Спасибо) А то я Сетраса уже достал наверное. Никак не пойму как эти бин файлы делать хотя в чек боксе делать нечего тока и понять надо 2 текстуры. А вот с текстовой формой тут паника. Так что обязательно все проштудирую. Такая интересная идейка есть и код то плевенький уже накатал, а вот граф часть хромает(
  7. Вот теперь в принципе с чекбоксом понял логику. а вот с вводом текста видимо чуть позже еще помучаю( очень надо разобраться в этом
  8. Доброго времени суток) Возникло еще 2 вопроса.( 1. Можно ли в аддоне сделать текстовые формы для ввода данных? Просто не встречал аддона с текстовым вводом. И если можно то возникает вопрос как узнать свойство виджета отвечающее за передачу данных 2. Где почитать как создавать кнопки на подобие чекбокса. Пытался разобраться в том чекбоксе что есть. Вроде все понятно. Но где графика под него непосредственно, и что в .bin файлах зашито не знаю как посмотреть( По логике выходит что в bin-файлах и есть графика на кнопку? Просто зажегся еще одной штукой интересной но для реализации надо понять как эти два момента работают(
  9. Каждому свое. Любой аддон это облегчение игрового процесса если уж в корень смотреть. Спорить можно бесконечно. "Готово" нет на Домике потому что там оно по идеи может и нужно кому. Хотя на домике так с голосом в основном. Вот что не включил в аддон хотя лично для меня полезно, но не знаю как для других так это снятие таргета с петов.
  10. Пока нельзя(( Для меня он сложен да и то что там есть мне не нужно. Прогнозировать рост и падение кри можно по игре. Все что нужно мне это строчка с курсом перед глазами.)
  11. Пока просто заложено в коде. так что отключение не делал. нет не выгружает это еще высший пилотаж для меня. Пока цель была убрать таблички всплывающие на экране. Собственно если человек клал достоинство на все ему пофиг что и где нажато. если человек бегает а через каждые 5 секунд начинают кидать проверку то по середине экрана табличка просто отвлекает. В инстансах теперь нельзя выгнать. да и раньше когда выгоняли максимум что могло быть так это на арене символы не приходили. Есть те кто афкают есть те кто врагу сливаются специально ему проигрывая. И ничего сделать нельзя. Самое большое наказание и несправедливость это афкашер ролящий символы на арене. Опять таки если ты у экрана то нажать в состояние, а если положил трубу на клаву то пролетел с роллом и дал чуть больше шанса другим. Но и тут есть но. во-первых арена делится как правило на наша и не наша. где либо толком нехрена нет сундуков либо же на ней нет противника и тупо бегаешь собираешь их. Редко встречаются равные арены или где по домангу жмешь а сундуки другие тырят. И во-вторых кому это нужно и так наставят себе лут менеджеров и прочее (хотя честно я не знаю как он работает в игре. там надо и аддон еще какой-то ставить и настройки сложноваты). Не думал что аддон вызовет столько реакции. По сути просто тыкнулся во что-то свободное не занятое разработчиками. да и вспомнил когда летом усердно ходил на хутор с яром чтоб на кмв накопить что неудобно было когда нужно всего 2 инстанса из всех а приходится или искать их тыкать или все выделять. Увлекшись тема развилась в менеджер из простого выборщика. Я учусь на нем) а не пишу штуку для афкашеров или кого-то еще. и не думаю что он будет пользоваться большим интересом. Критика и предложения это хорошо) Это поставленные задачи которые автор или не догадался ввести или еще не умеет) а это интересно решить головоломку которую не знаешь)
  12. worm

    InstanceManager (free)

    InstanceManager (free) Просмотр файла Аддон выполняет следующие функции: - Снимает выделение с инстансов на которые не хотите ходить (в настройках аддона первый столбец) - Автоматически принимает приглашение на выбранные вами инстансы (в настройках аддона второй столбец) - Добавлена кнопка отказаться от нескольких инстансов если не все выбраны В настройки аддона можно зайти нажав кнопку "Параметры" в окне выбора инстансов или ввести в чат команду /asi Имеется недостаток! При выборе всех инстансов сразу аддон может не успеть среагировать и не снять выделение. Добавил worm Добавлено 04.02.2013 Категория Аддоны  
  13. worm

    InstanceManager (free)

    Версия r8

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

    Аддон выполняет следующие функции: - Снимает выделение с инстансов на которые не хотите ходить (в настройках аддона первый столбец) - Автоматически принимает приглашение на выбранные вами инстансы (в настройках аддона второй столбец) - Добавлена кнопка отказаться от нескольких инстансов если не все выбраны В настройки аддона можно зайти нажав кнопку "Параметры" в окне выбора инстансов или ввести в чат команду /asi Имеется недостаток! При выборе всех инстансов сразу аддон может не успеть среагировать и не снять выделение.
    Бесплатный
  14. KursKri (Курс валюты) Просмотр файла Выводит текущий курс покупки/продажи кристаллов и рассчитывает приблизительное количество которое можете приобрести. Для перемещения надписи включить CapsLock, навести указатель мышь, зажать и перетащить. (т.е. чувствительность к щелчкам мыши только при вкл. CapsLock) Настройка аддона осуществляется редактированием файла Scripts/KursKri.lua: local WorkType = 1 - режим отображение (0-только цена покупки кри; 1-покупка/продажа через мигание надписи) local viewMoney = 0 - формат вывода (0 - золото/серебро/медь; 1 - золото) При создании использовался аддон MyrrhMyrrh Автор: Cleric. Планы: При не необходимости можно сделать кнопку по переключению режимов и формата; расчет при продажи кри в обменник (будет не точно) Все зависит от пожеланий Добавил worm Добавлено 04.02.2013 Категория Аддоны  
  15. worm

    KursKri (Курс валюты)

    Версия 7.0.2

    15 351 раз скачали

    Выводит текущий курс покупки/продажи кристаллов и рассчитывает приблизительное количество которое можете приобрести. Для перемещения надписи включить CapsLock, навести указатель мышь, зажать и перетащить. (т.е. чувствительность к щелчкам мыши только при вкл. CapsLock) Настройка аддона осуществляется редактированием файла Scripts/KursKri.lua: local WorkType = 1 - режим отображение (0-только цена покупки кри; 1-покупка/продажа через мигание надписи) local viewMoney = 0 - формат вывода (0 - золото/серебро/медь; 1 - золото) При создании использовался аддон MyrrhMyrrh Автор: Cleric. Планы: При не необходимости можно сделать кнопку по переключению режимов и формата; расчет при продажи кри в обменник (будет не точно) Все зависит от пожеланий
    Бесплатный
  16. Да больше понять хотелось. вопросы то они еще и с запасом на будущие. интересуют виджеты или виджет на проверку о готовности и приглашения в инстанс. на лут нашел. Вот кстати вопрос если виджет гасить так wt.RollGreedNeed:Show( false ) то он потом ведь снова запустится при следующем запуске события или его надо как-то после гашения активизировать?
  17. Здравствуйте. А есть ли такой аддон чтобы по щелчку на виджите отображалось его название? В Inspect Widgets вроде все отображается но хоть убей не могу найти пару виджетов
  18. Уряя есть много глюков но уже хоть худо бедно работает.. Теперь доработка доработка) Натыкал заплаток. теперь ошибки не выдает)) SelectInstance.rar
  19. Так сопли частично откладываются.) Скачал аддон который все в игре показывает.. перепровязал на сумку появление кнопки. но все таки не нашел как обзывается кнопка с выбором инстансов. создадим отдельно тогда кнопочку. Главное механика понятна
  20. Все дело в том что я и не знаю как посмотреть. Если бы лежало в папке то тыкаешь файлик смотришь ссылки идешь дальше но как быть когда это в игре? там не потыкаешь файлик( wt.ContextStable = W('ContextStable',stateMainForm):GetChildChecked("MainPanel", false ) я понимаю что он смотрит цепочку включения детей. Находит и выводит. Но я не знаю как узнать это имя ('ContextStable'.. Выходит както можно залезть в игру и почитать имя виджетов. Скачал AoTextureViewer_0.6.1 он не пашет. и выходит что я не могу посмотреть имя нужного мне виджета
  21. Спасибо огромное) Теперь понятно) Да пытаюсь понять откуда узнать как называется виджет чтобы именно отловить это действие. Получается если видна конюшня но не видна кнопка показать кнопку. иначе если кнопка видна но не видна конюшня скрыть кнопку. Идея понятно но как например такое реализовать для списка с инстансами? надо wt.ContextStable заменить на что-то(
  22. спасибо) понятно но не совсем) надо это потыкать.
  23. Добрый вечер. возник ряд вопросов. local res = string.find (val, "\\") local ind = string.sub(val,1,res-1) local state = string.sub(val,res+1) mountList[ind] = state == '1' вверху строковые функции В принципе все понятно главное потыкать а вот последняя строка. Понятно что запихивается в массив ключ и значение но причем тут "==1". Как правильно это читается? и еще появление и скрытие кнопки у кормежки выходит реагирует не на событие а на отображение текстур (виджетов) конюшни if wt.ContextStable:IsVisible() and not wt.stableButton:IsVisible() then где\как поглядеть это? название, свойства?
  24. Не знаю есть такое или нет, но вот написал))) совсем простенькое. пока пытаю виджеты) а то этих петов по табу агрится уйма (особенно у импов какие то бесята как вошики бегают). Вроде работает. Хотя может кто и писал такое. Подумал а ведь наверное можно попробовать сделать чтобы не снимало выделение а полностью их игнорировало. Хмм надо проверить будет) UnTargetPet.rar
  25. Спасибо. Со стрингами действительно ооочень путаюсь. До конца так и не понял в чем разница. (как понял string то что мы пишем а WString то что в игре пишут) Со звуком жаль( лет 6-7 назад в одной браузерке сидел. там по просьбе на приват и тд сделали звоночки. Очень удобно. ты чего-нить делаешь. бац написали и ты не пропустишь сообщение) Как писал ранее я не большой любитель аддонов. Стоит по минимуму и то в последнее время поставил т.к. игра развивается. Это отступление к тому что не знаю может даже и есть такой аддон уже. Суть такова. Летом еще как то сказал что хорошо бы разрабы сделали чекбоксики на выбор инстансов. А вот сейчас поскольку и время появилось и научится хотел. поплыл я в эту сторону). По логике уже написал и работает выбор Инстансов. Вроде такого аддона тут не нашел. Но в графической части слабоват еще. Вот и получается что оптимальнее перепаять Автокормежку в этом плане.(( да и заодно присобачить автопринятие на инстанс по выбору. Вот что пока получилось -------------------------------------------------------------------------------- -- GLOBAL Объяввляем глобальные переменные и функции -------------------------------------------------------------------------------- Global( "DB", {} ) -- массив с действиями на Инстансы (снять заявку, без действия) Global( "DBTelep", {} ) -- массив с принятием приглашения на Инстанс (принять, самому решать) Global( "elapsed_counter", 0 ) -- переменная счетчик для принятие приглашения (в сек) Global( "MAX_WAITING_TIME", 15 ) -- переменная через сколько секунд принять приглашение Global( "ReventId", nil ) -- переменная с информацией об Инстансе на которое пришло приглашение -------------------------------------------------------------------------------- -- EVENT HANDLERS Тело с функциями (основное рабочее пространство) -------------------------------------------------------------------------------- -- Функция запускает функцию принятия приглашения в Инстантс function DoneTeleportRequest( eventParams ) -- Выставляем начальное значение таймера когда пришло приглашение (вообще можно по другому наверное сделать но это потом) elapsed_counter = 0 -- Регестрируем (вызываем) функцию принятия приглашения в Инстантс по событию таймера common.RegisterEventHandler( OnEventSecondTimer, "EVENT_SECOND_TIMER" ) -- Переменная с id Инстанса на которое пришло приглашение. (Подругому незнаю как передать его в др функцию) ReventId = eventParams.eventId -- LogInfo( "eventId=", eventParams.eventId,"timeoutMs=", eventParams.timeoutMs ) end -- Функция принятия приглашения в Инстантс function OnEventSecondTimer( eventParams ) -- переменная-счетчик прибавляет 1 каждый раз когда вызывается функция. А вызывается раз в секунду по "EVENT_SECOND_TIMER" elapsed_counter = elapsed_counter + 1 -- критерии по которым должно было сработать автоприглашение (не в группе, не в отряде и счетчик больше установл значения, т.е. дотикал). Временно отключил --if (group.GetMembers() == nil) and (not raid.IsExist()) and (elapsed_counter >= MAX_WAITING_TIME) then -- Временный массивчик с данными (включать или не включать автоприглашение) Вообще можно было стелать как MAX_WAITING_TIME = 90 и просто бы не сработало. DBTelep["Арена смерти"] = 1 DBTelep["Гоблинобол"] = 1 -- Получаем информацию об Инстансе по его id local eventInfo = matchMaking.GetEventInfo( ReventId ) -- userMods.FromWString(eventInfo.name) - Переводим из локализуемого такста в нормальный Название Инстанса для сравнения (точнее для подстановки в массив) -- По ключу (название Инстанса) в массиве смотрим значение и сравниваем его (1 - включить автопринятие) if (DBTelep[userMods.FromWString(eventInfo.name)] == 1) then -- Если счетчик больше MAX_WAITING_TIME то прошло время и срабатывает функция вступления if (elapsed_counter >= MAX_WAITING_TIME) then -- Снимаем регистраци (прекращаем вызывать) функцию принятия приглашения в Инстантс по событию таймера common.UnRegisterEventHandler( OnEventSecondTimer, "EVENT_SECOND_TIMER" ) -- Запускаем функцию принятия приглашения (true - принять, false - отказаться) matchMaking.InstancedEventTeleportReply( true ) end -- Выводим другое если чтобы тормознуть функцию вызываемую "EVENT_SECOND_TIMER" в случае если ненадо автопринятие elseif (DBTelep[userMods.FromWString(eventInfo.name)] == 0) or (DBTelep[userMods.FromWString(eventInfo.name)] == nil) then -- Снимаем регистраци (прекращаем вызывать) функцию принятия приглашения в Инстантс по событию таймера common.UnRegisterEventHandler( OnEventSecondTimer, "EVENT_SECOND_TIMER" ) end --LogInfo( "eventId=", ReventId, "timeoutMs=", eventParams.timeoutMs, "elapsed_counter=", elapsed_counter ) end -------------------------------- -- //////////// -------------------------------- -- Функция выделения нужных Инстансов (точнее снятие выделения с ненужных) function UnSelectInstance() -- Сотрим может ли аватар вообще участвовать в инстанс-ивентах (true - может, false - нет) if matchMaking.CanUseMatchMaking() then -- Включаем получение и отслеживание информации о существующих в игре инстанс-ивентах (true - вкл, false - выкл). Без этого ругается когда список с Инстансами не открыт matchMaking.ListenEvents( true ) -- Смотрим может ли аватар в данный момент в принципе встать в очередь на какой-нибудь инстанс-ивент (true - может, false - нет). Лишняя проверка но лучше перебдеть чем отмываться if matchMaking.CanJoinInstancedEvents() then -- Получаем массив (список) с id существующих инстанс-ивентов. (Для нашего персонажа) local Events = matchMaking.GetEvents() -- Так и не понял как работает но механика следющая: перебирается весь массив пока не закончится. Нам это и нужно for _, eventId in Events do -- Если значение в массиве не пустое т.е. id Инстанса есть то работаем дальше if eventId then -- Смотрим существует ли ещё описание инстанс-ивента с указанным id (true - да, false - нет). Очередная проверка которая может и не нужна if matchMaking.IsEventIdExist( eventId ) then -- Создаем массив с информацией об Инстансе по его id local eventInfo = matchMaking.GetEventInfo( eventId ) -- Временный массивчик с данными (1 - снять галку,2 - ставить галку в первую очередь, 3 - во вторую, 0 - игнорить Но поскольку не пашет то работаем только по 1) DB["Арена смерти"] = 1 DB["Гоблинобол"] = 1 DB["Доминион"] = 0 DB["Дикий хутор"] = 2 DB["Ведьмин яр"] = 3 -- По ключу (название Инстанса) в массиве смотрим значение и сравниваем его (1 - снять галочку с данного Инстанса) if (DB[userMods.FromWString(eventInfo.name)] == 1) then -- Проверяем по информации об Инстансе. Стоит ли Юзер на данный Инстанс (true - да, false - нет). Очередная проверка а то ругается( if (eventInfo.isAvatarJoined == true) then -- Включаем функцию по снятию галочки с конкретного Инстанса matchMaking.LeaveInstancedEventQueue( eventId ) end -- По ключу (название Инстанса) в массиве смотрим значение и сравниваем его (2 - поставить галочку на данный Инстанс) elseif (DB[userMods.FromWString(eventInfo.name)] == 2) then --matchMaking.JoinInstancedEvent( eventId ) -- Вот та Хня из примера по логике должна ставить галочку на нужном Инстансе но не пашет -- По ключу (название Инстанса) в массиве смотрим значение и сравниваем его (3 - поставить галочку на данный Инстанс когда по 2 надоело) Но немного не так все (на бущее м.б.) elseif (DB[userMods.FromWString(eventInfo.name)] == 3) and (matchMaking.IsAvatarJoinedAnyEvent() == false) then --matchMaking.JoinInstancedEvent( eventId ) end end end end end -- А хз зачем. В ругом примере научусь тормозить хотя както надо остановить функцию. --common.UnRegisterEventHandler(UnSelectInstance, "EVENT_MATCH_MAKING_EVENT_QUEUE_REMOVED") end end -------------------------------- -- //////////// -------------------------------- -- Функция вывода информации в Лог-файл function LogInfo( ... ) common.LogInfo( common.GetAddonName(), unpack( GetStringListByArguments( arg ) ) ) end -- Функция преобразования символов для функции вывода информации в Лог-файл function GetStringListByArguments( argList ) local newArgList = {} for i = 1, argList.n do local arg = argList[i] if common.IsWString( arg ) then newArgList[i] = arg else newArgList[i] = tostring( arg ) end end return newArgList end --LuaFullDateTime --local date = common.GetDateTimeFromMs( 123456789012345 ) --LogInfo( "date: ", date.d, ".", date.m, ".", date.y ) -- Функция отсылает данные об аддоне в аддон AddonManager function OnAMMemUsageRequest() userMods.SendEvent( "U_EVENT_ADDON_MEM_USAGE_RESPONSE", { sender = common.GetAddonName(), memUsage = gcinfo() } ) end -------------------------------------------------------------------------------- -- INITIALIZATION Создаем Главную функцию запускающую другие в зависимости от определенных событий в игре -------------------------------------------------------------------------------- function Init() -- Вызываем функцию для работы с аддоном AddonManager common.RegisterEventHandler( OnAMMemUsageRequest, "U_EVENT_ADDON_MEM_USAGE_REQUEST" ) -- Запускаем функцию принятия Приглашения в Инстантс когда возникает событие приглашения common.RegisterEventHandler(DoneTeleportRequest, "EVENT_MATCH_MAKING_EVENT_TELEPORT_REQUEST") -- Запускаем функцию выделения нужных Инстансов (точнее снятие выделения с ненужных) по таймеру --common.RegisterEventHandler(DoneTeleportRequestW, "EVENT_SECOND_TIMER") -- Запускаем функцию выделения нужных Инстансов (точнее снятие выделения с ненужных) по действие когда Инстантс был выделен common.RegisterEventHandler(UnSelectInstance, "EVENT_MATCH_MAKING_EVENT_QUEUE_ADDED") end -------------------------------------------------------------------------------- -- Запускаем функцию с запускалками Init() --------------------------------------------------------------------------------
×
×
  • Создать...

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

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