Skip to content

fix(DB/Creature): Remove extra Shaffar adds #22255

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

martin-leuner
Copy link

Nexus-Prince Shaffar in Mana Tombs spawns his three Ethereal Beacons via a script. Together with the pre-spawned ones, the fight incorrectly starts with six Beacons instead.
Remove the pre-spawned ones to fix this.

TrinityCore fixed this issue a while ago:
TrinityCore/TrinityCore#24325

Relates to AzerothCore issue #18895, but doesn't fix it completely (the damage numbers still seem way off).

Changes Proposed:

This PR proposes changes to:

  • Core (units, players, creatures, game systems).
  • Scripts (bosses, spell scripts, creature scripts).
  • Database (SAI, creatures, etc).

Issues Addressed:

SOURCE:

The changes have been validated through:

  • Live research (checked on live servers, e.g Classic WotLK, Retail, etc.)
  • Sniffs (remember to share them with the open source community!)
  • Video evidence, knowledge databases or other public sources (e.g forums, Wowhead, etc.)
  • The changes promoted by this pull request come partially or entirely from another project (cherry-pick). Cherry-picks must be committed using the proper --author tag in order to be accepted, thus crediting the original authors, unless otherwise unable to be found (Not a cherry-pick, but an adaptation of this TrinityCore change)

Tests Performed:

This PR has been:

  • Tested in-game by the author.
  • Tested in-game by other community members/someone else other than the author/has been live on production servers.
  • This pull request requires further testing and may have edge cases to be tested.

How to Test the Changes:

  1. Enter Mana Tombs,
  2. proceed to Nexus-Prince Shaffar,
  3. observe that only three Ethereal Beacons are present.

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.

@github-actions github-actions bot added the DB related to the SQL database label May 31, 2025
@Tereneckla
Copy link
Contributor

@heyitsbench The adds being spawns from script or from db is sniffable, right?

@heyitsbench
Copy link
Contributor

The adds being spawns from script or from db is sniffable, right?

You mean whether they're spawned on the fly or permanently placed? Should be easy to tell with the CreateObject value.

@Tereneckla
Copy link
Contributor

The adds being spawns from script or from db is sniffable, right?

You mean whether they're spawned on the fly or permanently placed? Should be easy to tell with the CreateObject value.

Yes

@heyitsbench
Copy link
Contributor

Yes

I misunderstood the question. I figured at a glance these adds were spawning during the fight, as in a spell cast by Shaffar or similar. CreateObject values distinguish between whether the creature was made visible to the client either because it was created while the client was able to see it spawn or the creature was made visible because the client walked into visibility distance of it or it was made visible from removing invisibility (or invisibility detection). Given that we do scripting differently from Blizz to begin with, I don't think there's a way to see if these adds are being created via an explicit script or DB, since I'm sure on Blizz's end, the two are treated synonymously by the time it gets to a player viewpoint.

I can confirm that the Beacon creatures do not have a summoner set in a 3.4.2 50664 nor a 2.5.4 43861 sniff.

@Tereneckla
Copy link
Contributor

Are the positions in the script correct then?
x - 8 and y - 8
x - 8 and y + 8
x + 8 and y

@heyitsbench
Copy link
Contributor

heyitsbench commented Jun 1, 2025

Are the positions in the script correct then?

Here's what I've got at a glance:

# Nexus-Prince Shaffar (18344)
X: -184.36566 Y: 9.333467 Z: 16.817427 O: 2.94960641860961914

# Ethereal Beacon (18341-1)
X: -188.19312 Y: 12.068183 Z: 16.739649 O: 4.493926048278808593

# Ethereal Beacon (18341-2)
X: -187.24693 Y: 3.9933996 Z: 16.756235 O: 5.954146385192871093

# Ethereal Beacon (18341-3)
X: -179.479 Y: 9.55053 Z: 16.709505 O: 3.073013544082641601

Might have discrepancy due to possible movement from the Beacons.

@Tereneckla
Copy link
Contributor

Looks about right then

Nexus-Prince Shaffar in Mana Tombs spawns his three Ethereal Beacons via
a script. Together with the pre-spawned ones, the fight incorrectly
starts with six Beacons instead.
Remove the pre-spawned ones to fix this.

TrinityCore fixed this issue a while ago:
TrinityCore/TrinityCore#24325

Relates to AzerothCore issue azerothcore#18895, but doesn't fix it completely.
@heyitsbench
Copy link
Contributor

X: -179.43318 Y: 9.069821 Z: 16.83524 O: 6.021385669708251953
X: -188.11577 Y: 13.010048 Z: 16.807915 O: 2.652900457382202148
X: -188.61919 Y: 5.124 Z: 16.841156 O: 2.932153224945068359

# Shaffar WP:
X: -185.16711 Y: 9.8029 Z: 17.06366
# Shaffar spawn point:
X: -184.36566 Y: 9.333467 Z: 16.817427 O: 2.94960641860961914

Got the spawn points from a 11.1.5 61122 sniff for the Ethereal Beacons. Given that Shaffar is not destroyed for his reset, I included both his spawn point as well as the last listed waypoint in his reset pathing packet.

IMO the DB spawn seems more correct, given that Shaffar does not cast a spell to create these particular Beacons as well as them not having any summoner or owner set in their object update.

@martin-leuner
Copy link
Author

Want me to do a fix in core rather than DB, then?

@heyitsbench
Copy link
Contributor

Want me to do a fix in core rather than DB, then?

I feel the summons should be removed from script and the DB spawns need to be respawned when Shaffar resets.

@martin-leuner
Copy link
Author

I feel the summons should be removed from script and the DB spawns need to be respawned when Shaffar resets.

Is it possible to do the respawning part with a DB entry? The linked_respawn table won't do the trick, is there a similar table that triggers on reset?

As a newcomer to the project, having the summons in the script rather than the DB feels pretty clean to me, considering Shaffar spawns additional adds throughout the fight anyway.

Still, if you prefer the DB spawns, I'll try to amend the PR accordingly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DB related to the SQL database
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants