-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
fix(CORE/Spells): Add spell range correction for 43458 and 43468 #20294
base: master
Are you sure you want to change the base?
Conversation
Both the quests The Echo of Ymiron and Anguish of Nifflevar have spells that are meant to be cast for credit at the end of the dialogues. Because their range is set to 0 in Spell.dbc, this does not happen unless you stand on top of the npcs that give credit. This fix adds appropriate ranges to each spell. Closes AzerothCore issue azerothcore#19776 Closes AzerothCore issue azerothcore#18874
Sometimes the spells are meant to be cast by the player upon itself and not the creature, so this could use some validation if possible |
Ah, so potentially the scripting is wrong here then? How can this be validated? |
That’s a possibility. It can be validated with sniffs |
Packet sniffs from official servers is usually a surefire way. Currently checking the sniffs I've got from Wrath Classic for this. |
43458 is cast by 24315, 43468 is cast by 24321, the latter of which did hit the player with a distance of |
Well the scripting is only slightly off since currently 43458 is cast by the ancient male vrykul instead of the female. I don't see that being a huge issue. As far as the spell effects go, Spell.dbc says the effect is 16 - QUEST_COMPLETE and the target a source is TARGET_SRC_CASTER and target b is meant to be TARGET_UNIT_SRC_AREA_ENTRY with a radius of 30 yards. I don't see any real use of TARGET_UNIT_SRC_AREA_ENTRY in SmartAI, it appears to be used some in core scripting though. |
For all I can tell, the creature that casts the spell could be either male or female between server restarts, not a big deal at all.
If I'm correct, the issue is entirely in the core handling of the QUEST_COMPLETE effect, and not one that can be solved with SmartAI nor should it be solved with SpellInfoCorrections. |
TARGET_UNIT_SRC_AREA_ENTRY require conditions to work, so it targets the creature entry provided (not sure how related that is to this issue ) |
I just ran another test of the quest and if you cast 43458 on the ancient vrykul male/female it triggers the quest completion and removes you from the spirit world, which seems like the correct behavior. So likely the fix is just to change the scripting to have the ancient vrykul male cast the spell on himself rather than on the action invoker as it currently is. |
Or not. Check my comment above. It needs conditions to hit the correct target. |
The sniff does show the spells being cast on the caster, so either way IMO the SmartAI should be adjusted to reflect that, even if that's not the solution for this issue. |
It turns out that only quest 11343 had the action target type set to action invoker instead of self. The other quest associated with this issue had the target type set to self. I tested this change in the smartai and the quest appears to be working correctly now. The other issue about the Anguish of Nifflevar not working can likely be chalked up to the player not being within the 30 yard range of Ymiron and not realizing that. I see plenty of references to that in the comments for the quest on wowhead, so it was clearly meant to be that way in wotlk. Either way, it worked for me as long as I was within range. |
Both the quests The Echo of Ymiron and Anguish of Nifflevar have spells that are meant to be cast for credit at the end of the dialogues. Because their range is set to 0 in Spell.dbc, this does not happen unless you stand on top of the npcs that give credit. This fix adds appropriate ranges to each spell.
Closes AzerothCore issue #19776
Closes AzerothCore issue #18874
Changes Proposed:
This PR proposes changes to:
Issues Addressed:
SOURCE:
The changes have been validated through:
Tests Performed:
This PR has been:
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.