Классы
Статы, идеальное соотношение · Умения и вехи, как получить · Души · Сравнение классов
Воин · Жрец · Некр · Лучник · Шаман · Мист · Бард · Инж · Демон
Игровой процесс
Как одеваться · Драконий облик · Наследие Богов · Фарм золота
Прохождения локаций
Мониторинг серверов и редактор аддонов
Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.
Подсказки из игры на вашем сайте
Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.
-
Постов
72 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Магазин
Галерея
Весь контент GooDByE
-
Вроде как работает На 3х3 гляну, если что отпишу
-
Это невозможно исправить?
-
@Slashuur Привет. Петля времени, которую использует противник по союзнику откатывает ему умения, хотя это так работать не должно Может что-то сломалось? Или так всегда было?
-
Error while running the chunk /Mods/Addons/ClassAddonPro/Scripts/mainscript.lua:0: attempt to call field 'GetMana' (a nil value) func: GetMana, field, line: -1, defined: C, line: -1, [C] func: , upvalue, line: 0, defined: Lua, line: 0, /Mods/Addons/ClassAddonPro/Scripts/mainscript.lua func: Init, field, line: 0, defined: Lua, line: 0, /Mods/Addons/ClassAddonPro/Scripts/mainscript.lua func: ?, ?, line: 0, defined: Lua, line: 0, /Mods/Addons/ClassAddonPro/Scripts/mainscript.lua [21:18:01][UserAddon/ClassAddonPro: 1.0.3 (build 1753457289)]Error: Addon [UserAddon/ClassAddonPro]: Event [EVENT_AVATAR_CREATED] (handler [7]) execution failed
-
@SlashuurПривет, да, аддон умер, сейчас гляну пишет что в логи или нет, но просто не реагирует на кнопку
-
@LEM Не работает прерывание [UserAddon/AdvancedStopCasting: 1.6 (build 1745526525)]Error: Reaction [aspect_pressed] (handler [62] from [[37662][WidgetButton]: (UserAddon/AdvancedStopCasting)->mainForm.wtEditor.wtContainer.wt__Border.wt__Content.wtEditorContainerItem.wtStopInAspectHeal, Resource: Mods/Addons/AdvancedStopCasting/Widgets/af9bb18b]) execution failed Error while running the chunk [string "loadstring"]:0: attempt to index field 'wtStopInAspectControl' (a nil value) func: __index, metamethod, line: -1, defined: C, line: -1, [C] func: ?, ?, line: 0, defined: Lua, line: 0, [string "loadstring"]
-
Думаю может надо разделить на две кнопки и переключение реализовывать не через перезагрузку аддона а через show
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
BuildManagerExButton.lua function showBMClick() userMods.SendEvent( "SCRIPT_EVENT_SHOW_BM", {}) end --- заменяет некоторые значения function setPlacement(widget, place) local p = widget:GetPlacementPlain() for k, v in pairs(place) do p[k] = place[k] or v end widget:SetPlacementPlain(p) end function initOldTalentsWindow() local oldTalentsWindow = common.GetAddonMainForm("ContextTalents") if oldTalentsWindow ~= false and oldTalentsWindow ~= nil then local oldTalentsWindow = common.GetAddonMainForm("ContextTalents") oldTalentsWindow:GetChildChecked("Parent", false):AddChild(mainForm) local s = oldTalentsWindow:GetChildChecked("BaseWindow", true):GetPlacementPlain() setPlacement(mainForm, {posX = (s.sizeX - 200)/2, posY = s.sizeY - 65, sizeX = 200, sizeY = 22}) end end function initNewTalentsWindow() local newTalentsWindow = common.GetAddonMainForm("TalentBuilder") if newTalentsWindow ~= false and newTalentsWindow ~= nil then newTalentsWindow:GetChildChecked("TalentsBuilder", false):GetChildChecked("Controls", false):AddChild(mainForm) end end function initTalentsWindow() initOldTalentsWindow() initNewTalentsWindow() end function initButton() local buildManagerExButton = mainForm:GetChildChecked("ButtonShow", false) buildManagerExButton:SetVal("button_label", userMods.ToWString("Билд менеджер")) buildManagerExButton:Show(true) end function reloadButtonOnTalentWindowChange(params) local name = params.name or "" local state = params.state or "" if name == "TalentBuilder" then if state == 3 then common.StateReloadManagedAddon("UserAddon/BuildManagerExButton") end end if name == "ContextTalents" then if state == 3 then common.StateReloadManagedAddon("UserAddon/BuildManagerExButton") end end end function initBuildManagerEx() initTalentsWindow() initButton() common.RegisterReactionHandler(showBMClick, "bild_show_click") end common.RegisterEventHandler(initTalentsWindow, "EVENT_AVATAR_CREATED") initBuildManagerEx() common.RegisterEventHandler(reloadButtonOnTalentWindowChange, "EVENT_ADDON_LOAD_STATE_CHANGED")
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
В общем перепробовал разное но первичную иницализацию пофиксить не смог
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Да, я как раз хотел написать что нашёл, проверяю common.RegisterEventHandler(initTalentsWindow, "EVENT_AVATAR_CREATED")
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Со старым работает, с новым нет потому что проверка в функции initTalentsWindow на oldTalentsWindow идёт второй и форма туда привязывается
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Я пробовал просто внутри скрипта делать автоинициализацию В конце запуская initBuildManagerEx() --- Старт куска старого кода function showBMClick() userMods.SendEvent( "SCRIPT_EVENT_SHOW_BM", {}) end --- заменяет некоторые значения function setPlacement(widget, place) local p = widget:GetPlacementPlain() for k, v in pairs(place) do p[k] = place[k] or v end widget:SetPlacementPlain(p) end --- Конец куска старого кода function initTalentsWindow() local newTalentsWindow = common.GetAddonMainForm("TalentBuilder") if newTalentsWindow ~= false and newTalentsWindow ~= nil then common.LogInfo("common", "newTalentsWindow") newTalentsWindow:GetChildChecked("TalentsBuilder", false):GetChildChecked("Controls", false):AddChild(mainForm) end local oldTalentsWindow = common.GetAddonMainForm("ContextTalents") if oldTalentsWindow ~= false and oldTalentsWindow ~= nil then common.LogInfo("common", "oldTalentsWindow") local oldTalentsWindow = common.GetAddonMainForm("ContextTalents") oldTalentsWindow:GetChildChecked("Parent", false):AddChild(mainForm) local s = oldTalentsWindow:GetChildChecked("BaseWindow", true):GetPlacementPlain() setPlacement(mainForm, {posX = (s.sizeX - 200)/2, posY = s.sizeY - 65, sizeX = 200, sizeY = 22}) end end function addButtonText() local buildManagerExButton = mainForm:GetChildChecked("ButtonShow", false) buildManagerExButton:SetVal("button_label", userMods.ToWString("Билд менеджер")) end function reloadButtonOnTalentWindowChange(params) local name = params.name or "" local state = params.state or "" common.LogInfo("common", name) common.LogInfo("common", common.FormatNumber(state)) if name == "TalentBuilder" then if state == 3 then common.StateReloadManagedAddon("UserAddon/BuildManagerExButton") end end if name == "ContextTalents" then if state == 3 then common.StateReloadManagedAddon("UserAddon/BuildManagerExButton") end end end function initBuildManagerEx() initTalentsWindow() addButtonText() common.RegisterReactionHandler(showBMClick, "bild_show_click") common.RegisterEventHandler(reloadButtonOnTalentWindowChange, "EVENT_ADDON_LOAD_STATE_CHANGED") end initBuildManagerEx() И вот что в логах выходит [14:32:28][UserAddon/BuildManagerExButton: 8 (build 1764431203)]Info: newTalentWindow [14:32:28][UserAddon/BuildManagerExButton: 8 (build 1764431203)]Info: oldTalentWindow [14:32:29][UserAddon/BuildManagerExButton: 8 (build 1764431203)]Info: ContextTalents [14:32:29][UserAddon/BuildManagerExButton: 8 (build 1764431203)]Info: 4 [14:32:29][UserAddon/BuildManagerExButton: 8 (build 1764431203)]Info: ContextTalents [14:32:29][UserAddon/BuildManagerExButton: 8 (build 1764431203)]Info: 1 То есть у нас если опция включена нового окна, выгружается ContextTalents А из-за проверки в initTalentWindow срабатывает инициализация oldTalentWindow И из-за этого у меня кнопка пытаясь привязаться к старому окну слетает
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Заметил что при первичной инициализации игры загружены оба системных аддона В зависимости от настройки нового окна талантов, после полной инициализации выгружается второй системный аддон: Если у нас новое окно талантов включено ContextTalents выгружается Если у нас наоборот TalentBuilder выгружается В таком случае такая инициализация вот так срабатывает одновременно function initTalentWindow() local newTalentWindow = common.GetAddonMainForm("TalentBuilder") if newTalentWindow ~= false and newTalentWindow ~= nil then common.LogInfo("common", "newTalentWindow") end local oldTalentWindow = common.GetAddonMainForm("ContextTalents") if oldTalentWindow ~= false and oldTalentWindow ~= nil then common.LogInfo("common", "oldTalentWindow") end end Как бы пофиксить можно просто так if name == "TalentBuilder" then if state == 3 or state == 4 then common.StateReloadManagedAddon("UserAddon/BuildManagerExButton") end end if name == "ContextTalents" then if state == 3 or state == 4 then common.StateReloadManagedAddon("UserAddon/BuildManagerExButton") end end Но тогда это приводит к двойной перезагрузке UserAddon/BuildManagerExButton при изменении опции нового окна талантов Я попробовал сделать как у вас запустить инициализацию аддона через common.RegisterEventHandler(initTalentWindow, "EVENT_MISSION_INITIALIZED") Но оно даже не срабатывает
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Всё верно, кнопка была встроена в системный аддон изначально в старом окне талантов Да, я уже разобрался с логикой и понял ваши мысли Спасибо
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Мысль понял
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Понял, это просто старый подход Там в целом код так себе, по-хорошему аддон бы переписать)
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Быстрый фикс только для нового окна талантов BuildManagerButton/BuildManagerButton.lua stateMainForm:GetChildChecked("TalentBuilder", false):GetChildChecked("TalentsBuilder", false):GetChildChecked("Controls", false):AddChild(mainForm) Вместо local s = stateMainForm:GetChildChecked("ContextTalents", false):GetChildChecked("BaseWindow", true):GetPlacementPlain() stateMainForm:GetChildChecked("ContextTalents", false):GetChildChecked("Parent", true):AddChild(mainForm) setPlacement(mainForm, {posX = (s.sizeX - 200)/2, posY = s.sizeY - 65, sizeX = 200, sizeY = 22}) BuildManagerEx/Widgets/MainForm.(WidgetForm).xdb Меняем чтобы окно аддона было выше нового окна талантов <Priority>10000</Priority>
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Хм, тогда можно проще, проверку через local wtMainForm = common.GetAddonMainForm( "TalentBuilder" ) сделать Я завтра попробую
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
В старом окне идёт ContextTalents/Parent В новом окне TalentBuilder/TalentsBuilder/Controls, я решил сюда кнопку засунуть Но если делать такую функцию это надо видимо при открытии окна талантов каждый раз заново инициализировать, а то галочку снимут и всё же сломается?
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Там идёт отличие и во вложенности
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Там нет возможности точечно править билд
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Только один момент Расположение перекроет таланты в новом окне
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Для нового окна починил Хочу для старого сделать чтобы сразу и там и там работало
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Хотя может и имеет смысл как раньше смотреть как билд выглядит перед применением Что быстрее чем смотреть билд по ссылке с обычного билд менеджера
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
-
Да, у него привязка к старому интерфейсу В целом сейчас ощущение что аддон с выпуском нового окна талантов устарел Можно пользоваться стандартным чтобы сохранять билды и панели
- 111 ответов
-
- классовое
- квесты и прокачка
-
(и ещё 1 )
C тегом:
