From d5762b7e0fcbb81c1afd27c8df1584c14373aa39 Mon Sep 17 00:00:00 2001 From: Crow Date: Fri, 20 Mar 2026 14:41:47 -0500 Subject: [PATCH] Remove Vertical Speed Limit from Knockback Packet (#2223) ## Pull Request Description This PR removes the break from SMSG_MOVE_KNOCK_BACK for knockbacks with vertical speed of >35.0f. This break is the reason for many vertical knockbacks having no effect on bots, including Shade of Aran's Flame Wreath, High Astromancer Solarian's Wrath of the Astromancer, and Archimonde's Air Burst. There is a comment that indicates that the limit was originally added due to bots getting stuck from high-speed vertical knockbacks. I have not observed this at all and have been playing with this break removed for several months. ## Feature Evaluation - Describe the **minimum logic** required to achieve the intended behavior. - Describe the **processing cost** when this logic executes across many bots. I honestly cannot say if there is impact on processing cost because I have no understanding of packets. I would be surprised if there are any performance issues since knockback packets are ordinarily getting sent all the time, it's just a small number of moves that get skipped due to this break. ## How to Test the Changes 1. .go creature name High Astromancer Solarian 2. Start combat and wait until a bot gets hit with Wrath of the Astromancer 3. Wait for the aura to expire and watch the bot fly to Mars and fall back down ## Impact Assessment - Does this change increase per-bot/per-tick processing or risk scaling poorly with thousands of bots? - [ ] No, not at all - [x] Minimal impact (**explain below**) - [ ] Moderate impact (**explain below**) I do not know for sure, but as noted above, I would be surprised if there was any notable performance impact. - Does this change modify default bot behavior? - [x] No - [ ] Yes (**explain why**) - Does this change add new decision branches or increase maintenance complexity? - [x] No - [ ] Yes (**explain below**) ## Messages to Translate Does this change add bot messages to translate? - [x] No - [ ] Yes (**list messages in the table**) | Message key | Default message | | --------------- | ------------------ | | | | | | | ## AI Assistance Was AI assistance used while working on this change? - [x] No - [ ] Yes (**explain below**) ## Final Checklist - [x] Stability is not compromised. - [ ] Performance impact is understood, tested, and acceptable. <- I can't say for sure, but I've not had any issues. I would appreciate getting thoughts from somebody knowledgeable about packet use, however. - [x] Added logic complexity is justified and explained. - [x] Documentation updated if needed (Conf comments, WiKi commands). ## Notes for Reviewers --------- Co-authored-by: Keleborn <22352763+Celandriel@users.noreply.github.com> Co-authored-by: bash Co-authored-by: Revision Co-authored-by: kadeshar --- src/Bot/PlayerbotAI.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/Bot/PlayerbotAI.cpp b/src/Bot/PlayerbotAI.cpp index 800247c6f..36631cead 100644 --- a/src/Bot/PlayerbotAI.cpp +++ b/src/Bot/PlayerbotAI.cpp @@ -1250,17 +1250,10 @@ void PlayerbotAI::HandleBotOutgoingPacket(WorldPacket const& packet) p >> guid.ReadAsPacked() >> counter >> vcos >> vsin >> horizontalSpeed >> verticalSpeed; if (horizontalSpeed <= 0.1f) - { horizontalSpeed = 0.11f; - } verticalSpeed = -verticalSpeed; - // high vertical may result in stuck as bot can not handle gravity - if (verticalSpeed > 35.0f) - break; - // stop casting - InterruptSpell(); - // stop movement + InterruptSpell(); bot->StopMoving(); bot->GetMotionMaster()->Clear();