Both sides previous revisionPrevious revisionNext revision | Previous revision |
servers:linux:games:mangos_zero_vanilla_localhost [2025/10/18 02:26] – Sean Rhone | servers:linux:games:mangos_zero_vanilla_localhost [2025/10/18 21:25] (current) – [Settings] Sean Rhone |
---|
| |
* [[linux:distros:opensuse_tumbleweed_xfce|openSUSE Tumbleweed (Xfce)]] | * [[linux:distros:opensuse_tumbleweed_xfce|openSUSE Tumbleweed (Xfce)]] |
* [[servers:linux:mariadb|MariaDB]] | |
* [[games:linux:wine:world_of_warcraft_1.12.1|World of Warcraft 1.12.1]] | * [[games:linux:wine:world_of_warcraft_1.12.1|World of Warcraft 1.12.1]] |
| |
====== Dependencies ====== | ====== Dependencies ====== |
| |
sudo zypper install git-core cmake clang libmariadb-devel | **** |
| |
boost-devel libboost_filesystem-devel libboost_program_options-devel libboost_regex-devel libboost_locale-devel zlib-devel libopenssl-3-devel mariadb libmariadbd-devel readline-devel libbz2-devel | sudo zypper install git-core cmake clang mariadb libmariadb-devel |
| |
====== Download Source ====== | ====== Download Source ====== |
| |
cd ~ && mkdir -p ~/'Projects' && rm -Rf ~/'Projects/MaNGOS-Zero/src' && git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/mangoszero/server.git' ~/'Projects/MaNGOS-Zero/src' | cd ~ && mkdir -p ~/'Projects' && rm -Rf ~/'Projects/MaNGOS-Zero/src' && git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/mangoszero/server.git' ~/'Projects/MaNGOS-Zero/src' |
| |
| ====== Database ====== |
| |
| ===== Settings ===== |
| |
| rm -Rf ~/'Projects/MaNGOS-Zero/mariadb/database' && mkdir -p ~/'Projects/MaNGOS-Zero/mariadb/database' && nano ~/'Projects/MaNGOS-Zero/mariadb/custom.cnf' |
| |
| <code> |
| [client] |
| default-character-set = 'utf8mb4' |
| |
| [mariadb-client] |
| default-character-set = 'utf8mb4' |
| |
| [mariadbd] |
| character-set-client-handshake = 'FALSE' |
| character-set-server = 'utf8mb4' |
| collation-server = 'utf8mb4_unicode_ci' |
| init-connect='SET NAMES utf8mb4' |
| expire_logs_days = '7' |
| max_binlog_size = '100M' |
| skip-networking = 'On' |
| table_definition_cache = '1400' |
| |
| # End</code> |
| |
| ===== Initialize ===== |
| |
| **** |
| |
| mariadb-install-db --datadir=$HOME/'Projects/MaNGOS-Zero/mariadb/database' --defaults-file=$HOME/'Projects/MaNGOS-Zero/mariadb/custom.cnf' |
| |
| ===== Initial Setup ===== |
| |
| ==== Server Start ==== |
| |
| **** |
| |
| '/usr/sbin/mariadbd' --datadir=$HOME/'Projects/MaNGOS-Zero/mariadb/database' --socket=$HOME/'Projects/MaNGOS-Zero/mariadb/mariadb.sock' |
| |
| ==== Set-up ==== |
| |
| * Enter current password for root: ''(enter)'' |
| * Switch to unix_socket authentication: ''Y'' |
| * :!: Change the root password: ''N'' |
| * Remove anonymous users: ''Y'' |
| * Disallow root login remotely: ''Y'' |
| * Remove test database and access to it: ''Y'' |
| * Reload privilege tables now: ''Y'' |
| |
| mariadb-secure-installation --socket=$HOME/'Projects/MaNGOS-Zero/mariadb/mariadb.sock' --user=$USER |
| |
| mariadb-admin 'shutdown' --socket=$HOME/'Projects/MaNGOS-Zero/mariadb/mariadb.sock' --user=$USER |
| |
====== Databases ====== | ====== Databases ====== |
===== Connect ===== | ===== Connect ===== |
| |
sudo systemctl start 'mariadb' | * 2 Terminal windows |
| |
sudo mariadb | '/usr/sbin/mariadbd' --datadir=$HOME/'Projects/MaNGOS-Zero/mariadb/database' --socket=$HOME/'Projects/MaNGOS-Zero/mariadb/mariadb.sock' |
| |
| mariadb --socket=$HOME/'Projects/MaNGOS-Zero/mariadb/mariadb.sock' --user=$USER |
| |
===== Databases ===== | ===== Databases ===== |
===== Permissions ===== | ===== Permissions ===== |
| |
GRANT ALL PRIVILEGES ON realmd.* to 'realmd'@'localhost'; | GRANT ALL PRIVILEGES ON realmd0.* to 'realmd0'@'localhost'; |
| |
GRANT ALL PRIVILEGES ON character0.* to 'character0'@'localhost'; | GRANT ALL PRIVILEGES ON character0.* to 'character0'@'localhost'; |
**** | **** |
| |
rm -Rf ~/'Projects/MaNGOS-Zero/build' ~/'Projects/MaNGOS-Zero/run' && mkdir -p ~/'Projects/MaNGOS-Zero/build' ~/'Projects/MaNGOS-Zero/run' && cd ~/'Projects/MaNGOS-Zero/build' && CC='/usr/bin/clang' CXX='/usr/bin/clang++' cmake ~/'Projects/MaNGOS-Zero/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/MaNGOS-Zero/run' -DCMAKE_BUILD_TYPE='Release' -DDEBUG='0' -DPLAYERBOTS='0' -DSCRIPT_LIB_ELUNA='0' -DBUILD_TOOLS='1' && make --jobs=$(nproc) install | rm -Rf ~/'Projects/MaNGOS-Zero/build' ~/'Projects/MaNGOS-Zero/run' && mkdir -p ~/'Projects/MaNGOS-Zero/build' ~/'Projects/MaNGOS-Zero/run' && cd ~/'Projects/MaNGOS-Zero/build' && CC='/usr/bin/clang' CXX='/usr/bin/clang++' cmake ~/'Projects/MaNGOS-Zero/src' -DCMAKE_INSTALL_PREFIX=~/'Projects/MaNGOS-Zero/run' -DCONF_INSTALL_DIR=~/'Projects/MaNGOS-Zero/run/bin' -DCMAKE_BUILD_TYPE='Release' -DDEBUG='0' -DPLAYERBOTS='0' -DSCRIPT_LIB_ELUNA='0' -DBUILD_TOOLS='1' && make --jobs=$(nproc) install |
| |
===== CMake ===== | |
| |
**** | |
| |
<code>"%ProgramFiles%\CMake\bin\cmake.exe" -S "%UserProfile%\Projects\MaNGOS-Zero\src" -B "%UserProfile%\Projects\MaNGOS-Zero\build" -G "Visual Studio 17 2022" --fresh -Wno-dev -DMySQL_INCLUDE_DIR="%ProgramFiles%\MariaDB 12.1\include\mysql" -DMySQL_LIBRARY="%ProgramFiles%\MariaDB 12.1\lib\libmariadb.lib" -DDEBUG="0" -DPLAYERBOTS="0" -DSCRIPT_LIB_ELUNA="0" -DBUILD_TOOLS="1"</code> | |
| |
===== Server Files ===== | |
| |
MKDIR "%UserProfile%\Projects\MaNGOS-Zero\server" & COPY /Y "%UserProfile%\Projects\MaNGOS-Zero\build\src\realmd\Release\realmd.exe" "%UserProfile%\Projects\MaNGOS-Zero\server" | |
| |
MKDIR "%UserProfile%\Projects\MaNGOS-Zero\server" & COPY /Y "%UserProfile%\Projects\MaNGOS-Zero\build\src\mangosd\Release\mangosd.exe" "%UserProfile%\Projects\MaNGOS-Zero\server" | |
| |
MKDIR "%UserProfile%\Projects\MaNGOS-Zero\server" & COPY /Y "%ProgramFiles%\MariaDB 12.1\lib\libmariadb.dll" "%UserProfile%\Projects\MaNGOS-Zero\server" | |
| |
MKDIR "%UserProfile%\Projects\MaNGOS-Zero\server" & COPY /Y "%ProgramFiles%\OpenSSL-Win64\bin\libcrypto-3-x64.dll" "%UserProfile%\Projects\MaNGOS-Zero\server" | |
| |
====== Content ====== | ====== Content ====== |
| |
* Expects [[games;windows;world_of_warcraft_2.4.3#install|World of Warcraft 1.12.1]] | * Expects [[games:linux:wine:world_of_warcraft_1.12.1|World of Warcraft 1.12.1]] |
| |
DIR "%ProgramFiles(x86)%\World of Warcraft 1.12.1\Wow.exe" | ls ~/'.wine/World of Warcraft 1.12.1/drive_c/Program Files/World of Warcraft/WoW.exe' |
| |
===== DBCs and Maps ===== | ===== DBCs and Maps ===== |
**** | **** |
| |
MKDIR "%UserProfile%\Projects\MaNGOS-Zero\server" & "%UserProfile%\Projects\MaNGOS-Zero\build\src\tools\Extractor_projects\Release\map-extractor.exe" -i "%ProgramFiles(x86)%\World of Warcraft 1.12.1" -o "%UserProfile%\Projects\MaNGOS-Zero\server" -f "0" | ~/'Projects/MaNGOS-Zero/run/bin/tools/map-extractor' -i ~/'.wine/World of Warcraft 1.12.1/drive_c/Program Files/World of Warcraft' -o ~/'Projects/MaNGOS-Zero/run/bin' -f '0' |
| |
===== VMaps ===== | ===== VMaps ===== |
**** | **** |
| |
MKDIR "%UserProfile%\Projects\MaNGOS-Zero\server" & CD "%UserProfile%\Projects\MaNGOS-Zero\server" && "%UserProfile%\Projects\MaNGOS-Zero\build\src\tools\Extractor_projects\Release\vmap-extractor.exe" -i "%ProgramFiles(x86)%\World of Warcraft 1.12.1" | cd ~/'Projects/MaNGOS-Zero/run/bin' && ~/'Projects/MaNGOS-Zero/run/bin/tools/vmap-extractor' -i ~/'.wine/World of Warcraft 1.12.1/drive_c/Program Files/World of Warcraft' |
| |
===== MMaps ===== | ===== MMaps ===== |
| |
* :!: ~10 minutes i5-8400H ((2025/10/08: ''746 seconds'')) | * :!: ~10 minutes i5-8400H ((2025/10/18: ''568 seconds'')) |
* ''--threads %NUMBER_OF_PROCESSORS%'' | * '' --threads $(nproc)'' |
| |
MKDIR "%UserProfile%\Projects\MaNGOS-Zero\server" & CD "%UserProfile%\Projects\MaNGOS-Zero\server" && "%UserProfile%\Projects\MaNGOS-Zero\build\src\tools\Extractor_projects\Release\mmap-extractor.exe" -i "%ProgramFiles(x86)%\World of Warcraft 1.12.1" --offMeshInput "%UserProfile%\Projects\MaNGOS-Zero\src\src\tools\Extractor_Binaries\offmesh.txt" --bigBaseUnit "true" --threads %NUMBER_OF_PROCESSORS% | cd ~/'Projects/MaNGOS-Zero/run/bin' && ~/'Projects/MaNGOS-Zero/run/bin/tools/mmap-extractor' -i ~/'.wine/World of Warcraft 1.12.1/drive_c/Program Files/World of Warcraft' --offMeshInput ~/'Projects/MaNGOS-Zero/run/bin/tools/offmesh.txt' --bigBaseUnit 'true' --threads $(nproc) |
| |
===== Clean-up ===== | ===== Clean-up ===== |
**** | **** |
| |
RMDIR /S /Q "%UserProfile%\Projects\MaNGOS-Zero\server\Buildings" | rm -Rf ~/'Projects/MaNGOS-Zero/run/bin/Buildings' |
| |
====== World Database ====== | ====== World Database ====== |
* https://github.com/mangosone/database/commits/master/ | * https://github.com/mangosone/database/commits/master/ |
| |
"%ProgramFiles%\Git\bin\git.exe" clone --branch "master" --depth "1" --recurse-submodules "https://github.com/mangoszero/database.git" "%UserProfile%\Projects\MaNGOS-Zero\database" | cd ~ && rm -Rf ~/'Projects/MaNGOS-Zero/database-src' && git clone --branch 'master' --depth '1' --recurse-submodules 'https://github.com/mangoszero/database.git' ~/'Projects/MaNGOS-Zero/database-src' |
| |
==== Base Imports ==== | ==== Base Imports ==== |
===== Restore ===== | ===== Restore ===== |
| |
* [[#databases|Initial set-up]] | **** |
| |
"%ProgramFiles%\MariaDB 12.1\bin\mariadbd.exe" --defaults-file="%ProgramFiles%\MariaDB 12.1\data\my.ini" | '/usr/sbin/mariadbd' --datadir=$HOME/'Projects/MaNGOS-Zero/mariadb/database' --socket=$HOME/'Projects/MaNGOS-Zero/mariadb/mariadb.sock' |
| |
==== realmd ==== | ==== realmd ==== |
| |
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p --execute="CREATE DATABASE realmd" | mariadb --socket=$HOME/'Projects/MaNGOS-Zero/mariadb/mariadb.sock' --user=$USER --execute='CREATE DATABASE realmd0' |
| |
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p "realmd" < "%UserProfile%\Downloads\localhost-realmd.sql" | mariadb --socket=$HOME/'Projects/MaNGOS-Zero/mariadb/mariadb.sock' --user=$USER 'realmd0' < ~/'Downloads/localhost-realmd0.sql' |
| |
==== character0 ==== | ==== character0 ==== |
| |
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p --execute="CREATE DATABASE character0" | mariadb --socket=$HOME/'Projects/MaNGOS-Zero/mariadb/mariadb.sock' --user=$USER --execute='CREATE DATABASE character0' |
| |
"%ProgramFiles%\MariaDB 12.1\bin\mariadb.exe" -u "root" -p "character0" < "%UserProfile%\Downloads\localhost-character0.sql" | mariadb --socket=$HOME/'Projects/MaNGOS-Zero/mariadb/mariadb.sock' --user=$USER 'character0' < ~/'Downloads/localhost-character0.sql' |
| |
====== Quick Commands ====== | ====== Quick Commands ====== |
**** | **** |
| |
"explorer.exe" "%UserProfile%\Projects\MaNGOS-Zero\server" | gio open ~/'Projects/MaNGOS-Zero/run/bin' |
| |
====== TODOs ====== | ====== TODOs ====== |