Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> Games Servers —> Ragnarok Online

Ragnarok Online сервер на базе эмулятора eAthena

Автор: FenX.


т.к. мне в аську часто долбится народ с форума поддержки эмулятора eAthena
с просьбой помочь установить сервер на FreeBSD, я решил накатать статью,
хотя до статьи тут далеко...
скорее так, заметки для самых незнающих :)

итак, имеем мы следующее:
FreeBSD 7.1-RELEASE-p4

нам понадобятся:
1. GNU Make
2. Subversion
3. MySQL
3. IQ на уровне "Pan troglodytes"

предполагается что ставим мы сие чудо на чистую ос.

итак, поехали.

1. обновляем порты
$ cat /root/cvs-ports
*default host=cvsup7.ru.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress

ports-all

$ csup -g -L 2 /root/cvs-ports

2. ставим GNU Make
$ cd /usr/ports/devel/gmake && make install clean

3. ставим subversion
$ cd /usr/ports/devel/subversion && make install clean

выбираем опции
[X] NEON              WebDAV/Delta-V repo access module (neon)
[X] BDB               db4 repository backend

остальные можно не ставить, если нет такой необходимости.

4. ставим mysql
Лис уже замечательно всё расписал, так что ставим по статье

5. перезагружаем хеш команд
$ rehash

6. создаём директорию для эмулятора и заливаем в неё исходники
$ mkdir /usr/local/eathena
$ svn co http://svn.eathena.ws/svn/ea/trunk /usr/local/eathena

7. конфигурируем установочные Makefile`ы
$ cd /usr/local/eathena

для x86 машин
$ ./configure

для x64 машин
$ ./configure --enable-64bit

8. компилим :)
$ gmake clean && gmake sql

9. создаём базы под сервер, создаём пользователя для баз, заливаем дампы
$ mysql --user=root --password=<your_pass> \
--execute="CREATE DATABASE eathena_srv"

$ mysql --user=root --password=<your_pass> \
--execute="CREATE DATABASE eathena_log"

$ mysql --user=root --password=<your_pass> \
--execute="GRANT ALL PRIVILEGES ON eathena_srv.* \
TO eathena@localhost IDENTIFIED BY '<your_password>'"

$ mysql --user=root --password=<your_pass> \
--execute="GRANT ALL PRIVILEGES ON eathena_log.* \
TO eathena@localhost"

$ mysql --user=root --password=<your_pass> \
--execute="flush privileges"

$ mysql --user=root --password=<your_pass> \
--database=eathena_srv < /usr/local/eathena/sql-files/main.sql

$ mysql --user=root --password=<your_pass> \
--database=eathena_srv < /usr/local/eathena/sql-files/mob_db.sql

$ mysql --user=root --password=<your_pass> \
--database=eathena_srv < /usr/local/eathena/sql-files/mob_db2.sql

$ mysql --user=root --password=<your_pass> \
--database=eathena_srv < /usr/local/eathena/sql-files/item_db.sql

$ mysql --user=root --password=<your_pass> \
--database=eathena_srv < /usr/local/eathena/sql-files/item_db2.sql

$ mysql --user=root --password=<your_pass> \
--database=eathena_log < /usr/local/eathena/sql-files/logs.sql

10. настраиваем eAthena`у на связь с нашим сервером
$ cat /usr/local/eathena/conf/import/inter_conf.txt
// login server connect
sql.db_hostname: 127.0.0.1
sql.db_port: 3306
sql.db_username: eathena
sql.db_password: <your_password>
sql.db_database: eathena_srv
sql.codepage: cp1251

// char server connect
char_server_ip: 127.0.0.1
char_server_port: 3306
char_server_id: eathena
char_server_pw: <your_password>
char_server_db: eathena_srv

// MySQL Map SQL Server
map_server_ip: 127.0.0.1
map_server_port: 3306
map_server_id: eathena
map_server_pw: <your_password>
map_server_db: eathena_srv

// MySQL Log SQL Database
log_db_ip: 127.0.0.1
log_db_port: 3306
log_db_id: eathena
log_db_pw: <your_password>
log_db_db: eathena_log
log_codepage: cp1251

use_sql_db: yes

Всё. Сервер практически готов к своему первому запуску)))
осталось создать себе админский аккаунт:
$ mysql --user=eathena --password=<your_password> \
--database=eathena_srv \
--execute="INSERT INTO `login` (userid,user_pass,sex,email,level) \
VALUES ('cooladmin', 'my_true_pass', 'M', 'admin@myserv.com', 99)"

вот теперь всё.
стартуем еА:
$ chmod +x /usr/local/eathena/athena-start
$ cd /usr/local/eathena && ./athena-start start

дальнейшие настройки пока расписывать не буду.
описывать процесс сборки и настройки клиента, пока, тоже оставлю на потом :)

собственно комментарии и критика приветствуется :)



размещено: 2008-05-20,
последнее обновление: 2009-11-19,
автор: FenX




 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0399 секунд
Из них PHP: 26%; SQL: 74%; Число SQL-запросов: 77 шт.
Исходный размер: 20520; Сжатая: 5190