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

Дайджест за июль-сентябрь

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

Сентябрь Август Июль

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

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

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

Бот статистики для Telegram

Удобная аналитика в телефоне.

Подробнее

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

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

Подробнее

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

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

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

icreator

Пользователь
  • Постов

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

  • Посещение

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

  1. ну я и персонажами 4 ур им пользуюсь.. такая ошибка говорит о том, что в данный момент окно аукциона закрытое - то есть его нету - некуда выставлять лоты короче.
  2. для отладки и просто для других целей - как сделать вывод в окно чата. создаем 2 функции Code: ------------------------------------------------------------------ ---- output in Chat. created by icreator(EDS) 2011/01/23 --- initial ref --- Chat...Chat local wtChat = nil local chatRows = 0 --- for clear buffer after show messages function LogToChat(message, color, fontSize) if not wtChat and not errMess.Chat then ---- если окно еще не искали и ошибки при этом не было. а если уже ошибка была то не искать --- найдем окно чата --- Chat..Chat local w w = stateMainForm:GetChildUnchecked("Chat", false) if not w then --- главня форма не найдена - найден по ребенку w = stateMainForm:GetChildUnchecked("Chat", true) else w = w:GetChildUnchecked("Chat", true) end wtChat = w end if not wtChat or not wtChat.PushFrontValuedText then if not errMess.Chat then errMess.Chat = "can't find Chat window" LogError(errMess.Chat) end return end local valuedText = common.CreateValuedText() --- fontname=\"AllodsWest\" local format = "<body alignx='left' fontname='AllodsSystem' fontsize='"..(fontSize or 14) format = format.."' shadow='1' ><rs class='color'><r name='text'/></rs></body>" valuedText:SetFormat(userMods.ToWString(format)) if color then valuedText:SetClassVal( "color", color ) else valuedText:SetClassVal( "color", "LogColorYellow" ) end if not common.IsWString( message ) then message = userMods.ToWString(message) end ---message = ToWS(chatRows.. ":".. FromWS(message)) valuedText:SetVal( "text", message ) ---wtChat:PopBack() --- ++ chatRows = chatRows + 1 wtChat:PushFrontValuedText( valuedText ) ---wtChat:PushFrontRawText( message ) --- текст не видно (( end --- call by "EVENT_SECOND_TIMER" - for clear messages from chat function ClearChat( size ) for i=1, size or math.ceil( chatRows / 30 ) + 1 do if chatRows < 1 then break end chatRows = chatRows - 1 wtChat:PopBack() end end ------------------------------------------------------------------------------------ вызов для вывода 1 строчки делаем так: Code: LogToChat({ text = "Привки ВСЕМ!", color = "LogColorGreen" }) а вот для того чтобы потом очистить окно чата от этих строчек делаем вызов по таймеру: Code: local delay = 20function OnEventSecondTimer( params ) --- очистить то что было в чат послано, чтобы не раздувать размер массива строк в окне чата - иначе он тормозит жутко потом if delay< 0 then ClearChat() else delay = delay - 1 end end тогда чат не будет тормозить из-за того что массив его строчек раздувается до бесконечности
  3. добавила масштабирование ВСЕХ элементов интерфейса - будьте осторожны ))
  4. и вызов: Code: wtScale(stateMainForm, 0.7, 0.8, true) уменьшит ВСЕ элементы системного интерфейса!!!! я так себе в TargetsManager сделала! однако как я заметила все текстуры, иконки и картинки, вставленные через Code: <BackLayer href="w.(WidgetLayerTiledTexture).xdb#xpointer(/WidgetLayerTiledTexture)" /> не корректно отображаются - короче они не отрегулировались. кто-нибудь знает почему? Может быть надо все делать через: Code: <BackLayer href="w.(WidgetLayerSimpleTexture).xdb#xpointer(/WidgetLayerSimpleTexture)" /> а как рамку у поля ввода сделать тогда правильно? которые у меня в AucEDSman есть
  5. вот с помощью подпрограмм можно все элементы интерфейса посжимать/переместить Code: function wtResize( w, dX, dY ) local place = w:GetPlacementPlain() place.sizeX = place.sizeX + dX place.sizeY = place.sizeY + dY w:SetPlacementPlain(place) end function wtScale( w, scaleX, scaleY, andChildrens ) local place = w:GetPlacementPlain() place.posX = math.ceil(place.posX * scaleX) place.sizeX = math.ceil(place.sizeX * scaleX) place.highPosX = math.ceil(place.highPosX * scaleX) place.posY = math.ceil(place.posY * scaleY) place.sizeY = math.ceil(place.sizeY * scaleY) place.highPosY = math.ceil(place.highPosY * scaleY) w:SetPlacementPlain(place) if andChildrens then --- всех детишек тоже for _, wCh in w:GetNamedChildren() do wtScale( wCh, scaleX, scaleY, andChildrens ) end end end function wtMove( w, shiftX, shiftY, highShiftX, highShiftY ) local place = w:GetPlacementPlain() place.posX = place.posX + shiftX place.posY = place.posY + shiftY if highShiftX then place.highPosX = place.highPosX + highShiftX end if highShiftY then place.highPosY = place.highPosY + highShiftY end w:SetPlacementPlain(place) end
  6. убрана ошибка выставления лота с другим количеством (когда аддон работал и вы еще докупили товар из ЛР) и добавлен цвет редкости вещей в окошке сообщений
  7. вот так можно выровнять полоску здоровья: 1й вариант: HPplace.alignX = 2 --- по центру 2й вариант: HPplace.alignX = 0 --- влево 3й вариант: HPplace.alignX = 1 --- вправо тоже самое и для маны/энергииЖ MPplace.alignX = ...
  8. Code: <body alignx="left" outline="1" fontsize="16" fontname="AllodsSystem"><rs class="colorcode"><r name="value"/></rs></body> а как из аддона поменять фонт? я смутно понимаю что с помощью ValuedText()
  9. ну так надо по этим событиям рассчитывать все а не по первому-последнему удару
  10. есть у кого-нибудь примеры по работе с мететаблицами??
  11. нет - код нормальный но логика ненормальная дело в том что в такой системе как клиент-сервер все надо строить на событиях - а событие OnMailboxActivated() - не дает факта о том что получен список. короче говоря - окно почты хоть и открыто, но список писем еще не получен попробуйте эти события: EVENT_MAILS_CHANGED EVENT_MAILBOX_CHANGED
  12. в общем, чтобы вставить иконки целей для группы - пришлось раздвинуть иконки членов группы - поэтому окно чата советую переместить в правую строну, это можно настраивать в config.txt Code: PS.sysGSHIFT_Y = 88 --- изначально было 68 выглядит это так:
  13. УРА! я смогла подменить стандартные виджеты своим! Code: --- найдем виджет системного аддона local wForm = stateMainForm:GetChildChecked("RollGreedNeed", true) ---getAllChildrensOfWidget("rgn",w) ---rgn:MainPanel ---:MainPanel:RGNPanel02 ---:MainPanel:RGNPanel02:ItemIcon02 ---:MainPanel:RGNPanel02:ItemName02 ---:MainPanel:RGNPanel02:ButtonPass02 ---:MainPanel:RGNPanel02:ButtonNeed02 ---:MainPanel:RGNPanel02:ButtonGreed02 ---:MainPanel:RGNPanel02:Timebar02 local ws = wForm:GetChildChecked("MainPanel", false) ------ set.text = set.widget:GetChildChecked( "ItemName" .. string.format ( "%02d", index ), false ) ------ self.panels [ id ] .text:SetVal( "item_name", itemInfo.name ) local index = 1 local name = "ItemName" .. string.format ( "%02d", index ) --- найдем такой виджет внутри local wItem = wForm:GetChildChecked( name, true ) --- возьмем его родителя local wtParent = wItem:GetParent() --- уничтожим виджет wItem:DestroyWidget() --- возьмем описание с нашего виджета local DescEL = wtInput1:GetWidgetDesc() --- запомним описание едит-лайн --- создадим новый ----stateMainForm:CreateWidgetByDesc( DescEL ):SetName( name ) mainForm:CreateWidgetByDesc( DescEL ):SetName( name ) local wNew = mainForm:GetChildChecked( name, false ) ---- присоединим его кродителю wtParent:AddChild( wNew ) --- выведем инфо об объекте и убедимся что он изменился exObj("new ItemName", wtParent:GetChildChecked( name, false ) ) exObj - моя библиотечная функция
  14. да я все же исхитрилась - там идет сдвиг от центра либо на +-69 либо +-128 - приходится просто масштабировать этот сдвиг
  15. пыталась разнести панельки группы так чтобы меж ними увеличить расстояние - получилось успешно, но вот панельки баффов - нет ((( там какйто дурацкий алгоритм выденения панельки под бафы согрупника - номер согрупника и номер панельки постоянно меняются (( вот код для разноса панелек согрупников Code: local wtPlates = stateMainForm:GetChildChecked("Plates", false) local wtParty = wtPlates:GetChildChecked("Party", false) wtParty:Show(true) local shift = 20 local p = wtParty:GetPlacementPlain() --- изначально там было: --- exObj("p", p) ---.alignY = 1{number} ---.sizingY = 0{number} ---.highPosY = 35{number} ---.sizeX = 220{number} ---.sizeY = 345{number} ---.alignX = 0{number} ---.posX = 10{number} ---.sizingX = 0{number} ---.posY = 0{number} ---.highPosX = 0{number} --- делаем выравнивание по вехнему краю и смещаем и делаем шире чтобы влезли все панельки группы p.sizeY = 325 + 5*shift p.alignY = 0 p.highPosY = 0 p.posY = 310 wtParty:SetPlacementPlain(p) --- теперь раздвинем сами панельки согрупников for i = 1, 5 do local wtMember = wtParty:GetChildChecked("Member0".. i, false) ---exObj("place"..i, wtMember:GetPlacementPlain() ) local p = wtMember:GetPlacementPlain() p.alignY = 0 p.highPosY = 0 p.posY = (i-1)*(68+shift) --- изначально сдвиг был 68 wtMember:SetPlacementPlain(p) wtMember:Show(true) end а вот в панельках бафов бардак (( Code: local w = stateMainForm:GetChildChecked("BuffInfoParty", false) ---w:Show(true) local p = w:GetPlacementPlain() ---exObj("buff place", p ) ---Info: addon TargetManager(EDS): buff place.alignY = 0{number} ---Info: addon TargetManager(EDS): buff place.sizingY = 0{number} ---Info: addon TargetManager(EDS): buff place.highPosY = 0{number} ---Info: addon TargetManager(EDS): buff place.sizeX = 200{number} ---Info: addon TargetManager(EDS): buff place.sizeY = 360{number} ---Info: addon TargetManager(EDS): buff place.alignX = 0{number} ---Info: addon TargetManager(EDS): buff place.posX = 232{number} ---Info: addon TargetManager(EDS): buff place.sizingX = 0{number} ---Info: addon TargetManager(EDS): buff place.posY = 320{number} ---Info: addon TargetManager(EDS): buff place.highPosX = 0{number} p.sizeY = 310 + 5*shift p.posY = 300 p.alignY = 0 p.highPosY = 0 w:SetPlacementPlain(p) ---exObj("buff party names", w:GetNamedChildren() ) for i=0,4 do local wtMember = w:GetNamedChildren() local p = wtMember:GetPlacementPlain() exObj("buff ["..i.."] p", p) --- тут у них каждый элемент по своему сдинут и не по списку номеров p.posY = (i-1)*(68+shift) wtMember:SetPlacementPlain(p) wtMember:Show(true) end на самом деле каждая панелька каждый раз меняет свои align например так: Code: Info: addon TargetManager(EDS): change buff [1] p.alignY = 2{number}Info: addon TargetManager(EDS): change buff [1] p.sizingY = 0{number} Info: addon TargetManager(EDS): change buff [1] p.highPosY = 0{number} Info: addon TargetManager(EDS): change buff [1] p.sizeX = 200{number} Info: addon TargetManager(EDS): change buff [1] p.sizeY = 55.599987030029{number} Info: addon TargetManager(EDS): change buff [1] p.alignX = 3{number} Info: addon TargetManager(EDS): change buff [1] p.posX = 0{number} Info: addon TargetManager(EDS): change buff [1] p.sizingX = 0{number} Info: addon TargetManager(EDS): change buff [1] p.posY = -69{number} Info: addon TargetManager(EDS): change buff [1] p.highPosX = 0{number} при изменении группы ее положение тут же меняется и она уже отображет бафы другого согрупника: Code: Info: addon TargetManager(EDS): change buff [1] p.alignY = 2{number}Info: addon TargetManager(EDS): change buff [1] p.sizingY = 0{number} Info: addon TargetManager(EDS): change buff [1] p.highPosY = 0{number} Info: addon TargetManager(EDS): change buff [1] p.sizeX = 200{number} Info: addon TargetManager(EDS): change buff [1] p.sizeY = 55.599987030029{number} Info: addon TargetManager(EDS): change buff [1] p.alignX = 3{number} Info: addon TargetManager(EDS): change buff [1] p.posX = 0{number} Info: addon TargetManager(EDS): change buff [1] p.sizingX = 0{number} Info: addon TargetManager(EDS): change buff [1] p.posY = -138{number} Info: addon TargetManager(EDS): change buff [1] p.highPosX = 0{number} как быть не знаю
  16. <log_dark_white><r name='value'/></log_dark_white> <tip_green><r name='value'/></tip_green> вот что я нашла в файле user.cfg table_begin ScriptLocal_chat table_begin data table_begin colors Emotes = l"LogColorOrange" MobSay = l"LogColorWhite" MobWhisper = l"LogColorMagenta" ask = l"LogColorWhite" guild = l"LogColorLightGreen" notice = l"LogColorYellow" officer = l"LogColorGreen" party = l"LogColorBlue" psionic = l"LogColorGold" raid = l"LogColorOrange" say = l"LogColorWhite" spouse = l"LogColorPink" tell = l"LogColorMagenta" world = l"LogColorGold" yellzone = l"LogColorCian" zone = l"LogColorBrown" table_end colors
  17. посмотреть все вложенные можно так: Code: function getAllChildrensOfWidget(tab,widget) local childrens = widget:GetNamedChildren() for _, w in childrens do local tab1 = tab .. ":" .. w:GetName() LogInfo (tab1) getAllChildrensOfWidget(tab1,w) end end
  18. большое спасибо за находку! но не все так гладко. например виджет аукциона. например я его нахожу так: Code: Global( "wtSysAuction", nil )... local childrens = stateMainForm:GetNamedChildren() for _, w in childrens do local name = w:GetName() if name == "ContextAuction" then wtSysAuction = w LogInfo(name," enabled:",w:IsEnabled(), " visible:",w:IsVisible() ) ---w:Enable(true) ---w:Show(true) else LogInfo(name ) end end но метод Show не работает пока я ручками не подойду к НПС и не открою аукцион через диалог. После того как аукцион открыт - w:Show(true/false) работает правильно - показывает или скрывает окно. а я хотела бы без общения с НПС открыть окно аукциона автомтически - как только мой персонаж встал рядом с аукционом. как это сделать? и почему окно аукциона не показывается с помощью :Show(true)?
  19. Quote: . АХЗ. Сколько было ударов, время боя, нанесенный урон, когда нанесен 1-й и последний удары(от начала боя)? В Дарке, насколько я его понимаю, тоже время должно считаться по 1-му/последнему ударам вряд ли - по-моему есть события и проверки что персонаж находится в бою - иначе как крестик на портрете рисуется??
  20. вот у меня идея релизовалась: делать конфиг файлы у аддона. в папке с аддоном создаем файл config.txt и пишем туда начальную инициализацию, например: Code: --- initial config--- smart params smart.on = true --- on|off smart.wcc = GREED --- WrongCharacterClass smart.ll = GREED --- LowLevel smart.lln = 3 --- LowLevel different number timeOffCoeff = 0.8 --- коэффициент авто выбора на Можно если вы АФК затем в подпапке /Scripts (там где у нас все скрипты лежат) создаем Globals.lua и объявляем там все переменные: Code: Global( "PASS", CHOICE_GREED_NEED_PASS ) Global( "GREED", CHOICE_GREED_NEED_GREED ) Global( "NEED", CHOICE_GREED_NEED_NEED ) ----- Global( "smart", {} ) Global( "timeOffCoeff", 0.8 ) затем в основном файле аддона AddonDesc.(UIAddon).xdb вставляем: Code: <ScriptFileRefs> ... <Item href="Scripts/Globals.lua" /> <Item href="config.txt" /> ...
  21. видимо да - других то функций нету... или как можно реализовать растяжение окошка мышкой? - что-то типа LibDND
  22. Resize - как правильно делать кто знает?
  23. да нет - точно так же, как выше в сообщении - если есть первый элемент значит ЛОЖЬ
  24. icreator

    TargetsManager

    TargetsManager Просмотр файла Manage your targets (assist). Shows enemies which targets to you, targets of your party, etc. Управляет вашими целями. Показывает врагов рядом, элитных мобов рядом, совершает автовыбор цели, врагов, которые бьют вас или ваших согрупников , цели вашей группы и многое другое. ВСЕ НАСТРОЙКИ делаются через меню! Вызвать меню можно через AddonsMenu Описание интерфейса Описание настроек аддона EMOTES - ЭМОЦИИ- настройки и управление целями Если у вас появится "рекомендованная цель" то она будет положена в панель ta (Target Assist - Цели Подмоги) Прочие возможности: ++авто-поиск элитных мобов - мобы метятся метками и на вашем персонаже появляется метка, говорящая что рядом есть элитные мобы. Параметр: /tm EliteFind=ON|number|OFF /**ON|number /** - выключить поиск элитных мобов - можно отключить поиск элитных мобов если вы в инстанте /tm EliteFind=2 --- искать элитных мобов с качеством 2 и выше ( а =-3 - искать ниже качества 3) /**3 - искать всех у которых элитность 3 и выше ++авто-поиск указанных юнитов - поиск задается по маске в названии юнита - найденные юниты выделяются метками, а на вашем персонаже тоже появляется метка, говорящая о том что рядом есть найденные юниты. "/??MASK" - команда начала поиска учитывается регистр букв. MASK - маска поиска в строке для языка Lua. Тоесть поиск будет по всем именам, подходящих на маску *MASK* Для того чтобы искать всех - вводим точку "/??" - команда прекращения поиска ++авто-поиск указанных предметов (устройств ) - например кристаллов для вехи по квестам Путь... - поиск задается по маске в названии предмета - найденные предметы выделяются метками, а на вашем персонаже тоже появляется метка, говорящая о том что рядом есть найденные предметы. "/!!MASK" - команда начала поиска учитывается регистр букв. MASK - маска поиска в строке для языка Lua. Например что бы отображало все устройства в округе пишем так: /!!. "/!!" - команда прекращения поиска Примеры: /??егунов - для поиска Б[егунов]а /??киталец --- для поиска С[китальц]ев во времени на Кирахе /!!азурит -- для поиска камней Л[азурит] показывает элитных мобов вокруг Вас (r31) - заносит их в мемо панель и если у вас нет цели и включен режим автоцель - берет сразу в цель его. показывает и дружественные существа, взявшие вас в цель - в отдельной панельке, положение и размеры которой можно настроить в config.txt Добавлена новая панелька - память целей (Targets memory Board), имя для параметров tb. соответственно в confige.txt добавлены новые параметры. Добавить цель на панель памяти можно правым кликом мышки на панельки любой цели. Удаление - тоже по нажатию правой мышки. Цели в панели памяти запоминаются по имени - даже если цель не существует - она сохраняется в памяти и при появлении такого юнита вновь - будет обновлена - так что ее можно выбрать своей целью по нажатию левой кнопки мышки. Очень удобно на Астральном Противостоянии или Арене Смерти. Так же удобно если вы охотитесь на определенного моба - заносите его имя в панель памяти и если он не затенен - значит моб рядом - смело его выделяйте в цель нажав левой мышкой на иконке Автоматическое принятие в рейд: если вам в приват напишут 3 плюса и вы можете принимать игроков в рейд, то аддон их примет на автомате: +++ строка символов задается параметром: /tm messInvRaid=... или в панели настроек Команды из чата. (см. описание настроек) Можно настраивать все параметры командами из чата: "/tm" или "/tm filter" - выводит в чат список фильтра по гильдиям "/tm clear" - очистить панель памяти "/tm load" - загрузить конфигурацию "/tm save" - сохранить текущую конфигурацию "/tm clearfilter" или "/tm cf"- очистить фильтр Гильдий так же можно изменить любой параметр, формат команды такой: "/tm list" - вывести текущую конфигурацию в чат и в логфайл mods.txt "/tm reset" - очистка конфигурации и сохранение пустой конфигурации. При следующем перезапуске аддона все настройки будут взяты из config.txt /tm par1Name=Value1 par2Name=Value2 То есть за раз можно изменить несколько параметров. Например так: /tm tbROWS=0 emMoveEffect=OFF Эта команда отменит показ мемо панели и отменит анимацию с вылетом панелек врагов, целящихся в меня. Однако чтобы мемо панельки перестали показываться надо перегрузить персонажа. Теперь аддон правильно показывает врагов и на Тающем Острове Появился автоматический режим поиска врагов вокруг вас!!! Он включен по умолчанию. (r24)Теперь аддон сам выбирает Вам новую цель из списков tm, tb, em - заменяя работу аддона EnemyBehind (теперь он вам не нужен). Если у Вас нет цели то аддон сам ее выберет. [r24] теперь можно фильтровать персонажей, попадающих автоматически в мемо-панель, по названиям их Гильдий. Есть фильтры "включающие" и "исключающие" На ТО часто есть ГИ друзья, а есть ГИ враги. Если в фильтрах указаны включающие фильтры то, в мемо панель будут попадать персонажи, чьи Гильдии указаны в этих фильтрах. Если заданы исключающие фильтры то, в мемо панель будут все персонажи, которые не являются членами этих Гильдий. По умолчанию, создается исключающий фильтр с названием ваше Гильдии. Редактировать списки фильтров можно мышкой: Shift + левый клик мышки на панельке цели - добавит название ГИ в список включающих фильтров. Shift + правый клик мышки - удалит название ГИ из списка включающих фильтров. Control + левый клик мышки на панельке цели - добавит название ГИ в список исключающих фильтров. Control + правый клик мышки - удалит название ГИ из списка исключающих фильтров. Любое изменение в списках фильтров будет выводиться в чат желтым цветом. Команды для фильров из чата: "/tm" или "/tm filter" - выводит список Гильдий в фильтре "/tm cf" или "/tm clearfilter" - очищает фильтр панель настроек (сет-панель) ++включить/выключить автоматический режим заполнения мемо панели ++очистить мемо панель так же теперь можно включить выключить заданный тип панелек включить/выключить режим DnD установить число столбцов, колонок Описание есть в теме рядом. Статы персонажей - при выборе цели показывает окошко со статами перса или при наведении мышки на минипанельки игроков Настраивается это вобщих настройках - можно отключить изменить сдвинуть панель для основной цели Для минипанелек - у каждого вида панели своя настройка версия 130 - добавлены "быстрые клавиши" - SHORTCUTS Если вы пользуетесь функцией Catch (поймать по шаблону имени), то сообщение будет что кто-то пойман выдано на экран - при установленном аддоне RaidComm добавлена новая панель: "SHORT PANEL" - в нее записываются юниты вокруг вас в зависимости от категории: ep = "Enemy Players", qn = "Quest mobs", en = "Enemy mobs", nn = "Neutral mobs", np = "Neutral Players", fp = "Friend Players", расположить каждую категорию на этой панели можно как угодно - опять же через меню настроек, там же её можно и отключить всю либо по частям (задать OFF) Еще можно настроить так что панель будет включаться выключаться по нажатию клавиши (а не мышкой) на панели быстрых клавиш - для этого нужно установить аддон EnhancedActionPanel r26 и настроить кнопку через меню SHORTCUTS (см. видео и описание) Добавил cristimirt Добавлено 15.01.2011 Категория Аддоны
×
×
  • Создать...

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

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