wow-midnight-server

Подключение клиента — пошагово (RU)

Направляем ретейл-клиент 12.0.7.68974 на твой сервер. Страница намеренно конкретная: отдельно что меняешь на сервере и отдельно что меняешь в клиенте.

English


Коротко — что реально меняется в клиенте

Игровые данные ты не трогаешь. Только:

  1. Убедиться, что клиент — ровно билд 68974.
  2. Положить Arctium Game Launcher.exe в корень установки (рядом с _retail_).
  3. Добавить одну строку в _retail_\WTF\Config.wtf: SET portal "IP_СЕРВЕРА".
  4. Запускать через Arctium (не через приложение Blizzard).

Всё остальное — на стороне сервера.


Подготовка на сервере (сначала это)

В bnetserver.conf:

; Адрес, до которого достучится КЛИЕНТ (публичный или LAN IP сервера)
LoginREST.ExternalAddress = IP_СЕРВЕРА
LoginREST.LocalAddress    = IP_СЕРВЕРА
LoginREST.Port            = 8081

В базе auth реалм, который видит клиент, берётся из таблицы realmlist (никакого realmlist.wtf):

UPDATE realmlist
SET address = 'IP_СЕРВЕРА', localAddress = 'IP_СЕРВЕРА', port = 8085
WHERE id = 1;

Открой клиенту порты: 8081 (REST-логин), 1119 (bnet), 8085 (мир).

Создай аккаунт (консоль worldserver). Это должен быть Battle.net-аккаунт, а имя — адрес почты: retail-клиент входит через Battle.net.

bnetaccount create you@example.com yourpassword

Команда печатает созданный привязанный игровой аккаунт с именем вида <id>#1. Права GM выдаются на него, а не на почту:

bnetaccount listgameaccounts you@example.com
account set gmlevel 1#1 3 -1

Не используй здесь account create. Она создаёт обычный игровой аккаунт без привязки к Battle.net, и клиент таким войти не может. TrinityCore говорит об этом прямо: account create отказывается от любого имени с @ и отправляет к bnet-командам, а bnetaccount create наоборот его требует.

Либо пусть всё сделает скрипт, включая уровень GM:

SOAP_USER='1#1' SOAP_PASS='...' scripts/create-account.sh -e you@example.com -p yourpassword -g 3

Изменения в клиенте (то, о чём ты спросил)

1. Совпадение билда — 68974

Билд клиента обязан совпадать с билдом базы мира сервера. Несовпадение = отказ на логине каждый раз. Как получить клиент и что делать, когда живой билд больше не совпадает с серверным — в CLIENT.md, либо запусти scripts/setup-client.ps1: он сверяет билд до загрузки и прописывает портал.

2. Добавь лаунчер Arctium

Скопируй Arctium Game Launcher.exe в корень установки — рядом с _retail_, Data и .build.info, а не внутрь _retail_ рядом с Wow.exe. Это самая частая ошибка при настройке.

WoW_Midnight\
├── Data\
├── _retail_\Wow.exe
└── Arctium Game Launcher.exe      <- сюда

Arctium патчит запущенный клиент в памяти, чтобы он:

Ни один файл игры не меняется навсегда.

3. Пропиши портал — одна строка в Config.wtf

Открой _retail_\WTF\Config.wtf (обрати внимание на _retail_ — в корне установки Config.wtf нет) и добавь, либо поправь, если строка уже есть:

SET portal "IP_СЕРВЕРА"

Опционально — форс локали / пропуск проверки апдейта лаунчера:

SET textLocale "ruRU"
SET audioLocale "ruRU"

portalединственная обязательная правка клиента. Она говорит клиенту, с каким Battle.net-хостом общаться — с твоим bnetserver.

4. Запуск через Arctium

Запускай Arctium, а не Battle.net.exe. Он стартует пропатченный клиент и показывает экран логина Battle.net, направленный на твой сервер.

5. Вход

  1. Введи адрес почты + пароль Battle.net-аккаунта, созданного через bnetaccount create.
  2. Выбери реалм.
  3. Ты в игре.

Почему логин «крутится» — и как быстро починить

Логин современного ретейла идёт через HTTP REST dev-сертификат (порт 8081), а не через старый realmlist.wtf. 95% зависаний — это одно из:

Симптом Причина Решение
Зависло на «Connecting» / «Authenticating» Недоступен REST-эндпоинт 8081 или неверный portal Проверь LoginREST.ExternalAddress + открыт ли 8081; проверь SET portal
«Version mismatch» / отбрасывает на логине Билд клиента ≠ 68974 Переустанови/зафиксируй клиент на 68974
Пустой список реалмов Неверный realmlist.address или worldserver (8085) выключен Поправь строку в realmlist; проверь, что 8085 слушает
Ошибка сертификата/handshake Не через Arctium или сертификат не доверенный Всегда запускай через Arctium
В игре, но у персонажа нет квестов Пробел в данных/цепочке квестов См. FIXES.md

Спутники-боты в игре

См. FEATURES.md.