Jump to content

Aviscall01

Members
  • Posts

    7
  • Joined

  • Last visited

  • Days Won

    1
  • Donations

    0.00 GBP 

Aviscall01 last won the day on October 29 2023

Aviscall01 had the most liked content!

Core Infomation

  • Core
    Zero

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Aviscall01's Achievements

Newbie

Newbie (1/3)

2

Reputation

  1. KNOWN ISSUES Nothing is perfect, so, sometimes some errors can occure. I collected my errors I was facing during running the current version of Mangos Zero in Ubuntu 22.04. _______________________________________________________________________________________________________________________________ 1. NO IP ASSIGNED TO MY INTERFACE FROM (HOST-ONLY ADAPTER IN VIRTUAL BOX) If you just see the Host-Obly Adapter, while executing the following command, but only IPv6 or no IP is assigned: ifconfig -a Try to set a static Ip out of the range of your Host-Only virtual network from VirtualBox: Edit the netplan sudo nano /etc/netplan/00-*-config.yaml add under "ethernets:" a new entry for your device, e.g. enp0s8 and add address to be assigned static Save the changes and execute: sudo netplan apply 2. ERROR DURING MAKE PROCESS LIKE "TileAssembler" This might be caused due to an older compiler needed for the script. You need to downgrade the compiler. First install older compiler: sudo apt install gcc-10 g++-10 gcc-11 g++-11 Afterwards, we can configure the priority of each compiler (in this example I give prio 100 to newest version 11 and prio 80 to version 10) sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100 --slave /usr/bin/g++ g++ /usr/bin/g++-11 --slave /usr/bin/gcov gcov /usr/bin/gcov-11 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 80 --slave /usr/bin/g++ g++ /usr/bin/g++-10 --slave /usr/bin/gcov gcov /usr/bin/gcov-10 You can change the priority anytime with command: sudo update-alternatives --config gcc Try using version 10! 3. WARDEN OR AIPLAYERBOT ERROR OR IF YOU ARE KICKED DIRECTLY AFTER LOGIN FROM THE GAME CLIENT The issue might be with wrong OpenSSL version installed (Ubuntu comes by default with OpenSSL 3.0.2, but client needs OpenSSL 1.1.1). So we have to downgrade the OpenSSL: Install some additional packages: sudo apt install checkinstall zlib1g-dev -y go to directory src and download and unzip recent OpenSSL version 1.1.1 cd /usr/local/src/ sudo wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz sudo tar -xf openssl-1.1.1q.tar.gz cd openssl-1.1.1q then install OpenSSL 1.1.1 sudo ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib sudo make sudo make test sudo make install Now, we create a new config file for OpenSSL 1.1.1 and add line into file: /usr/local/ssl/lib sudo nano /etc/ld.so.conf.d/openssl-1.1.1q.conf Then, we have to reload the dynamic link and we will backup old SSL files: sudo ldconfig -v sudo mv /usr/bin/c_rehash /usr/bin/c_rehash.backup sudo mv /usr/bin/openssl /usr/bin/openssl.backup And finally, we can change the environment variables to use the "new" OpenSSL version: sudo nano /etc/environment Add “:/usr/local/ssl/bin“ to the end of the PATH variable. Save changes. Reload the environment: source /etc/environment You can check if changes on $PATH have been applied with: echo $PATH and, if new OpenSSL is used: openssl version -a 3.1 If Login still failes due to Warden or AI PlayerBot after downgrade of OpenSSL, you maybe have to disable it. Just change the mangosd.conf under "~/mangos/zero/etc/" accordingly and set WARDEN SUPPORT to 0. And disable AI PlayerBot if needed. 4. FAILED TO ATTACH THE NETWORK IN VIRTUALBOX Sometimes after a windows update, it might happen that network can't be attached, while starting Virtual Machine. An error like this might pop-up: Then try to deactivate and activate the ethernet adapter under windows.
  2. ADDON 1. HOWTO INSTALL UBUNTU 22.04 ON WINDOWS IN VIRTUALBOX: If you would like to run your server in a virtual box, you can install VirtualBox from Oracle on your PC. Here is a guide and additional settings you can use to make life easier. _______________________________________________________________________________________________________________________________ 1. prepare folder structure create folders D:/DEV/VM/Ubuntu D:/DEV/Software (download all needed software here) D:/DEV/Programs D:/DEV/GIT (if you are interesste in assisting the community in development) Download software VirtualBox: https://www.virtualbox.org/ Install software by follwoing the installer instructions, you can install it to Folder: D:/DEV/Programs/VirtualBox Accept all options After installation start VirtualBox 2. Download Ubuntu Server Image Download the server image from: http://de.archive.ubuntu.com/ubuntu-releases/jammy/ select "server install image", not the desktop one 3. Create new server Open VirtualBox and "Create" new server Give your server a nice name, like: ubuntu-wow select a path for the virtual machine, e.g. D:/DEV/VM/Ubuntu select type Linux and Version Ubuntu (64-bit) Afterwards you have to reserve some RAM memory for your machine (you can change it later, if the machine is shut down). I would recommend 4 GB or 4096 MB. In next step you are requested to create a virtual drive. select "create hard drive" and click on "create" select VDI and click on "Next" select "dynamic allocation" (this will just use the space from your PC, if really needed.) select the maximum size you would like to use, I recommend 40 GB for one server. If you plan to install others in parallel, then assign more space. After creation, click on "Edit" You can change settings. I recommend to set CPUs to minimum 2 or more. 4. Start VM You will be requested to select the ISO file for the installer. Select the ISO file from Ubuntu we downlaoded just before. Maybe you have to "Add" the ISO medium first. If you selected the file, click "Start" Follwo the instructions on the screen. Usually you can just go through the installer and accept all default values. You will be requested to insert YourName, Server Name and credentials for your user (e.g. mangos and >password>) After clicking on "Done" he installer will run, then you can "Reboot Now" the server and login with your user "mangos" 5. Usually VirtualBox is creating by default an "Host-Only Adapter", if not you can add it and activate DHCP-Server: Afterwards restart the VM again. Then you should get an IP from your new virtual network. 2. HOWTO ACCESS SERVER WITH SFTP: 1. You can access your VM via sFTP to upload data, like gamedata: Open the VM and login with "Mangos", install the sFTP server: sudo apt-get install vsftpd Configure the follwoing changes into sFTP: sudo nano /etc/vsftpd.conf change: listen=YES uncomment: write_enable=YES if you want, add root rights to gamedata folder by adding the line: local_root=/home/mangos/mangos/zero/gamedata/ Restart sFTP: service vsftpd restart 2. Now you can connect to your VM wih any sFTP client, e.g. like WinSCP. 3. HOWTO ACCESS DB FROM PC: If you want to access your DB on the server from your PC, you can use HeidiSQL on your client PC to access the database. To do so, you have to configure the DB to listen to external calls and you maybe need an additional user. 1. Edit mariadb.conf sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf comment out the line: #bind-address=127.0.0.1 otherwise your DB will just listen to the localhost on 127.0.0.1 2. create new remote user in DB: mysql -u mangos -p<password> then execute SQLs: GRANT all privileges ON *.* TO ‘remoteMangos’@’xxx.xxx.xxx.%’ IDENTIFIED BY ‘<password>’ WITH GRANT OPTION; replace IP with your client IP (or if you use Host-Only Adapter with lowest IP from virtual network). 3. Login with HeidiSQL and user to your DB on the Server. 4. HOWTO BACKUP YOUR DB TO HOST: 1. Create a shared folder to save backup file on your host and not within the VM, if it crashes you can rebuild your DB with such backup. Therefor open VirtualBox and select "Edit" for the VM. 2. Select Shared Folder and click on "Add" icon: 3. Set the path on host and on VM to be added (folder shouldn't exists in VM). You can make it permanent and attach automatically: 4. Reboot the VM or start it and folder should appear. For reboot just execute the command in VM: reboot 4.1 If folder is not added you can mount it manually by executing: sudo mount -t vboxsf <FolderName in VBox: Backup> <path where to mount it> 4.2 If folder is not automatically mounted on reboot, you can also edit the fstab. sudo nano /etc/fstab Just add the follwoing line at the end of the file: Now, it should work after reboot. 5. To create a cronjob to automatically backup your DB, create a folder to store your script and edit scipt file: mkdir /home/mangos/mangos/zero/script nano /home/mangos/mangos/zero/script/backup_script.sh 6. Insert backup script into file, you can edit it if needed, accordingly to your folder structure, but it should work, if you followed instructions above: The script will create a dump of your DBs and zip them, afterwards it will copy data to backup folder, which is accessible by your host system. Also after 5 days the old file will be deleted. Maybe you have to install zip on your system: sudo apt install zip Script: 7. Save script and make it executable with command: chmod a+x /home/mangos/mangos/zero/script/backup_script.sh 8. Now, we can create a crontab for your user mangos: cd ~ && crontab -e 9. If no crontab for user exists, you will be asked to select the default editor, you can select nano 10. Then you can add the entry to start our script: Add the SHELL and PATH variable for crontab and the call for our script (the example will create a backup every hour and writes a log file for it per day): * */1 * * * /home/mangos/mangos/zero/script/backup_script.sh >> /home/mangos/mangos/zero/logs/backup_`date +\%Y-\%m-\%d`.log 2>&1 NOTE: At the end you always have to add a comment line or an empty line with carriage return. 11. Save the crontab to file /home/mangos/.crontab-mangos 12. Usually, if you edit the crontab with crontab -e, it will automatically register your user crontab, if not you can register the file manually by executing: crontab -u mangos /home/mangos/.crontab-mangos Done, you should find every hour an updated backup file on your host in the Backup folder.
  3. Hi everyone, I recently installed MaNGOS(Zero) on Ubuntu 22.04 and thought it would be nice to share my step-by-step guide with you. You can use this guide for all cores, just replace GIT repository URL accordingly. _______________________________________________________________________________________________________________________________ PREREQUISITES You should have a running server with Ubuntu Server 22.04 operating system. Before starting with the guide you should update the OS: sudo apt update && apt upgrade Upgrading to higher release of Ubuntu Server is on own risk. You should backup your DB before! Also you will need an installation of the game client with the addons installed for which you would like to create the server for. _______________________________________________________________________________________________________________________________ PREPARATION 1. Create system user to be used for installation, if not already available. We will use in the guide a specific user named "mangos": adduser mangos 1.1 You can add root rights to the user, otherwise you need to execute some parts of the guide with root: usermod -aG sudo mangos 2. Install usefull tools for this guide MaNGOS requires some libraries to be built and to run properly. We also need some programs to run further commands or simply to handle some scripts which are in the repo (e.g : python scripts). sudo apt install git make cmake libssl-dev libbz2-dev build-essential mariadb-server mariadb-client default-libmysqlclient-dev libace-dev python2 net-tools screen gdb 3. Create folder structure You can structure your fodlers as you like, you just have to take care to change the folder names accordingly in the scripts below. I try to seperate the different components and wanted to have the option to install different cores in parallel. You can check your user name with the command: whoami If you are using user "mangos", go to the home directory. cd ~ Then create folders: mkdir ~/mangos mkdir ~/mangos/zero mkdir ~/mangos/zero/db mkdir ~/mangos/zero/bin mkdir ~/mangos/zero/gamedata mkdir ~/mangos/zero/logs 4. prepare database Login to the MariaDB with: sudo mysql 4.1 create a new user for mangos Execute the follwoing create statement in the DB, replace <password> with a secret password which you can remember. Also grant the user with all required DB rights (very powerful rights, so don't share this user with anybody): CREATE USER 'mangos'@'localhost' IDENTIFIED BY '<password>'; GRANT ALL PRIVILEGES ON *.* TO 'mangos'@'localhost' WITH GRANT OPTION; exit; Afterwards you are able to login to MariaDB with new user: mysql -u mangos -p<password> _______________________________________________________________________________________________________________________________ INSTALL DATABASE 1. Go to the db folder and download the database from the GIT repository. If you want to install a different version, exchange the url accordingly: cd ~/mangos/zero/db git clone https://github.com/mangoszero/database.git --recursive 2. This will create a new sub-folder database and downloads all required tools and scripts to install the database for the Mangos core selected. Go to new sub-folder and start installation script: cd ~/mangos/zero/db/database bash ./InstallDatabase.sh You will see the following screen: 3. Press "N" to start process. It should automatically identify your MariaDB installed on your server. 3.1 In general you can accept the default values in brackets, but following information needs to be set correctly: The user name for MariaDB: mangos The password for the user to allow scritp to create all required tables: <password> Set the names for DB schemas (it's recommended to use separate schemas for characters and world for each core, so adjsut the numbering if needed) Character DB: mangos_character0 (0 - Classic; 1 - TBC; 2 - WOTLK; ...) World DB: mangos_world0 Realm DB: mangos_auth (Note: you just need one Realm DB, even if you run multiple cores on your server!) After providing all informaion, the script will install all databases and tables. 3.2 To configure the database, get at first your IP address by executing the command: ifconfig Note down your IP and open MariaDB again: mysql -u mangos -p<password> You can check the realmlist with the following SQL, note down the proper ID of the server you want to configure: select * from realmlist; Update the realmlist with proper name and IP address, use the right ID: UPDATE realmlist SET name = “<Your Server-Name>” WHERE id = <ID>; UPDATE realmlist SET address = “<Server-IP address>” WHERE id = <ID>; The database is now ready! _______________________________________________________________________________________________________________________________ BUILD MANGOS Next we will install the server related to the Mangos core DB you installed before. 1. Go to the core version folder and download the server from GIT repository (don't forget to change the URL to appropriate core version, if needed). It creates a new sub-fodler "server" and stores all data in it: cd ~/mangos/zero/ git clone https://github.com/mangoszero/server.git --recursive 2. Build the core After download, we have to build the core by executing e.g. the following command: cmake -S ~/mangos/zero/server/ -B ~/mangos/zero/build/ -DBUILD_MANGOSD=1 -DBUILD_REALMD=1 -DBUILD_TOOLS=1 -DUSE_STORMLIB=1 -DSCRIPT_LIB_ELUNA=1 -DSCRIPT_LIB_SD3=1 -DPLAYERBOTS=1 -DPCH=1 3. The script creates all necessary build files and stores then in the sub-folder "build". If it's done we can switch to the folder and build/install mangos (a server with minimum 2 cores/cpus is recommended): make -j<# of CPUs assigned to your server> make -j<# of CPUs assigned to your server> install 4. Copy server files to our "bin" folder after the install scripts finished successfully: cd ~/mangos/zero/build/install/bin cp mangosd ~/mangos/zero/bin/ && cp realmd ~/mangos/zero/bin/ 5. Copy game extractor files to our "gamedata" folder: cp ./tools/*-extractor ~/mangos/zero/gamedata/ cp ./tools/*.sh ~/mangos/zero/gamedata/ cp ./tools/offmesh.txt ~/mangos/zero/gamedata/ _______________________________________________________________________________________________________________________________ EXTRACT GAMEDATA You will require an iinstallation of the game client on your local machine and a sFTP connection to your server to copy whole game fodler to the server. Safe the client in folder: ~/mangos/zero/gamedata/! If this is done you can continue. 1. Go to "gamedata" folder and change executable rights to extractor script and make all files read-/writeable: cd ~/mangos/zero/gamedata chmod -R a+w ~/mangos/zero/gamedata chmod a+x ExtractResources.sh 2. Execute the Extractor Script and follwo the onscreen instructions (minimum of 4 GB RAM is required, recommended are 8 GB): extract everything (dbc, maps, mmaps, vmaps) choose all CPUs available on your server to extract MMaps (1-4) extract MMaps without delay After starting the process it will take a lot of time to complete. If the message "Finished creating MoveMaps" appears it's done. Check that no errors occured! 3. Clean up unnecessary files, you can delete all folders and files from "gamedata" folder except: dbc maps mmaps vmaps _______________________________________________________________________________________________________________________________ CONFIGURE SERVER 1. Go to main server folder and copy server config files: cd ~/mangos/zero cp -R ~/mangos/zero/build/etc ./ cd etc 2. In the folder "etc" you find now all config files, copy the default files for editing and use by the server: cp ahbot.conf.dist ahbot.conf cp mangosd.conf.dist mangosd.conf cp realmd.conf.dist realmd.conf cp aiplayerbot.conf.dist aiplayerbot.conf 3. You should edit all files according to your needs, especially the db connection information. For comfortable editing use "nano": nano <filename> 4. Start script for services to run the server: cd ~/mangos/zero/bin nano wowadmin.sh Insert into the file the following script and save (replace the "/path/to/your/realmd" and "mangosd" to proper path, if you changed them: 5. Start the server with command: bash wowadmin.sh start _______________________________________________________________________________________________________________________________ PLAY GAME 1. update your realmlist.wtf in your game client folder. you can find the file in your %WoWDir%\realmlist.wtf Set the realmlist to your new IP (you should save the old realmlist.wtf as backup): set realmlist <IP of your server> 2. The standard users are accessible directly, if server is up and running: User: PLAYER - Password: PLAYER User: ADMINISTRATOR - Password: ADMINISTRATOR User: GAMEMASTER - Password: GAMEMASTER User: MODERATOR - Password: MODERATOR 3. To create a new account, go to your server and execte command: cd ~/mangos/zero/bin bash wowadmin.sh wmonitor In the world monitor console, enter the following commands: account create <account name> <password> account set addon <account name> # replace <account name> with new name and set a proper password, also grant the addons to be used for the user by changing # to a proper number: 0 - Classic; 1 - TBC; 2 - WOTLK; ...) To exit the monito, press CTRL +a +d at the same time.
  4. The wowadmin.sh script has two small bugs: startWorld() should be: startWorld() { if [ "$(screen -ls | grep $WSRV_SCR)" ] then echo $WSRV_BIN is already running else cd $WPATH screen -AmdS $WSRV_SCR $WPATH/$WSRV_BIN $DEBUG echo $WSRV_BIN is alive fi } and startAuth() should be: startAuth() { if [ "$(screen -ls | grep $ASRV_BIN)" ] then echo $ASRV_BIN is already running else cd $APATH screen -AmdS $ASRV_BIN $APATH/$ASRV_BIN echo $ASRV_BIN is alive fi }
  5. Would be cool, if you could add something like a $G check to $C and $R to enable the possibility to create male/female translations for a language, if needed. E.g. in quest text you can add: "Hello, $C" and based on gender the male or female translation is used. If no translation is set, the language specific male version is used. And if even no language is detected, then you can use default english value.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use