-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
fix(Core/SmartScript): Change AREA_CASTING to align with VICTIM_CASTING on timer recalculation #24563
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR aims to fix an issue where NPCs overuse CC (crowd control) abilities by changing the timer recalculation behavior in the AREA_CASTING event. The change replaces a hardcoded 1200ms timer with the event's configured min/max repeat values to allow for more flexible and appropriate timing.
Changes:
- Modified AREA_CASTING event handler to use event-configured repeat timers instead of hardcoded 1200ms values when no valid casting targets are found
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Without the PR Test one: 2 Bandits hit a level 10 Paladin who is casting Holy Light on himself. I counted how many times the Paladin got kicked (this is not the interrupt kick, this is the kick that makes your character fall on his back) in 1 minute and repeated the test 10 times. In the lowest scenario, the Paladin gets kicked 8 times. In the highest scenario, gets kicked 16 times. On average the Paladin gets kicked 11,2 times in a minute. With the PR Also NPC 12380 with the PR still interrupts an abnormal amount of times in a minute reaching 7 and even 8 interrupts in a minute. |
|
@UncomaFAI1351 Thank you for putting in the effort of testing it! At this point, it's a creature-per-creature basis, needing either a higher repeat timer or a lower chance. It's easy enough to do either. I've pushed another change for the creatures you mentioned. |
|
I just tested it. Now the interrupts/CC went from "unfair" to acceptable. 2 or 3 CCs at most per minute which falls under the impression I had of "Blizzlike" CC. NPC 12380 which was the biggest offender went from 7-8 interrupts per minute to 2-3 which is acceptable. Shadowforge Ruffian interrupts 2-3 per minute too. |
|
@UncomaFAI1351 You know what? I think I'll just do a change accross the board to make things more bearable, because it'd take forever to investigate one by one, and it'd just leave a lot of frustrating creatures to deal with while that happens. |
Changes Proposed:
This PR proposes changes to:
Events were re-queued on failure, so you have a lot of spam.
AI-assisted Pull Requests
Important
While the use of AI tools when preparing pull requests is not prohibited, contributors must clearly disclose when such tools have been used and specify the model involved.
Contributors are also expected to fully understand the changes they are submitting and must be able to explain and justify those changes when requested by maintainers.
Issues Addressed:
SOURCE:
The changes have been validated through:
Tests Performed:
This PR has been:
No testing necessary
How to Test the Changes:
Known Issues and TODO List:
How to Test AzerothCore PRs
When a PR is ready to be tested, it will be marked as [WAITING TO BE TESTED].
You can help by testing PRs and writing your feedback here on the PR's page on GitHub. Follow the instructions here:
http://www.azerothcore.org/wiki/How-to-test-a-PR
REMEMBER: when testing a PR that changes something generic (i.e. a part of code that handles more than one specific thing), the tester should not only check that the PR does its job (e.g. fixing spell XXX) but especially check that the PR does not cause any regression (i.e. introducing new bugs).
For example: if a PR fixes spell X by changing a part of code that handles spells X, Y, and Z, we should not only test X, but we should test Y and Z as well.