Skip to content

About

pfUI для Emberveil (WoW 1.12.1) + помощник автоподбора добычи. pfUI port for the Emberveil WoW 1.12.1 client with an optional autoloot input helper.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

PFUI-emberveil

pfUI под Emberveil плюс приблуда для автолута.

Русский · English


Русский

pfUI — полная замена интерфейса WoW, написал её Shagu под клиенты 1.12.1 и 2.4.3. Я перетащил её на Emberveil. Логику оригинала не трогал, переделывал только то, что этот клиент делает по-своему — а делает он по-своему дохуя всего.

Тут две папки:

Папка Что это Надо?
pfUI/ Сам аддон. Кидаешь в AddOns как есть да
autoloot-bridge/ Приблуда, которая жмёт за тебя по строке лута по желанию

Лежат вместе не потому что мне лень было два репозитория завести, а потому что они разговаривают друг с другом через метку на экране: аддон её рисует, приблуда видит и жмёт. Такой контракт удобнее править разом, а не бегать между репозиториями.

Как поставить

Подробно — в INSTALL.md. Коротко: папку pfUI целиком кинуть сюда и не переименовывать:

<папка игры>\Azeroth\Binaries\Win64\Games\Emberveil\live\Azeroth\Interface\AddOns

/pfui — настройки, /rl — перезагрузить интерфейс.

Что пришлось чинить под Emberveil

Клиент в целом честно повторяет 1.12, но местами у него своя атмосфера. Вот на чём всё спотыкалось:

  • Шрифты. Назначишь шрифт на ходу — и общий шрифтовой объект встаёт раком, а текст пропадает по всему интерфейсу. Поэтому порт вообще не трогает шрифтовые объекты: виджеты наследуют штатные при создании.
  • Порядок загрузки FrameXML. TargetFrame успевает создаться раньше файла, который определяет GetDifficultyColor. Костыль ставится до загрузки модулей, прямо в то окружение, которым пользуются штатные функции.
  • Нативные фреймы живут своей жизнью. Обход WorldFrame:GetChildren() держит прокси после того, как движок переиспользовал владельцев, и клиент потом виснет. Модули нейтплейтов и пузырей чата, которые на этом обходе держались, тут выключены — пусть рисует клиент.
  • Контейнеры и торговцы врут не так, как в ваниле. Пустые ячейки отдают "" и 0 вместо nil, GetContainerNumSlots для банка и связки ключей выдаёт 0, а флаг «хватит ли на ремонт» ложный, когда денег ровно впритык. Всё приведено к документированному API в pfUI/api/emberveil.lua.
  • Масштаб. SetScale тут крутит текст сильнее, чем геометрию, поэтому корень остаётся на 1.0, а выбранный масштаб применяется к своим фреймам pfUI.
  • Лут. Клиент не умеет подобрать строку из Lua — ради этого и существует приблуда.

Каждая такая ветка закрыта признаком pfUI.flavor == "emberveil", так что на обычной ваниле и TBC оригинал ведёт себя как раньше.

Что НЕ проверено — прочти, прежде чем материться

  • Группа и рейд не тестировались вообще. Ни групповые фреймы, ни рейдовые, ни всё, что вокруг них. Может работать, может развалиться — я не проверял. Если словишь там дичь, это не сюрприз, но написать всё равно надо.
  • Всё делалось на одном клиенте, одной машине и разрешении 5120×1440. На других разрешениях должно работать, но за руку не держал.
  • Проверка в основном офлайновая: модули гоняются на заглушках API. Это доказывает логику, но не отрисовку и не ввод. Слово «проверено» в CHANGELOG.md означает ровно это.
  • Часть вызываемых функций клиента в официальный справочник Emberveil не попала, и есть ли они вообще — неизвестно. Где мог, закрыл проверками.

Баги и хотелки

Всё хуярь в Issues. Нашёл баг, отвалилось что-то, хочешь фичу — туда. В личку не пиши, потеряется.

Что приложить, чтобы я не гадал:

  • скриншот, если это видно глазами;
  • полный текст первой ошибки Lua, остальные обычно её последствия;
  • что делал, когда сломалось;
  • если проблема с автолутом — кусок EmberveilAutoLootBridge.log, там записано каждое решение приблуды.

Баги самого pfUI, которые воспроизводятся и на обычной ваниле, — это к оригиналу, а не сюда. Кто что написал — в CREDITS.md.


English

pfUI is a full WoW interface replacement written by Shagu for the 1.12.1 and 2.4.3 clients. I dragged it onto Emberveil. Upstream logic is untouched; I only reworked the bits this client does its own way — and it does a shitload of things its own way.

Two folders here:

Folder What it is Needed?
pfUI/ The addon. Drop it into AddOns as it is yes
autoloot-bridge/ A helper that clicks the loot row for you optional

They sit together not because I was too lazy to make two repos, but because they talk to each other through a marker on screen: the addon draws it, the helper sees it and clicks. That contract is easier to change in one go than across two repositories.

Installing

Details in INSTALL.md. Short version: drop the whole pfUI folder here and do not rename it:

<game folder>\Azeroth\Binaries\Win64\Games\Emberveil\live\Azeroth\Interface\AddOns

/pfui for settings, /rl to reload the interface.

What had to be fixed for Emberveil

The client mostly reproduces 1.12 honestly, but in places it has its own vibe. This is where things kept falling over:

  • Fonts. Assign a typeface at runtime and the shared font object goes tits up, blanking text across the whole interface. So the port never touches font objects: widgets inherit the stock ones at creation.
  • FrameXML load order. TargetFrame gets built before the file that defines GetDifficultyColor. The helper is installed before any module loads, right into the environment the stock functions actually use.
  • Native frames live their own lives. Walking WorldFrame:GetChildren() keeps proxies alive after the engine recycles their owners, and later the client hangs. The nameplate and chat-bubble modules that relied on that walk are off here — let the client draw them.
  • Containers and merchants lie differently than on Vanilla. Empty slots return "" and 0 instead of nil, GetContainerNumSlots reports 0 for the bank and keyring, and the "can you afford the repair" flag is false when your money exactly matches the cost. All normalised against the documented API in pfUI/api/emberveil.lua.
  • Scaling. SetScale moves text more than geometry here, so the root stays at 1.0 and the chosen factor is applied to pfUI's own frames.
  • Looting. The client can't pick up a loot row from Lua. That is the entire reason the helper exists.

Every one of those paths is gated behind pfUI.flavor == "emberveil", so on plain Vanilla and TBC upstream behaves exactly as before.

What is NOT tested — read this before you start swearing

  • Party and raid were never tested at all. Not the group frames, not the raid frames, not anything around them. Might work, might fall apart — I didn't check. If it goes sideways there it's no surprise, but report it anyway.
  • Everything was done on one client, one machine, at 5120x1440. Other resolutions should be fine, but I never held their hand.
  • Verification is mostly offline: modules run against stubbed APIs. That proves logic, not rendering and not input. "Verified" in CHANGELOG.md means exactly that much.
  • Some client functions being called never made it into the official Emberveil reference, so whether they exist at all is anyone's guess. Guarded where I could.

Bugs and wishes

Dump all of it into Issues. Found a bug, something broke, want a feature — that's the place. Don't DM me, it'll get lost.

Attach this so I'm not guessing:

  • a screenshot if you can see the problem;
  • the full text of the first Lua error, the rest are usually fallout;
  • what you were doing when it broke;
  • for autoloot trouble, a chunk of EmberveilAutoLootBridge.log — every decision the helper makes is written there.

Bugs in pfUI itself that also reproduce on plain Vanilla belong upstream, not here. Who wrote what: CREDITS.md.

About

pfUI для Emberveil (WoW 1.12.1) + помощник автоподбора добычи. pfUI port for the Emberveil WoW 1.12.1 client with an optional autoloot input helper.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages