diff --git a/conf/playerbots.conf.dist b/conf/playerbots.conf.dist index d955b9c2..443f6cdc 100644 --- a/conf/playerbots.conf.dist +++ b/conf/playerbots.conf.dist @@ -4,12 +4,7 @@ ################################################################################################### # SECTION INDEX -# -# PLAYERBOT SYSTEM SETTINGS -# DATABASE & CONNECTIONS -# DEBUG -# CHAT SETTINGS -# LOGS +# GENERAL SETTINGS # PLAYERBOT SETTINGS # GENERAL # SUMMON OPTIONS @@ -22,6 +17,16 @@ # COMBAT # CHEATS # SPELLS +# PLAYERBOT RNDBOT SPECIFIC SETTINGS +# GENERAL +# LEVELS +# GEAR +# QUESTS +# SPELLS +# STRATEGIES +# TELEPORTS +# BATTLEGROUND & ARENA & PVP +# INTERVALS # PREMADE SPECS # INFORMATION # WARRIOR @@ -34,29 +39,22 @@ # MAGE # WARLOCK # DRUID -# PLAYERBOT RNDBOT SPECIFIC SETTINGS -# GENERAL -# ACCOUNT DELETE RNDBOTS -# LEVELS -# GEAR -# QUESTS -# PROFESSIONS -# SPELLS -# STRATEGIES -# TELEPORTS -# BATTLEGROUND & ARENA & PVP -# INTERVALS -# DEFAULT TALENT SPEC -# WARRIOR -# PALADIN -# HUNTER -# ROGUE -# PRIEST -# DEATHKNIGHT -# SHAMAN -# MAGE -# WARLOCK -# DRUID +# RANDOM BOT DEFAULT TALENT SPEC +# WARRIOR +# PALADIN +# HUNTER +# ROGUE +# PRIEST +# DEATHKNIGHT +# SHAMAN +# MAGE +# WARLOCK +# DRUID +# PLAYERBOT SYSTEM SETTINGS +# DATABASE & CONNECTIONS +# DEBUG +# CHAT SETTINGS +# LOGS # DEPRECIATED (TEMPORARY) # # @@ -65,116 +63,31 @@ # ################################################################################################### +################################################################################################### + ################################### # # -# PLAYERBOT SYSTEM SETTINGS # +# GENERAL SETTINGS # # # ################################### #################################################################################################### -# DATABASE & CONNECTIONS -# -# -# PlayerbotsDatabaseInfo -# Description: Database connection settings for the playerbots server. -# Example: "hostname;port;username;password;database" -# ".;somenumber;username;password;database" - (Use named pipes on Windows -# "enable-named-pipe" to [mysqld] -# section my.ini) -# ".;/path/to/unix_socket;username;password;database" - (use Unix sockets on -# Unix/Linux) -# Default: "127.0.0.1;3306;acore;acore;acore_playerbots" - (PlayerbotDatabaseInfo) +# Enable or disable AI Playerbot +AiPlayerbot.Enabled = 1 -PlayerbotsDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_playerbots" +# Enable random bot system +AiPlayerbot.RandomBotAutologin = 1 -# -# PlayerbotsDatabase.WorkerThreads -# Description: The amount of worker threads spawned to handle asynchronous (delayed) MySQL -# statements. Each worker thread is mirrored with its own connection to the -# MySQL server and their own thread on the MySQL server. -# Default: 1 - (PlayerbotsDatabase.WorkerThreads) +# Random bot account +AiPlayerbot.RandomBotAccountCount = 200 -PlayerbotsDatabase.WorkerThreads = 1 +# Random bot count +AiPlayerbot.MinRandomBots = 50 +AiPlayerbot.MaxRandomBots = 50 -# -# PlayerbotsDatabase.SynchThreads -# Description: The amount of MySQL connections spawned to handle. -# Default: 1 - (PlayerbotDatabase.WorkerThreads) - -PlayerbotsDatabase.SynchThreads = 1 - -# Playerbot.Updates.EnableDatabases -# Description: Determined if updates system work with playerbot database. -# -# Default: 1 - (Enabled) -# 0 - (Disabled) - -Playerbots.Updates.EnableDatabases = 1 - -# Command server port, 0 - disabled -AiPlayerbot.CommandServerPort = 8888 - -# Diff with/without player in server. The server will tune bot activity to reach the desired server tick speed (in ms).# PLAYERBOT SYSTEM SETTINGS # -AiPlayerbot.EnablePrototypePerformanceDiff = 0 -AiPlayerbot.DiffWithPlayer = 100 -AiPlayerbot.DiffEmpty = 200 - -# -# -# -#################################################################################################### - -#################################################################################################### -# DEBUG SWITCHES -# -# - -AiPlayerbot.SpellDump = 0 -AiPlayerbot.LogInGroupOnly = 1 -AiPlayerbot.LogValuesPerTick = 0 -AiPlayerbot.RandomChangeMultiplier = 1 - -# Enables/Disables performance monitor -AiPlayerbot.PerfMonEnabled = 0 - -# -# -# -#################################################################################################### - -#################################################################################################### -# CHAT SETTINGS -# -# - -# Prefix for bot chat commands (e.g. follow, stay) -AiPlayerbot.CommandPrefix = "" - -# Separator for bot chat commands -AiPlayerbot.CommandSeparator = "\\\\" - -# -# -# -#################################################################################################### - -#################################################################################################### -# LOGS -# -# - -# Custom config to allow logfiles to be created. -# Example: AiPlayerbot.AllowedLogFiles = travelNodes.csv,travelPaths.csv,TravelNodeStore.h,bot_movement.csv,bot_location.csv -AiPlayerbot.AllowedLogFiles = "" - -Appender.Playerbots=2,5,0,Playerbots.log,w -Logger.playerbots=5,Console Playerbots - -# -# -# -#################################################################################################### +# Delete all random bot accounts (reset randombots) +AiPlayerbot.DeleteRandomBotAccounts = 0 ################################################################################################### @@ -191,9 +104,6 @@ Logger.playerbots=5,Console Playerbots # # -# Enable or disable AI Playerbot -AiPlayerbot.Enabled = 1 - # Enable/Disable create bot by addclass command (0 = GM only, 1 = enable) # default: 1 (enable) AiPlayerbot.AddClassCommand = 1 @@ -202,14 +112,6 @@ AiPlayerbot.AddClassCommand = 1 # default: 1 (accept based on level) AiPlayerbot.GroupInvitationPermission = 1 -# Non-GM player can only use init=auto to initialize bots based on their own level and gear score -# default: 0 (non-gm player can use any intialization commands) -AiPlayerbot.AutoInitOnly = 0 - -# Enable expansion limitation -# Default: 1 -AiPlayerbot.LimitEnchantExpansion = 1 - # auto-login all player alts as bots on player login AiPlayerbot.BotAutologin = 0 @@ -223,14 +125,25 @@ AiPlayerbot.SummonWhenGroup = 1 # Allow/deny bots from your guild AiPlayerbot.AllowGuildBots = 1 -# Sync max random bot level with max level of online players -# Default: 0 (disabled) -AiPlayerbot.SyncLevelWithPlayers = 0 - # Added following config # Selfbot permission level (0 = disabled, 1 = gm only (default), 2 = all players, 3 = activate on login) AiPlayerbot.SelfBotLevel = 1 +# Give free food to bots +# Default: 1 (enabled) +AiPlayerbot.FreeFood = 1 + +# Non-GM player can only use init=auto to initialize bots based on their own level and gear score +# default: 0 (non-gm player can use any intialization commands) +AiPlayerbot.AutoInitOnly = 0 + +# The upper limit ratio of bot equipment level for init=auto +# default: 1.0 (same with the player) +AiPlayerbot.AutoInitEquipLevelLimitRatio = 1.0 + +# Bot automatically trains spells when talking to trainer (yes = train all available spells as long as the bot has the money, free = auto trains with no money cost, no = only list spells) +AiPlayerbot.AutoTrainSpells = yes + # # # @@ -275,23 +188,13 @@ AiPlayerbot.BotRepairWhenSummon = 1 AiPlayerbot.RandomBotShowHelmet = 1 AiPlayerbot.RandomBotShowCloak = 1 +# Bots equip upgrades (Bots will equip any item obtained from looting or a quest if they are upgrades) +# Default: 1 (enable) +AiPlayerbot.AutoEquipUpgradeLoot = 1 - -# The upper limit ratio of bot equipment level for init=auto -# default: 1.0 (same with the player) -AiPlayerbot.AutoInitEquipLevelLimitRatio = 1.0 - -# Enable/Disable autogear command, auto upgrade player bots gears, the quality is limited by AutoGearQualityLimit and AutoGearScoreLimit -# default: 1 (enable) -AiPlayerbot.AutoGearCommand = 1 - -# Equips quality limitation for auto gear command (1 = normal, 2 = uncommon, 3 = rare, 4 = epic, 5 = legendary) -# default: 3 (rare) -AiPlayerbot.AutoGearQualityLimit = 3 - -# Equips gear score limitation for auto gear command (0 = no limit) -# default: 0 (no limit) -AiPlayerbot.AutoGearScoreLimit = 0 +# Equip upgrade threshold for auto equip upgrade +# Default: 1.1 (Equip when the equipment score is 1.1 times higher than the current) +AiPlayerbot.EquipUpgradeThreshold = 1.1 # # @@ -314,14 +217,6 @@ AiPlayerbot.FreeMethodLoot = 0 # Default: 1 (greed) AiPlayerbot.LootRollLevel = 1 -# Bots equip upgrades (Bots will equip any item obtained from looting or a quest if they are upgrades) -# Default: 1 (enable) -AiPlayerbot.AutoEquipUpgradeLoot = 1 - -# Equip upgrade threshold for auto equip upgrade -# Default: 1.1 (Equip when the equipment score is 1.1 times higher than the current) -AiPlayerbot.EquipUpgradeThreshold = 1.1 - # # # @@ -425,14 +320,6 @@ AiPlayerbot.AlmostFullHealth = 85 AiPlayerbot.LowMana = 15 AiPlayerbot.MediumMana = 40 -# Enable healer bot save mana -# Default: 1 (enable) -AiPlayerbot.AutoSaveMana = 1 - -# Healer bot save mana threshold -# Default: 60 (60%) -AiPlayerbot.SaveManaThreshold = 60 - # # # @@ -443,9 +330,6 @@ AiPlayerbot.SaveManaThreshold = 60 # # -# Mark many quests <= Bot level as complete (slows down bot creation) -AiPlayerbot.PreQuests = 0 - # Bots pick their quest reward (yes = picks first useful item, no = list all rewards, ask = pick useful item and lists if multiple) AiPlayerbot.AutoPickReward = no @@ -478,6 +362,14 @@ AiPlayerbot.AutoAvoidAoe = 1 # Default: 1 (enable) AiPlayerbot.TellWhenAvoidAoe = 1 +# Enable healer bot save mana +# Default: 1 (enable) +AiPlayerbot.AutoSaveMana = 1 + +# Healer bot save mana threshold +# Default: 60 (60%) +AiPlayerbot.SaveManaThreshold = 60 + # # # @@ -492,6 +384,18 @@ AiPlayerbot.TellWhenAvoidAoe = 1 # default: 1 (enable) AiPlayerbot.MaintenanceCommand = 1 +# Enable/Disable autogear command, auto upgrade player bots gears, the quality is limited by AutoGearQualityLimit and AutoGearScoreLimit +# default: 1 (enable) +AiPlayerbot.AutoGearCommand = 1 + +# Equips quality limitation for auto gear command (1 = normal, 2 = uncommon, 3 = rare, 4 = epic, 5 = legendary) +# default: 3 (rare) +AiPlayerbot.AutoGearQualityLimit = 3 + +# Equips gear score limitation for auto gear command (0 = no limit) +# default: 0 (no limit) +AiPlayerbot.AutoGearScoreLimit = 0 + # Enables/Disables bot cheating AiPlayerbot.BotCheats = "taxi" @@ -508,14 +412,279 @@ AiPlayerbot.BotCheats = "taxi" # ID of spell to open lootable chests AiPlayerbot.OpenGoSpell = 6477 -# Applies a permanent buff to all bots. -# WorldBuff.Faction.Class.MinLevel.MaxLevel - # # # ################################################################################################### +####################################### +# # +# PLAYERBOT RNDBOT SPECIFIC SETTINGS # +# # +####################################### + +#################################################################################################### +# GENERAL +# +# + +# Enables/Disables password to bot account +AiPlayerbot.RandomBotRandomPassword = 0 + +# Accounts to create for random bots +AiPlayerbot.RandomBotAccountPrefix = "rndbot" + +# Enable/Disable rotation of bots (randomly select a bot from the bots pool to go online and rotate them periodically) +# Need to reset rndbot after changing the setting (.playerbot rndbot reset) +# default: 0 (disable, the online bots are fixed) +AiPlayerbot.EnableRotation = 0 + +# Bots pool size for rotation (should be less than RandomBotAccountCount * 10) +AiPlayerbot.RotationPoolSize = 500 + +AiPlayerbot.RandomBotMinLevel = 1 +AiPlayerbot.RandomBotMaxLevel = 80 + +# Sync max random bot level with max level of online players +# Default: 0 (disabled) +AiPlayerbot.SyncLevelWithPlayers = 0 + +# Mark many quests <= Bot level as complete (slows down bot creation) +AiPlayerbot.PreQuests = 0 + +# Bots without a master will say their lines +AiPlayerbot.RandomBotSayWithoutMaster = 0 + +# Enable LFG for random bots +AiPlayerbot.RandomBotJoinLfg = 1 + +# Disable death knight for bots login +# Need to reset rndbot after changing the setting (.playerbot rndbot reset) +AiPlayerbot.DisableDeathKnightLogin = 0 + +# +# +# +#################################################################################################### + +#################################################################################################### +# LEVELS +# +# + +# Disable random levels for randombots +# Every bots started on the specified level and level up by killing mobs. +AiPlayerbot.DisableRandomLevels = 0 + +# Set randombots starting level here if "AiPlayerbot.DisableRandomLevels" enabled +AiPlayerbot.RandombotStartingLevel = 5 + +# Chance random bot has max level on first randomize (default 0.15) +AiPlayerbot.RandomBotMaxLevelChance = 0.15 + +# Fix the level of random bot (won't level up by grinding) +# Default: 0 (disable) +AiPlayerbot.RandomBotFixedLevel = 0 + +# Set RandomBotMaxLevel bots to RandomBotMinLevel or not +AiPlayerbot.DowngradeMaxLevelBot = 0 + +# +# +# +#################################################################################################### + +#################################################################################################### +# GEAR +# +# + +# Equips quality limitation for random bots (1 = normal, 2 = uncommon, 3 = rare, 4 = epic, 5 = legendary) +# default: 3 (rare) +AiPlayerbot.RandomGearQualityLimit = 3 + +# Equips gear score limitation for random bots (0 = no limit) +# default: 0 (no limit) +AiPlayerbot.RandomGearScoreLimit = 0 + +# Set minimum level of randombots where gets enchants on items (Maxlevel + 1 to disable) +# Default: 60 +AiPlayerbot.MinEnchantingBotLevel = 60 + +# Enable expansion limitation +# Default: 1 +AiPlayerbot.LimitEnchantExpansion = 1 + +# Change random bot has lower gear +AiPlayerbot.RandomGearLoweringChance = 0 + +# Randombots checking players gear score level and deny the group invite if it's too low +# Default: 0 (disabled) +AiPlayerbot.GearScoreCheck = 0 + +# Enable/Disable bot equipments persistence (stop random initialization) after certain level (EquipmentPersistenceLevel) +# default: 0 (disable) +AiPlayerbot.EquipmentPersistence = 0 + +# default: 80 +AiPlayerbot.EquipmentPersistenceLevel = 80 + +# Bot automatically upgrade equipments on levelup +# Default: 1 (enabled) +AiPlayerbot.AutoUpgradeEquip = 1 + +# +# +# +#################################################################################################### + +#################################################################################################### +# QUESTS +# +# + +# Quest that will be completed and rewarded to all random bots +AiPlayerbot.RandomBotQuestIds = "7848,3802,5505,6502,7761,10277,10285,11492,24499,24511,24710,24712" + +# Randombots will group with nearby bots to do shared quests +AiPlayerbot.RandomBotGroupNearby = 0 + +# Random Bots will pick quests on their own and try to complete +# Default: 1 (enabled) +AiPlayerbot.AutoDoQuests = 1 + +# Quest items to leave (do not destroy) +AiPlayerbot.RandomBotQuestItems = "6948,5175,5176,5177,5178,16309,12382,13704,11000" + +# +# +# +#################################################################################################### + +#################################################################################################### +# SPELLS +# +# + +# Bots automatically learn classquest reward spells on levelup +# Default: 0 (disabled) +AiPlayerbot.AutoLearnQuestSpells = 0 + +# Bots automatically learn trainable spells on levelup +# Default: 1 (enabled) +AiPlayerbot.AutoLearnTrainerSpells = 1 + +# Bot automatically picks talent points on levelup +# Default: 1 (enabled) +AiPlayerbot.AutoPickTalents = 1 + +# Spells every random bot will learn on randomize (54197 - cold weather flying) +AiPlayerbot.RandomBotSpellIds = "54197" + +# +# +# +#################################################################################################### + +#################################################################################################### +# STRATEGIES +# +# + +# Random bot default strategies (applied after defaults) +AiPlayerbot.RandomBotCombatStrategies = "+dps,+dps assist,-threat" +# AiPlayerbot.RandomBotNonCombatStrategies = "+grind,+loot,+rpg,+custom::say" +AiPlayerbot.RandomBotNonCombatStrategies = "" +AiPlayerbot.CombatStrategies = "" +AiPlayerbot.NonCombatStrategies = "" + +# +# +# +#################################################################################################### + +#################################################################################################### +# TELEPORTS +# +# + +# Maps where bots can be teleported to +AiPlayerbot.RandomBotMaps = 0,1,530,571 + +# Probabilty bots teleport to banker (city) +# default: 0.25 +AiPlayerbot.ProbTeleToBankers = 0.25 + +# How far random bots are teleported after death +AiPlayerbot.RandomBotTeleportDistance = 100 + +# Level diff between random bots and nearby creatures for random teleports +AiPlayerbot.RandomBotTeleLowerLevel = 3 +AiPlayerbot.RandomBotTeleHigherLevel = 1 + +# Bots automatically teleport to another place for leveling on levelup +# Only for random bots +# Default: 1 (enabled) +AiPlayerbot.AutoTeleportForLevel = 1 + +# +# +# +#################################################################################################### + +#################################################################################################### +# BATTLEGROUNDS & ARENAS & PVP +# +# + +# Enable BG/Arena for random Bots +AiPlayerbot.RandomBotJoinBG = 1 + +# Enable Auto join BG - bots randomly join WSG and 2v2 Arena if server is not lagging +AiPlayerbot.RandomBotAutoJoinBG = 0 + +# Random bot arena team count +AiPlayerbot.RandomBotArenaTeamCount = 20 + +# Delete all random bot arena teams +AiPlayerbot.DeleteRandomBotArenaTeams = 0 + +# PvP Restricted Zones (bots don't pvp) +AiPlayerbot.PvpProhibitedZoneIds = "2255,656,2361,2362,2363,976,35,2268,3425,392,541,1446,3828,3712,3738,3565,3539,3623,4152,3988,4658,4284,4418,4436,4275,4323,4395,3703" # 33(stranglethorn vale),440(tanaris) + +# PvP Restricted Areas (bots don't pvp) +AiPlayerbot.PvpProhibitedAreaIds = "976,35,392" + +# +# +# +#################################################################################################### + +#################################################################################################### +# INTERVALS +# +# + +# All In seconds +AiPlayerbot.RandomBotUpdateInterval = 20 +AiPlayerbot.RandomBotCountChangeMinInterval = 1800 +AiPlayerbot.RandomBotCountChangeMaxInterval = 7200 +AiPlayerbot.MinRandomBotInWorldTime = 3600 +AiPlayerbot.MaxRandomBotInWorldTime = 43200 +AiPlayerbot.MinRandomBotRandomizeTime = 302400 +AiPlayerbot.MaxRandomBotRandomizeTime = 1209600 +AiPlayerbot.RandomBotsPerInterval = 500 +AiPlayerbot.MinRandomBotReviveTime = 60 +AiPlayerbot.MaxRandomBotReviveTime = 300 +AiPlayerbot.MinRandomBotTeleportInterval = 3600 +AiPlayerbot.MaxRandomBotTeleportInterval = 18000 +AiPlayerbot.RandomBotInWorldWithRotationDisabled = 31104000 + +# +# +# +#################################################################################################### + ################################### # # # PREMADE SPECS # @@ -779,310 +948,14 @@ AiPlayerbot.PremadeSpecLink.11.3.80 = -553202032322010053100030310511-205503012 # ################################################################################################### -####################################### -# # -# PLAYERBOT RNDBOT SPECIFIC SETTINGS # -# # -####################################### +################################### +# # +# RANDOM BOT DEFAULT TALENT SPEC # +# # +################################### #################################################################################################### -# GENERAL -# -# - -# Enable random bot system -AiPlayerbot.RandomBotAutologin = 1 - -# Enables/Disables password to bot account -AiPlayerbot.RandomBotRandomPassword = 0 - -# Log on all random bots on start -AiPlayerbot.RandomBotLoginAtStartup = 1 - -# Accounts to create for random bots -AiPlayerbot.RandomBotAccountPrefix = "rndbot" -AiPlayerbot.RandomBotAccountCount = 200 - -# Random bot count -AiPlayerbot.MinRandomBots = 50 -AiPlayerbot.MaxRandomBots = 50 -AiPlayerbot.RandomBotMinLevel = 1 -AiPlayerbot.RandomBotMaxLevel = 80 - -# Bots pool size for rotation (should be less than RandomBotAccountCount * 10) -AiPlayerbot.RotationPoolSize = 500 - -# Enable/Disable rotation of bots (randomly select a bot from the bots pool to go online and rotate them periodically) -# Need to reset rndbot after changing the setting (.playerbot rndbot reset) -# default: 0 (disable, the online bots are fixed) -AiPlayerbot.EnableRotation = 0 - -# Bots without a master will say their lines -AiPlayerbot.RandomBotSayWithoutMaster = 0 - -# Enable LFG for random bots -AiPlayerbot.RandomBotJoinLfg = 1 - -# Disable death knight for bots login -# Need to reset rndbot after changing the setting (.playerbot rndbot reset) -AiPlayerbot.DisableDeathKnightLogin = 0 - -# Give free food to random bots -# Default: 1 (enabled) -AiPlayerbot.FreeFood = 1 - -# Bots automatically teleport to another place for leveling on levelup -# Only for random bots -# Default: 1 (enabled) -AiPlayerbot.AutoTeleportForLevel = 1 - -# -# -# -#################################################################################################### - -#################################################################################################### -# ACCOUNTS DELETE RNDBOTS -# -# - -# Delete all random bot accounts (reset randombots) -AiPlayerbot.DeleteRandomBotAccounts = 0 - -# -# -# -#################################################################################################### - -#################################################################################################### -# LEVELS -# -# - -# Disable random levels for randombots -# Every bots started on the specified level and level up by killing mobs. -AiPlayerbot.DisableRandomLevels = 0 - -# Set randombots starting level here if "AiPlayerbot.DisableRandomLevels" enabled -AiPlayerbot.RandombotStartingLevel = 5 - -# Chance random bot has max level on first randomize (default 0.15) -AiPlayerbot.RandomBotMaxLevelChance = 0.15 - -# Fix the level of random bot (won't level up by grinding) -# Default: 0 (disable) -AiPlayerbot.RandomBotFixedLevel = 0 - -# Set RandomBotMaxLevel bots to RandomBotMinLevel or not -AiPlayerbot.DowngradeMaxLevelBot = 0 - -# Bot automatically picks talent points on levelup -# Only for random bots -# Default: 1 (enabled) -AiPlayerbot.AutoPickTalents = 1 - -# -# -# -#################################################################################################### - -#################################################################################################### -# GEAR -# -# - -# Equips quality limitation for random bots (1 = normal, 2 = uncommon, 3 = rare, 4 = epic, 5 = legendary) -# default: 3 (rare) -AiPlayerbot.RandomGearQualityLimit = 3 - -# Equips gear score limitation for random bots (0 = no limit) -# default: 0 (no limit) -AiPlayerbot.RandomGearScoreLimit = 0 - -# Change random bot has lower gear -AiPlayerbot.RandomGearLoweringChance = 0 - -# Randombots checking players gear score level and deny the group invite if it's too low -# Default: 0 (disabled) -AiPlayerbot.GearScoreCheck = 0 - -# Enable/Disable bot equipments persistence (stop random initialization) after certain level (EquipmentPersistenceLevel) -# default: 0 (disable) -AiPlayerbot.EquipmentPersistence = 0 - -# default: 80 -AiPlayerbot.EquipmentPersistenceLevel = 80 - -# Bot automatically upgrade equipments on levelup -# Only for random bots -# Default: 1 (enabled) -AiPlayerbot.AutoUpgradeEquip = 1 - -# -# -# -#################################################################################################### - -#################################################################################################### -# QUESTS -# -# - -# Quest that will be completed and rewarded to all random bots -AiPlayerbot.RandomBotQuestIds = "7848,3802,5505,6502,7761,10277,10285,11492,24499,24511,24710,24712" - -# Randombots will group with nearby bots to do shared quests -AiPlayerbot.RandomBotGroupNearby = 0 - -# Random Bots will pick quests on their own and try to complete -# Only for random bots -# Default: 1 (enabled) -AiPlayerbot.AutoDoQuests = 1 - -# Quest items to leave (do not destroy) -AiPlayerbot.RandomBotQuestItems = "6948,5175,5176,5177,5178,16309,12382,13704,11000" - -# -# -# -#################################################################################################### - -#################################################################################################### -# PROFESSIONS -# -# - -# Set minimum level of randombots where gets enchants on items (Maxlevel + 1 to disable) -# Default: 60 -AiPlayerbot.MinEnchantingBotLevel = 60 - -# -# -# -#################################################################################################### - -#################################################################################################### -# SPELLS -# -# - -# Bot automatically trains spells when talking to trainer (yes = train all available spells as long as the bot has the money, free = auto trains with no money cost, no = only list spells) -# Only for random bots -AiPlayerbot.AutoTrainSpells = yes - -# Bots automatically learn classquest reward spells on levelup -# Only for random bots -# Default: 0 (disabled) -AiPlayerbot.AutoLearnQuestSpells = 0 - -# Bots automatically learn trainable spells on levelup -# Only for random bots -# Default: 1 (enabled) -AiPlayerbot.AutoLearnTrainerSpells = 1 - -# Spells every random bot will learn on randomize (54197 - cold weather flying) -AiPlayerbot.RandomBotSpellIds = "54197" - -# -# -# -#################################################################################################### - -#################################################################################################### -# STRATEGIES -# -# - -# Random bot default strategies (applied after defaults) -AiPlayerbot.RandomBotCombatStrategies = "+dps,+dps assist,-threat" -# AiPlayerbot.RandomBotNonCombatStrategies = "+grind,+loot,+rpg,+custom::say" -AiPlayerbot.RandomBotNonCombatStrategies = "" -AiPlayerbot.CombatStrategies = "" -AiPlayerbot.NonCombatStrategies = "" - -# -# -# -#################################################################################################### - -#################################################################################################### -# TELEPORTS -# -# - -# Maps where bots can be teleported to -AiPlayerbot.RandomBotMaps = 0,1,530,571 - -# Probabilty bots teleport to banker (city) -# default: 0.25 -AiPlayerbot.ProbTeleToBankers = 0.25 - -# How far random bots are teleported after death -AiPlayerbot.RandomBotTeleportDistance = 100 - -# Level diff between random bots and nearby creatures for random teleports -AiPlayerbot.RandomBotTeleLowerLevel = 3 -AiPlayerbot.RandomBotTeleHigherLevel = 1 - -# -# -# -#################################################################################################### - -#################################################################################################### -# BATTLEGROUNDS & ARENAS & PVP -# -# - -# Enable BG/Arena for random Bots -AiPlayerbot.RandomBotJoinBG = 1 - -# Enable Auto join BG - bots randomly join WSG and 2v2 Arena if server is not lagging -AiPlayerbot.RandomBotAutoJoinBG = 0 - -# Random bot arena team count -AiPlayerbot.RandomBotArenaTeamCount = 20 - -# Delete all random bot arena teams -AiPlayerbot.DeleteRandomBotArenaTeams = 0 - -# PvP Restricted Zones (bots don't pvp) -AiPlayerbot.PvpProhibitedZoneIds = "2255,656,2361,2362,2363,976,35,2268,3425,392,541,1446,3828,3712,3738,3565,3539,3623,4152,3988,4658,4284,4418,4436,4275,4323,4395,3703" # 33(stranglethorn vale),440(tanaris) - -# PvP Restricted Areas (bots don't pvp) -AiPlayerbot.PvpProhibitedAreaIds = "976,35,392" - -# -# -# -#################################################################################################### - -#################################################################################################### -# INTERVALS -# -# - -AiPlayerbot.RandomBotUpdateInterval = 20 -AiPlayerbot.RandomBotCountChangeMinInterval = 1800 -AiPlayerbot.RandomBotCountChangeMaxInterval = 7200 -AiPlayerbot.MinRandomBotInWorldTime = 3600 -AiPlayerbot.MaxRandomBotInWorldTime = 43200 -AiPlayerbot.MinRandomBotRandomizeTime = 302400 -AiPlayerbot.MaxRandomBotRandomizeTime = 1209600 -AiPlayerbot.RandomBotsPerInterval = 500 -AiPlayerbot.MinRandomBotReviveTime = 60 -AiPlayerbot.MaxRandomBotReviveTime = 300 -AiPlayerbot.MinRandomBotTeleportInterval = 3600 -AiPlayerbot.MaxRandomBotTeleportInterval = 18000 -AiPlayerbot.RandomBotInWorldWithRotationDisabled = 31104000 - -# -# -# -#################################################################################################### - -#################################################################################################### -# DEFAULT TALENT SPEC +# # # @@ -1264,6 +1137,118 @@ AiPlayerbot.RandomClassSpecIndex.11.2 = 2 # ################################################################################################### + +################################### +# # +# PLAYERBOT SYSTEM SETTINGS # +# # +################################### + +#################################################################################################### +# DATABASE & CONNECTIONS +# +# + +# PlayerbotsDatabaseInfo +# Description: Database connection settings for the playerbots server. +# Example: "hostname;port;username;password;database" +# ".;somenumber;username;password;database" - (Use named pipes on Windows +# "enable-named-pipe" to [mysqld] +# section my.ini) +# ".;/path/to/unix_socket;username;password;database" - (use Unix sockets on +# Unix/Linux) +# Default: "127.0.0.1;3306;acore;acore;acore_playerbots" - (PlayerbotDatabaseInfo) + +PlayerbotsDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_playerbots" + +# +# PlayerbotsDatabase.WorkerThreads +# Description: The amount of worker threads spawned to handle asynchronous (delayed) MySQL +# statements. Each worker thread is mirrored with its own connection to the +# MySQL server and their own thread on the MySQL server. +# Default: 1 - (PlayerbotsDatabase.WorkerThreads) + +PlayerbotsDatabase.WorkerThreads = 1 + +# +# PlayerbotsDatabase.SynchThreads +# Description: The amount of MySQL connections spawned to handle. +# Default: 1 - (PlayerbotDatabase.WorkerThreads) + +PlayerbotsDatabase.SynchThreads = 1 + +# Playerbot.Updates.EnableDatabases +# Description: Determined if updates system work with playerbot database. +# +# Default: 1 - (Enabled) +# 0 - (Disabled) + +Playerbots.Updates.EnableDatabases = 1 + +# Command server port, 0 - disabled +AiPlayerbot.CommandServerPort = 8888 + +# Diff with/without player in server. The server will tune bot activity to reach the desired server tick speed (in ms).# PLAYERBOT SYSTEM SETTINGS # +AiPlayerbot.EnablePrototypePerformanceDiff = 0 +AiPlayerbot.DiffWithPlayer = 100 +AiPlayerbot.DiffEmpty = 200 + +# +# +# +#################################################################################################### + +#################################################################################################### +# DEBUG SWITCHES +# +# + +AiPlayerbot.SpellDump = 0 +AiPlayerbot.LogInGroupOnly = 1 +AiPlayerbot.LogValuesPerTick = 0 +AiPlayerbot.RandomChangeMultiplier = 1 + +# Enables/Disables performance monitor +AiPlayerbot.PerfMonEnabled = 0 + +# +# +# +#################################################################################################### + +#################################################################################################### +# CHAT SETTINGS +# +# + +# Prefix for bot chat commands (e.g. follow, stay) +AiPlayerbot.CommandPrefix = "" + +# Separator for bot chat commands +AiPlayerbot.CommandSeparator = "\\\\" + +# +# +# +#################################################################################################### + +#################################################################################################### +# LOGS +# +# + +# Custom config to allow logfiles to be created. +# Example: AiPlayerbot.AllowedLogFiles = travelNodes.csv,travelPaths.csv,TravelNodeStore.h,bot_movement.csv,bot_location.csv +AiPlayerbot.AllowedLogFiles = "" + +Appender.Playerbots=2,5,0,Playerbots.log,w +Logger.playerbots=5,Console Playerbots + +# +# +# +#################################################################################################### + ################################################################################################### ################################################################################################### ################################################################################################### @@ -1273,6 +1258,10 @@ AiPlayerbot.RandomClassSpecIndex.11.2 = 2 ############################################## # Deprecated (temporary) # ############################################## + +# Log on all random bots on start +AiPlayerbot.RandomBotLoginAtStartup = 1 + # Guild Task system AiPlayerbot.EnableGuildTasks = 0 diff --git a/src/PlayerbotMgr.cpp b/src/PlayerbotMgr.cpp index 1de95c56..665c7fdf 100644 --- a/src/PlayerbotMgr.cpp +++ b/src/PlayerbotMgr.cpp @@ -575,6 +575,13 @@ std::string const PlayerbotHolder::ProcessBotCommand(std::string const cmd, Obje return "ERROR: You can not use this command on non-summoned random bot."; } + if (!admin) { + Player* master = ObjectAccessor::FindConnectedPlayer(masterguid); + if (master && (master->IsInCombat() || bot->IsInCombat())) { + return "ERROR: You can not use this command during combat."; + } + } + if (GET_PLAYERBOT_AI(bot)) { if (Player* master = GET_PLAYERBOT_AI(bot)->GetMaster()) { diff --git a/src/strategy/actions/BattleGroundJoinAction.cpp b/src/strategy/actions/BattleGroundJoinAction.cpp index cfd552b4..c9c0c396 100644 --- a/src/strategy/actions/BattleGroundJoinAction.cpp +++ b/src/strategy/actions/BattleGroundJoinAction.cpp @@ -459,7 +459,7 @@ bool BGJoinAction::JoinQueue(uint32 type) // get BG MapId uint32 bgTypeId_ = bgTypeId; uint32 instanceId = 0; // 0 = First Available - bool joinAsGroup = bot->GetGroup() && bot->GetGroup()->GetLeaderGUID() == bot->GetGUID(); + bool isPremade = false; bool isArena = false; bool isRated = false; @@ -483,6 +483,11 @@ bool BGJoinAction::JoinQueue(uint32 type) return false; } + // refresh food/regs + sRandomPlayerbotMgr->Refresh(bot); + + bool joinAsGroup = bot->GetGroup() && bot->GetGroup()->GetLeaderGUID() == bot->GetGUID(); + // in wotlk only arena requires battlemaster guid ObjectGuid guid = isArena ? unit->GetGUID() : bot->GetGUID(); @@ -546,8 +551,6 @@ bool BGJoinAction::JoinQueue(uint32 type) bot->GetGUID().ToString().c_str(), bot->GetTeamId() == TEAM_ALLIANCE ? "A" : "H", bot->getLevel(), bot->GetName().c_str(), _bgType.c_str(), isRated ? "Rated Arena" : isArena ? "Arena" : ""); - // refresh food/regs - sRandomPlayerbotMgr->Refresh(bot); if (isArena) {