FeenixServerProject / Wrath_3.3.5_Issue_tracker

The official issue tracker for Wrath 3.3.5
4 stars 4 forks source link

[3.3.5] Core: Ulduar Siege Vehicle Seat Hack Fix #200

Closed HelloKitty closed 7 years ago

HelloKitty commented 7 years ago

Description:

Vehicles on Trinitycore don't fully work, I guess. Entering vehicles with accessories doesn't always work. This is a known issue on Trinitycore and xinef1 suggests a fix for this.

Current behaviour:

When entering Ulduar vehicle 33060 that already has a player inside it tries to put you into the same vehicle which has a default seat, for the driver, and a seat ID 7 which is occupied by the turret gun. Entering the seige when the driver seat is occupied results in a bug.

Expected behaviour:

Ulduar vehicle 33060 should be putting you in accessory vehicle 33067 which is the vehicle entry for the turret.

Solution:

Well, you can go the long route and generally solve this problem. Which is still an open problem on Trinitycore supposedly. Or you can use this hack fix I wrote here; https://github.com/HelloKitty/TrinityCore/commit/76c5f3d12ee04cde9542375e76cfce2580a2746f

This adds a manual check for entering a siege engine when the driver seat is full and force casts the entry spell to enter the turret instead.

This is what it results in: https://i.gyazo.com/13e0fbed713a4e61067f979afb0f30d9.gif

Not exactly a pretty fix, as you can see by the code, but what matters most is that Ulduar works properly since it's the current raiding tier imo.

Feel free to cherry pick it. The bug made me very angry because it made me look bad during my first Ulduar 25man run because I got stuck in a siege so I just had to "fix" it =).

HelloKitty commented 7 years ago

There was a bug allowing players to kick people out of the gunner seat with that hack fix. This commit fixes that issue: https://github.com/HelloKitty/TrinityCore/commit/6f15efce0e8742343e9caf67c9ee8f08a8faf5f4

It adds a check to make sure nobody is in the turret. If you don't then players interacting with the siege can eject the players from the turret.

HelloKitty commented 7 years ago

Bug caused by trying to prevent ejections. Just revert: https://github.com/HelloKitty/TrinityCore/commit/6f15efce0e8742343e9caf67c9ee8f08a8faf5f4 and you'll end up with a working siege engine but players can kick eachother out of the turret. I was encountering issues with being unable to enter a vehicle if you attempted to enter a full one. Even after an opening became available. Some debugging showed that for some reason it didn't see the turret as empty for one character but did for another. Or the NpcClick wasn't registering but I didn't debug deep enough to know. Solving this issue is probably possible but yields very little benefit for the time cost.

The hack fix as-is is good enough, from my limited testing, to solve the main issue raiders using siege engine face.

Zerixx commented 7 years ago

@HelloKitty marvelous. Thank you 1000000 times.

HelloKitty commented 7 years ago

@Zerixx No problem ^,^ I just hope it doesn't cause unforeseen issues. It's rather dirty, the health of the turret and siege appear to be handled separately but I don't know if that is caused by this fix. Might have been like that before but I didn't check.