Skip to content
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(Script/BlackTemple): teleport position with fatal attraction #19971

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

Grimdhex
Copy link
Contributor

@Grimdhex Grimdhex commented Sep 15, 2024

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

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:

  • This pull request can be tested by following the reproduction steps provided in the linked issue
  • This pull request requires further testing. Provide steps to test your changes. If it requires any specific setup e.g multiple players please specify it as well.
  1. Engage Mother Shahraz with more than 4 people.
  2. Wait for Fatal Attraction to be cast on 3 of them.

Known Issues and TODO List:

  • Need a proper sniff on live server, but can't be alone
  • [ ]

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 Script file-cpp Used to trigger the matrix build labels Sep 15, 2024
@Nyeriah
Copy link
Member

Nyeriah commented Sep 15, 2024

TC/Mangos research point to it being random and not static

@Grimdhex
Copy link
Contributor Author

With few videos, and a IG, the dist from the boss seems to not be always 48.0f. For the moment, I set a minimal value to 30.0f for tests but need to adjust with more research.

But the PR can be tested. (Even if I tested myself, another confirmation is the well done. I never done this boss).

@github-actions github-actions bot added the CORE Related to the core label Sep 22, 2024
@Grimdhex
Copy link
Contributor Author

I've not test the last commit, and I will not be able to test it before wednesday.


// Ensure that the destination is not too close to the caster.
// Add a check for LOS, to ensure to not be teleported under the map
while (!teleportDest.IsRadiusPositionValid(GetCaster(), teleportDest, 25.0f))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn’t use this while loop here. It could result in an infinite loop or have unpredictable time complexity.

I don’t know much about this spell, but I assume it’s used by a single boss. If that’s the case, have you considered creating some safe rectangle(s) or circle(s) at the boss's location and simply finding a random point within the shape using a given radius?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The boss can be tank in all the hall. So I can't create a specific area. I can also add a check to break the loop After a certain nomber of try. Otherwise I don't know how done this without "while loop" as we doesn't have specific waypoints.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why can't we use this rectangle area?
369687081-5805168a-ba72-477a-a194-8a9554b4b964-2
Or if looks not too good then maybe we can work with these 3 rectangles?
2

@Rorschach91
Copy link

I tested the pr. It doesn't fix the teleport issue.
It continue to teleport you beyond the doors, on the waterfall, and in other various places where players shouldn't be teleported.

I think that the original report author was right. It should be some type of black list where the boss is not able to teleport you.

Fatal Attraction Critical Areas

In addition, after watching some gamplay videos, I think that boss couldn't teleport the players too near to the walls.

An example of a safe area:
Fatal Attraction Safe Teleport Area

@Grimdhex
Copy link
Contributor Author

I know. That why I tried to instore a radius object check before to teleport. But I think that I need to debug the process.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CORE Related to the core file-cpp Used to trigger the matrix build Script Waiting to be Tested
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants