initial setup after some tweaking

This commit is contained in:
bash
2024-07-22 23:26:52 +00:00
parent 1f10fe58e0
commit 12425e05fa
23 changed files with 784 additions and 2 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
_server/
_data/

76
1_download.sh Executable file
View File

@@ -0,0 +1,76 @@
#!/bin/bash
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
source ${ROOT_DIR}/variables.sh
read -p "This will DOWNLOAD and overwrite the current downloaded source code, are you sure? (Y)es/(N)o: " -n 1 -r
echo " ";
if [[ $REPLY =~ ^[Yy]$ ]];
then
##########################################################################################
# General dependencies
##########################################################################################
sudo apt update && sudo apt install -y unzip git sudo git
##########################################################################################
# Create download folder
##########################################################################################
if [ ! -d "${ROOT_DIR}/_download" ];
then
mkdir ${ROOT_DIR}/_download
fi
##########################################################################################
# Clone azerothcore (playerbot fork)
##########################################################################################
sudo rm -rf ${ROOT_DIR}/_download/azerothcore > /dev/null 2>&1
git config --global --add safe.directory "${ROOT_DIR}/_download/azerothcore"
git clone https://github.com/liyunfan1223/azerothcore-wotlk.git --branch=Playerbot ${ROOT_DIR}/_download/azerothcore
##########################################################################################
# Clone module playerbots
##########################################################################################
sudo rm -rf ${ROOT_DIR}/_download/modules/mod-playerbots > /dev/null 2>&1
git config --global --add safe.directory "${ROOT_DIR}/_download/modules/mod-playerbots"
git clone https://github.com/liyunfan1223/mod-playerbots.git ${ROOT_DIR}/_download/modules/mod-playerbots
##########################################################################################
# Clone module ah-bot
##########################################################################################
sudo rm -rf ${ROOT_DIR}/_download/modules/mod-ah-bot > /dev/null 2>&1
git config --global --add safe.directory "${ROOT_DIR}/_download/modules/mod-ah-bot"
git clone https://github.com/azerothcore/mod-ah-bot.git ${ROOT_DIR}/_download/modules/mod-ah-bot
##########################################################################################
# Clone module mod-progression-system
##########################################################################################
sudo rm -rf ${ROOT_DIR}/_download/modules/mod-progression-system > /dev/null 2>&1
git config --global --add safe.directory "${ROOT_DIR}/_download/modules/mod-progression-system"
git clone https://github.com/azerothcore/mod-progression-system.git ${ROOT_DIR}/_download/modules/mod-progression-system
##########################################################################################
# Download client-data (only if file does not exist)
##########################################################################################
if ! [ -f ${ROOT_DIR}/_data/data.zip ];
then
mkdir -p ${ROOT_DIR}/_data > /dev/null 2>&1
sudo curl -L https://github.com/wowgaming/client-data/releases/download/v16/data.zip --output ${ROOT_DIR}/_data/data.zip
fi
##########################################################################################
# set azerothcore playerbot fork upstream with original azerothcore
##########################################################################################
cd ${ROOT_DIR}/_download/azerothcore && git remote add upstream https://github.com/azerothcore/azerothcore-wotlk.git
echo "Executed..."
fi

51
2_update.sh Executable file
View File

@@ -0,0 +1,51 @@
#!/bin/bash
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
source ${ROOT_DIR}/variables.sh
read -p "This will UPDATE the current downloaded source code, are you sure? (Y)es/(N)o: " -n 1 -r
echo " ";
if [[ $REPLY =~ ^[Yy]$ ]];
then
##########################################################################################
# General dependencies
##########################################################################################
sudo apt update && sudo apt install -y git
##########################################################################################
# reset azerothcore to latest branch
##########################################################################################
git -C ${ROOT_DIR}/_download/azerothcore fetch origin
git -C ${ROOT_DIR}/_download/azerothcore clean -fd
git -C ${ROOT_DIR}/_download/azerothcore reset --hard origin/Playerbot
##########################################################################################
# reset mod-playerbots to latest branch
##########################################################################################
git -C ${ROOT_DIR}/_download/modules/mod-playerbots fetch origin
git -C ${ROOT_DIR}/_download/modules/mod-playerbots clean -fd
git -C ${ROOT_DIR}/_download/modules/mod-playerbots reset --hard origin/master
##########################################################################################
# reset mod-ah-bot to latest branch
##########################################################################################
git -C ${ROOT_DIR}/_download/modules/mod-ah-bot fetch origin
git -C ${ROOT_DIR}/_download/modules/mod-ah-bot clean -fd
git -C ${ROOT_DIR}/_download/modules/mod-ah-bot reset --hard origin/master
##########################################################################################
# reset mod-progression-system to latest branch
##########################################################################################
git -C ${ROOT_DIR}/_download/modules/mod-progression-system fetch origin
git -C ${ROOT_DIR}/_download/modules/mod-progression-system clean -fd
git -C ${ROOT_DIR}/_download/modules/mod-progression-system reset --hard origin/main
echo "Executed..."
fi

35
3_build.sh Executable file
View File

@@ -0,0 +1,35 @@
#!/bin/bash
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
source ${ROOT_DIR}/variables.sh
read -p "This will (re)build the server with the downloaded resources, are you sure? (Y)es/(N)o: " -n 1 -r
echo " ";
if [[ $REPLY =~ ^[Yy]$ ]];
then
##########################################################################################
# General dependencies
##########################################################################################
sudo apt update && sudo apt install -y unzip
##########################################################################################
# Rebuild server folder based on downloaded source codes
##########################################################################################
sudo rm -rf ${ROOT_DIR}/_server > /dev/null 2>&1
mkdir -p ${ROOT_DIR}/_server/azerothcore/modules && \
cp -r ${ROOT_DIR}/_download/azerothcore ${ROOT_DIR}/_server && \
cp -r ${ROOT_DIR}/_download/modules ${ROOT_DIR}/_server/azerothcore || exit 1
##########################################################################################
# Copy client-data into server folder (instead of ./acore.sh client-data)
##########################################################################################
unzip ${ROOT_DIR}/_data/data.zip -d ${DATAPATH} || exit 1
echo "Executed..."
fi

62
4_compile.sh Executable file
View File

@@ -0,0 +1,62 @@
#!/bin/bash
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
source ${ROOT_DIR}/variables.sh
read -p "This will (re)compile server, are you sure? (Y)es/(N)o: " -n 1 -r
echo " ";
if [[ $REPLY =~ ^[Yy]$ ]];
then
##########################################################################################
# General dependencies
##########################################################################################
sudo apt update && \
sudo apt full-upgrade -y && \
sudo apt-get install -y \
btop \
tmux \
sudo \
curl \
net-tools \
locate \
nano \
software-properties-common
##########################################################################################
# Install core dependencies (https://www.azerothcore.org/wiki/linux-requirements)
##########################################################################################
sudo ${ROOT_DIR}/_server/azerothcore/acore.sh install-deps && \
sudo apt-get update && \
sudo apt-get install \
git \
cmake \
make \
gcc \
g++ \
clang \
libmysqlclient-dev \
libssl-dev \
libbz2-dev libreadline-dev \
libncurses-dev mysql-server \
libboost-all-dev
##########################################################################################
# Compile the code
# https://github.com/azerothcore/azerothcore-wotlk/blob/master/apps/compiler/compiler.sh
##########################################################################################
sudo ${ROOT_DIR}/_server/azerothcore/acore.sh compiler clean
sudo ${ROOT_DIR}/_server/azerothcore/acore.sh compiler configure
sudo ${ROOT_DIR}/_server/azerothcore/acore.sh compiler compile
##########################################################################################
# Ensure all folder and files are accesible for the current user
##########################################################################################
sudo find ${ROOT_DIR}/_server/ -user root -exec sudo chown $USER: {} +
echo "Executed..."
fi

93
5_config.sh Executable file
View File

@@ -0,0 +1,93 @@
#!/bin/bash
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
source ${ROOT_DIR}/variables.sh
read -p "This will initialize and apply the config, are you sure? (Y)es/(N)o: " -n 1 -r
echo " ";
if [[ $REPLY =~ ^[Yy]$ ]];
then
##########################################################################################
# Enable mysql server
##########################################################################################
sudo service mysql start
##########################################################################################
# Create acore account
##########################################################################################
sudo mysql -u root -e "CREATE DATABASE IF NOT EXISTS acore_auth;"
sudo mysql -u root -e "CREATE USER IF NOT EXISTS 'acore'@'%' IDENTIFIED BY 'acore';"
sudo mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO 'acore'@'%';"
sudo mysql -u root -e "FLUSH PRIVILEGES;"
##########################################################################################
# Recompile default conf files
##########################################################################################
sudo ${ROOT_DIR}/_server/azerothcore/acore.sh compiler configure
##########################################################################################
# Ensure all folder and files are accesible for the current user
##########################################################################################
sudo find ${ROOT_DIR}/_server/ -user root -exec sudo chown $USER: {} +
##########################################################################################
# Server config merge
##########################################################################################
sudo cat ${ROOT_DIR}/config/authserver.conf \
${ROOT_DIR}/_server/azerothcore/env/dist/etc/authserver.conf.dist > \
${ROOT_DIR}/_server/azerothcore/env/dist/etc/authserver.conf | exit 1
sudo cat ${ROOT_DIR}/config/worldserver.conf \
${ROOT_DIR}/_server/azerothcore/env/dist/etc/worldserver.conf.dist > \
${ROOT_DIR}/_server/azerothcore/env/dist/etc/worldserver.conf | exit 1
###########################################################################################
## Modules config merge
###########################################################################################
sudo cat ${ROOT_DIR}/config/modules/playerbots.conf \
${ROOT_DIR}/_server/azerothcore/env/dist/etc/modules/playerbots.conf.dist > \
${ROOT_DIR}/_server/azerothcore/env/dist/etc/modules/playerbots.conf | exit 1
sudo cat ${ROOT_DIR}/config/modules/mod_ahbot.conf \
${ROOT_DIR}/_server/azerothcore/env/dist/etc/modules/mod_ahbot.conf.dist > \
${ROOT_DIR}/_server/azerothcore/env/dist/etc/modules/mod_ahbot.conf | exit 1
sudo cat ${ROOT_DIR}/config/modules/progression_system.conf \
${ROOT_DIR}/_server/azerothcore/env/dist/etc/modules/progression_system.conf.dist > \
${ROOT_DIR}/_server/azerothcore/env/dist/etc/modules/progression_system.conf | exit 1
##########################################################################################
# Set alias to start, stop and open wow or auth tmux sessions
##########################################################################################
echo "ROOT_DIR=${ROOT_DIR}" > ~/.bash_aliases
echo "DATAPATH=${DATAPATH}" >> ~/.bash_aliases
echo "alias update='${ROOT_DIR}/2_update.sh'" >> ~/.bash_aliases
echo "alias build='${ROOT_DIR}/3_build.sh'" >> ~/.bash_aliases
echo "alias compile='${ROOT_DIR}/4_compile.sh'" >> ~/.bash_aliases
echo "alias config='${ROOT_DIR}/5_config.sh'" >> ~/.bash_aliases
echo "alias start='${ROOT_DIR}/6_start.sh'" >> ~/.bash_aliases
echo "alias stop='tmux kill-server'" >> ~/.bash_aliases
echo "alias wow='cd ${ROOT_DIR}/_server/azerothcore;tmux attach -t ${WORLDSERVER_SESSION}'" >> ~/.bash_aliases
echo "alias auth='cd ${ROOT_DIR}/_server/azerothcore;tmux attach -t ${AUTHSERVER_SESSION}'" >> ~/.bash_aliases
echo " "
echo "###########################################################################################"
echo "## After the first install or changes either reboot or TYPE! 'source ~/.bashrc'"
echo "###########################################################################################"
echo "## After the above you can use the following commands:"
echo "### start - starts auth and world in tmux sessions server"
echo "### stop - starts all servers"
echo "### wow - logon world-server tmux session"
echo "### auth - logon auth-server tmux session"
echo "### update - updates the current downloaded source-code, after rerun: build, compile and config."
echo "### build - (re)builds the server based on the downloaded/updated source-codes"
echo "### compile - (re)compiles the server based on the build server"
echo "### config - applies configuration settings defined in the 'config' folder"
echo "###########################################################################################"
fi

73
6_start.sh Executable file
View File

@@ -0,0 +1,73 @@
#!/bin/bash
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
source ${ROOT_DIR}/variables.sh
##########################################################################################
# Apply realm settings
##########################################################################################
sudo mysql -u root --database="acore_auth" -e "UPDATE realmlist SET address = '${REALM_IP}' WHERE id = 1;"
sudo mysql -u root --database="acore_auth" -e "UPDATE realmlist SET name = '${REALM_NAME}' WHERE id = 1;"
echo "Realm settings updated..."
echo " "
##########################################################################################
# Apply ah-modbot settings
##########################################################################################
sudo mysql -u root --database="acore_world" -e "UPDATE mod_auctionhousebot SET minitems = ${AH_BOT_MIN_ITEMS}, maxitems = ${AH_BOT_MAX_ITEMS};"
echo "Module ah-modbot updated..."
echo " "
##########################################################################################
# reset playerbots data (enforces performance and bot levels balance)
##########################################################################################
sudo mysql -u root --database="acore_characters" < ${ROOT_DIR}/lib/clear-bots.sql
echo "Module playerbots updated..."
echo " "
##########################################################################################
# handle the tmux sessions
##########################################################################################
if tmux new-session -d -s $AUTHSERVER_SESSION; then
echo "Created authserver session: $AUTHSERVER_SESSION"
else
echo "Error when trying to create authserver session: $AUTHSERVER_SESSION"
fi
echo " "
if tmux new-session -d -s $WORLDSERVER_SESSION; then
echo "Created worldserver session: $WORLDSERVER_SESSION"
else
echo "Error when trying to create worldserver session: $WORLDSERVER_SESSION"
fi
echo " "
if tmux send-keys -t $AUTHSERVER_SESSION "$AUTHSERVER" C-m; then
echo "Executed \"$AUTHSERVER\" inside $AUTHSERVER_SESSION"
#echo "You can attach to $AUTHSERVER_SESSION and check the result using \"tmux attach -t $AUTHSERVER_SESSION\""
else
echo "Error when executing \"$AUTHSERVER\" inside $AUTHSERVER_SESSION"
fi
echo " "
if tmux send-keys -t $WORLDSERVER_SESSION "$WORLDSERVER" C-m; then
echo "Executed \"$WORLDSERVER\" inside $WORLDSERVER_SESSION"
#echo "You can attach to $WORLDSERVER_SESSION and check the result using \"tmux attach -t $WORLDSERVER_SESSION\""
else
echo "Error when executing \"$WORLDSERVER\" inside $WORLDSERVER_SESSION"
fi
echo " "
echo "###########################################################################################"
echo "Word of advice:"
echo "## 1. -------------------------------------------------------------------------------------"
echo "After (re)starting the server and logging in with the client wait 5-10m so the bots can"
echo "settle abit; getting an assigned level and teleport to an area for that level"
echo "## 2. -------------------------------------------------------------------------------------"
echo "If you wanna type alot of commands in the world-server session you might want to disable"
echo "## the playerbots mod through the playerbot config, since the playerbots generates alot of"
echo "## output which disrupts the command line typing :) When done enable again ./config/module"
echo "###########################################################################################"

126
README.md
View File

@@ -1,2 +1,124 @@
# azerothcore_installer # azerothcore_installer [WIP]
Simple classic installer with playerbots and ah-bot for solo / friends play A simple classic Azerothcore installer with playerbots and ahbot for solo / friends play.
For now a quick guide with a abit of common sense and experience i guess, this is just quick setup since i kinda made it for personal use. I prolly will test abit more and add some additional 'features' such as
auto character import/export.
Why classic and not docker? Even though i love docker it does add some additional layer of complexity especially when playing around with modules and settings. Hence making this tiny wrapper instead of a
docker image. Obviously this can be translated into a container, but if you able to run a container you should be able to run the default wiki installation embedded in the azerothcore instead.
It might contain some errors and whatnot, hopefully it will give you some guidance when you have trouble with the classic installation with playerbots and ah-bot. I havent covered every step with great detail
i might add a 'real' guide when i have the time.
## Todo
- min/max bot amount, threads performance
- test MariaDB vs mySQL, mariaDB feels faster maybe i am seeing ghost though. (done and seeems equal)
- Integrate the player export/import
- Integrate database full backup
- Consider setting vmplayer on priority from 'normal' to 'high'
# Server setup
- vmware player
- ubuntu-24.04-live-server-amd64.iso
- minimal setup
- 70GB disksize (minimal 50GB)
- 16 GB memorysize
- 4 cores (amd 5700x)
- network (bridged mode)
## Ubuntu server settings
Update and install tooling
```bash
sudo apt update -y && sudo apt upgrade -y
sudo git net-tools
```
Find network IP, should be something like 192.168.x.x
```bash
ifconfig
```
###### Internet server
Use the above (ifconfig) IP for the following router poort-forwarding and/or firewall rules settings.
````
# 3724 TCP AUTH-SERVER
# 8085 TCP WORLD-SERVER
````
Go to e.g. [whatsmyip](https://whatismyip.com/) and use that IP as realm IP in the variables.sh
and the client 3.3.5a 'data/enUS/realmlist.wtf' files
###### Local server
Use the above IP (ifconfig) as realm IP in the variables.sh and the client 3.3.5a
'data/enUS/realmlist.wtf' files.
# Installer
```bash
git clone https://github.com/hermensbas/azerothcore_installer.git
cd azerothcore_installer.git
chmod +x *.sh
```
And simply follow the steps of the scripts.
For the first install, make sure after 'start.sh' you logon on the tmux session of the world-server by typing 'wow'
and hit next, next, next when prompting for creating databases.
###### ah-bot
Create normal account and use helper/find-character.sh 'charname' to find the accountId and characterId (GUID)
and update your ah-mod config in the ./config folder and reapply the config and start the server again.
```tree
├── 1_download.sh (downloads the sources and client-data)
├── 2_update.sh (updates and resets the downloaded sources to latest)
├── 3_build.sh (builds the server structure and such)
├── 4_compile.sh (compiles the server code)
├── 5_config.sh (applies general configuration and that defined in ./config, restart required)
├── 6_start.sh (starts the client but can be done through alias created by config.sh)
├── _data (client-data v16)
│   └── data.zip
├── _download (downloaded core and modules)
│   ├── azerothcore
│   └── modules
├── _server (the build and compiled server code based on the downloaded code)
│   └── azerothcore
├── config (custom config which be merged on top of the generated .dist configs)
│   ├── authserver.conf
│   ├── modules
│   └── worldserver.conf
├── helper (simple helper scripts for ah-bot and clearing ah-bot)
│   ├── clear-ah.sh
│   └── find-character.sh
├── lib
│   ├── clear-bots.sql
│   ├── general-settings.sh
│   └── merge_core.sh (maybe when your abit more advanced with git and concepts like rebase and merge, but this merges the original azerothcore into the playerbot fork, if e.g. the u need a fix asap)
└── variables.sh (contains project variables such as realm IP and name, min-max items for ah-bot etc.
````
General info
The ah-bot and playerbots modules are integrated sort off, you will need to create an account for th ah-bot and complete the
ah-bot config by using the find-character.sh script.
And every start all bots data will be deleted to maintai a clean database and remain the balance between the
levels of among the bots as they grow over time.
# Client
3.3.5a (Can be found through chromiecraft or simply join that server hosted and developed y azerothcore
Addons:
- Allstats
- QuestHelper
- UnBot (english version), used to control the playerbots
- AI_VoiceOver
- AI_VoiceOverData_Vanilla
# Server stability
Obviously the more custom modules are installed the more risk of encountering problems, playerbot is still being developed.
If you experience random disconnects without 'any' reason playerbot might be the cause, you might wanna try to rebuild/recompile the code and/or lower the bot amount)
# Changing config
After changing the config files in the /config folder, run the following commands:
- 1. config - by alias 'config' or running the 5_config.sh)
- 2. Server restart - by stop/start or simply a 'AC> server restart 1' command in the world-server session

1
_download/azerothcore Submodule

Submodule _download/azerothcore added at 22132addce

Submodule _download/modules/mod-ah-bot added at 8b06eb4906

Submodule _download/modules/mod-playerbots added at 467633a860

Submodule _download/modules/mod-progression-system added at a174835688

11
config/authserver.conf Normal file
View File

@@ -0,0 +1,11 @@
#################################################################################################
# START: custom authserver.conf settings
#################################################################################################
LoginDatabase.WorkerThreads = 4
LoginDatabase.SynchThreads = 4
#################################################################################################
# END: custom authserver.conf settings
#################################################################################################

View File

@@ -0,0 +1,40 @@
#################################################################################################
# START: custom mod_ahbot.conf settings
#################################################################################################
#-----------------------------------------------------------------------------------------------
# Use helper/find-character.sh to locate your newly created ah account and character GUID
#-----------------------------------------------------------------------------------------------
AuctionHouseBot.Account = 0
AuctionHouseBot.GUID = 0
AuctionHouseBot.EnableSeller = 0
AuctionHouseBot.EnableBuyer = 0
AuctionHouseBot.ItemsPerCycle = 5000
AuctionHouseBot.VendorItems = 1
AuctionHouseBot.VendorTradeGoods = 1
AuctionHouseBot.LootItems = 1
AuctionHouseBot.LootTradeGoods = 1
AuctionHouseBot.OtherItems = 0
AuctionHouseBot.OtherTradeGoods = 0
AuctionHouseBot.No_Bind = 1
AuctionHouseBot.Bind_When_Picked_Up = 0
AuctionHouseBot.Bind_When_Equipped = 1
AuctionHouseBot.Bind_When_Use = 1
AuctionHouseBot.Bind_Quest_Item = 0
AuctionHouseBot.DisablePermEnchant = 0
AuctionHouseBot.DisableConjured = 0
AuctionHouseBot.DisableGems = 1
AuctionHouseBot.DisableMoney = 0
AuctionHouseBot.DisableMoneyLoot = 0
AuctionHouseBot.DisableLootable = 0
AuctionHouseBot.DisableKeys = 0
AuctionHouseBot.DisableDuration = 0
AuctionHouseBot.DisableBOP_Or_Quest_NoReqLevel = 0
#################################################################################################
# END: custom mod_ahbot.conf settings
#################################################################################################

View File

@@ -0,0 +1,35 @@
#################################################################################################
# START: custom playerbots.conf settings
#################################################################################################
AiPlayerbot.Enabled = 1
# world bots
AiPlayerbot.MinRandomBots = 2250
AiPlayerbot.MaxRandomBots = 2300
AiPlayerbot.RandomBotMinLevel = 1
AiPlayerbot.RandomBotMaxLevel = 60
AiPlayerbot.RandomBotMaxLevelChance = 0.05
AiPlayerbot.RandomBotFixedLevel = 0
# world account bots and rotation
AiPlayerbot.EnableRotation = 1
AiPlayerbot.RotationPoolSize = 2500
AiPlayerbot.RandomBotAccountCount = 300
# bots gear level limits
AiPlayerbot.AutoGearQualityLimit = 3
AiPlayerbot.LimitEnchantExpansion = 60
AiPlayerbot.LimitGearExpansion = 60
# player summoned group/raid bots limits
AiPlayerbot.MaxAddedBots = 40
AiPlayerbot.MaxAddedBotsPerClass = 10
# performance related
PlayerbotsDatabase.WorkerThreads = 1
PlayerbotsDatabase.SynchThreads = 100
#################################################################################################
# END: custom playerbots.conf settings
#################################################################################################

View File

@@ -0,0 +1,7 @@
#################################################################################################
# START: custom progression_system.conf settings
#################################################################################################
#################################################################################################
# END: custom progression_system.conf settings
#################################################################################################

37
config/worldserver.conf Normal file
View File

@@ -0,0 +1,37 @@
#################################################################################################
# START: custom worldserver.conf settings
#################################################################################################
# world server config (Expansion 0 = classic, 1 = bc, 2 = wotlk)
Expansion = 0
MaxPlayerLevel = 60
GameType = 1
PlayerLimit = 0
# new player config
StartPlayerMoney = 50000
# server config
Instance.GMSummonPlayer = 1
MailDeliveryDelay = 10
LeaveGroupOnLogout.Enabled = 0
InstantLogout = 0
AllowTwoSide.Interaction.Auction = 1
AllowTwoSide.WhoList = 1
# performance
LoginDatabase.WorkerThreads = 1
WorldDatabase.WorkerThreads = 1
CharacterDatabase.WorkerThreads = 1
LoginDatabase.SynchThreads = 1
WorldDatabase.SynchThreads = 1
CharacterDatabase.SynchThreads = 2
Network.Threads = 1
ThreadPool = 2
MapUpdate.Threads = 6
#################################################################################################
# END: custom worldserver.conf settings
#################################################################################################

11
helper/clear-ah.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
read -p "This will delete all items of the auction house, are you sure? (Y)es/(N)o: " -n 1 -r
echo " ";
if [[ $REPLY =~ ^[Yy]$ ]];
then
sudo mysql -u root --database="acore_characters" -e "DELETE FROM auctionhouse;"
fi

10
helper/find-character.sh Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/bash
if [ -z "$1" ]
then
echo "Parameter is null, first paramter 'character name' should not be empty";
exit 1;
fi
# find character and account id by name, mainly used for configuring the ah-bot mod.
sudo mysql -u root --database="acore_auth" -e "select acc.id as accountId, ch.guid as characterId from acore_auth.account as acc inner join acore_characters.characters as ch where acc.id = ch.account and acc.username = '${1}';"

30
lib/clear-bots.sql Normal file
View File

@@ -0,0 +1,30 @@
DELETE FROM `acore_playerbots`.`playerbots_random_bots`;
UPDATE `acore_characters`.`playerbots_names` SET `in_use`=0;
DELETE FROM `acore_characters`.`characters` WHERE `account` IN (SELECT `id` FROM `acore_auth`.`account` WHERE `username` LIKE 'RNDBOT%') OR `account` NOT IN (SELECT `id` FROM `acore_auth`.`account`);
DELETE FROM `acore_characters`.`character_account_data` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_achievement` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_achievement_progress` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_action` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_aura` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_glyphs` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_homebind` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`item_instance` WHERE `owner_guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_inventory` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`pet_aura` WHERE `guid` IN (SELECT `id` FROM `acore_characters`.`character_pet` WHERE `owner` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`));
DELETE FROM `acore_characters`.`pet_spell` WHERE `guid` IN (SELECT `id` FROM `acore_characters`.`character_pet` WHERE `owner` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`));
DELETE FROM `acore_characters`.`pet_spell_cooldown` WHERE `guid` IN (SELECT `id` FROM `acore_characters`.`character_pet` WHERE `owner` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`));
DELETE FROM `acore_characters`.`character_pet` WHERE `owner` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_queststatus` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_queststatus_rewarded` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_reputation` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_skills` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_social` WHERE `friend` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_spell` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_spell_cooldown` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`character_talent` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`corpse` WHERE `guid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`groups` WHERE `leaderGuid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`group_member` WHERE `memberGuid` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`mail` WHERE `receiver` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_characters`.`mail_items` WHERE `receiver` NOT IN (SELECT `guid` FROM `acore_characters`.`characters`);
DELETE FROM `acore_auth`.`account` WHERE `username` LIKE 'RNDBOT%';

13
lib/general-settings.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
##########################################################################################
# General settings
##########################################################################################
# Setting execute rights for the scripts
sudo chmod +x ${ROOT_DIR}/*.sh
sudo chmod +x ${ROOT_DIR}/lib/*.sh
sudo chmod +x ${ROOT_DIR}/helper/*.sh
# Alias GIT (git lg for git commits, git ls for commits with changed files)
git config --global alias.lg 'log --graph --abbrev-commit --decorate --date=relative --all'
git config --global alias.ls 'log --stat --pretty=short --graph'

28
lib/merge_core.sh Executable file
View File

@@ -0,0 +1,28 @@
#!/bin/bash
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
##########################################################################################
# General dependencies
##########################################################################################
sudo apt update && sudo apt install -y git
read -p "Merge the orginal azerothcore code into the playerbot azerothcore, are you sure? (Y)es/(N)o: " -n 1 -r
echo " ";
if [[ $REPLY =~ ^[Yy]$ ]];
then
##########################################################################################
# Try to merge from the orginal azerothcore into the playerbot azerothcore fork branch
##########################################################################################
cd ${ROOT_DIR}/../_download/azerothcore
git reset --hard origin/Playerbot
git fetch upstream
git merge upstream/master
echo " "
echo "###########################################################################################"
echo "## If (conflict) error just run update (2_update.sh) again to restore to the latest"
echo "## version of the playerbot branch"
echo "###########################################################################################"
fi

42
variables.sh Executable file
View File

@@ -0,0 +1,42 @@
#!/bin/bash
ROOT_DIR="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
##########################################################################################
# If you want remote players to connect use the following info e.g.
# router DMZ or poort-forwarding and possibly firewall settings.
##########################################################################################
# 3724 TCP AUTH-SERVER
# 8085 TCP WORLD-SERVER
##########################################################################################
# Variables # https://github.com/azerothcore/azerothcore-wotlk/blob/master/conf/dist/env.ac
##########################################################################################
AUTHSERVER="${ROOT_DIR}/_server/azerothcore/acore.sh run-authserver"
WORLDSERVER="${ROOT_DIR}/_server/azerothcore/acore.sh run-worldserver"
AUTHSERVER_SESSION="auth-session"
WORLDSERVER_SESSION="world-session"
MYSQL_ROOT_PASSWORD=rootpassword
MYSQL_USER=acore
MYSQL_PASSWORD=acore
MYSQL_DATABASE=acore_auth
DATAPATH=${ROOT_DIR}/_server/azerothcore/env/dist/bin
# ----------------------------------------------------------------------------------------
# if you want remore players to connects then this should the external IP/DNS
# which also should be placed in the 3.35a client Realm.wtf
# ----------------------------------------------------------------------------------------
REALM_IP=192.168.178.186
REALM_NAME="azerothcore.org"
AH_BOT_MIN_ITEMS=25000
AH_BOT_MAX_ITEMS=30000
##########################################################################################
# General settings
##########################################################################################
source ${ROOT_DIR}/lib/general-settings.sh