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(SQL/SAI): Erratic Sentry Spells #20619

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

Conversation

IntelligentQuantum
Copy link
Member

@IntelligentQuantum IntelligentQuantum commented Nov 18, 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. [Quel'Danas Isle] Erratic Sentry multiple issues. #20349

Known Issues and TODO List:

  • [ ]
  • [ ]

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 Nov 18, 2024
@Rorschach91
Copy link
Member

Rorschach91 commented Nov 19, 2024

I don't think that this PR should close the report. It is an update, because doesn't resolve this part:

During the quest Further Conversation if players use Attuned Crystal Cores on a defeated Erratic Sentry, they follow the player for a while, before disappearing.

@Rorschach91
Copy link
Member

I've tested your PR and I've some things to say:
Capacitator Overload should be probably casted every 60-90 seconds.
You don't need to add Self Repair to smartai because Overload automatically trigger Self Repair.
Remove DONT_RESET Flag from the spells, because this flag causes problems (the sentry doesn't use them).

Notes: I've the sensation that Capacitator Overload doesn't work on AC. It causes low damage and insta-cast self-repair.
Unfortunally the spells cannot be fixed via Keira3.

Source: Video

@elthehablo
Copy link
Contributor

Need to overwrite the script prob

@Rorschach91
Copy link
Member

I Dont Know

I don't know too xD.
Probably there is some script that manage that part. Maybe zone_isle_of_queldanas.cpp must be cleaned.

This is your previous script with flags removed and comments updated.

UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 24972;

DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 24972);
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(24972, 0, 0, 0, 1, 0, 100, 512, 60000, 90000, 60000, 90000, 0, 0, 11, 45014, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Erratic Sentry - Out of Combat - Cast \'Capacitor Overload\''),
(24972, 0, 1, 0, 0, 0, 100, 0, 3000, 7000, 3000, 7000, 0, 0, 11, 33688, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Erratic Sentry - In Combat - Cast \'Crystal Strike\''),
(24972, 0, 2, 0, 0, 0, 100, 0, 8000, 15000, 8000, 15000, 0, 0, 11, 45336, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Erratic Sentry - In Combat - Cast \'Electrical Overload\''),
(24972, 0, 3, 0, 0, 0, 100, 0, 12000, 20000, 12000, 20000, 0, 0, 11, 35892, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Erratic Sentry - In Combat - Cast \'Suppression\''),
(24972, 0, 4, 0, 8, 0, 100, 512, 44997, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Erratic Sentry - On Spellhit \'Converting Sentry\' - Despawn Instant');

@Rorschach91
Copy link
Member

Look here, if you want to know how it works during the quest (from minute 5:20)

@IntelligentQuantum
Copy link
Member Author

Look here, if you want to know how it works during the quest (from minute 5:20)

So it shouldn't follow player

@Rorschach91
Copy link
Member

Rorschach91 commented Nov 20, 2024

Look here, if you want to know how it works during the quest (from minute 5:20)

So it shouldn't follow player

No, it shouldn't. If you look the report well, you'll notice that it is in Current Behaviour, not in Expected Blizzlike Behaviour (Current Behaviour is how currenly work on AC, Expecter Blizzlike Behaviour is how it should work).

Quote from the report (Expected Blizzlike Behaviour).

When player use Crystal Cores the Sentry stay in place quoting "Core overload detected. System malfunction detected..." before disappearing after a few seconds.

@IntelligentQuantum
Copy link
Member Author

Look here, if you want to know how it works during the quest (from minute 5:20)

So it shouldn't follow player

No, it shouldn't. If you look the report well, you'll notice that it is in Current Behaviour, not in Expected Blizzlike Behaviour (Current Behaviour is how currenly work on AC, Expecter Blizzlike Behaviour is how it should work).

Quote from the report (Expected Blizzlike Behaviour).

When player use Crystal Cores the Sentry stay in place quoting "Core overload detected. System malfunction detected..." before disappearing after a few seconds.

Okay so let's go learn how I can add text 😄 I forgot everything

@Rorschach91
Copy link
Member

Rorschach91 commented Nov 21, 2024

I've committed a mistake on my report.

Erratic Sentry should say "Core overload detected. System malfunction detected..." when he use Electrical Overload ability and not when Converted Sentry spawn.

Evidence:
evidence

When Converted Sentry spawn it should say two random phrases that are already scripted in smartai but they doesn't work.

evidence 2

I just fixed these two issues. These are my full-queries:

-- Erratic Sentry

UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 24972;

DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 24972);
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(24972, 0, 0, 0, 1, 0, 100, 512, 60000, 90000, 60000, 90000, 0, 0, 11, 45014, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Erratic Sentry - Out of Combat - Cast \'Capacitor Overload\''),
(24972, 0, 1, 0, 0, 0, 100, 0, 3000, 7000, 3000, 7000, 0, 0, 11, 33688, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Erratic Sentry - In Combat - Cast \'Crystal Strike\''),
(24972, 0, 2, 5, 0, 0, 100, 0, 8000, 15000, 8000, 15000, 0, 0, 11, 45336, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Erratic Sentry - In Combat - Cast \'Electrical Overload\''),
(24972, 0, 3, 0, 0, 0, 100, 0, 12000, 20000, 12000, 20000, 0, 0, 11, 35892, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Erratic Sentry - In Combat - Cast \'Suppression\''),
(24972, 0, 4, 0, 8, 0, 100, 512, 44997, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Erratic Sentry - On Spellhit \'Converting Sentry\' - Despawn Instant'),
(24972, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Erratic Sentry - In Combat - Say Line 0');


-- Converted Sentry

UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 24981;

DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 24981);
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(24981, 0, 0, 1, 54, 0, 100, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Converted Sentry - On Just Summoned - Say Line 0 (No Repeat)'),
(24981, 0, 1, 2, 61, 0, 100, 1, 0, 0, 0, 0, 0, 0, 11, 45009, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 'Converted Sentry - On Just Summoned - Cast \'Converted Sentry Credit\' (No Repeat)'),
(24981, 0, 2, 3, 61, 0, 100, 1, 0, 0, 0, 0, 0, 0, 89, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Converted Sentry - On Just Summoned - Start Random Movement (No Repeat)'),
(24981, 0, 3, 0, 61, 0, 100, 513, 0, 0, 0, 0, 0, 0, 41, 7500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Converted Sentry - On Just Summoned - Despawn In 7500 ms (No Repeat)');

Converted Sentry continue to follow the player anyway and it shouldn't do it.

@Rorschach91
Copy link
Member

Rorschach91 commented Nov 21, 2024

Need to overwrite the script prob

The problem is that this spell is triggered when it is out of combat. When an npc is ooc its life regen fast, so the combination Capacitor Overload/Self-repair works bad.

@Exitare
Copy link
Member

Exitare commented Dec 14, 2024

Is this still waiting to be tested?

@TheSCREWEDSoftware TheSCREWEDSoftware added the Waiting For More Info from Author Issue pending due to needing more additional informatino from the author label Jan 18, 2025
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 Ready to be Reviewed Waiting For More Info from Author Issue pending due to needing more additional informatino from the author Waiting to be Tested
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants