mirror of
https://github.com/mod-playerbots/mod-playerbots
synced 2025-11-29 15:58:20 +08:00
Hunter Pet Chat Command (#1448)
Hello everyone, I was working with hunter bots and I feel like I didn't have enough control over their pets. So I started working on a chat command for the hunter pets, and it's been a blast. Below is a description of what the commands do: pet name <name> Summons a tameable pet by its creature name (case-insensitive). The bot checks if the pet is exotic and requires the Beast Mastery talent if so. If successful, the bot announces the pet's new name and creature ID. If not found or not tameable, an error message is given. pet id <id> Summons a tameable pet by its database creature ID. The same exotic pet checks apply. Success is announced with the pet's name and ID. Errors are given for invalid IDs or untameable pets. pet family <family> Randomly selects and summons a tameable pet from the specified family (e.g., "cat", "wolf"). Only families with tameable pets are considered. Exotic pet checks and talent requirements apply. Success is announced with the pet's name and ID. Errors are given if no suitable pet is found. pet rename <new name> Renames the hunter's current summoned pet to a new name. The name must be 1-12 alphabetic characters (A-Z, a-z) and is automatically formatted (first letter capitalized, rest lowercased). Forbidden or reserved names are disallowed. After renaming, the bot sets the new name, saves the pet, and updates the client. The bot dismisses and attempts to recall the pet using "Call Pet" (if the hunter knows it) to update the UI. If the new name isn't visible immediately, the bot instructs the player to dismiss and recall the pet manually. Confirmation and guidance messages are provided. Additional Details: All commands display errors if requirements are not met (wrong name/id/family, forbidden name, lack of Beast Mastery, or hunter below level 10). After changing or summoning a pet (except renaming), the bot initializes the pet and its talents, then announces the result. TLDR: pet name <name> Summon a tameable pet by name pet id <id> Summon a tameable pet by database creature ID pet family <family> Randomly summon a tameable pet of the given family pet rename <new name> Rename the current pet and refresh its name in the client UI Description of files changed: src\strategy\actions\ChatActionContext.h: Added the "pet" action for the whisper command. src\strategy\actions\PetAction.cpp: New chat actions for all things related to hunter pets. src\strategy\actions\PetAction.h: New header for the PetAction.cpp. src\strategy\generic\ChatCommandHandlerStrategy.cpp: Linked the trigger and action in the chatcommandhandlerstrategy, for the bot to take action when whispered "pet" (trigger). src\strategy\triggers\ChatTriggerContext.h: Added the "pet" trigger.
This commit is contained in:
@@ -133,6 +133,7 @@ public:
|
||||
creators["calc"] = &ChatTriggerContext::calc;
|
||||
creators["qi"] = &ChatTriggerContext::qi;
|
||||
creators["wipe"] = &ChatTriggerContext::wipe;
|
||||
creators["pet"] = &ChatTriggerContext::pet;
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -245,6 +246,7 @@ private:
|
||||
static Trigger* calc(PlayerbotAI* ai) { return new ChatCommandTrigger(ai, "calc"); }
|
||||
static Trigger* qi(PlayerbotAI* botAI) { return new ChatCommandTrigger(botAI, "qi"); }
|
||||
static Trigger* wipe(PlayerbotAI* botAI) { return new ChatCommandTrigger(botAI, "wipe"); }
|
||||
static Trigger* pet(PlayerbotAI* botAI) { return new ChatCommandTrigger(botAI, "pet"); }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user