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.57k forks source link

Game breaking Mind Control/Charm bugs #11975

Open T1ti opened 2 years ago

T1ti commented 2 years ago

Current Behaviour

Most mind control spells have no cooldown and GCD, only spell data is used. You can mind control creatures and spam their spells without any cooldown, which is completely broken, you can solo dungeons easily with mind controlled creatures etc by spaming powerful spells.

Expected Blizzlike Behaviour

Mind controlled creatures spells should have the same cooldowns as the creature has Dots/buffs/casted spells tend to not have cooldowns which makes sense since their cast behavior is based on status, not cooldown

Source

Some classic videos https://youtu.be/1yQ6xu1c4wc?t=39 https://www.youtube.com/watch?v=P9ZPv8k6tXc https://youtu.be/4RgAkOqNqAo?t=28 (With gnomish MC cap, it's 100% classic footage because of the clock and HD shadows)

Finding videos of it in PVE on youtube is extremly hard but it's very common knowldge they have cooldowns, or they could be abused easily, anyone can test on classic

Steps to reproduce the problem

1: Use any mind control/charm effect on a creature 2: test if their abilities are spamable (abilities that should have cooldowns like a shield bash), you can specifically try the scarshield sppellbinder in the videos above, it's an extremly popular mob to mind control for the buff

Extra Notes

Probably the same issue with the warlock's Enslave demon and other Charming effects.

This is an extremly tough problem to solve as AC/TC chose to use a global scripting system for creatures spells (smart AI), currently the creature_template_spells structure is extremly basic,n it's just creature id x spellid.

Solutions would be :

image

Also note that on classic the tooltip updates with the cooldown after cast image

image

AC rev. hash/commit

70f3891352744ede66b12c3e1b2e52d3d5794564

Operating system

windows 10 x64

Custom changes or Modules

No response

magic62 commented 2 years ago

I can confirm. This is extremely game breaking and needs to be fixed ASAP.

T1ti commented 2 years ago

Some more screenshots after more testing on the Classic TBC PTR image image image

Some interesting behaviors I found : Most DOTs/buffs spells have no cooldown and are spamable, probably because their cast logic is based on if the target has the buff or not.

Nyeriah commented 1 year ago

Either get that data from the smart ai somehow by filtering their spell cast actions Easier solution : Import the vmangos system and data, which is an extended version of the current creature_spell_template table with additional columns for cooldowns and such (they also use this data for normal creature spells system) (only has data for vanilal though)

Using SAI data would be wrong as it doesn't use exact values and most of the time we're using educated guesses. I don't believe we need the entire ManGOS spell engine as it's way more centered around the AI it feels. We just need to load the spell overrides, which eventually, would need to be done for each and every spell as there's simply no data about it.

T1ti commented 1 year ago

why is it bad to use the current smart AI cooldowns for this but not for smart ai itself ?

Nyeriah commented 1 year ago

Spell cooldowns are one thing and AI repetition delays are another completely different thing. For once, as I said, AI delays are random within a set amount of time and never in my life have I seen a spell with a random cooldown.

Furthermore, as I said, AI timers are not granted to be accurate.

Gultask commented 1 year ago

The cooldown values aren't guesses. When MC/Charm in Retail there are exact cooldown numbers for each spell. We checked it for ZG many months ago with a sniffer.

Nyeriah commented 1 year ago

https://github.com/azerothcore/azerothcore-wotlk/pull/15143

Just need to fill the data

T1ti commented 1 year ago

Ah I see what you mean, spell casts are a range (min-max) but there we need a static CD. Not sure how blizz gets those values, it is probably either the min or an average of min-max.

Vmangos has been sniffing mind control for values for almsot every mob in the game btw