Самый подробнейший мануал (инструкция) по созданию собственного сервера l2.

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

Добрый день, уважаемые читатели. Этот мануал написано специально для lasteam.ru и основан на непонимании новичков и расписан как можно подробнее. Тут есть все, что вам нужно для создания собственного сервера l2.

Чтож, начнем...

Для начала нам нужна главная часть для создания нашего сервера - сама Сборка. Есть множество команд, выпускающих эту сборку. Отличаются все они качеством и хрониками. Что либо советовать тут я не буду, т.к. выбор велик, и у многих что-то есть, чего то нету. Наиболее популярными являются l2jfree, l2jserver, l2emu, dream, oneo...

Настраиваюся они все довольно таки одинаково, есть только пара отличий в синтаксисе. Я покажу только основные изменения в файлах для создания собственного сервера л2, все остальные (рейты, дроп...) вы можете найти в других файлах в папке с названием config

... Но для начала я расскажу вам структуру самого сервера. Сам сервер состоит из Логин Сервера (Сервер Авторизации игрока) и игрового сервера (где игрок непосредственно играет). При создании собственного сервера, вам нужно будет запустить на своей машине оба: для возможности игрока авторизации на вашем сервере и непосредственно игры (на гейм-сервере).

Допустим, что игровую сборку понравившейся команды и нужных хроник мы уже скачали. Что ж, приступим к его установке, но для начала нам нужно установить Базу Данных (mySQL)

mySQL - ДБ (Data Base, или проше база данных) устанавливается как сервис на компьютере, на котором вы хотите создать собственный сервер l2. В нее как раз сборка, которая, как раз, наверно, уже лежит на вашем компьютере, будет записывать всю информацию: созданные аккаунты, игроков, дроп с мобов и тому подобное. Эту программу вы всегда можете скачать с сайта производителя (гуглите), но я предлагаю вам поставить такой интересный комплект, как Denwer, который уже включает mysql, но в нем включены такие вкусняшки, как Apache, PhP и еще много непонятных букв, которые в совокупности создают вам профессиональный сайт, который вы можете увидеть после установки пакета денвера, введя в ваш браузер ссылку http://127.0.0.1 (стандартный ИП адрес вашего компьютера), но это уже создание сайта и не буду забегать вперед. Скажу лишь, что лучше поставить его.

Допустим, что данный пакетик мы уже поставили и теперь приступим к настройке самого сервера. Сервер лучше не класть в папку с русским именем, т.к. на большинстве сборок могут быть проблемы при запуске. Еще возможно, что когда вы скачали и распаковали сервер, там оказалось еще несколько непонятных архивов- это вам так преподносят отдельно Датапак (вся разная чушь, типа диалогов, продаваемых предметов. В архиве требуется найти папку data и положить ее после распаковки в ваш Гейм сервер, чтобы он лежал рядом с папками config,log...), Логин сервер (возможно там будет не папка с названием login, а какой нибудь dist. Вот нужно распаковать ее и переименовать ее в login, чтобы получилась структура папка_с_сервером/login/config или папка_с_сервером/login/log) и Гейм сервер (возможно там будет не папка с названием Game, а какой нибудь dist или GS. Вот нужно распаковать ее и переименовать ее в Game, чтобы получилась структура папка_с_сервером/Game/config или папка_с_сервером/Game/log или папка_с_сервером/Game/data, которую мы положили после распаковки датапака). Допустим мы все это распаковали в C:\\server. Получилась структура (сравниваем и смотрим что не так и изменяем)

C:\\server\login\config
C:\\server\game\config

еще где то в дата паке будут дополнительные папки вроде SQL или Tools - это установщики начальной базы данных в программу, которую мы установили выше (Mysql), но о них позже. Также могут быть разные папки, типа options. Все должно быть в C:\\server.

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

C:\\server\sql
C:\\server\option
C:\\server\tools
C:\\server\doc

Хорошо. Мы распаковали свой собственный будущий сервер. Теперь я расскажу как его правильно настроить. Но для начала, нам нужно создать требуемые таблицы в нашей базе данных для записи аккаунтов, персонажей и всякой другой ерунды. Для этого нам сначала нужно создать Базу данных для самого сервера для будущих таблиц типа аккаунтов в mysql. Нам нужен sql менеджер. Я рекомендую использовать Navicat. Скачать тут: http://www.navicat.com/en/download/download.html . Нужен Navicat for MySQL (можно Lite).

Устанавливаем Navicat. Заходим. Нажимаем новое соединение. вводим наш стандартный адрес, на котором установлен mysql - 127.0.0.1 , логин - root и пароль - либо пустой, либо root, либо тот который вы указали если сами ставили mysql, можно потестировать. Остальное не трогаем, все норм. Сохраняем. Тыкаем по появившемуся соединению в окошке и вуаля, открылись непонятные подпапочки- это стандартные базы. нам нужно создать свою, под собственный сервер л2. Кликаем правой кнопкой мышки по соединению и нажимаем New Database. Вводим название нашей базы. Значения тут никакого нет, как вы ее назовете. Это служебное имя базы для вашего сервера. Я назову ее l2server и советую вам назвать также.

Итак, База для нашего собственного сервера была создана. Теперь необходимо залить все таблицы (аккаунты, персонажи...) в нашу только что созданную базу данных. Для этого нам нужно в корне сервера найти интересный файлик. Он должен лежать в папке с названием типа tools, или вообще без папки. Называться он должен что то вроде database_installer.bat . Открываем его через блокнот и находим где то в начале строчки для соединения с нашей базой. Тут мы должны выбрать, в какую базу нам нужно заливать таблицы для логин сервера и гейм сервера. Ищем нечто подобное и настраиваем также:

set gsuser=root //пользователь нашей базы данных для заливания гейм сервера. Может называться по другому
set gspass= //пароль нашей базы данных для заливания гейм сервера. Может называться по другому
set gsname=l2server //база данных для заливания гейм сервера
set gshost=localhost //адрес соединения. localhost=127.0.0.1 - это адрес этого компьютера. Может писаться по разному

//ну и все тоже самое, только для логин сервера
set lsuser=root
set lspass=
set lsname=l2server
set lshost=localhost

Когда все записи успено произведены, закрываем блокнот, сохранив изменения и двойным щелчком запускаем тот же самый файл (у меня database_installer.bat)

Появляется консольное окошко. Тут уже может быть написано что угодно, все зависит от сборки, которую вы скачали. Я использую emurt - платную сборку, поэтому выложить не могу. Смысл состоит в том, чтобы из этого командника установить базу Аутенфикации (Логин сервер) и Игровую Базу (Гейм сервер). Устанавливать будет в базу, которую мы до этого создали и через блокнот указали до ней пути. Там понадобится пара нажатий клавиш, где вас буду просить нажать цифры, соответствующие тому, какой пункт меню вы должны выбрать. У меня это так:

Жму install database/ install login server
Выпадают логи с тем что тамблицы заливаются.
(если ошибки, значит вы что то делаете неправильно)

Затем устанавливаю гейм сервер, жму install database / install game server

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

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

Для начала настраиваем логин сервер. Еще раз напоминаю, что пути могут быть разными, как и название самих настроек, просто нужно думать логически.
Для этого заходим в C:\\server\login\config (или как то так) ищем файл что то вроде loginserver.properties или network.properties. Одним словом, вам нужно найти файл в папке логина, примерно такого содержания:

# ---------------------------------
# Сетевые настроки сервера
# ---------------------------------
# 1 - Адрес на котором прослушивается логин сервер
#     0.0.0.0 - все доступные
# 2 - Порт логин сервера на который подключается клиент
LoginServerHostName = 0.0.0.0
LoginServerPort = 2106

# 1 - Порт логин сервера для игровых серверов
# 2 - Адрес логин сервера
LoginPort = 9014
LoginHostName = 127.0.0.1

# Проверять регистарцию игровых серверов каждые x минут
IpUpdateTime = 10

# ---------------
# Сервис Telnet
# ---------------
# Использовать Telnet
EnableTelnet = false

# Порт прослушки Telnet'a
StatusPort = 12345

# Пароль доступа к Trlnet
StatusPW = l2emu-rt

# Список хостов доступных для подключения к Telnet
ListOfHosts = 127.0.0.1,localhost

# ----------------------------
# Настройка базы данных
# ----------------------------
# MySQL драйвер
Driver= com.mysql.jdbc.Driver
# Список других драйверов
# Driver= org.hsqldb.jdbcDriver
# Driver= com.microsoft.sqlserver.jdbc.SQLServerDriver

# Адрес базы данных
URL = jdbc:mysql://127.0.0.1/l2server

# 1 - Логин базы данных
# 2 - Пароль базы данных
Login = root
Password =

# Максимальное количество подключений к базе данных
# Если у игроков лаги, увеличьте количество подключений
MaximumDbConnections = 10
В данном файле нам нужно написать данные от вашего компьютера и адреса к базе данных. Вот эти опции вам нужно изменить (могут быть другими)

URL = jdbc:mysql://127.0.0.1/l2server //это подключение к нашей базе данных. Ип: 127.0.0.1 и название базы. Может быть вообще в разных строчках. Нужно искать тогда dbuser, dbase или что то в этом роде

Login = root //наш логни в базе данных

Password = //наш пароль в базе данных

LoginServerHostName = 127.0.0.1 //адрес нашего логин сервера. Если вы хотите играть один, ставьте 127.0.0.1, если с друзьями по сети, то тут ставьте свой ИП адрес, который вы можете узнать из вашего договора с провайдером.

Хорошо. Сохраняем. Выходим на папку выше, в C:\\server\login и запускаем что то вроде login_server.bat или это может быть start.bat. В общем файл, имеющий .bat расширение и названием говорящий о старте логин сервера. Если все прошло без ошибок, то сервер авторизации мы уже поставили.

Далее редактируем тоже самое для Игрового сервера (Гейм). Заходим в C:\\server\game\config. И ищем файл, который будет отображать настройки для подключения к базе. Он может лежать как в корне папки конфиг, так и в дополнительной папке, например, config/network/. И называться он может по-разному: network.properties, server.properties, gameserver.properties. Даже все настройки которые буду приведены ниже, могут быть в разных файлах и называться также по разному, но суть одна.

Лично мне повезло, у меня все требуемые настройки лежат в файле .../game/config/network/network.properties (открывается блокнотом)

# ---------------------------------
# Сетевые настроки сервера
# ---------------------------------
# 1 - Адрес на котором прослушивается игровой сервер
#     0.0.0.0 - все доступные
# 2 - Порт игрового сервера
GameServerHostName = 0.0.0.0
GameServerPort = 7777

# 1 - Порт логин сервера
# 2 - Адрес логин сервера
LoginPort = 9014
LoginHost = 127.0.0.1

# Внешнесетевой адрес сервера
ExternalHostname = 127.0.0.1

# Внутрисетевой адрес сервера
InternalHostname = 127.0.0.1

# ------------------------------------
# Section: Subnets & Advanced  Routing
# ------------------------------------
# Define optional networks and router IPs
#
# Format:
#
# Subnet = host, net/mask; host, net/mask, net/mask
#
#          host - IP address (200.100.200.100) or
#                 fully qualified domain name (example.org)
#
#          net/mask - mask 192.168.0.0/16 or 192.168.0.0/255.255.0.0
#                     would be 192.168.*.*
#
# External - external hostname, you defined in server.properties
# Internal - internal hostname, you defined in server.properties
#
# Example:
# Subnet = 169.254.1.100, 169.254.0.0/16, 111.222.333.0/255.255.255.0
InternalNetworks =
OptionalNetworks =

Subnet = Internal, 127.0.0.1/32, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
Subnet = External, 0.0.0.0/0

# ---------------
# Сервис Telnet
# ---------------
# Использовать Telnet
EnableTelnet = false

# Порт прослушки Telnet'a
StatusPort = 23

# Пароль доступа к Telnet
StatusPW = l2emu-rt

# Альтернативный режим Telnet'a, используется логин администратора
AltTelnet = true

# Если пароль не установлен, он будет сгенерирован автоматом. Какое количество символов задать для пароль
TelnetPasswordLength = 10

# Список хостов доступных для подключения к Telnet
ListOfHosts = 127.0.0.1,localhost

# ----------------------------
# Настройка базы данных
# ----------------------------
# MySQL драйвер
Driver= com.mysql.jdbc.Driver
# Список других драйверов
# Driver= org.hsqldb.jdbcDriver
# Driver= com.microsoft.sqlserver.jdbc.SQLServerDriver

# Адрес базы данных
URL = jdbc:mysql://localhost/l2server?useUnicode=true&characterEncoding=utf-8

# 1 - Логин базы данных
# 2 - Пароль базы данных
Login = root
Password =

# Максимальное количество подключений к базе данных
# Если у игроков лаги, увеличьте количество подключений
MaximumDbConnections = 50

GameServerHostName = 127.0.0.1 //Ваш Ип адрес. Если собираетесь играть один, то ставим 127.0.0.1, если с друзьями, ставим свой ип адрес
Login = root //все теже самые данные к базе
Password =
ExternalHostname = 127.0.0.1 //если сервер имеет доступ к интернету и внешний ип адрес, то вписываем его, я играю один, ставлю 127.0.0.1
InternalHostname = 127.0.0.1 //если сервер имеет доступ к интернету и внешний ип адрес, то вписываем внутрисетевой адрес, я играю один, ставлю 127.0.0.1

Все. Сохраняем все файлы.

Хочу обратить внимание на один параметр, это автосоздание аккаунтов, т.е. если вы пока не собираетесь ставить сайт, то лучше включить, чтобы при воде логина и пароля, аккаунт сразу создавался. Для этого где то в настройках Логин сервера C:\\server\login\config ищем файл, внутри которого есть параметр AutoCreateAccounts = false. И ставим ему значение true, чтобы получилось:

AutoCreateAccounts = true
После изменения нужно перезапустить логин сервер.

Теперь запускаем Гейм сервер: C:\server\game\start.bat или game.bat или gameserver.bat ... что то точно будет =)

теперь у вас все должно запуститься и Гейм сервер должен соединиться с запущеным ранее Логин сервером. В гейм сервере вы должны увидеть успешное соединение, чтоhttp://lineage2.8bb.ru/i/blank.gif то вроде такого:

INFO Registered on login as Server 3 : Kain

Готово. Вы создали и запустили свой собственный сервер л2. Теперь вы можете заходить на свой сервер, но сначала вам нужно поправить саму игру, чтобы она заходила не на официальные серверы как запрограммировано по стандарту, а на ваш же сервер, на ваш компьютер, но это в другой инструкции. Часть Создания сервера закончена.

FAQ (Частые вопросы):

Где изменять рейты?
Рейты вашего собственного сервера л2 изменяются в настройках вашего Гейм сервера. Например у меня это C:\\server\Game\config\main\rates.properties

Как узнать мой сетевой адрес для игры по сети с друзьями?
Адрес вам дает ваш провайдер. Он обычно пишется в договоре, но обычно люди его знают

Как узнать мой внешнесетевой адрес для игры по интернету с друзьями?
Для доступа к серверу по интернету, у вас должен быть "Выделенный ИП адрес", который обычно покупается. Если вы уверены, что у вас выделенный ип адрес, узнать его можете по адресу http://myip.ru . Также подключить его вы можете у своего провайдера. Будет это от 50 до 150 рублей в месяц