Раз такая пьянка, то тоже поделюсь кой-каким опытом в этом деле. До недавнего времени я вообще не знал, что такие штуки лежат в свободном доступе, но когда увидел сервер на рутрекере, то начал гуглить что-нибудь поновее.
На "
Ownedcore" оказалась масса всевозможных готовых сборок. Там заинтересовала меня одна такая -
AzerothCore Wrath of the Lich King Single PlayerУ чувака есть свой
сайт (куда тоже выкладывает инфу и обновы по сборкам) там несколько сборок на разных ядрах с модулями для изменения геймлпея.
Какую версию использовать - дело Ваше, но я выбрал ту, что указал выше. Собственно, меня больше всего привлекли и удивили боты. Они реально справляются со своими ролями. Не знаю, правда, как всё в рейдах обстоит и со специфическими механиками боссов, но на классических данжах проблем вообще не было.
Эта сборка нацелена на соло-прохождение с ботами и по умолчанию настроен автолевелинг (скалирование) в данжах (только в данжах). Доступны для изучения все профы (т.к. вам придется делать всё одному), мелкие твики чтобы делать меньше всякой рутины и траты времени. Есть аукционный бот, трансмоги, гильд хаус, Beast Master - это NCP у которого можно обучиться питомцу как у охотника. Даже ДК и Локи могут поменять своего пета на хантовского.
Конфиг сервера и модули можете настраивать как хотите, правила можно установить какие угодно и это не сложно. И я бы порекомендовал это делать заранее, т.к. некоторые рейты автора меня не устроили.
Изначально выписывал и делал всякие заметки по сборке для себя, собирал консольные команды, но потом всё это решил оформить во что-то типа гайда. Лучшего случая чтоб поделиться, думаю, не предвидится
Далее инфо по сборке.
Запуск сервера, создание учётной записи:-(шаг не обязательный, если Вы планируете играть только в соло). В базе данных сервера изменить ip адрес чтобы к вам подключились другие игроки:
Сначала стартуем сервер (см. далее). Подключаемся к базе данных к ip 127.0.0.1 (я юзал прогу HeidiSQL).
Логин и пароль: root, ascent
Переходим в раздел acore_auth -> realmlist, переключаемся на вкладку "Table: realmlist" (вверху посередине), нас интересует строка address (localAddress не трогаем), меняем ip на свой комп, что в локальной сети (адрес типа 192.168.1.2). Далее переходим на вкладку "Data", делаем тоже самое. Ищем столбец address, меняем на ip вашего компа.
В идеале ip адрес надо закрепить в роутере, чтобы всегда он выдавал постоянный для этой машины в сети. Иначе, придётся менять настройки каждый раз.
Далее перенаправляем порты TCP в роутере для машины, к которой будут подключаться другие игроки через интернет (для этого
нужен обязательно белый ip и желательно статичный или зарегистрировать доменное имя):
3724 - сервер аутентификации.
8085 - WoW-сервер
Изменяем адрес подключения в клиенте. Открываем файл \Data\ruRU\realmlist.wtf и прописываем следующее:
Тут пару моментов:
Если играете один и ничего не меняли, то
set realmlist 127.0.0.1
Если планируете играть с друзьями, то друг прописывает ваш белый ip или доменное имя.
Вы же прописываете ip вашей локальной машины где запускается сервак. Что-то типа:
set realmlist 192.168.1.2
-(шаг не обязательный, но для удобства рекомендуется). Создаём ярлык "wow.exe" от клиента игры, переименовываем в просто "WoW" и помещаем его в папку сервера. Тогда из лаунчера сервера (Start Server.bat) можно будет запустить и клиент
Сервер стартуем через "Start Server.bat".-Опция "1" запускает последовательно три компонента: Базу данных, сервер авторизации игроков и сам сервер игры. Опция "2" запускает клиент игры.
-Проверяем фаерволл чтобы не заблочил. Он вылезет раза 3.
-После загрузки всех компонентов будет звук "ошибки винды"
Это не ошибка!, а указание на то, что сервер запущен. Хз почему используется именно такой звук, но его можно отключить в конфиге сервера (worldserver.conf параметр BeepAtStart = 0), я ставлю в режим "мигание иконки в панели задач" (FlashAtStart = 1). С этого момента сервер запущен.
Создание учётных записей.В окне worldserver.exe создаём учётку командой:
account create имя пароль
Пример:
account create Alex superpass
Эти данные будут использоваться для входа в игру
Выдать себе статус GM (game master). Используется для читерства и для управления ботами:
account set gm Alex 3 -1
ПРАВИЛЬНОЕ ВЫКЛЮЧЕНИЕ СЕРВЕРА:
-В окне консоли Worldserver.exe вводим:
saveall
server shutdown 3
-В консолях Authserver.exe и Mysqld.exe нажимаем комбинацию Ctrl+C. Это остановит их работу.
Обновление сборки:
Обновления лежат на
странице автора:
Как я понял, ставить можно всегда последнее обновление, предыдущие фиксы уже включены.
ВСЕГДА ДЕЛАТЬ БЕКАП!-Удаляем папку "updater" из папки сервера
-Распаковываем архив обновления в папку сервера, заменяем остальные файлы. Не заменяем конфиги если настраивали их под себя. В идеале сравнивать содержимое своих конфигов и конфигов из обновлений (я юзаю плагин Compare для notepad++).
-Запускаем батник как обычно, стартуем сервер. Сборка обновляется (смотрим в консоль worldserver.exe). После окончания, как обычно, будет звук "ошибки винды" (не пугаемся) или мигание иконки, если настраивали ранее конфиг сервера.
--------------------------------------------------------------------------------------------------------------------------------
Установлен модуль на пропуск начальной цепочки квестов "Рыцарей смерти"
В папке configs сервера лежит файл worldserver.conf в нём настраивается куууча настроек и правил игры. Также в подпапке modules настраиваются модули. Нас интересуют файлы с расширением .conf
--------------------------------------------------------------------------------------------------------------------------------
БОНУС. Увеличиваем стаки предметов:Подключаемся к базе данных, переходив в раздел acore_world -> item_template, переходим на вкладку Data
Тут в столбцах "maxcount" и "stackable" настраивается количество предметов. Столбец "entry" - это ID предмета, который можно найти на Wowhead.
Шаблон массовой замены стаков. Переходим на вкладку Query (рядом с Data), попируем туда следующее:
UPDATE item_template SET stackable='1000' WHERE stackable='20'
UPDATE item_template SET stackable='100' WHERE stackable='10'
UPDATE item_template SET stackable='50' WHERE stackable='5'
Жмём F9 или синий значок "Execute SQL...". Ждём обработки, проверяем новые значения в таблице.
Дополнительно: Стакаем "Осколки душ" чернокнижника. Ищем entry с номером 6265, и там меняем "maxcount" и "stackable" значения на свои чтобы осколки не занимали много места в сумках.
БОНУС. Частичная русификация клиента игры:Юзер ReKsSam с рутрекера предоставил файлы русификации на ядро TrinityCore, которое работает и тут.
https://drive.google.com/drive/folders/1rSk8-0Cpo8IbmtiESHS8SO3tqqitnNCLПодключаемся к базе данных, в разделе "acore_world" выделяем заменяемый файл в базе (не уверен, что этот шаг важный), заходим в File -> Run SQL file... и выбираем русифицированный файл. Так со всеми тремя файлами
*кое-где перевод квестов с аддоном AtlasQuest будет не совпадать
БОНУС. Как работает аукционный бот:По дефолту он выкладывает 250 лотов. В базе данных модуля можно увеличить это число.
Как устанавливает бот цены?
Он задает процентный диапазон от цены продажи вендору до максимально возможного заранее заданного значения.
Эти значения:
Серые предметы:
Мин. цена выставления - 100%
Макс цена выставления - 150%
Белые предметы:
Мин. цена выставления - 150%
Макс цена выставления - 250%
Зелёные:
Мин. цена выставления - 800%
Макс цена выставления - 1400%
Синие:
Мин. цена выставления - 1250%
Макс цена выставления - 1750%
Фиолетовые:
Мин. цена выставления - 2250%
Макс цена выставления - 4550%
За какую максимальную цену купит бот вещь?
На каждый цвет вещи (качество) установлен максимальный процент выкупа от базовой стоимости продажи вендору
Серые предметы: 100%
Белые предметы: 300%
Зелёные: 500%
Синие: 1200%
Фиолетовые: 1500%
Пример: Зеленая шмотка ценой в 2с50м*500%=12с50м
2с 50м - это 250 медных монет в сумме. Умножаем их на 5 (т.е. на 500%, т.к. зелёная вещь) = 1250 медных монет - это 12с50м <<--максимальная цена за которую выкупит бот
Бот покупает вещи не сразу, а постепенно и последовательно.
ВАЖНО! В аддоне Auctioneer в настройках есть модуль VendMarkup (в самом низу) - Задаём туда максимальный % от качества цвета вещей. К сожалению, больше 1000% туда нельзя установить.
Это существенно упростит выставление предметов пачками на аукцион в полу-автоматическом режиме
Также, к сожалению, туда нельзя указать на разное качество вещей свой процент. Придётся сначала продать, скажем, белые вещи, выставить новый % на зелёнку и т.д. Возможно, есть какие-то ещё аддоны для управления группами вещей.
========================================
###### БОТЫ ######
========================================Полная инструкция по ботам -
https://github.com/trickerer/Trinity-Bots#npcbot-commandsКак использовать ботов:-(для ленивых) Готовые команды с вызовом рандомных ботов по классам написаны в файле "Macro NPC Bot Spawn" (
https://ouo.io/nH3kSz )
-Некоторые команды требуют GM права!
-Вызывать ботов можно только в открытом мире.
-Боты не могут телепортироваться в данж если они не часть вашей группы!
Просмотр списка ботов. В этом примере будет список всех воинов:
.npcbot lookup 1
Отобразится номер (ID) бота, имя, раса.
Цифра от 1 до 11 - это классы персонажей (порядок как в списке создания персонажей).
1 - Воин
2 - Паладин
3 - Охотник
4 - Рога
5 - Жрец
6 - ДК
7 - Шаман
8 - Маг
9 - Лок
10 - НЕТ класса (видимо, что-то связано с особенностью нумерации в базе данных)
11 - Друид
Выбрали нужную расу, имя и класс, вызываем его по ID (в данном примере это Эльф Крови, паладин):
.npcbot spawn 700067
Бот будет охранять территорию и бафать проходимцев пока его не наймут. Сейчас он ничей и его можно нанять. Цена найма зависит от уровня персонажа.
Если его уволить, то он вернётся на место где его засумонили. Все вещи, что ему давали вернутся игроку.
Некоторые редкие и элитные боты стоят больше и требуют определённый уровень игрока (сказано в оф. инструкции, но я таких не находил).
Бот может быть как боевым спутником (типа пета ханта/лока/ДК) или же его можно взять в группу, что рекомендуется (сообщалось о багах с лутом если бот не в группе).
.hirebot - временно вызывает особого NPC, который хранит "коллекцию" ранее подготовленных и выбранных ботов.
.npc add 70000 - тот же самый спец-NPC для найма, но на постоянной основе. Не исчезнет.
.npc delete - удалить выбранного NPC. Можно использовать на ранее призванного постоянного специального NPC.
ОСТОРОЖНО С ЭТОЙ КОМАНДОЙ! Подозреваю, что ею можно навсегда удалить абсолютно любое существо из мира!
Удалить бота-наёмника можно выделив его в цель и прописать:
.npcb del
Не путать с командой выше! Это удаление только для ботов-наёмников.Просмотреть список призванных ботов во всём мире:.npcbot spawned
Притянуть к себе бота по его ID номеру (это будет новая точка спавна для него). Аккуратней с этой командой и не спавните мобов одного в другом, а то не выделить будет нужного!
.npcbot move 70001
ЕСЛИ БОТЫ ПРОПАЛИ ПОСЛЕ ПЕРЕЗАХОДА В ИГРУ И НЕ ПОЯВЛЯЮТСЯ В ПАТИ ДОЛГОЕ ВРЕМЯ, ТО ЭТА КОМАНДА МОЖЕТ ПОМОЧЬ ИХ ВЕРНУТЬ! Можно создать макросы на будущее для быстрого призыва. Также может помочь перезапуск сервера.
Воскрешение бота (выделить его или себя (если себя, то воскрешаются все боты игрока), нужны ГМ права):
.npcbot revive
Покажет инфо какие боты наняты у игрока, сколько живых. Выделить игрока, прописать команду:
.npcbot info
Посмотреть статы своего бота: выделить его и прописать /bonk
Временно убрать ботов (похоже, не работает в бою). Исчезнет вся группа разом:
.npcbot hide
Вернуть:
.npcbot unhide
Приказать боту использовать конкретную способность (надо отключить сначала автоприменение этой способности у него в меню):
.npcbot order cast ИмяБота bloodlust
Кажется, надо писать заклинание на русском языке (возможно, с учётом регистра). Если есть несколько слов с пробелами, то пробелы заменяются нижним подчёркиванием.
(У меня не заработало на сборке AzerothCore + русификация от юзера AleXxX-68rus)
Также можно добавить параметры mytarget/me/self - Это к кому применять заклинание (к моей цели, на игрока или бот сам на себя его наложит)
Пример:
.npcbot order cast Tai'jin Придание_сил me
Это команда наложения бафа на игрока
Стоять и держать позицию (охранять зону). По идее, в радиусе 30 ярдов будет нападать на вражеские цели:
.npcbot command standstill
Следовать за игроком:.npcbot command follow
Отправить бота в выбранную позицию и охранять её (выбрать бота в цель):
.npcbot sendto
Принудительное перемещение бота к себе. Бот подбежит впритык к игроку. Можно использовать когда персонаж мёртв. Команда для экстренного случая когда боты провалились в текстуры или зависли в бою
.npcbot recall
Выбор себя в таргер заставит прибежать всех ботов к игроку
Убить бота. На случай если он заглючит и не будет реагировать на команды (выделив себя в таргер и прописав команду убьёт всех ботов):
.npcbot kill
Если не помогает, попробовать выделить бота и прописать /tickle
Бекап ботов:.npcbot dump write bots_backup
Восстановление ботов в базу данных:
.npcbot dump load bots_backup
Немного о метках:Если на цели висит метка, то танк не будет прекращать атаку. Метки имеют разный приоритет (чем больше число, тем выше приоритет)
Звезда - 1, Круг- 2, Ромб - 4, Треугольник - 8, Месяц - 16, Квадрат - 32, Крест - 64, Череп - 128
Если правильно понял из гайда, то лекари должны защищать цель под меткой даже если она не в пати (у мне не работало). В общем, с метками не разобрался.
GM команды сервера можно посмотреть тут:
https://www.azerothcore.org/wiki/gm-commands--------------------------------------------------------------------------------------------
КОМАНДЫ КАСТОМНЫХ БОТОВ (это другие модули и не относятся к ботам-компаньонам):
Beast Master. Этот модуль позволяет иметь боевого питомца не только охотникам, но и Варлокам с ДК
Создаём npc командой (нужен 10 уровень):
.npc add 601026
(но у меня он не появлялся этой командой)
Команда для временного призыва npc (до перезагрузки серва):
.npc add temp 601026
"Воскрешение питомца" работает как призыв питомца. Если воспользоваться стандартным "призывом питомца" охотника, то вызовется родной пет класса (ДК или варлока)
Transmog: .npc add 190010
NPC Visual Weapon: .npc add 190011
Guild House NPC: .npc add 500030
(последних трёх не использовал, т.к. были не нужны)