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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

worm

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

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

  • Посещение

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

  1. Версия 4.0.5

    6 331 раз скачали

    Вы всегда увидите тех, кого не слышите. Выводит иконки иконки над: друзьями игнорируемыми учениками/учителем согильдийцами Таким образом аддон выделяет среди толпы тех с кем у вас имеются определенные взаимоотношения. Аддон позволяет мгновенно очистить игнор-лист по нажатию кнопки "Очистить игнор" или автоматически очищать по заполнению до определенного количества. Если указать в настройках "комментарий", то при очистке игнор-листа игроки с таким же комментарием не будут почищены. Опция по очистке может быть полезна так как раньше было ограничение на количество позиций в игнор листе. В настройках аддона можно указать количество дней которое не заходили в игру ученики и аддон таких учеников автоматически выгонит и освободит место для новых. Также в настройках можно указать кого отображать и отображать ли панель со значками во время боя. Дополнительно можно выставить прозрачность панели. Кнопка вызова настроек расположена в окне "друзья/игнор/..." вызываемом по кнопке "Общение"
    Бесплатный
  2. Версия r3.0.1

    1 554 раза скачали

    За вас отказывается от приглашения в гильдию, убирая спам табличек с приглашениями Выводит оповещение в чат с именем пригласившего и названием гильдии (всего 1 раз от конкретного юзера для предотвращения спама) С помощью слеш-команды "/gd" или "/пв" (без ковычек) можно на 20 секунд отключить работу аддона (не надо лезьте в настройки и его отключать оттуда) Приглашающий в гильдию может отправить вам приватное сообщение с текстом "+++" (без ковычек и пробелов) и отключить аддон
    Бесплатный
  3. Завтра проверю на Аренке и выложу В принципе сами можете поправить в файле ..\InstanceManager\Scripts\InstanceManager.lua строка 167 было if eventName == "Арена смерти" then должно быть if eventName == "Арена Смерти" then Буковка "С" должна быть написана кириллицей (русские буквы)
  4. -- Берем пареметры окна local posConverter = widgetsSystem:GetPosConverterParams() -- Делаем масштабирующий коэф для на шаших координат local ScaleX = posConverter.realSizeX/posConverter.fullVirtualSizeX local ScaleY = posConverter.realSizeY/posConverter.fullVirtualSizeY if xx > x then --p.posX = x+dx --p.posX = x-r.x1 p.posX = r.x1-p.sizeX*ScaleX --p.posX = p.sizeX+r.x1 else p.posX = x - dx - p.sizeX --p.posX = x1 - p.sizeX end if yy > y then --p.posY = y+dy p.posY = r.y1 - p.sizeY*ScaleY else --p.posY = y - dy - p.sizeY p.posY = r.y2 - p.sizeY*ScaleY end w:SetPlacementPlain(p) end Нашел решение проблемы. Всетаки можно сделать корректирующие коэффициенты при изменение масштаба)
  5. Нашел ошибку в кнопочках. теперь они светятся) так здорово)) завтра уже буду тестить доп функции) жалко времени совсем мало(
  6. Спасибо. Только вроде в функции они перезаписываются именно с таким выравниваем.( Завтра на работе на свежую голову гляну + начну писать скриншотирование и вывод в файл. там вроде простенько
  7. А что значит align=4 я просто запускаю функцию снова и он поидеи ловит снова центр экрана ширину координату и тд и все пересчитывает. Хех завтра на работе поковыряю ДнД
  8. function wtChain(w, wBase, dx, dy) --LogToChat(dx..":".. dy) local p, r = w:GetPlacementPlain(), wBase:GetRealRect() local xx, yy = getScreenSizeCenter() p.alignX = WIDGET_ALIGN_LOW_ABS p.alignY = WIDGET_ALIGN_LOW_ABS local x, y = (r.x1 + r.x2)*0.5, 0.5*(r.y1 + r.y2) --- центр берем у базы ---LogInfo(x,":",y, " xx:y",xx, ":", yy) if xx > x then --p.posX = x+dx --p.posX = x-r.x1 p.posX = r.x1-p.sizeX --p.posX = p.sizeX+r.x1 else p.posX = x - dx - p.sizeX --p.posX = x1 - p.sizeX end if yy > y then --p.posY = y+dy p.posY = r.y1 - p.sizeY else --p.posY = y - dy - p.sizeY p.posY = r.y1 end w:SetPlacementPlain(p) end А вот такой вопрос. Замучился уже(. Код у розочки взял. Поправил строки некоторые. и по Y при изменение разрешения длины окна все нормально стало Но по Х при изменение экрана зверски всеже прыгает аддон( уж незнаю что делать( Причем если не отрицательное то есть сдвиг вправо то норм работает( Хотя нет тоже глючит. Наверное недостаточно просто брать 1 координату и вычитать другую( Надо еще перемножать на коэф Масшатбирования. Но где его взять. или можно самому как получить математически? я Бы по логике вычислил но при изменение мастаба ширина в цифиркахлюбого элемента остается прежней. соотв нельзя взять что было что стало и поделить( Пробовал обойтись без этого добавить как ребенка свой аддон в системный ContextPlayerTrade:AddChild( MainPanel ) т.е. расширить его и ужу в самом системном отпозиционировать но все расширяется кроме главного окна и он не может двигаться(
  9. Спасибо)) а я туда и ссылку на файл фильтр пихал и сам код )) Ребята спасибо за помощь. Правда трудно понять хотя признаюсь иногда очень туплю и довольно глупые вопросы задаю
  10. Вот я пенек дубовый а ведь точно) string.find вернет позицию и если смешанная строка то придется проверять какая именно позиция. Причем если первыми цифры шли а в конце буква то это еще гемор. а это textEditLine = tonumber( textEditLine ) вернет или цифру или nil а нил мы отрубим. Причем эта штука еще и пробелы обрезает Уряя хоть немного успокойлся. Спасибо вам огромное)))) завтра на работке попробую сделать скриншоты на согласие покупки с опцией включения и еще тоже само только логирование в файл.. И минимум функционала готово будет) Тогда уже подумать можно будет и об панельки с другой стороны торговли)) и о фильтре нормальном Елки Гениально все)) а Кстати чтобы лог файла в собственный аддон шел ведь можно как то сделать? там в доках сказано следующие где это DebugGame и также сказано что в чат выводить может. Но на деле это тупо отсылает в mods.txt. Может что то надо настроить7 или это все отрубили?
  11. Да я и по твоему примеру вводил он писал на "a" тоже самое про функцию а на "b" и "number" что nil -- Функция получения данных из поля ввода "TextLineInput" и кнопки "MathBtn" аддона function GetDataItem() for i = 0, 4 do -- Смотрим Текстовое поле и данные из него загоняем в массив "wtEdit[ i ]" (точнее тут детей строки ввода смотрим) wtEdit[ i ] = mainForm:GetChildChecked( "TextLineInput"..tostring( i ), true ) --textTextLineInput[ i ] = userMods.FromWString( wtEdit[ i ]:GetText() ) -- Тут берем текст из виджета "TextLineInput" который находится в массиве "wtEdit[ i ]" и переводим его из локализованного текста в нормальный local textEditLine = userMods.FromWString( wtEdit[ i ]:GetText() ) --[[ textEditLine = string.match (textEditLine, '%s([0-9])') LogInfo( " textEditLine=", textEditLine ) ]] --[[ local textEditLine = string.gfind (textEditLine, '%s([0-9]*)') --textEditLine = tonumber( textEditLine ) LogInfo( " textEditLine=", textEditLine ) ]] -- Задаем логическую операцию. Если текстовое поле пустое то присваеваем "0" если нет то передаем данные. Это нужно чтобы выполнялись матемаческие операции -- Передаем обработанные данные в массив "textTextLineInput[ i ]" if textEditLine == "" then textTextLineInput[ i ] = 0 else textTextLineInput[ i ] = textEditLine end -- Тут смотри состояние кнопки "MathBtn" (0-умножить сумму на стек или 1-сумма равна стеку) wtMathBtn[ i ] = mainForm:GetChildChecked( "MathBtn"..tostring( i ), true ) stateMathBtn[ i ] = wtMathBtn[ i ]:GetVariant() end -- Запускаем функцию обработки данных. Должна будет считать данные с аддона и с торгового фрейма по операции с кнопки "MathBtn" -- ПОКА тут отключим так как запустим в функции по считке данных с торговой формы --MathItem() end
  12. угу нашел в луа он вывел nil т.е. это не циферки( по аналогии textEditLine = type( textEditLine ) он мне выдал функция. И тут совсем тупой вопрос. как заглянуть в функцию? ведь в фунции есть как минимум 2 черты это те данные что нужно задать и то что она возвращает
  13. Применил local textEditLine = string.gfind (textEditLine, '%s([0-9]*)') LogInfo( " textEditLine=", textEditLine ) и выводит Info: addon TradeManager: 2013-02-17 14:36:14: textEditLine=function: 401C5FD8 Вопрос возник а как посмотрть что это такое? function: 401C5FD8 какое это значение?
  14. .И что же делать?( в принципе пофиг на события вызывающие работу аддона. Пофиг что он по экрану как цветок в проруби болтается. Но если юзер начинает писать буквы вместо текста то аддон естественно не может сложить букву и цифру и начинает спамить. Нет конечно можно овсем извращенно подойти к решению проблемы. Это брать строку смотреть ее длину и поэтапно каждый символ строки перебирать на local resAccept = string.find (val, "0") local resAccept = string.find (val, "1") и если есть хотя бы 1 не nill значение то идти дальше и так по всей строке? но это же извращение
  15. На данный момент вот что имеем TradeManager.rar И это работает при условии что не будут вводить буквы вместо цифр что не принципиально где расположен аддон и что окно торговли на старом месте что работает по таймеру а не по событию начала конца торговли( эти недочеты очень печалят( Никак не могу исправить их. уже все перепробовал перетыкал(
  16. --[[ local ContextPlayerTradeW = ContextPlayerTrade:GetChildChecked( "GoldEditLine", true ) local nameA = ContextPlayerTradeW:GetInitialGlobalClass() wtTextLineInput:SetGlobalClasses( nameA ) local names = {} names[1] = "RedColor" names[2] = "Font20" wtEditLine:SetGlobalClasses( names ) ]] Хотел применить шаблон и опять ругается(( function wtChain(w, wBase, dx, dy) Использовал это. сответственно тут выходит что при изменение экрана на больше меньше. Виджет как ненормальный прыгает по всемуу игровому пространству(
  17. Поскольку не получается фильтр подсоединить хотел хоть отсеять лишнее и опять таки ругается( textEditLine = string.match (textEditLine, '%s([0-9])') LogInfo( " textEditLine=", textEditLine ) И нефига пишет
  18. Спасибо)) помогло немного) А фильтром как Быть? Никто не знает как подключить7(
  19. а еще вопрос. Как можно приклеить свой аддон с стандартному окну в игре? делаю чтото на подобие этого. Т.е. получить координаты окна. и приплюсовал чтото передать в свой аддон -- Получили координаты расположения объекта local placeBuyTrade = ContextPlayerTrade:GetPlacementPlain() -- Считаем новые кординаты для последующего виджета --placeBuyTrade.posX = 40 --placeBuyTrade.posY = 40 -- Получили координаты расположения объекта local place = ContextPlayerTrade:GetPlacementPlain() -- Считаем новые кординаты для последующего виджета place.posX = placeBuyTrade.posX + 40 place.posY = placeBuyTrade.posY + 40 -- Задаем полученные координаты новым виджетам MainPanel:SetPlacementPlain(place) Но изначально окно торговли находится по центру и координаты Х и У у него равны 0 и еще ругается что передаю какие то пустые значения(( Конечно можно статически подогнать к нужному месту но при изменение разрешения или еще по каким либо причинам все съедит наверное(
  20. Ребят помогите с подключением DnD библиотеки . Ведь она отвечает за перемещение по экрану? Есть код подключения в 2х вариациях DnD:Init( 527, mainForm:GetChildChecked( "ListButton", true ), mainForm:GetChildChecked( "ListControl", true ), true ) или MainPanel:DragNDrop( true, 680, nil, true, false ) где function TWidget:DragNDrop( bDraggable, ID, wtMovable, bUseCfg, bLockedToScreenArea, Padding ) if self.Widget then self.bDraggable = bDraggable if ID then DnD:Init( ID, self.Widget, wtMovable, bUseCfg, bLockedToScreenArea, Padding ) else DnD:Enable( self.Widget, bDraggable ) end end Собственно это необходимые данные для передачи function DnD:Init( ID, wtReacting, wtMovable, fUseCfg, fLockedToScreenArea, Padding ) где ID, - произвольный инд номер аддона wtReacting - реакция в виджите на клик мыши wtMovable, - тот виджет что та форма что будет перемещатся и все то что в ней соответственно тоже fUseCfg - просто непонятная херня. все пишут true И я не могу понять в чем проблема если делаю так например привязавшись к кнопки закрытия то работает DnD:Init( 527, mainForm:GetChildChecked( "ButtonCornerCross", true ), mainForm:GetChildChecked( "MainPanel", true ), true ) и это не лучший вариант но если делаю так MainPanel:DragNDrop( true, 680, nil, true, false ) то скорее всего выходит гдето не реагирую на реакцию мышки Вопрос. я не прописал гдето в файле реакцию. или гдето был создан виджет с реакцией или что.? Мне бы хорошо перемещать всю панель зажав мышку на ней а не конкретно в области кнопки. Или гдето была создана прозрачная кнопка под панелью и щелкая по панели срабатывает с нее реакция на мышь?
  21. Так и не понял ничего про фильтр( не подключается(
  22. Ммм сейчас гляну... Но если честно не уверен что пойму. Розочка у тебя немного сложноваты аддоны в игре и в коде запутаться легко( Сетрас очень помог. много объяснил. Почти все готово. Осталось только фильтр этот сделать. и понять как Библиотеку днд использовать чтобы перемещать. и еще понять точнее это понятно что при наведение мыши реакция включает текстуру с прозрачностью и создается эффект свечения но непонятно где ошибка. Вот но самое главное фильтр.( Вообще столько интересных знаний появилось)) сейчас добью этот аддончик и перелопачу те 2)
  23. Ребят надо фильтр присобачить к строке ввода Вот нашел в доках <?xml version="1.0" encoding="UTF-8" ?> <UITextFilter> <ranges> <Item> <minChar>0</minChar> <maxChar>9</maxChar> </Item> </ranges> <isAllowObject>false</isAllowObject> </UITextFilter> Файл создал с названием EditLineTextFilter.(UITextFilter) Как его присоединить? или вообще как навести фильтр?
×
×
  • Создать...

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

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