Налаштуйте Ragnarok Online Server на Ubuntu 14.04 x64

У цій статті ми збираємося налаштувати онлайн-сервер Ragnarok на Ubuntu 14.04 x64. Ви можете увійти як користувач root або користувач з правами суперкористувача. Безпечніше налаштувати це як користувача без права root за допомогою sudo. У цьому підручнику ми будемо використовувати файли сервера rAthena.

Якщо ви використовуєте Windows і у вас є сервер Ubuntu (VPS або виділений), вам знадобляться наступні програми.

  • FileZilla
  • PuTTY
  • Текстовий редактор (рекомендується Sublime або Notepad++)

Вимоги

  • apache2 - Якщо ви плануєте використовувати phpMyAdmin для віддаленого доступу до mysql і налаштування вашого веб-сайту.
  • php5 - для веб і phpMyAdmin.
  • phpmyadmin - віддалений доступ до MySQL за допомогою веб-браузера.
  • mysql-server - наша база даних для ігрового сервера.
  • mysql-клієнт
  • git
  • зробити
  • gcc
  • libmysqlclient-dev
  • zlib1g-dev
  • libpcre3-dev - необов'язково, для підтримки PCRE.
  • libssl-dev - обов'язковий для компіляції з MySQL 5.5.

Ви можете звернутися до цього посібника щодо встановлення Apache, MySQL та PHP.


Встановлення необхідних пакетів

Виконайте ці команди через SSH.

  • Root користувач:

    apt-get install php5 phpmyadmin mysql-server mysql-client git make gcc libmysqlclient-dev zlib1g-dev libpcre3-dev
    
  • Некореневі з привілеями sudo:

    sudo apt-get install php5 phpmyadmin mysql-server mysql-client git make gcc libmysqlclient-dev zlib1g-dev libpcre3-dev
    

Після успішного встановлення вимог до сервера, давайте приступимо до встановлення та налаштування файлів сервера.


Завантаження файлів сервера

Тепер ми збираємося отримати останні оновлення файлів сервера rAthena. Це файли, необхідні для роботи сервера Ragnarok Online. Існують інші файли сервера, які можна використовувати, наприклад Hercules та eAthena, але в цьому підручнику ми використовуємо rAthena. Виконайте наведену нижче команду, щоб завантажити файли.

    git clone https://github.com/rathena/rathena.git ~/rAthena

Це помістить усі файли всередині rAthenaвашого поточного каталогу в терміналі.

Щоб оновити файли сервера до останньої версії, виконайте цю команду.

    cd rAthena
    git pull

Налаштування MySQL

У цій частині ми налаштовуємо MySQL для бази даних нашого сервера. Спочатку перевірте, чи працює ваш MySQL Server.

    service mysql status

Якщо він не працює, введіть цю команду.

    service mysqld start

Після виконання наведених вище команд відкрийте консоль MySQL.

    mysql -u root -p

Вас попросять ввести пароль root. Після входу в систему введіть наступні команди, щоб створити базу даних для нашого сервера.

CREATE DATABASE (your ragnarok database name); -- We'll name it "ragnarok".

    mysql> CREATE DATABASE ragnarok;

Потім створіть нового користувача для БД Ragnarok і зареєструйте БД.

GRANT ALL ON ragnarok.* TO yourdatabaseusername@localhost IDENTIFIED BY "yourdesiredpassword"; -- We will create a new user called admin with a password of 123456.

    mysql> GRANT ALL ON ragnarok.* TO admin@localhost IDENTIFIED BY "123456";

Ви можете замінити localhost на IP-адресу, якщо ви хочете, щоб користувач міг отримати доступ до вашого сервера MySQL віддалено.

Створіть базу даних журналів для журналів гри Ragnarok.

CREATE DATABASE (your log database name) -- We'll name it "log".

    mysql> CREATE DATABASE log;

Установіть дозволи для користувача, якого ми створили раніше, під ім’ям admin .

    mysql> GRANT ALL ON log.* TO admin@localhost;

Відновіть необхідні таблиці у вашій базі даних Ragnarok і журналів. Після цього оновіть свій пароль -p.

mysql> quit;

mysql -u admin -p123456 ragnarok  < /path/to/your/rathena folder/sql-files/main.sql
mysql -u admin -p123456 log < /path/to/your/rathena folder/sql-files/logs.sql

Створення ігрового облікового запису

Для доступу до бази даних ми використовуємо phpMyAdmin, який ми встановили раніше. Доступ до phpMyAdmin через веб-браузер.

Виберіть ragnarokбазу даних і виберіть loginтаблицю. Ми бачимо, що в цій таблиці є один запис. Поки що не видаляйте/змінюйте його. Він використовується сервером. Щоб створити ігровий обліковий запис, натисніть вкладку SQL, перебуваючи на loginтаблиці, щоб відкрити редактор запитів. Виконайте наступний запит.

    INSERT INTO `ragnarok`.`login` (`account_id`, `userid`, `user_pass`, `sex`, `email`, `group_id`, `state`, `unban_time`, `expiration_time`, `logincount`, `lastlogin`, `last_ip`, `birthdate`, `character_slots`, `pincode`, `pincode_change`, `vip_time`, `old_group`) VALUES ('2000000', 'admin', 'password123', 'M', 'email@email.com', '99', '0', '0', '0', '0', '0000-00-00 00:00:00', '', '0000-00-00', '9', '', '0', '0', '0');

Ми вставили нового користувача в таблицю входу з такою інформацією.

  • account_id = 2000000 (Завжди починайте з 2000000, потім 2000001...)
  • userid = admin (Ваше ім'я користувача в грі)
  • user_pass = password123 (пароль для вашого облікового запису)
  • sex = M (M або F, не використовуйте S, оскільки це лише для сервера)
  • email = email@email.com ( електронна пошта вашого облікового запису, використовується для видалення слотів персонажів у грі)
  • group_id = 99 (зверніться до /rathena/conf/groups.confі перевірте рядки id. На даний момент 99, щоб зробити це обліковим записом GM для використання спеціальних команд у грі.)
  • character_slots = 9 (кількість символів, які можна створити для облікового запису)

Залиште інші значення як є. Вітаю. Ви успішно створили свій обліковий запис для гри.


Налаштування файлів сервера

По-перше, ви повинні знати IP-адресу вашого сервера. Можливо, ви вже знаєте це, оскільки воно вже було включено в інформацію про сервер вашого Vultr VPS. Якщо ви хочете перевірити це, введіть:

    ifconfig

Знайдіть частину eth0 inet addr:xxx.xxx.xxx.xxx . xxx.xxx.xxx.xxx буде IP-адресою вашого сервера. Якщо у вас встановлено Apache, ви можете отримати доступ до нього, щоб перевірити, чи працює ваш веб-сервер.

У FileZilla увійдіть до свого VPS з обліковими даними свого сервера та отримайте доступ до /rAthena/confпапки.

Редагувати char_athena.confта за map_athena.confдопомогою бажаного текстового редактора.

Редагувати char_athena.confз:

    // Login Server IP
    // The character server connects to the login server using this IP address.
    // NOTE: This is useful when you are running behind a firewall or are on
    // a machine with multiple interfaces.
    //login_ip: 127.0.0.1

    // The character server listens on the interface with this IP address.
    // NOTE: This allows you to run multiple servers on multiple interfaces
    // while using the same ports for each server.
    //bind_ip: 127.0.0.1

    // Login Server Port
    login_port: 6900

    // Character Server IP
    // The IP address which clients will use to connect.
    // Set this to what your server's public IP address is.
    //char_ip: 127.0.0.1       

Кому:

    // Login Server IP
    // The character server connects to the login server using this IP address.
    // NOTE: This is useful when you are running behind a firewall or are on
    // a machine with multiple interfaces.
    login_ip: xxx.xxx.xxx.xxx

    // The character server listens on the interface with this IP address.
    // NOTE: This allows you to run multiple servers on multiple interfaces
    // while using the same ports for each server.
    //bind_ip: 127.0.0.1

    // Login Server Port
    login_port: 6900

    // Character Server IP
    // The IP address which clients will use to connect.
    // Set this to what your server's public IP address is.
    char_ip: xxx.xxx.xxx.xxx

Де xxx.xxx.xxx.xxxзнаходиться IP-адреса вашого сервера.

У inter_athena.txtфайлі внесіть такі зміни:

    // Global SQL settings
    // overridden by local settings when the hostname is defined there
    // (currently only the login-server reads/obeys these settings)

    // MySQL Login server
    login_server_ip: 127.0.0.1 // <- either 127.0.0.1 or your server's ip, we'll use 127.0.0.1 since it listens to own mySQL server, change it to IP if your mySQL Server is in different server.
    login_server_port: 3306
    login_server_id: ragnarok // <- change this to your mySQL User your created earlier
    login_server_pw: ragnarok // <- its password 
    login_server_db: ragnarok // <- change this if your ragnarok db you set is different
    login_codepage:
    login_case_sensitive: no

    ipban_db_ip: 127.0.0.1 // <- either 127.0.0.1 or your server's ip, we'll use 127.0.0.1 since it listens to own mySQL server, change it to IP if your mySQL Server is in different server.
    ipban_db_port: 3306
    ipban_db_id: ragnarok // <- change this to your mySQL User your created earlier
    ipban_db_pw: ragnarok // <- its password 
    ipban_db_db: ragnarok // <- change this if your ragnarok db you set is different
    ipban_codepage:

    // MySQL Character server
    char_server_ip: 127.0.0.1 // <- either 127.0.0.1 or your server's ip, we'll use 127.0.0.1 since it listens to own mySQL server, change it to IP if your mySQL Server is in different server.
    char_server_port: 3306
    char_server_id: ragnarok // <- change this to your mySQL User your created earlier
    char_server_pw: ragnarok // <- its password 
    char_server_db: ragnarok // <- change this if your ragnarok db you set is different

    // MySQL Map Server
    map_server_ip: 127.0.0.1 // <- either 127.0.0.1 or your server's ip, we'll use 127.0.0.1 since it listens to own mySQL server, change it to IP if your mySQL Server is in different server.
    map_server_port: 3306
    map_server_id: ragnarok // <- change this to your mySQL User your created earlier
    map_server_pw: ragnarok // <- its password 
    map_server_db: ragnarok // <- change this if your ragnarok db you set is different

    // MySQL Log Database
    log_db_ip: 127.0.0.1 // <- either 127.0.0.1 or your server's ip, we'll use 127.0.0.1 since it listens to own mySQL server, change it to IP if your mySQL Server is in different server.
    log_db_port: 3306
    log_db_id: ragnarok // <- change this to your mySQL User your created earlier
    log_db_pw: ragnarok // <- its password 
    log_db_db: log // <- change this if your log db you set is different
    log_codepage:
    log_login_db: loginlog

У map_athena.txtфайлі внесіть такі зміни:

    // Character Server IP
    // The map server connects to the character server using this IP address.
    // NOTE: This is useful when you are running behind a firewall or are on
    // a machine with multiple interfaces.
    char_ip: x.x.x.x


    // The map server listens on the interface with this IP address.
    // NOTE: This allows you to run multiple servers on multiple interfaces
    // while using the same ports for each server.
    //bind_ip: 127.0.0.1

    // Character Server Port
    char_port: 6121


    // Map Server IP
    // The IP address which clients will use to connect.
    // Set this to what your server's public IP address is.
    map_ip: x.x.x.x

    // Map Server Port
    map_port: 5121

Де xxx.xxx.xxx.xxxзнаходиться IP-адреса вашого сервера.

Відкрийте subnet_athena.txtта встановіть IP-адресу.

    subnet: 255.0.0.0:x.x.x.x:x.x.x.x

І ми закінчили налаштування сервера.


Компіляція сервера rAthena

Тепер час компілювати сервер! У цій частині вам потрібно знати, яку версію клієнта Ragnarok Online ви будете використовувати для підключення до сервера. Щоб налаштувати клієнта, відвідайте цю сторінку .

Після того як ви вирішите, який клієнт використовувати, давайте відредагуємо деякі файли. Скажімо, ми вирішили використовувати 08072013клієнт, оскільки це клієнт стабільного оновлення.

Виконайте цю команду в терміналі:

    ./configure --enable-packetver=YYYYMMDD

Замінити YYYYMMDDдатою клієнта (переформатовано).

    ./configure --enable-packetver=20130807

Скрипт configure виконає необхідні тести та згенерує make-файли для нашого сервера.

Після цього скомпілюйте вихідний код, ввівши такі команди:

    make server
    chmod a+x login-server && chmod a+x char-server && chmod a+x map-server

... і дочекатися його завершення. Якщо ви вносите зміни до файлів у /rAthena/srcпапці, вам потрібно буде перекомпілювати її.

    make clean
    make server

Налаштування пакетної версії для клієнтських підключень

У FileZilla наведіть курсор на /rAthena/dbпапку та відредагуйте packet_db.txt.

Знайдіть цей рядок і відредагуйте:

    //
    //packet_db_ver: 46
    packet_db_ver: default
    packet_keys_use: default

Оскільки ми використовуємо 2013-08-07Ragexeклієнт, знайдіть вказаний клієнт нижче та знайдіть його packet_ver і packet_keys .

    //2013-08-07Ragexe
    packet_ver: 45
    packet_keys: 0x7E241DE0,0x5E805580,0x3D807D80 // [Shakto] 

Замініть значення за замовчуванням packet_db_verта packet_keys_useна вказані значення клієнта.

    //
    //packet_db_ver: 46
    packet_db_ver: 45
    packet_keys_use: 0x7E241DE0,0x5E805580,0x3D807D80

І зберегти. Це для того, щоб указати, який клієнт буде використовуватися гравцями. Ми не хочемо, щоб вони могли використовувати свій вибір.


Запуск сервера

Після компіляції файлів сервера скористайтеся цими командами, щоб запустити сервер.

Починати:

    ./athena-start start

Зупинитися:

    ./athena-start stop

Щоб перезапустити:

    ./athena-start restart

Якщо ви зіткнулися з такою помилкою:

    -bash: ./athena-start: /bin/sh^M: bad interpreter

... тоді вам потрібно встановити dos2unix, щоб конвертувати скрипт.

    apt-get install dos2unix
    dos2unix athena-start 
    chmod a+x athena-start

Після виконання цих команд знову запустіть сервер.

Тепер, коли ми завершили налаштування сервера, вам просто потрібно налаштувати клієнт Ragnarok так, щоб він вказував на ваш VPS-сервер. Насолоджуйтесь грою на своєму новому сервері!


Посилання

Залишити коментар

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше