Задаем статический адрес
$ sudo nano /etc/network/interfaces
# удаляем dhcp
allow-hotplug enp0s3
iface enp0s3 inet dhcp
# добавляем
auto enp0s3
allow-hotplug enp0s3
iface enp0s3 inet static
address 192.168.0.247
netmask 255.255.254.0
gateway 192.168.0.254
$ sudo reboot
Теперь сам сервер
$ sudo apt install git make automake g++ cmake mariadb-server libsdl2-dev libmariadb-dev libboost-dev libboost-all-dev libreadline-dev build-essential liblua5.4-dev lua5.4 libcrypto++-dev wget libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev libglm-dev libfmt-dev screen phpmyadmin -y
Клонируем репозиторий
$ git clone https://git.eq2emu.com/devn00b/EQ2EMu.git
Заменим часть кода
$ cd EQ2EMu/EQ2/source/depends
$ rm -Rf recastnavigation
$ git clone https://github.com/recastnavigation/recastnavigation.git
Загрузка premake
$ wget https://github.com/premake/premake-core/releases/download/v5.0.0-beta2/premake-5.0.0-beta2-linux.tar.gz
$ tar xfz premake-5.0.0-beta2-linux.tar.gz
$ rm premake-5.0.0-beta2-linux.tar.gz
Сборка premake
$ cp premake5 recastnavigation/RecastDemo
$ cd recastnavigation/RecastDemo
$ ./premake5 gmake
$ cd Build/gmake
$ sudo cp lib/Debug/*.a /usr/lib
$ cd ../../../..
$ git clone https://github.com/fmtlib/fmt.git
$ cp -R fmt ${HOME}/EQ2EMu/EQ2/source/common
$ cd ${HOME}/EQ2EMu/EQ2/source/WorldServer
$ make -j$(nproc)
$ cp eq2world ${HOME}/EQ2EMu/server
$ make -j$(nproc)
$ cp login ${HOME}/EQ2EMu/server
$ cd ${HOME}/EQ2EMu/server
Создание и заливка баз
$ sudo mariadb -u root -p
CREATE DATABASE eq2emu;
CREATE DATABASE eq2ls;
CREATE USER 'eq2emu'@localhost IDENTIFIED BY 'eq2emu';
GRANT ALL PRIVILEGES ON *.* TO 'eq2emu'@localhost IDENTIFIED BY 'eq2emu';
FLUSH PRIVILEGES;
exit;
$ wget -q -N --no-check-certificate --show-progress --progress=bar:force:noscroll https://www.zeklabs.com/dl/eq2emudb.tar.gz
$ tar xfz eq2emudb.tar.gz
$ rm -rf eq2emudb.tar.gz
$ mysql -ueq2emu -peq2emu eq2emu < eq2emu.sql
$ rm -rf eq2emu.sql
$ wget -q -N --no-check-certificate --show-progress --progress=bar:force:noscroll https://www.zeklabs.com/dl/eq2emulssql.tar.gz
$ tar xfz eq2emulssql.tar.gz
$ rm -rf eq2emulssql.tar.gz
$ mysql -ueq2emu -peq2emu eq2ls < eq2emulssql.sql
$ rm eq2emulssql.sql
Клонирование EQ2 контента и Maps
$ mkdir -p ${HOME}/EQ2EMu/server/oldfiles
$ cd ${HOME}/EQ2EMu/server
$ mv SpawnStructs.xml ${HOME}/EQ2EMu/server/oldfiles
$ mv WorldStructs.xml ${HOME}/EQ2EMu/server/oldfiles
$ mv EQ2_Structs.xml ${HOME}/EQ2EMu/server/oldfiles
$ mv LoginStructs.xml ${HOME}/EQ2EMu/server/oldfiles
$ mv CommonStructs.xml ${HOME}/EQ2EMu/server/oldfiles
$ wget -q --no-check-certificate http://git.eq2emu.com/devn00b/EQ2EMu/raw/master/server/SpawnStructs.xml
$ wget -q --no-check-certificate http://git.eq2emu.com/devn00b/EQ2EMu/raw/master/server/WorldStructs.xml
$ wget -q --no-check-certificate http://git.eq2emu.com/devn00b/EQ2EMu/raw/master/server/EQ2_Structs.xml
$ wget -q --no-check-certificate http://git.eq2emu.com/devn00b/EQ2EMu/raw/master/server/ItemStructs.xml
$ wget -q --no-check-certificate http://git.eq2emu.com/devn00b/EQ2EMu/raw/master/server/LoginStructs.xml
$ wget -q --no-check-certificate http://git.eq2emu.com/devn00b/EQ2EMu/raw/master/server/CommonStructs.xml
$ cd ${HOME}/EQ2EMu/server
$ wget -q -N --no-check-certificate --show-progress --progress=bar:force:noscroll https://www.zeklabs.com/dl/eq2emulua.tar.gz
$ tar xfz eq2emulua.tar.gz
$ rm eq2emulua.tar.gz
$ rm -rf ${HOME}/EQ2EMu/Maps
$ cp -r ${HOME}/EQ2EMu/server/Maps ${HOME}/EQ2EMu
Настраиваем конфиги
адреса можно настраивать по разному, но на VirtualBox не загружались зоны пока мы не поставили статический адрес сервера как мировой
$ nano ${HOME}/EQ2EMu/server/server_config.json
"LoginServer": {
"loginserver": "127.0.0.1",
"loginport": "9100",
"worldname": "ServerEQ2",
"worldaddress": "192.168.0.247",
"internalworldaddress": "127.0.0.1",
"worldport": "9001",
"locked": "false",
"account": "testlabs",
"password": "testpass"
},
$ nano ${HOME}/EQ2EMu/server/world_db.ini
[Database]
host=127.0.0.1
user=eq2emu
password=eq2emu
database=eq2emu
$ nano ${HOME}/EQ2EMu/server/login_db.ini
[Database]
host=localhost
user=eq2emu
password=eq2emu
database=eq2ls
Добавим наш аккаунт в базу
$ sudo mariadb -u root -p
\u eq2ls
insert into login_worldservers set note='', description='', name='ServerEQ2', account='testlabs',password=sha2('testpass',512);
FLUSH PRIVILEGES;
exit;
-
$ sudo systemctl restart mariadb
Запускаем сервер
$ cd ${HOME}/EQ2EMu/server
$ screen -Sdm EQ2Login ./login
$ screen -Sdm EQ2World ./eq2world
$ screen -ls > ${HOME}/EQ2EMu/world-login.pid
Компонент комментариев CComment