Кому интересно, чтобы фильтр у классового тренера запоминал своё состояние,
ссылка на готовый аддон: https://disk.yandex.ru/d/WOYchZma909CfA
Как устанавливать
- выделяете текст ссылки и выбираете пункт “Перейти по ссылке”;
- в открывшемся окне жмёте кнопку “Скачать”;
- по окончании загрузки в браузере выбираете пункт “Показать в папке”, после чего должно открыться окно проводника с папкой, куда браузер скачал архив;
4. распаковываете архив в папку c WoW;
Путь к папке имеет вид %World_of_Warcraft%\%client_type%\Interface\AddOns
, где
a) %World_of_Warcraft%
- общая папка для всех типов WoW;
б) %client_type%
- папка конкретного типа WoW:
_classic_
- для Катаклизм классик_classic_era_
- для Ваниллы/Эры/Хардкора_retail_
- для современного клиента
4.1 распаковка, если установлен WinRar
- перенесите архив в папку
%World_of_Warcraft%\%client_type%\Interface\AddOns
, кликните по нему правой кнопкой мыши для появления контекстного меню - в появившемся меню выберите пункт “Извлечь в текущую папку”
4.2 распаковка, если установлен 7-Zip
- перенесите архив в папку
%World_of_Warcraft%\%client_type%\Interface\AddOns
, кликните по нему правой кнопкой мыши для появления контекстного меню - в появившемся меню выберите подменю “7-Zip”
- в подменю выберите пункт “Распаковать здесь”
4.3 если для распаковки использовать проводник Windows
- кликните по скачанному архиву правой кнопкой мыши для появления контекстного меню
- в появившемся меню выберите пункт “Извлечь всё…”
- в появившемся окне жмите кнопку “Обзор…”
- в появившемся окне переходите в папку
%World_of_Warcraft%\%client_type%\Interface\AddOns
и жмёте кнопку “Выбор папки” - после того, как окно с выбором папки закроется, жмите кнопку “Извлечь”
Кому не интересно качать готовое, а интересно `сделать самому`
- создайте в папке
%WOW%\_classic_era\Interface\AddOns
новую папку и переименуйте её вFixBlizzardTrainerFilter
- перейдите в папку
FixBlizzardTrainerFilter
- создайте новый текстовой файл и назовите его
FixBlizzardTrainerFilter.toc
со следующим содержимым:
## Interface: 11505
## Title: FixBlizzardTrainerFilter
## Notes: Fix for Blizzard ClassTrainerFrame.FilterDropdown state saving.
## Notes-ruRU: Фикс для запоминания состояния фильтра классового тренера.
## Author: Мимоцели@Хроми
## Dependencies: Blizzard_TrainerUI
## SavedVariables: FixBlizzardTrainerFilter_Vars
FixBlizzardTrainerFilter.xml
- создайте новый текстовой файл и назовите его
FixBlizzardTrainerFilter.xml
со следующим содержимым:
<Ui>
<Script file="FixBlizzardTrainerFilter.lua"/>
<Frame name="FixBlizzardTrainerFilter_Frame">
<Scripts>
<OnLoad function="FixBlizzardTrainerFilter_Frame_OnLoad"/>
<OnEvent function="FixBlizzardTrainerFilter_Frame_OnEvent"/>
</Scripts>
</Frame>
</Ui>
- создайте новый текстовой файл и назовите его
FixBlizzardTrainerFilter.lua
со следующим содержимым:
local vars
-----------------------------------------------------------------------------
FixBlizzardTrainerFilter_Frame_OnEvent=function(self,event,...)
if type(FixBlizzardTrainerFilter_Vars)~="table" then FixBlizzardTrainerFilter_Vars={} end
vars=FixBlizzardTrainerFilter_Vars
-- load defaults (1st load after install addon or after delete saved variables)
if type(vars.available)=="nil" then vars.available=true end
if type(vars.unavailable)=="nil" then vars.unavailable=true end
if type(vars.used)=="nil" then vars.used=false end
-- apply saved values
TRAINER_FILTER_AVAILABLE_BOOL =vars.available
TRAINER_FILTER_UNAVAILABLE_BOOL=vars.unavailable
TRAINER_FILTER_USED_BOOL =vars.used
-- set post-hook for filter changing function
hooksecurefunc("SetTrainerServiceTypeFilter",function(entry,value)
vars[entry]=value
if entry=="unavailable" then TRAINER_FILTER_UNAVAILABLE_BOOL=value
elseif entry=="available" then TRAINER_FILTER_AVAILABLE_BOOL=value
elseif entry=="used" then TRAINER_FILTER_USED_BOOL=value
end
end)
end
-----------------------------------------------------------------------------
FixBlizzardTrainerFilter_Frame_OnLoad=function(self) self:RegisterEvent("VARIABLES_LOADED") end
ВАЖНО! Файлы необходимо сохранять в кодировке UTF-8. (Я для этой цели использую AkelPad).
Если для создания файлов используется проводник Windows, то для правильного задания имени файла в проводнике должно быть включено отображение расширений файлов (файлы необходимо переименовывать вместе с расширениями, иначе работать не будет).
UPD: фиксанул косячок в пост-хуке, из-за которого изменения сохранялись только если сразу выйти из игры (или перезагрузить интерфейс) после изменения фильтра.
UPD: Добавил ссылку на готовый аддон, остальное убрал под кат.