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

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

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

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

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

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

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

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

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

Подробнее

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

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

Подробнее

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

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

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

GooDByE

Премиум-подписчик
  • Постов

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

  • Посещение

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения GooDByE

  1. Вроде как работает На 3х3 гляну, если что отпишу
  2. @Slashuur Привет. Петля времени, которую использует противник по союзнику откатывает ему умения, хотя это так работать не должно Может что-то сломалось? Или так всегда было?
  3. 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
  4. @SlashuurПривет, да, аддон умер, сейчас гляну пишет что в логи или нет, но просто не реагирует на кнопку
  5. @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"]
  6. Думаю может надо разделить на две кнопки и переключение реализовывать не через перезагрузку аддона а через show
  7. 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")
  8. В общем перепробовал разное но первичную иницализацию пофиксить не смог
  9. Да, я как раз хотел написать что нашёл, проверяю common.RegisterEventHandler(initTalentsWindow, "EVENT_AVATAR_CREATED")
  10. Со старым работает, с новым нет потому что проверка в функции initTalentsWindow на oldTalentsWindow идёт второй и форма туда привязывается
  11. Я пробовал просто внутри скрипта делать автоинициализацию В конце запуская 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 И из-за этого у меня кнопка пытаясь привязаться к старому окну слетает
  12. Заметил что при первичной инициализации игры загружены оба системных аддона В зависимости от настройки нового окна талантов, после полной инициализации выгружается второй системный аддон: Если у нас новое окно талантов включено 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") Но оно даже не срабатывает
  13. Всё верно, кнопка была встроена в системный аддон изначально в старом окне талантов Да, я уже разобрался с логикой и понял ваши мысли Спасибо
×
×
  • Создать...

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

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