• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Форум » TrinityCore » Установка / Настройка TrinityCore » Создание Своего Сервера (Подробно. Версия клиента 2.4.3)
Создание Своего Сервера
Evrial
Маршал
Сервер WoW своими руками «с НУЛЯ» (для версии 2.4.3)


Доброго времени суток всем кто читает эту тему. Мой ник на просторах интернета – Evrial. Данная тема посвящена созданию сервера WoW что называется «с НУЛЯ». Актуально для Windows 32-bit (Linux’ом пока не занимался).

Краткое предисловие
Постараюсь как можно подробнее описать каждый шаг создания сервера. Пример будет для сервера версии 2.4.3. на ядре OregonCore (т.к. я фанат именно этой версии). Материалы темы можно использовать и для других ядер и версий клиента, но не забывайте что в любом случаи будут нюансы. Постараюсь, в зависимости от отзывов, регулярно дополнять и обновлять материалы темы. Итак, начнём?

Примечание: кому, видишь ли, не нравится размер стандартного шрифта – зажимает CTRL и крутим ролик мышки ВВЕРХ (от себя); кому не нравится цвет – подкручиваем настройки видеокарты/монитора, кому не нравится оформление – пишем письмо администрации wowjp чтоб они изменили стандартное оформление (обязательно в письме укажите, что конкретно Вам не нравится).

Я не против распространения данного мануала со ссылкой на автора.

Благодарности: Cemak, Pro[100]Mosk, OregonCore...

Сборка, созданная в процессе написания мануала, может быть Вами скачана здесь.

Данный мануал в MS Word вы можете скачать здесь. (рекомендую. т.к. намного удобнее).

Содержание
1. Необходимый софт
2. Компиляция ядра и его пропатчивание
2.1. Добываем исходники
2.2. Патчи
2.3. Компиляция
2.4. Вытаскиваем нужные файлы
3. Создаём базу для сервера
3.1. Установка denwer
3.2. Настройка MySQL
3.3. Наполнение базы данных сервера
4. Подготовка к запуску
4.1. Извлечение данных клиента
4.2. Настройка конфигурации
4.3. Последние подготовительные операции
5. Пробный запуск и лог-файлы
6. Переделываем сервер
6.1. Настройка конфигурации под разные типы серверов
6.2. Стартовые запросы для фан-сервера
6.3. Дополнения

1. Необходимый софт


В данном разделе Вы можете найти необходимый софт для сервера (но это не значит, что это всё что может быть; это лишь то, без чего ничего не получится). Практически весь софт является условно бесплатным и Вы можете легко установить его на свой компьютер. Значит нам понадобится такой набор программ:

1. Клиент WoW версии 2.4.3
2. TortoiseHG
3. Visual C++ 2008 Express или Visual C++ 2010 Express (мой пример будет под эту версию). Для снятия 30-дневного триального периода зарегистрируйтесь.
4. MySQL Server (если Вы планируете использовать denwer то можно это не устанавливать; кроме того сразу лучше не настраивать это приложение)
5. .NET Framework 3.5 если Вы используете Visual C++ 2010 Express, то .NET Framework 4 установится при загрузке данного пакета
6. SQLYog или MySQL GUI Tools или Navicat (мне нравится именно этот инструмент; лайт версия весьма урезана; лучше найти лицензионную)
7. CMake
8. OpenSSL
9. DENWER - установка данного приложения (если его можно так назвать) будет описана в разделе «3. Создаём базу для сервера», не ставьте его сразу).
10. Git Bash

2. Компиляция ядра и его пропатчивание


Огромное спасибо Cemak’y за его доходчивый мануал по компиляции ядра. На этом мануале я учился. Так же спасибо Pro[100]Mosk’у за мануал по компиляции ядра.

После того, как мы скачали и установили весь необходимый софт, приступаем к нашему ядру.

2.1. Добываем исходники.

Для простоты работы можно сделать папку под все действия по созданию сервера, но разработчики ядра рекомендуют делать всё в корневом каталоге С:\ (но это не обязательно, но желательно). Я для работ с сервером создал папку D:\Server\Creating. Далее создаём папку под исходник ядра и обзываем её как вам удобно. В моём случаи это будет OregonCore. Далее клацаем на эту папку правой кнопкой TortoiseHG\Clone (как на скриншоте):



В появившемся окне вводим:
Code
Source Path: https://oregoncore.googlecode.com/hg/ oregoncore
Destination Path: D:\Server\Creating\OregonCore


На скриншоте это выглядит так:



Дожидаемся окончания операции.

2.2. Патчи

Патчи – дополнения и исправления. Вполне можно обойтись без них. Патчи для данного ядра не обязательны. Без них всё будет работать.

Во первых, нам нужны патчи. Это уже нужно искать самим или же писать их.
Могу подсказать один небольшой сборник патчей (ЕГО Я ЛИЧНО НЕ ПРОВЕРЯЛ НА РАБОТОСПОСОБНОСТЬ). Создаём рядом с исходниками ядра папку Patches. Тыкаем по ней TortoiseHg\Clone… Указываем пути:
Code
Source Path: https://bitbucket.org/celtus/oc-patch
Destination Path: D:\Server\Creating\Patches


Нажимаем Clone и дожидаемся окончания операции. В результате получаем много папок. Названия папок соответствуют названиям патчей.

Предположим, что у нас уже есть патчи. Для удобства переименуем файлы патчей в вид 1.patch (так патчить будет удобнее и бычтрее). Скидываем патчи в папку с исходниками. Далее нажимаем правой кнопкой по папке с исходниками (OregonCore) и нажимаем Git Bash:



В появившемся окне вводи строку вида patch –p1 < 1.patch и тыкаем ENTER. На деле это выглядит так:



Вот ядро пропатчено. Приступим к компиляции.

2.3. Компиляция

Рядом с папкой наших исходников (OregonCore в моём случаи) создаём папку, в которой будут происходить работы по компиляции (дабы сохранить нетронутыми наши исходники). В моём случаи это папка Build. Далее открываем CMake GUI (его можно найти в панели Пуск) и заполняем его так, чтобы в верхней строке был адрес папки с исходниками (OreonCore), а во второй – адрес папки для построения сервера (Build):



Нажимаем «Configure». Вам предложит выбор: под какой компилятор делать построение (делайте выбор в соответствии с установленным софтом), выбираем и тыкаем «Finish»:



Дожидаемся окончания операции. Должно написать «Configuration Done» .Далее ставим галочки как на скриншоте. Ещё раз нажимаем «Configure». Дожидаемся надписи «Configuration Done». Должна стать активной клавиша «Generate». Нажимаем её. Должна появиться надпись «Generation Done»:



Вуаля. Едем дальше.

Далее заходим в папку с нашим построением (в моём случаи это D:\Server\Creating\Build) и открываем файл OregonCore.sln. Пока открывается окно Visual Studio и идёт проверка синтаксиса можно покурить. Как только в нижнем углу экрана появилась надпись «Готово» начинаем действовать. Заходим в меню Вид\Панели Инструментов\ и ставим галочку на «Построение». В итоге вверху экрана появится панель построений, что наглядно изображено на скриншоте:



Далее выбираем «Release» вместо «Debug»:



Далее Нажимаем «Построить Решение»:



Дожидаемся окончания операции. Нам должно выдать Построение: успешно: 21, с ошибками: 0, без изменений: 0, пропущено: 1 (не обязательно успешно:21; главное чтоб с ошибками было 0)
На скриншоте выглядит так:



Компиляция завершена.

2.4. Вытаскиваем нужные файлы.

Для начала я бы рекомендовал сделать папку под релиз нашего сервера. Ну к примеру просто обзовём эту папку Release. В ней создадим папки Core и Tools; в папке Tools создаём папки Restarter, Extractor, Regform, Sql, RegForm. Итак у нас в папке с построением есть скомпилированное ядро. Но там много всего в этой папке. Нам нужна папка Bin. В ней то и лежат труды наших работ. Значит что же мы найдём в этой папке (при использовании VS 08 файлов будет больше; но там не трудно разобраться куда и к чему нужны дополнительные файлы):

- map extractor – экстрактор карт под наше ядро (копируем в папку Extractor);
- vmap extractor – экстрактор геодаты под наше ядро (копируем в папку Extractor);
- vmap assembler – ассемблер геодаты под наше ядро (копируем в папку Extractor);
- .dll-файлы – библиотеки (копируем в папку Core);
- OregonRealm.exe – наш реалм (копируем в папку Core);
- OregonCore.exe – собственно сервер (копируем в папку Core);
- .conf.dist-файлы – файлы конфигов, .dist нужно обязательно стереть. Чтобы файлы конфигурации приняли вид oregoncore.conf (копируем в папку Core).

Но это не все файлы, которые нам нужны и которые у нас уже есть. Заходим в папку с исходниками (OregonCore в моём случаи) и там заходим в папку contrib. В этой папке мы найдём рестартеры (копируем в папку Restarter); так же здесь мы найдём registration_form (копируем в папку RegForm). Также в папке sql есть структура базы данных под Oregon Core (копируем в папку Sql).

3. Создаём базу данных для сервера


На этом момента Вам стоит определиться каким образом Вы будете строить базу. Их несколько. Можно с помощью denwer, можно с использованием MySQL Server. Для начинающих я бы рекомендовал denwer. Так же для работы с базой рекомендую использовать Navicat (мне на нём проще, хотя про Sqlyog тоже много положительных отзывов).

3.1. Установка denwer.

Если Вы решили использовать другую основу для базы данных – то можете смело пропускать этот раздел. Но если всё-таки denwer, то он устанавливается так:

1. Запускаем инстальничек;
2. Закрываем появившееся окно враузера;
3. Тыкаем ENTER;
4. Если выдаёт ошибку про PENG.EXE игнорируем и продолжаем (клацаем Y);
5. Ещё раз тыкаем ENTER;
6. Y;
7. ENTER;
8. Z – Буква для виртуального диска, можете поставить другую, но, желательно, ближе к конце алфавита;
9. ENTER;
10. Ждём копирования файлов;
11. 2;
12. N;
13. ГОТОВО

Я не вдавался в подробности установки дабы не морочиться с длинным и не нужным описанием (но если кому всё-таки нужно, то могу дописать). Что же теперь делать с этим denwer’ом. В директории C:\WebServer лежат некие папочки. Вот это, по сути, и есть наш denwer. В пункте 2.4. я содавал папку для сборки сервера (Release). Вот в неё и нужно перекинуть все эти папки из WebServer. Замечательно. Теперь заходим в папку denwer, запускаем Boot, а затем Run. Если Вы воспользовались denwer, то можете смело переходить к разделу 3.3.

3.2. Настройка MySQL

Если Вы решили не использовать denwer, то читаем. Заходим Пуск\MySQL\MySQL Server\ MySQL Instance Configuration Wizard. Нажимаем Next, выбираем стандартную конфигурацию и опять нажимаем Next, ещё Next, Вводим пароль пользователя root (можете не вводить пароль, а просто снять верхнюю галочку). Нажимаем Execute и наш MeSQL настроен.

3.3. Наполнение базы данных сервера.

Для начала добудем нашу базу. Создаём рядом с ядром папку и называем её OregonDB. Тыкаем правой кнопкой, TortoiseHG\Clone… Заполняем строки:
Code
Source Path: https://bitbucket.org/oregon/oregondb
Destination Path: D:\Server\Creating\OregonDB


В полученой базе разархивируем ODB0.0.5_919. Полученый .sql-файл копируем в папку sql (в пункте 2.4. мы её создавали в папке Tools).

Итак в папку с будущей сборкой (Release, пункт 2.4) в папке Tools есть папка Sql. В ней у нас на данный момент должны быть такие файлы:
1. Creat_mysql.sql (взято из Oregoncore\sql);
2. World.sql (взято из Oregoncore\sql);
3. Realmd (взято из Oregoncore\sql);
4. Characters (взято из Oregoncore\sql);
5. ODB0.0.5_919 (взято из OregonDB\ODB0.0.5_919.rar);
6. Папка scripts (в ней 4 .sql-файла).

Далее нужно приконектится к серверу. Я буду объяснять на примере Navicat. Итак, открываем данную программу. Создаём новое подключение:



В параметрах этого подключение ставим как на скриншоте и нажимаем ОК:



Подключение создано, осталось подключиться. 2 раза тыкаем на наше подключение. В итоге должна открыться база:



Славненько. Теперь добавим пользователя для нашего эмулятора. Нажимаем Manage Users и создаём нового пользователя (пароль oregon):



Нажимаем ОК. Далее выделяем этого нового пользователя и нажимаем Select All, а замет Save:



Теперь начнём заполнение нашей базы данных. Чтобы залить запрос в базу нужно нажать правой кнопкой по нужной базе и нажать Execute Bath File…



После этого выбираем необходимый запрос и нажимаем Start:



Дожидаемся окончания и надписи Finished - 8 queries executed successfully (вместо 8 может быть абсолютно другое число).

В разделе 2.4. Мы создавали папку Tools в которую закидывали папку sql из исходников.
Далее буду перечислять что и куда заливать в таком виде (не забывайте что чтоб увидеть изменения нужно пере подключить базу):

ИМЯ_БАЗЫ – ИМЯ_ФАЙЛА (файлы в директории sql или поддиректории).

Root - create_mysql;
Characters – characters;
Realmd – realmd;
World – world;
World - ODB0.0.5_919 (можно курить. Это будет долго);
Далее заливаем из подпапки Scripts всё в базу world.

Далее заходим в базе realmd и открываем таблицу realmlist и в поле id ставим 1; все остальные поля сами должны заполниться, кроме name, в это поле пишите название реалма (у меня MyServer).

Ну, вот мы сделали базу для сервера. И таким образом подошли почти вплотную к запуску сервера.

4. Подготовка к запуску


Вот у нас уже есть ядро, база, основа в виде denwer или MySQL Server. Что же ещё нужно.

4.1. Извлечение данных клиента

В папке Release\Tools\Extractor находим 3 файла и копируем их в папку с клиентом.

Запускаем map_extractor и дожидаемся окончания операции. Будет создано 2 папки: dbc и maps. Переносим эти папки к нашему ядру (в папку Core).

Запускаем vmap_extractor и дожидаемся окончания операции.

Создаём .bat-файл и в него пишем такие строки (этот файл сохраняем в папке с клиентом WoW):
Code
md vmaps
vmap_assembler Buildings vmaps


Запускаем этот .bat-файл и дожидаемся окончания операции. Переносим папку vmaps в папку с ядром.

4.2. Настройка конфигурации

Поскольку мы сами компилили сервер, используя оригинальные исходники и базу, то конфиги не нуждаются в правке. Детальное рассмотрение конфигов будет в разделе 6. Главное чтоб в конфигах были прописаны правильные логины и пароли к базе.

4.3. Последние подготовительные операции

Ещё пару раз проверьте есть ли в папке с ядром папки mapc, dbc, vmaps. Ещё раз проверьте есть ли доступ к базе, запущен ли denwer (MySQL Server), не забыли ли вы внести новый реалм. Проверьте всё. Перекреститесь и едем дальше.

5. Пробный запуск и лог-файлы


После всеобщей проверки запускаем Oregonrealm. Если он в норме и не закрылся и выглядит так как на скрине, то всё ОК:



Далее запускаем Oregoncore. Если всё хорошо, то он начнёт грузиться. Пойдут всякие полосочки и строки. Это займёт около 30 сек. После загрузки вы услышите характерный звук от системного динамика. Окно будет выглядеть так:



Создаём аккаунт командой .create account ВАШ_ЛОГИН ВА_ПАРОЛЬ (пишется это в окне oregoncore). Далее в базе realmd в таблице account находим ваш аккаунт и в столбике expension ставим 1. Чтобы дать себе права админа в столбике gmlevel ставим 4.

В реалмлисте клиента вов пишем set realmlist 127.0.0.1. Заходим в WoW. Вводим логи и пароль. Создаём персонажа. Вуяла. Мы играем на своём сервере.

Далее выходим из WoW. Закрываем Oregoncore и oregonrealm. В папке с ядром должны появиться файлы с расширением .log. Открываем их блокнотом и ищем ошибки типа not exist и т.д. Если есть какая-то ошибка – не ленитесь её перевести. Обычно смысл становится понятен. В моей сборке в файле db_errors была такая ошибка:

Code
2010-12-24 15:39:07 >> Loaded gossip_menu, table is empty! – это означает что таблица gossip_menu пуста. Ошибка не критична, поэтому я на неё не обращаю внимания.


6. Переделываем сервер


Как всем известно, бесплатные сервера делятся на несколько типов:

1. Максимально приближенные к BlizzLike – сервера, которых настроены на стандартные рейты официального сервера со стандартным качем, дропом и т.д. Требуют большой работоспособности квестов, итемов и всего остального. Требуют большого оналйна (при малом онлайне не оправдывают себя).

2. Сервера ускоренного кача – например х5, х10, на таких серверах немного ускорен кач; в остальном они обычно похожи на сервера первого типа. Не требуют такой работоспособности квестов, как первый тип, но всё же она должна быть на высоком уровне. Так же большое внимание уделяется инстам 70го лвла, при том что низкоуровневые могут быть недоработанными.

3. Сервера быстрого кача – например х100, х150, на таких серверах процесс кача сводится к 4-5 часам. Особое внимание уделяется хайлевел инстам, системе пвп и т.д. В то же время лоулевельные квесты практически не востребованы, как и инсты.

4. Фан-сервера – максимальный левел при создании персонажа, куча золота, стартовый шмот. Особое внимание уделяется системе пвп. Инсты зачастую выключаются. Встречал даже сервера без мобов. Требуют разнообразных ивентов, рисованного шмота (желательно не рушащего баланс) и всяких интересностей. Наименее требовательны к онлайну (даже при онлайне 30-50 человек сервер может вполне полноценно функцианировать).
Когда мы уже определились в том, какой сервер будем делать, то собственно можно и начать его делать.

6.1. Настройка конфигурации под разные типы серверов

Итак у нас есть рабочее ядро, база, и собственно всё, что нужно. Изначально наш сервер настроен под рейты х1. Так что если нам нужен приближенный BlizzLike, то ничего делать и не нужно. Но ежели тип сервера другой, то таки нужно что-то менять. Начнём с файла конфигурации. Далее буду выкладывать стандартные параметры с комментариями к ним, которые важны для типа сервера (файл oregoncore.conf):

Code
LoginDatabaseInfo     = "127.0.0.1;3306;oregon;oregon;realmd" – адрес базы реалма;
WorldDatabaseInfo     = "127.0.0.1;3306;oregon;oregon;world" – адрес базы мира;
CharacterDatabaseInfo = "127.0.0.1;3306;oregon;oregon;characters" – адрес базы персонажей;
vmap.enableLOS = 1 – включение геодаты (требует vmaps);
vmap.enableHeight = 1 – включение вертикальной геодаты;
vmap.ignoreMapIds = "" – в ковычках пишутся номера карт, на которых геодата будет отключена;
vmap.ignoreSpellIds = "7720" – номера спелов, которые игнорируются геодатой;
vmap.petLOS = 1 – включение геодаты для петов;
vmap.totem = 1 – включение геодаты для тотемов;
GameType = 1 – тип нашего вервера (нормал – 0, 4; пвп - 1, рп - 6, рп-пвп -8, ффа-пвп -16);
SkipCinematics = 0 – вступительные ролики (0 – стандарт, 1 – только при создании чара, 2 –выкл);
MaxPlayerLevel = 70 – максимальный уровень персонажа;
StartPlayerLevel = 1 – стартовый уровень персонажа (для фан-серверов обычно равем максимальному);
StartPlayerMoney = 0 – стартовый голд (указывается число в меди, т.е. 1 золота = 10000 меди)
MaxHonorPoints = 75000 – максимальное количество хонора на персонаже;
StartHonorPoints = 0 – стартовое количество хонора на персонаже;
MaxArenaPoints = 5000 – максимальное количество арена поинтов на персонаже;
StartArenaPoints = 0 – стартовое число арена поинтов на персонаже;
AllFlightPaths = 0 – все точки полёта (1 для активации);
AlwaysMaxSkillForLevel = 0 – всегда максимальные скилы (1 для активации);
Motd = "Welcome to a Oregon Core server." – сообщение сервера;
AllowTwoSide.Accounts = 0 – моздание персонажей за обе фракции на одном аккаунте;
AllowTwoSide.Interaction.Chat = 0 – чат между фракциями;
AllowTwoSide.Interaction.Channel = 0 – каналы чата за обе фракции;
AllowTwoSide.Interaction.Group = 0 – группы из игроков разных фракций;
AllowTwoSide.Interaction.Guild = 0 – гильдии из игроков разных фракций;
AllowTwoSide.Interaction.Auction = 0 – межфракционный аукцион;
AllowTwoSide.Interaction.Mail = 0 – межфракционные письма;
AllowTwoSide.WhoList = 0 – в списке онлайна видимость противоположной фракции;
AllowTwoSide.AddFriend = 0 – друзья между фракциями;
AllowTwoSide.Trade = 0 – обмен между фракциями;
CREATURE SETTINGS – раздел содержит рейпы мобов. Простой дословный перевод делает понятным смысл строк;
SERVER RATES – раздел содержит рейты сервера для игроков;
Battleground.CastDeserter = 1 – дебаф «дизертир» при досрочном выходе с БГ;
Arena.MaxRatingDifference = 150 – тунель рейтинга между арена командами;
Arena.RatingDiscardTimer = 600000 – время поиска команды, не попадающей в тунель (в секундах);
Arena.AutoDistributePoints = 0 – автоначисление арена поинтов;
Arena.AutoDistributeInterval = 7 – период автоначисления (в днях);
AUCTION HOUSE BOT SETTINGS – содержит настройку аукционного бота;
PlayerStart.AllReputation = 0 – создание персонажа со всеми репутациями;
PlayerStart.AllSpells = 0 – создание персонажа со всеми спелами;
PlayerStart.MapsExplored = 0 – создание персонажа с разведанной картой;
MusicInBattleground = 0 – музыка на БГ;
HonorPointsAfterDuel = 0 – хонор посде победы в дуэли;
AlwaysMaxWeaponSkill = 0 – всегда максимальный скил оружий;
PvPToken.Enable = 0 – всключение системы впв-наград;
PvPToken.MapAllowType = 4 – тип карт для пвп-наград;
PvPToken.ItemID = 29434 – итем-награда;
PvPToken.ItemCount = 1 – количество за убийство;
NoResetTalentsCost = 0 – стоисмость сброса талантов (1 – бесплатно);
PlayerStart.String = "" – сообщение при создании персонажа;
DuelMod.Enable = 0 – макс хп при начале дуэля;
DuelMod.Cooldowns = 0 – сброс КД при начале дуэля;
Anticheat.Movement.Enable = 0 – включение античита;
Anticheat.Movement.TeleportToPlaneAlarms = 50 – прижки под текстуры;


6.2. Стартовые запросы для фан сервера.

Если Вы всё-таки решили делать фан-сервер, то стоит научиться многому. Если конфиг уже настроен, то можно перейти к работе с базой данных и наполнению мира фан-сервера.

Первое что нам нужно, это чтоб персонажи стартовали в нужных нам локациях (на пример в столицах). Для реализации этого пользуемся запросом:
Code
UDATE playercreateinfo SET map=ИД_КАРТЫ WHERE race=ИД_РАСЫ_1,ИД_РАСЫ_2;
UDATE playercreateinfo SET zone=ИД_ЗОНЫ WHERE race=ИД_РАСЫ_1,ИД_РАСЫ_2;
UDATE playercreateinfo SET position_x=ПОЗИЦИЯ_Х WHERE race=ИД_РАСЫ_1,ИД_РАСЫ_2;
UDATE playercreateinfo SET position_y=ПОЗИЦИЯ_У WHERE race=ИД_РАСЫ_1,ИД_РАСЫ_2;
UDATE playercreateinfo SET position_z=ПОЗИЦИЯ_Z  WHERE race=ИД_РАСЫ_1,ИД_РАСЫ_2;
UDATE playercreateinfo SET orientation=ОРИЕНТАЦИЯ WHERE race=ИД_РАСЫ_1,ИД_РАСЫ_2;


Где ИД Рас такие:
1 Человек
2 Орк
3 Двaрф
4 Ночной эльф
5 Нежить
6 Таурен
7 Гном
8 Тролль
10 Кровавый эльф
11 Дреней

Теперь даём персонажам команду .maxskill:
Code
UPDATE command SET security=0 WHERE name= maxskill;


Рисуем своего вендора без квайса и вов-в:
1. В игре подходим к любому вендору. Выделяем его и прописываем команду .npc info. Запоминаем entry.
2. Заходим в таблицу creature_template и ставим фильтр по entry этого вендора.
3. В новой строке ставим желаемое entry для нового вендора, а остальные строки переносим со старого вендора.
4. Меняем name и subname, minlevel, maxlevel…
5. ОБЯЗАТЕЛЬНО меняем faction_a и faction_h на 35 – это сделает вендора зелёным для обоих фракций;
6. В игре ставим вендора командой .npc add ИД_ВЕНДОРА. командой .npc additem ИД_ИТЕМА наполняем вендора.

Рисуем шмотку:
Ситуация практически такая же как и с вендором. Т.е. мы берём уже существующую шмотку и рисуем новую по аналогии. Спелы для шмоток можно найти на вовхеде. Некоторые оружия отказываются правильно работать на новых ИД, так что в некоторых случая нужно не создават новый итем, а переделовать старый (естественно его нужно убрать из лута и квестов).

Увеличиваем статы шмоток в N раз:
Code
UPDATE item_template SET armor=armor*N;        
UPDATE item_template SET dmg_min1=dmg_min1*N;        
UPDATE item_template SET dmg_max1=dmg_max1*N;        
UPDATE item_template SET dmg_min2=dmg_min2*N;        
UPDATE item_template SET dmg_max2=dmg_max2*N;        
UPDATE item_template SET block=block*N;        
UPDATE item_template SET stat_value1=stat_value1*N;            
UPDATE item_template SET stat_value2=stat_value2*N;            
UPDATE item_template SET stat_value3=stat_value3*N;            
UPDATE item_template SET stat_value4=stat_value4*N;            
UPDATE item_template SET stat_value5=stat_value5*N;            
UPDATE item_template SET stat_value6=stat_value6*N;            
UPDATE item_template SET stat_value7=stat_value7*N;            
UPDATE item_template SET stat_value8=stat_value8*N;            
UPDATE item_template SET stat_value9=stat_value9*N;            
UPDATE item_template SET stat_value10=stat_value10*N;
UPDATE item_template SET holy_res=holy_res*N;        
UPDATE item_template SET fire_res=fire_res*N;        
UPDATE item_template SET nature_res=nature_res*N;        
UPDATE item_template SET frost_res=frost_res*N;        
UPDATE item_template SET shadow_res=shadow_res*N;        
UPDATE item_template SET arcane_res=arcane_res*N;        
UPDATE item_template SET MaxDurability=MaxDurability*N;


Снимаем требование репутации с определённых итемов:
Code
UPDATE item_template SET RequiredReputationFaction=0 WHERE entry=ИД_ИТЕМА;
UPDATE item_template SET RequiredReputationRank=0 WHERE entry=ИД_ИТЕМА;


Снимаем требование профессии с бинтов:
Code
UPDATE item_template SET RequiredSkill=0 WHERE entry=ИД_БИНТОВ;
UPDATE item_template SET RequiredSkillRank=0 WHERE entry=ИД_БИНТОВ;


Увеличение количества в одном стаке (актуально для бинтов, сол шардов и т.п.):
Code
UPDATE item_template SET stackable=КОЛИЧЕСТВО_В_СТАКЕ WHERE entry=ИД_ИТЕМА;


6.3 Дополнения


Снимаем касты с боссов.
Я вижу тема актуальна. Значит самый просто и безопасный способ снять каст с босса, это сделать нового босса без кастов. Делается это просто. Объясню на примере креветки (High Warlord Naj'entus). Делаем так:
1. Гм-чаром заходим в БТ, добегаем до босса.
2. Тыкаем команду .npc info и запонимаем (записываем) entry и displeyID.
3. Лезем в базу world, Таблица creature_template.
4. Ищем там нашего босса (по entry)
5. Создаём нового моба (с новым entry) и приписываем ему такой же displeyID.
6. По порядку перебираем ячейки таблицы и выставляем все статы мобу.
7. Столбец скриптовки оставить пустым, также столбцы кастов пустые.
8. Когда новый агро-моб создан - рестартим сервер
9. Опять топаем в БТ и просто удаляем старого босса (.npc delete)
10. На его место ставим нового босса.
Ну вот собственно и все история. Но при этом могут появиться эроры т.к. моб мог быть задействован где-то ещё.
Важно так же не забыть про всякие двери и решотки. Их нужно будет сразу пооткрывать, или приделать к ним ключ, который добавить в лут нового босса.

Благодарю за внимание.
Сообщение # 1 отредактировано Evrial - Среда, 25.05.2011, 18:46
Форум » TrinityCore » Установка / Настройка TrinityCore » Создание Своего Сервера (Подробно. Версия клиента 2.4.3)
  • Страница 1 из 1
  • 1
Поиск: