Description:
When performing the quest "Fires Over Skettis" (ID 11008), player mount (mount aura) disappears when the quest item "Skyguard Blasting Charges" lands and detonates on the Kaliri Egg platforms.
Current behaviour:
Player stays levitating and the mount action button is still active, only the mount and the mount aura is removed. If your character is a hunter or other class with an active combat pet, this event becomes even more interesting, because the pet drops down to the ground or into the lake and is likely to aggro nearby hostile mobs... .gm fly off will cancel the levitation and drop your character to the ground or into the lake.
Expected behaviour:
Player should stay mounted even when using the Skyguard Blasting Charges to avoid attacks from the hostile Kaliris patrolling the nearby airspace.
Extra exploit: Also note that in addition to the above, the quest item can be thrown much further than the apparently allowed distance, so even if there is a 馃毇 sign meaning that the targeted AoE spot should be out of range, it is still possible to throw, detonate and get quest credit for any eggs you hit and destroy.
Steps to reproduce the problem:
.tele Shattrath).tele SkethylMountains).quest add 11008).cast 39844 will not target the platform or eggs, it only detonates around the player without removing the mount)Branch(es): 3.3.5 (not tested on master)
TC rev. hash/commit:
TC>server debug
TrinityCore rev. b274c4b5c346 2018-03-28 04:15:09 +0200 (3.3.5 branch) (Win64, Release, Static)
Using SSL version: OpenSSL 1.0.2n 7 Dec 2017 (library: OpenSSL 1.0.2n 7 Dec 2017)
Using Boost version: 1.65.1
Using MySQL version: 5.6.38
Using CMake version: 3.10.1
Compiled on: Windows 10.0.16299
Automatic database updates are enabled for the following databases: Auth, Characters, World
Worldserver listening connections on port 8085
Realmlist (Realm Id: 1) configured in port 8085
VMAPs status: Enabled. LineOfSight: 1, getHeight: 1, indoorCheck: 1
MMAPs status: Enabled
maps directory located in ./maps. Total size: 252191207 bytes
vmaps directory located in ./vmaps. Total size: 588247501 bytes
mmaps directory located in ./mmaps. Total size: 2152621724 bytes
Using enUS DBC Locale as default. All available DBC locales: enUS
Using World DB: TDB 335.64
Operating system: Windows 10.0.16299
It removes the visual mount only if the spell hits the eggs, cannot find any thing wrong on DB side.
To properly dismount the player and avoid the visual bug, this line: https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/game/Entities/GameObject/GameObject.cpp#L1398 playerUser->Dismount();
needs to be changed to:
playerUser->RemoveAurasByType(SPELL_AURA_MOUNTED);
This needs to be done anyway, but won't change the fact that in the specific case of this quest, the player shouldn't be dismounted at all.
Any ideas? Use a SpellScript to prevent default SPELL_EFFECT_ACTIVATE_OBJECT and manually despawn the GameObject could be a solution..
Good point, it is correct to be dismounted when looting a chest or using an interactive GO from a ground-based mount (or landed flying mount), but this quest was clearly meant to be doable without being dismounted and while staying in the air on the flying mount.
If is a exception, i dont see any problem sirikfoll.
Maybe it could be added to the Attributes: 0x01000000 (SPELL_ATTR0_CASTABLE_WHILE_MOUNTED) to prevent the dismount event if the effect is SPELL_EFFECT_ACTIVATE_OBJECT
The issue is no longer valid since Activate Object behavior was changed. Now Activate Object here triggers Animate Custom 0 and player does not dismount.
However Animate Custom 0 here looks weirdly because in videos those eggs just cracks and despawn after spell hit and in TC Animate Custom 0 does not crack them. Maybe it should be done manually in script.
58395b6ac424485da95b65a876d14d97ddeec935
Most helpful comment
Maybe it could be added to the Attributes: 0x01000000 (SPELL_ATTR0_CASTABLE_WHILE_MOUNTED) to prevent the dismount event if the effect is SPELL_EFFECT_ACTIVATE_OBJECT