http://i029.radikal.ru/1002/d3/b1c9f655bed4.jpg
Доброго времени суток господа!
Поставьте на закачку файлы вот от сюда, а мы пока чуть-чуть поговорим:)

ФАЙЛЫ

[Story...]
Впервые идея поднять свой собственный сервер ПВ появилась достаточно давно. Захотелось распробовать все вкусности этой игры и немножко побыть Богом Идеального Мира:) Однако тема отошла на второй план, т.к. лень и наличие рабочих фришек взяли вверх (пусть там и не получилось побыть богом)

Сначала был Х10к на pwgame.net... По началу даже нравилось, хотя возможность играть была только до 18:00 по МСК:( потом сервер подгружался и лагал так, как никто никогда не лагал:) Администрация правда в итоге на халяву поставила новый серв... Ставили дето неделю наверно... говорили что вайпа не будет, потом говорили что вероятность все же есть, потом запустили временный сервер где почти не давали голд, потом дали оч много голда, и потом сразу вайп:) зачем давали последний раз стоко голда, я так и не понял:) Корочь я забросил его к чертям...

И чудо проваденья завело меня на firefly. Чесно говоря, это самый лучший серв из всех где я был (спс Сантьяга, я тя тут видел;)) Со своими косяками конечн, но все же на нем было правдо интересно играть:)... В конце декабря случилось горе:( закрался фф... и до сих пор закрыт:( пришлось идти дальше...

Дальше на серверах не задерживался:\ Пангу - мало чем отличается от оффа, не катит:( СэмПВ - узкий канал, лаги:( БлекРоуз - лаги, жадный одмин (первый раз увидел чтоб ЧИ продавали за 40 рублей:) может там уже сейчас и мобов продают? заплатил чирик - на тебе Росянку:)) Ад сервер - нипомню почему не попробывал:) помню что собирался, но почемуто не стал. говорят норм серв...

Вобщем я бы так и прыгал, когда наконец не заметил, что все (!) пвп серваки лежат:( это было последней каплей. Я твердо решил, что поставлю свой сервер ПВ!:)

[Sources...]
Я просмотрел несколько форумов посвещеных поднятию и развитию серверов ПВ (Google.com рулит!:)) и остановился на двух наиболее перспективных (на мой взгляд) в плане идей. Это собсно русскоязычный ЭмуДев и забугорный мморпг-дев поэтому все что ниже изложено взято так или иначе с этих 2х источников (ссылки я буду приводить по ходу пьесы)

[Hard Working]
Сказано - сделано. С благочестивым рвение я начал пробовать свои силы в серверостроении. Скажу сразу, до этого никогда не поднимал сервера... Т.е. поднимал, но то были более обычные apache, proftpd, sshd, iced, qmail, smb и прочее, но вот конкретно игровых никогда:) Поэтому сначала я перечитал все что только смог найти на руском и на английском, была даже статья на немецком переведенная на руский (опять спс Google:))
Вооружившись кое-какими знаниями я пошел в бой. Решил для начала запустить на coLinuxе. Перебрал много, ниче не вышло:( Потом выкачал дистрибутив от TriRozhkи от сюда и чет меня прям осенило по поводу конфигов и "[A" и все пошло:)
Следующий шаг. IWeb. Нашел тут. Попарился с сертификатами в фаирфокс... заработало:) пофанился от души прочитав и приминив знания на практике
Далее. Перенос из coLinux на собсно сам Linux:). Взял Debian(любимый дистрибутив, всем советую) Взял статьи вот тут и тут и собсно все сделал, немного подковыряв authd.
Теперь последнее. Отказ от порочного MSSQL и переход на добродушный MySQL:) Оказалось что все намного проще чем я думал... Пищу для ума взял тут. И вот он нш результат:) Рабочий сервер под линуксом на MySQL...

[HowTo...]
Поехали по порядку...

1. Установка Debian.
- При установке самое главное помнить, что полностью запушенный сервак кушает порядка 6 Гигов оперативкм... Поэтому если у нас нет 6 Гигов оперативки, делаем раздел подкачки (swap) на 6 Гигов:)
- Для экономии места на винте, можно установить лишь минимальную систему, все нужное мы поставим сами
- После запуска системы, заходим под пользователем root и устанавливаем нужные нам пакеты:

Код:
# apt-get install apache2
# apt-get install mysql-server
# apt-get install php5
# apt-get install php5-mysql
# apt-get install libapache2-mod-php5
# apt-get install phpmyadmin
# apt-get install unzip
# apt-get install mc

- Теперь установим пароль для пользователя root в MySQL:
Введем в консоли команду

Код:
# mysql

Теперь выполним 2 простых SQL запроса(не забудь ставить ; в конце):

Код:
>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Новый_пароль');
>FLUSH PRIVILEGES;
Выйдем из программы командой /q

1.1 Востановление базы MySQL.
Этот шаг можно делать с машины под управлением Windows.
- Распакуем куда-нить себе на винт файлы из sql.rar
- В браузере откройте страничку http://IP_вашего_сервера/phpmyadmin введите логин root и пароль, который мы установили шагом назад.
- В правом столбце выбираем Импорт и указываем путь к файлу PW_tabels.sql
- Потом выбираем базу pw и нажимаем кнопку SQL в верхнем ряду.
- Вставляем в поле запроса содержимое файла PW_procedures.sql, вместо ";" в поле Разделитель вставляем "$$" и нажимаем кнопку Пошел

2. Установка сервер. Настройка.
- Распакуем содержимое сервера прямо в корень

Код:
# unzip PW1.3.6.zip
- Запустим MidnightCommander (команда mc) и найдем файл /home/glinkd/gamesys.conf Откроем его для редактирования (F4). В нем 4 раза встречается примерно следующий фрагмент

Код:
type = tcp
port = 29000
address = 192.168.0.200
и мы 4 раза, заменяем 192.168.0.200 на IP адрес нашего будущего сервера.
- Находим и открываем для редактирования (F4) файл /home/mauthd/build/conf/table.xml Находим в самом начале вот такой фрагмент

Код:
<driver name="com.mysql.jdbc.Driver" />
<connection name="auth0" poolsize="3"
url="jdbc:mysql://127.0.0.1:3306/pw?
useUnicode=true&characterEncoding=utf8" username="root"
password="1"/>
Заменяем 1 на пароль пользователя root сервера баз данных MySQL. (тот, что мы установили в конце шага 1)
- Таким же образом редактируем файлы /var/www/register/config.php

Код:
<? //=====Script by trash=====// //=====For MySQL Datatbase=====//

$DBHost = "localhost"; // localhost or your IP
$DBUser = "root"; // Database user
$DBPassword = "1234"; // Database password
$DBName = "pw"; // Database name?>
Вписываем пароль пользователя root сервера баз данных MySQL.
- Правим файл /var/www/register/status.php

Код:
/*-------Config------*/

$DBHost = "localhost"; // localhost or your IP
$DBUser = "root"; // Database user
$DBPassword = "1234"; // Database password
$DBName = "dbo"; // Database name
$ServerIP = "192.168.1.2"; // IP your PW Server
$ServerPort = "29000"; // Port your PW Server
Вписываем пароль пользователя root сервера баз данных MySQL. Указываем вместо dbo имя нашей базы (в моем случае pw) и заменяем IP адрес на свой.
- Откроем файл /etc/hosts и допишем ему в конец примерно следущие строчки

Код:
192.168.1.2 dbserver
192.168.1.2 database
127.0.0.1 auth
127.0.0.1 aumanager
127.0.0.1 manager
127.0.0.1 link1
127.0.0.1 game1
127.0.0.1 game2
127.0.0.1 game3
127.0.0.1 delivery
127.0.0.1 backup
127.0.0.1 gmserver
Заменив IP адрес 192.168.1.2 на наш

- Применяем права доступа:

Код:
# chmod 777 -R /home
# chmod 777 -R /etc/ssl
# chmod 777 /etc/gmopgen.xml
# chmod 777 /etc/GMserver.conf
# chmod 777 /etc/iweb.conf
# chmod 777 -R /usr/java
# chmod 777 -R /usr/lib
# chmod 777 -R /usr/local/jakarta-tomcat-5.5.9/bin/*.sh
# chmod 777 -R /lib
# chmod 777 /root/pwserver.sh
- Добавляем библиотеки

Код:
# ldconfig

- Рейты указываются в файле /home/gamed/ptemplate.conf в строчках

Код:
exp_bonus = 100000
MONEY_bonus = 2000
sp_bonus = 2000
DROP_bonus = 2000
- В скрипт регистрации я добавил автоначисление голда

Код:
$mysqlresult=MySQL_Query("select * from `users` WHERE `name`='$Login'");
$User_ID=MySQL_result($mysqlresult,0,'ID');
MySQL_Query("call usecash('$User_ID',1,0,1,0,500000,1,@error)") or die ("usecash failed!");
Укажите вместо 500000 свое количество, или закоментируйте все это безобразие если оно вам не нужно:)
(Количество указывается в серебре. Т.е. 500000 - это 5000 золота и 00 серебра)
- IWeb. [ВНИМАНИЕ!] так уж получилось что эта версия iweb оч не дружит с apache в плане занимаемых портов:( выходов 4:
Перед запуском останавливать apache (# /etc/inid.d/apache2 stop)
Поменять настройки портов apache
Не запускать и даже не устанавливать apache2. Перенести скрипт регистрации на другой сервер.
Не пользоваться iweb

Закоментировать строки

Код:
echo "=== IWEB AND ROLE MANAGEMENT ==="
/usr/local/jakarta-tomcat-5.5.9/bin/startup.sh
sleep 5
echo "=== DONE! ==="
echo ""
в файлах

Код:
/home/startup.sh
/home/startup_min.sh
/home/startup_max.sh
3. Запуск сервера
-В папке /root лежит мой самописный скриптик pwserver.sh для запуска сервера
Запусти его, выбери режим (1 - все данжи, 2 - только MainWorld, 3 - запуск /home/startup.sh)
1. Все данжи. Полный запуск сервера.
2. Только MainWorld. Удобно, когда надо быстро запустить только сервер.
3. Настроеный запуск из /home/startup.sh Например чтобы проверить какой-нить определенный данж

[Client side...]
Чтобы подключится к серверу надо в клиенте с рус офа произвести кое какие изменения:
- в файл element\userdata\server\serverlist.txt добавить/написать строчку вроде этой:

Код:
Elizabeth 29000 192.168.1.2
Где Elizabeth - имя сервера, можно указать любое
29000 - порт сервера, его оставить таким же
192.168.1.2 - IP адрес сервера указать свой
- заменить файл шопа в element\data\gshop.data
он должен быть таким же как и тот, что на сервере (/home/gamed/config/gshop.data)
тот, что сейчас на сервере и выложен в ссылке наверху
- запустить сервер можно или через патчер или через bat файл следующего содержания:

Код:
cd element
start elementclient.exe game:cpw[IWeb...]
IWeb взял от сюда. Спс Refuge:) Собственно нам нужно только выполнить пункт 5 вот из этого поста.

Ну вот и все;)
Надеюсь кому то этот матерьял поможет, иначе зачем я его столько чепятал:\

by BlackPPoint