azerothcore / azerothcore-wotlk

Complete Open Source and Modular solution for MMO
http://www.azerothcore.org
GNU Affero General Public License v3.0
6.41k stars 2.56k forks source link

Thunder Bluff - Alliance Graveyard is Ratchet #6499

Closed Azcobu closed 3 years ago

Azcobu commented 3 years ago

WHAT CLIENT DO YOU PLAY ON?

FACTION
CONTENT PHASE:
CURRENT BEHAVIOUR:

Original report: https://github.com/chromiecraft/chromiecraft/issues/954

Releasing spirit after dying in Thunderbluff on an Alliance character teleports the ghost to Ratchet.

Tester: confirmed. Interestingly, dying in Mulgore, just outside TB, ports you to the correct GY in Mulgore itself, SE of Bloodhoof.

WoWScrnShot_062221_220545

EXPECTED BLIZZLIKE BEHAVIOUR:

Probably should have Bloodhoof Village as the nearest graveyard.

"Horde characters dying in Thunder Bluff will also use this new graveyard. Alliance characters dying in Mulgore will continue to only use the graveyard at Bloodhoof Village." - patch 1.6 notes from https://us.forums.blizzard.com/en/wow/t/beta-graveyard-hopping/221094/3

SOURCE:
STEPS TO REPRODUCE THE PROBLEM:
  1. Be Alliance.
  2. Die near the Bluffwatcher's GUID 24699.
  3. Release.
  4. Notice you're in Ratchet.
EXTRA NOTES:

It's a long walk of shame.

Tester: As a tauren player: good.

AC HASH/COMMIT:

https://github.com/chromiecraft/azerothcore-wotlk/commit/34da0cda5195dede48cb0406b23248330d6249cb

OPERATING SYSTEM:

Ubuntu 20.04

MODULES:
OTHER CUSTOMIZATIONS:

None.

SERVER:

ChromieCraft

ghost commented 3 years ago

Graveyards are loaded from dbcs and if dbc objects are not meant to be changed, there must be a check missing somewhere

Azcobu commented 3 years ago

I think the correct method to fix this is to update the game_graveyard_zone table - see https://www.azerothcore.org/wiki/game_graveyard_zone

ghost commented 3 years ago

I tried doing this, but graveyards are loaded from DBC files and not from database. They have coords on files and the core calculates which graveyard is closer to the player in a straight line. Doesn't take into account stuff like mountains or blocked paths. There is a bug Equal to this that I believe you reported #5199 . We just have to implement a database graveyards loading for this or query the server to force the player into specific graveyards.

Helias commented 3 years ago

@claudiodfc I am not sure that the server take the data from the DBC in this case, I remember that I analyzed the WorldSafeLocs dbc file (where there are the graveyards coordinates) but the core does not load it, it uses directly the game_graveyard_zone table IIRC.

But yes, we should base on that file, probably we are missing a row or we have a malformed data

Azcobu commented 3 years ago

This seems to have been the problem. 1638 is the AreaTable.dbc ID for Thunder Bluff.

SELECT * FROM `graveyard_zone` WHERE GhostZone = 1638;
+-----+-----------+---------+---------------------------+
| ID  | GhostZone | Faction | Comment                   |
+-----+-----------+---------+---------------------------+
| 249 |      1638 |     469 | The Barrens, Ratchet      |
| 851 |      1638 |      67 | Mulgore, Thunder Bluff GY |
+-----+-----------+---------+---------------------------+
2 rows in set (0.00 sec)