Files
ThordekkCore/sql/playerbot/12_guild_tasks.sql
T
agathoandClaude Opus 4.6 0f0875fe6e feat(playerbot): Add 14 new systems - combat intelligence, RPG simulation, utilities
Implement complete feature batch from mod-playerbots analysis plan:

CRITICAL (4):
- TTK Estimator: Skip long casts on dying targets (rolling 5s DPS window)
- Healing Mana Tiers: 5-tier efficiency gating for 7 healer specs
- Spell Fallback Chains: Try alternatives when primary spell unavailable
- RPG World Simulation: Personality-driven daily routines for idle bots

HIGH (4):
- ClassSpellDatabase: Static shared spell data for all 13 classes
- Population PID Controller: Smooth bot spawning with Kp/Ki/Kd tuning
- Enchant/Gem Templates: Auto-enchant and gem equipment by spec
- Chat/Emote Templates: DB-driven contextual bot chat with locale support

MEDIUM (4):
- ServerLoadMonitor: Scale reaction delays under server load
- DirtyValue<T>: Lazy evaluation template for expensive computations
- Guild Task System: Auto-generated guild tasks with bot assignment
- Packet Handler Cleanup: Remove deprecated opcode-based stubs

LOW (2):
- Account Linking: Permission-based bot account sharing
- BotCheatMask: Debug cheat system with 15 flags and multipliers

Includes SQL schemas, subsystem registrations, and user documentation.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: luis <[email protected]>
2026-02-10 21:39:23 -03:00

76 lines
7.0 KiB
SQL

-- ============================================================================
-- Guild Task Templates for Playerbot GuildTaskManager
-- ============================================================================
DROP TABLE IF EXISTS `playerbot_guild_task_templates`;
CREATE TABLE `playerbot_guild_task_templates` (
`template_id` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
`task_type` TINYINT UNSIGNED NOT NULL COMMENT '0=KILL,1=GATHER,2=CRAFT,3=FISH,4=MINE,5=HERB,6=SKIN,7=DUNGEON,8=DELIVER,9=SCOUT',
`difficulty` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '0=EASY,1=NORMAL,2=HARD,3=ELITE',
`title_format` VARCHAR(128) NOT NULL DEFAULT '',
`description_format` VARCHAR(512) NOT NULL DEFAULT '',
`target_entry` MEDIUMINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Creature/item/node entry (0=any)',
`min_count` SMALLINT UNSIGNED NOT NULL DEFAULT 1,
`max_count` SMALLINT UNSIGNED NOT NULL DEFAULT 10,
`required_level` TINYINT UNSIGNED NOT NULL DEFAULT 1,
`required_skill` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Profession skill ID (0=none)',
`required_skill_value` SMALLINT UNSIGNED NOT NULL DEFAULT 0,
`zone_id` MEDIUMINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Target zone (0=any)',
`base_gold_reward` MEDIUMINT UNSIGNED NOT NULL DEFAULT 200 COMMENT 'Per-unit gold reward in copper',
`base_rep_reward` SMALLINT UNSIGNED NOT NULL DEFAULT 3 COMMENT 'Per-unit reputation reward',
`duration_hours` SMALLINT UNSIGNED NOT NULL DEFAULT 24 COMMENT 'Task lifetime in hours',
`weight` FLOAT NOT NULL DEFAULT 1.0 COMMENT 'Selection weight for random generation',
PRIMARY KEY (`template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Playerbot guild task generation templates';
-- ============================================================================
-- Default Task Templates
-- ============================================================================
-- KILL tasks (type=0) - any class
INSERT INTO `playerbot_guild_task_templates` (`task_type`, `difficulty`, `title_format`, `description_format`, `min_count`, `max_count`, `required_level`, `base_gold_reward`, `base_rep_reward`, `duration_hours`, `weight`) VALUES
(0, 0, 'Pest Control', 'Eliminate hostile creatures near guild territory.', 5, 15, 10, 200, 3, 24, 2.0),
(0, 1, 'Bounty Hunt', 'Track and eliminate dangerous creatures.', 10, 30, 30, 500, 5, 24, 1.5),
(0, 2, 'Elite Extermination', 'Slay elite creatures threatening our lands.', 3, 8, 60, 1000, 10, 48, 0.8);
-- GATHER tasks (type=1)
INSERT INTO `playerbot_guild_task_templates` (`task_type`, `difficulty`, `title_format`, `description_format`, `min_count`, `max_count`, `required_level`, `base_gold_reward`, `base_rep_reward`, `duration_hours`, `weight`) VALUES
(1, 0, 'Supply Run', 'Gather general supplies for the guild.', 5, 20, 5, 150, 2, 24, 1.5);
-- FISH tasks (type=3) - requires fishing skill (356)
INSERT INTO `playerbot_guild_task_templates` (`task_type`, `difficulty`, `title_format`, `description_format`, `min_count`, `max_count`, `required_level`, `required_skill`, `required_skill_value`, `base_gold_reward`, `base_rep_reward`, `duration_hours`, `weight`) VALUES
(3, 0, 'Gone Fishing', 'Catch fish for the guild feast.', 5, 15, 10, 356, 1, 200, 3, 24, 1.0),
(3, 1, 'Deep Sea Fishing', 'Catch rare fish from challenging waters.', 10, 25, 40, 356, 200, 500, 5, 48, 0.7);
-- MINE tasks (type=4) - requires mining skill (186)
INSERT INTO `playerbot_guild_task_templates` (`task_type`, `difficulty`, `title_format`, `description_format`, `min_count`, `max_count`, `required_level`, `required_skill`, `required_skill_value`, `base_gold_reward`, `base_rep_reward`, `duration_hours`, `weight`) VALUES
(4, 0, 'Ore Collection', 'Mine ore for guild crafters.', 5, 15, 10, 186, 1, 200, 3, 24, 1.0),
(4, 1, 'Deep Mining Expedition', 'Mine rare minerals from deep veins.', 10, 20, 40, 186, 200, 500, 5, 48, 0.7);
-- HERB tasks (type=5) - requires herbalism skill (182)
INSERT INTO `playerbot_guild_task_templates` (`task_type`, `difficulty`, `title_format`, `description_format`, `min_count`, `max_count`, `required_level`, `required_skill`, `required_skill_value`, `base_gold_reward`, `base_rep_reward`, `duration_hours`, `weight`) VALUES
(5, 0, 'Herb Gathering', 'Pick herbs for the guild alchemist.', 5, 15, 10, 182, 1, 200, 3, 24, 1.0),
(5, 1, 'Rare Herb Expedition', 'Gather rare herbs from dangerous areas.', 10, 20, 40, 182, 200, 500, 5, 48, 0.7);
-- SKIN tasks (type=6) - requires skinning skill (393)
INSERT INTO `playerbot_guild_task_templates` (`task_type`, `difficulty`, `title_format`, `description_format`, `min_count`, `max_count`, `required_level`, `required_skill`, `required_skill_value`, `base_gold_reward`, `base_rep_reward`, `duration_hours`, `weight`) VALUES
(6, 0, 'Leather Procurement', 'Skin creatures for guild leatherworkers.', 5, 15, 10, 393, 1, 200, 3, 24, 0.8);
-- CRAFT tasks (type=2)
INSERT INTO `playerbot_guild_task_templates` (`task_type`, `difficulty`, `title_format`, `description_format`, `min_count`, `max_count`, `required_level`, `base_gold_reward`, `base_rep_reward`, `duration_hours`, `weight`) VALUES
(2, 1, 'Crafting Commission', 'Craft items for the guild.', 3, 8, 30, 500, 5, 48, 0.6);
-- DUNGEON tasks (type=7)
INSERT INTO `playerbot_guild_task_templates` (`task_type`, `difficulty`, `title_format`, `description_format`, `min_count`, `max_count`, `required_level`, `base_gold_reward`, `base_rep_reward`, `duration_hours`, `weight`) VALUES
(7, 2, 'Dungeon Expedition', 'Clear a dungeon for guild prestige.', 1, 1, 15, 2000, 15, 72, 0.5),
(7, 3, 'Heroic Dungeon Challenge','Complete a heroic dungeon run.', 1, 1, 70, 5000, 30, 72, 0.3);
-- DELIVER tasks (type=8)
INSERT INTO `playerbot_guild_task_templates` (`task_type`, `difficulty`, `title_format`, `description_format`, `min_count`, `max_count`, `required_level`, `base_gold_reward`, `base_rep_reward`, `duration_hours`, `weight`) VALUES
(8, 0, 'Guild Bank Deposit', 'Deposit gold into the guild bank.', 1, 1, 10, 0, 5, 24, 1.2);
-- SCOUT tasks (type=9)
INSERT INTO `playerbot_guild_task_templates` (`task_type`, `difficulty`, `title_format`, `description_format`, `min_count`, `max_count`, `required_level`, `base_gold_reward`, `base_rep_reward`, `duration_hours`, `weight`) VALUES
(9, 0, 'Zone Patrol', 'Explore and patrol a zone.', 1, 1, 10, 300, 3, 24, 0.8),
(9, 1, 'Contested Territory Scout','Scout enemy-controlled zones.', 1, 1, 40, 600, 5, 48, 0.5);