From d8d56d59c03b215cd17715a3e3a6eec11f61becd Mon Sep 17 00:00:00 2001 From: Dustin Hendrickson Date: Thu, 20 Feb 2025 18:11:29 -0800 Subject: [PATCH] Readme cleanup, code cleanup, added icon --- README.md | 18 +++--------------- data/.gitkeep | 0 data/sql/db-auth/base/.gitkeep | 0 data/sql/db-auth/updates/.gitkeep | 0 data/sql/db-characters/base/.gitkeep | 0 data/sql/db-characters/updates/.gitkeep | 0 data/sql/db-world/base/.gitkeep | 0 .../base/skeleton_module_acore_string.sql | 4 ---- data/sql/db-world/updates/.gitkeep | 0 icon.png | Bin 0 -> 6526 bytes include.sh | 0 11 files changed, 3 insertions(+), 19 deletions(-) delete mode 100644 data/.gitkeep delete mode 100644 data/sql/db-auth/base/.gitkeep delete mode 100644 data/sql/db-auth/updates/.gitkeep delete mode 100644 data/sql/db-characters/base/.gitkeep delete mode 100644 data/sql/db-characters/updates/.gitkeep delete mode 100644 data/sql/db-world/base/.gitkeep delete mode 100644 data/sql/db-world/base/skeleton_module_acore_string.sql delete mode 100644 data/sql/db-world/updates/.gitkeep create mode 100644 icon.png delete mode 100644 include.sh diff --git a/README.md b/README.md index 56cfc2d..4d4ef00 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,14 @@ # AzerothCore Module: Bot Level Brackets --------- Overview -------- -The Bot Level Brackets module for AzerothCore ensures an even spread of player bots across configurable level ranges (brackets). It periodically monitors bot levels and automatically adjusts them by transferring bots from overpopulated brackets to those with a deficit. During adjustments, bot levels are reset, equipped items are destroyed, trade skills are removed, quests are cleared, active auras are removed, pets are dismissed, and auto-maintenance actions are executed. Bots that are not immediately safe for level reset (for example, those in combat or engaged in other activities) are flagged for pending adjustment and processed later when they become safe. Additionally, Death Knight bots are safeguarded to never be assigned a level below 55. +The Bot Level Brackets module for AzerothCore ensures an even spread of player bots across configurable level ranges (brackets). It periodically monitors bot levels and automatically adjusts them by transferring bots from overpopulated brackets to those with a deficit. During adjustments, bots will be run through the normal Playerbots Randomize function, clearing and restoring them based on their new level. Bots that are not immediately safe for level reset (for example, those in combat or engaged in other activities) are flagged for pending adjustment and processed later when they become safe. Additionally, Death Knight bots are safeguarded to never be assigned a level below 55. Features -------- - **Configurable Level Brackets:** Define nine distinct level brackets with configurable lower and upper bounds: - - 1-9 - - 10-19 - - 20-29 - - 30-39 - - 40-49 - - 50-59 - - 60-69 - - 70-79 - - 80 + - 1-9 , 10-19 , 20-29 , 30-39 , 40-49 , 50-59 , 60-69 , 70-79 , 80 - **Faction-Specific Configuration:** Separate configurations for Alliance and Horde bots allow individual control over desired bot percentages within each bracket. @@ -31,9 +22,6 @@ Features - **Death Knight Level Safeguard:** Bots of the Death Knight class are enforced a minimum level of 55, ensuring they are only assigned to higher brackets. -- **Automated Maintenance Execution:** - After a level change, the module executes the AutoMaintenanceOnLevelupAction to properly reinitialize the bot’s state. - - **Support for Random Bots:** The module applies exclusively to bots managed by RandomPlayerbotMgr. @@ -130,7 +118,7 @@ To enable detailed debug logging, update the configuration file: BotLevelBrackets.DebugMode = 1 -This setting outputs logs detailing bot level adjustments, item destruction, pet removal, and the execution of auto-maintenance actions. +This setting outputs logs detailing bot level adjustments, percentages and distribution to the server console. License ------- diff --git a/data/.gitkeep b/data/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/data/sql/db-auth/base/.gitkeep b/data/sql/db-auth/base/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/data/sql/db-auth/updates/.gitkeep b/data/sql/db-auth/updates/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/data/sql/db-characters/base/.gitkeep b/data/sql/db-characters/base/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/data/sql/db-characters/updates/.gitkeep b/data/sql/db-characters/updates/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/data/sql/db-world/base/.gitkeep b/data/sql/db-world/base/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/data/sql/db-world/base/skeleton_module_acore_string.sql b/data/sql/db-world/base/skeleton_module_acore_string.sql deleted file mode 100644 index 4ac0cce..0000000 --- a/data/sql/db-world/base/skeleton_module_acore_string.sql +++ /dev/null @@ -1,4 +0,0 @@ -SET @ENTRY:=35410; -DELETE FROM `acore_string` WHERE `entry`=@ENTRY; -INSERT INTO `acore_string` (`entry`, `content_default`, `locale_koKR`, `locale_frFR`, `locale_deDE`, `locale_zhCN`, `locale_zhTW`, `locale_esES`, `locale_esMX`, `locale_ruRU`) VALUES -(@ENTRY, 'Hello World from Skeleton-Module!', '', '', '', '', '', '¡Hola Mundo desde Skeleton-Module!', '¡Hola Mundo desde Skeleton-Module!', ''); diff --git a/data/sql/db-world/updates/.gitkeep b/data/sql/db-world/updates/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..97f3499041d38ef7ad1b44ba64f02208a837cbff GIT binary patch literal 6526 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