Доброго времени суток, друзья!
Если вы — как и я — всерьёз увлечены World of Warcraft, то пребывание в мире игры отнимает у вас огромное количество времени. Различные игровые аспекты, будь то битва с боссами в Цитадели Ледяной Короны или же схватка на БГ, должны быть максимально удобными и понятными, дабы не отнимать наше время в попытках понять, что же и где находится. Безусловно, многие люди давно привыкли к интерфейсу игры по-умолчанию, или же заменяют стандартные панели действия на Bartender 4, позволяющий легко биндить умения на нужные нам клавиши. Но если вам, как и мне, хочется полного преображения интерфейса — без использования специализированных сборок не обойтись. Об одной такой сегодня и пойдёт речь.
TukUI, заботливо размещённый на wowroad, хорош абсолютно во всех аспектах, однако, требует изрядного допиливания, дабы все элементы стандартного интерфейса Blizzard, равно как и наши аддоны, выглядели одинаково, не выбиваясь из общего стиля. Поиск в Интернете по данной теме не выдаёт ничего вразумительного и цельного, поэтому я и решился на написание данного гайда, выйдя из многолетнего режима read only.
Изучаем основы непривычного интерфейса.
Итак. Что же нам нужно знать? TukUI написан на LUA — скриптовом языке программирования, с понятным — даже новичку! — синтаксисом, и, грубо говоря, представляет собой огромное количество конфигурационных файлов, объединённых в одном мастер-конфиге. Подобная модульная схема позволяет без проблем редактировать тот или иной элемент, не роясь в сотнях тысяч строках кода, в поисках заветной переменной.
Код HTML:Если вам хочется быстро разобраться, что это за зверь такой, то примеры, сниппеты и т.д. по ссылке: http://tylerneylon.com/a/learn-lua/Скрытый текст
Едва установив TukUI, пользователь попадает в не совсем привычную ему среду — волноваться не нужно, через короткий промежуток времени, вы не будете представлять себе, как можно было играть в World of Warcraft c другим интерфейсом пользователя. Дабы детально разобраться с всем свалившимся нам на голову разнообразием, начнём с описания основных интерфейсных команд, помогающих в управлении оболочкой.
Скрытый текст
- /uihelp — краткая справка по командам TukUI
- /tukui — вывод конфигурационного меню (при установленном TukUI_ConfigUI)
- /uf (для версии с wowroad (12.хх)) или /moveui (начиная с 13 major версии) — Включает режим перемещения панелей.
Скрытый текст
Данной командой активизируется режим перемещения панелей. Выглядит это так:
Вложение 504028
Фреймы свободно перемещаются по экрану мышью.[свернуть]- /resetui — Сброс всех настроек и переменных на значения по-умолчанию.
- /rl — Перезагрузка пользовательского интерфейса
- /heal — Вариант интерфейса для лекарей.
- /dps — Вариант интерфейса для МДД/РДД и танков.
- /hb — Биндим наши умения на требуемые клавиши.
- /resetgold — Сброс счетчика золота.
- /bags — Сортирует вещи в сумках/банке. Те же операции можно сделать и в GUI, но об этом чуть ниже.
- /gm — Вот уж не знаю, читают ли тикеты местные игровые мастера, но, при большом желании, вы можете его отправить при помощи данной команды.
- /frame — Показать имя окна на котором установлен редактор мышки
- /tukui — Показать меню настройки интерфейса. Команда работает при наличии аддона TukUI_ConfigUI&
- /ainv — Автопринятие приглашений в группу/рейд от друзей и гильдии по ключевому слову. Пример: /ainv (Привет!!!).
- /purchase — Позволит приобрести в банке дополнительные ячейки.
[свернуть]
Поговорим про оставшиеся тонкости в настройке. Первое, что бросается в глаза при использовании дополнения — отвратительный шрифт, которым выводится информация о критическом уроне, получении опыта, et cetera. Исправить данную оплошность можно простым способом: достаточно заменить .ttf шрифт из папки ./AddOns/Tukui/media/combat_font.ttf на нужный нам. Это может быть как Times New Roman или Helvetica, так и Comic Sans или любой другой, поддерживающий кириллические символы (Кодировка шрифта обязательно windows 1251!). В моём случае — стандартный Arial. Переименовываем наш .ttf в combat_font.ttf, и копируем с заменой по вышеозначенному пути. Готово!
Редактируем конфигурационные файлы
Теперь плавно переместимся "под капот", и займёмся редактированием непосредственно .lua файлов. Именно благодаря лёгкости синтаксиса языка, мы без проблем можем изменять параметры окон интерфейса. Для начала, добавим фон для чата — это увеличит читаемость текста, снизив нагрузку на глаза во время игры.
Скрытый текст
Чат будет выглядеть вот так:
S9jLc41.png
Для этого нам нужно отредактировать файл ./Scripts/Panels.lua, добавив следующий код после 70 строки (параметр INFO RIGHT(FOR STATS), выделено на скриншоте в спойлере):
Скрытый текст
5lsfzLX.png
Код HTML:-- CHAT BG LEFT local chatleftbg = CreateFrame("Frame", "TukuiChatBackgroundLeft", TukuiInfoLeft) TukuiDB.CreateTransparentPanel(chatleftbg, TukuiCF["panels"].tinfowidth, TukuiDB.Scale(125), "BOTTOM", TukuiInfoLeft, "TOP", 0, TukuiDB.Scale(3))[свернуть]
и файл ./Modules/Functions.lua, добавив после блока function TukuiDB.CreatePanel(f, w, h, a1, p, a2, x, y) (45 строка), следующий код:
Скрытый текст
Bu0G3Qh.png
Код HTML:function TukuiDB.CreateTransparentPanel(f, w, h, a1, p, a2, x, y) sh = scale(h) sw = scale(w) f:SetFrameLevel(1) f:SetHeight(sh) f:SetWidth(sw) f:SetFrameStrata("BACKGROUND") f:SetPoint(a1, p, a2, x, y) f:SetBackdrop({ bgFile = TukuiCF["media"].blank, edgeFile = TukuiCF["media"].blank, tile = false, tileSize = 0, edgeSize = mult, insets = { left = TukuiDB.Scale(2), right = TukuiDB.Scale(2), top = TukuiDB.Scale(2), bottom = TukuiDB.Scale(2)} }) f:SetBackdropColor(.075,.075,.075,.7) f:SetBackdropBorderColor(unpack(TukuiCF["media"].bordercolor)) local border = CreateFrame("Frame", nil, f) border:SetFrameLevel(0) border:SetPoint("TOPLEFT", f, "TOPLEFT", TukuiDB.Scale(-1), TukuiDB.Scale(1)) border:SetFrameStrata("BACKGROUND") border:SetBackdrop { edgeFile = TukuiCF["media"].blank, edgeSize = TukuiDB.Scale(3), insets = {left = 0, right = 0, top = 0, bottom = 0} } border:SetBackdropColor(unpack(TukuiCF["media"].backdropcolor)) border:SetBackdropBorderColor(unpack(TukuiCF["media"].backdropcolor)) border:SetPoint("BOTTOMRIGHT", f, "BOTTOMRIGHT", TukuiDB.Scale(1), TukuiDB.Scale(-1)) end[свернуть][свернуть]
С чатом разобрались. Но как быть, если разрешение нашего монитора маленькое (к примеру, у вас 13' ноутбук, скажем, трёхлетней давности — вряд-ли там установлен дисплей с высоким разрешением), и рейдбаффы закрывают какую-либо нужную информацию? Не беда — достаточно отредактировать .lua файл, отвечающий за показ данной информации, исправив значения по-умолчанию на нужные нам. Обращаю внимание, что данная настройка сугубо индивидуальна, и — в большинстве случаев — зависит от разрешения монитора.
Скрытый текст
./Tukui/modules/buffs/buffs.lua
Меняем параметр 16 в строке header:SetAttribute("wrapAfter", 16) на необходимый нам, т.е. надо 10 бафов в ряд — значение параметра равно десяти.Код HTML:local function CreateAuraHeader(filter, ...) local name if filter == "HELPFUL" then name = "TukuiPlayerBuffs" else name = "TukuiPlayerDebuffs" end local header = CreateFrame("Frame", name, UIParent, "SecureAuraHeaderTemplate") header:RegisterEvent("UNIT_ENTERED_VEHICLE") header:RegisterEvent("UNIT_EXITED_VEHICLE") header:SetPoint(...) header:SetClampedToScreen(true) header:SetMovable(true) header:HookScript("OnEvent", ScanAuras) header:SetAttribute("unit", "player") header:SetAttribute("sortMethod", "TIME") header:SetAttribute("template", "TukuiAuraTemplate") header:SetAttribute("filter", filter) header:SetAttribute("point", "TOPRIGHT") header:SetAttribute("minWidth", 300) header:SetAttribute("minHeight", 94) header:SetAttribute("xOffset", -36) header:SetAttribute("wrapYOffset", -68) header:SetAttribute("wrapAfter", 16) header:SetAttribute("maxWraps", 2)
В строке header:SetAttribute("maxWraps", 2) число 2 — количество строк бафов можно сделать и 3 и 4.
В строке header:SetAttribute("wrapYOffset", -68) число -68 — межстрочный интервал.
Сохраняем файл, и в игре вводим /rl для перезагрузки интерфейса.[свернуть]
Часто встречается проблема, что дружественный таргет отображет свои баффы в один ряд, что вызывает некоторые трудности при игре в низком разрешении. Лечится это так:
Скрытый текст
./Tukui/modules/unitframes/layouts/tukui.lua
Меняем buffs.num = * на цифру кратную желаемому числу строк, т.е. если нужны два ряда, то 8*2=16 и соответственно 18 (зависит от того в каком разрешении запущена игра)Код HTML:if (unit == "target" and C["unitframes"].targetauras) or (unit == "player" and C["unitframes"].playerauras) then local buffs = CreateFrame("Frame", nil, self) local debuffs = CreateFrame("Frame", nil, self) if (T.myclass == "SHAMAN" or T.myclass == "DEATHKNIGHT" or T.myclass == "PALADIN" or T.myclass == "WARLOCK") and (C["unitframes"].playerauras) and (unit == "player") then if T.lowversion then buffs:SetPoint("TOPLEFT", self, "TOPLEFT", 0, 34) else buffs:SetPoint("TOPLEFT", self, "TOPLEFT", 0, 38) end else if T.lowversion then buffs:SetPoint("TOPLEFT", self, "TOPLEFT", 0, 26) else buffs:SetPoint("TOPLEFT", self, "TOPLEFT", 0, 30) end end if T.lowversion then buffs:SetHeight(21.5) buffs:SetWidth(186) buffs.size = 21.5 buffs.num = 8 debuffs:SetHeight(21.5) debuffs:SetWidth(186) debuffs:SetPoint("BOTTOMLEFT", buffs, "TOPLEFT", 0, 2) debuffs.size = 21.5 debuffs.num = 24 else buffs:SetHeight(26) buffs:SetWidth(252) buffs.size = 26 buffs.num = 9 debuffs:SetHeight(26) debuffs:SetWidth(252) debuffs:SetPoint("BOTTOMLEFT", buffs, "TOPLEFT", -2, 2) debuffs.size = 26 debuffs.num = 27 end
Меняем buffs:SetHeight(*) на цифру кратную желаемому числу строк, т.е. если нужны два ряда, то 21.5*2=43 и соответственно 52 (зависит от того в каком разрешении запущена игра)
Сохраняем, перезагружаем интерфейс.[свернуть]
Если вы желаете отображать здоровье/ману в процентах, минуя стандартное числовое значение, то делается это так:
Скрытый текст
./Tukui/Core/Functions.lua
Для изменения здоровья (строка 404-410):
Скрытый текст
Код HTML:health.value:SetFormattedText("|cff559655%s|r |cffD7BEA5|||r |cff559655%s|r |cffD7BEA5-|r |cff%02x%02x%02x%d%%|r", ShortValue(min), ShortValue(max), r * 255, g * 255, b * 255, floor(min / max * 100))[свернуть]
Для изменения маны/энергии etc.(строка 507-521):
Скрытый текст
Код HTML:power.value:SetFormattedText("%d%% |cffD7BEA5-|r %s |cffD7BEA5|||r %s", floor(min / max * 100), ShortValue(min), ShortValue(max))[свернуть][свернуть]
Изменяем размер миникарты:
Скрытый текст
./Tukui/modules/maps/minimap.lua
Ищем строку TukuiMinimap:Size(144), и меняем значение параметра на подходящий нам размер миникарты.
Финальный штрих: требуется изменить значения параметров
наКод HTML:Minimap:SetParent(TukuiMinimap) Minimap:ClearAllPoints() Minimap:SetSize(TukuiMinimap:GetWidth() -4, TukuiMinimap:GetHeight() -4) Minimap:SetPoint("TOPLEFT", 2, -2)
Код HTML:Minimap:SetSize(TukuiMinimap:GetWidth() -4, TukuiMinimap:GetHeight() -4) Minimap:SetPoint("TOPLEFT", 2, -2)[свернуть]
Конечно, при должной усидчивости и кропотливому отношению, через конфигурационные файлы меняется абсолютно любой аспект интерфейса. И если я что-то обошёл вниманием в данном посте, то на официальном сайте выложены мануалы с комментариями. Правда, на английском. But, who cares?
Приводим Blizzard фреймы, WIM, Aucionator и другие аддоны к единому стилю.
Для лаконичности интерфейса (и дабы исключить "синдром франкенштейна", когда каждый элемент выглядит как ему хочется), нам потребуется установить следующие аддоны:
- TelUI_AddonSkins — для преображения Recount
- Skinner — для большинства оставшихся элементов интерфейса.
Именно благодаря этим дополнениям, наш стандартный интерфейс преобразился:
Скрытый текст
Для вашего удобства, я запаковал уже готовые дополнения в .zip архив, разместив их на Яндекс Диске — именно поэтому названия аддонов кликабельны. Скачивайте, пользуйтесь. Установка стандартна.
На этом на сегодня всё. Встретимся на просторах Азерота!