azerothcore / azerothcore-wotlk

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

Remove "Thrash" ability from creatures that aren't supposed to have it #6118

Closed ghost closed 2 years ago

ghost commented 3 years ago

WHAT CLIENT DO YOU PLAY ON?

FACTION
CONTENT PHASE:

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

CURRENT BEHAVIOUR:

Please consider reading extra notes first, there is the foundation of this report.

  1. In Darkshore, the whole Foreststrider family, including Foreststrider Fledgling, Foreststrider and Giant Foreststrider possess ability Thrash trigger(spell=12787).WoWScrnShot_052721_201002
  2. Blackwood Pathfinders have incorrect version of Thrash trigger, please note that this is only my speculation of comparing AoWoW DB and ref DB, not in-game testing.
EXPECTED BLIZZLIKE BEHAVIOUR:
  1. None of them should be able to cast any kind of Thrash.
  2. Blackwood Pathfinder should have Proc chance: 25% version, not the 35% version.
SOURCE:

ref DB: https://wotlkdb.com/

STEPS TO REPRODUCE THE PROBLEM:
  1. Go to darkshore (preferably around level 14 as a cloth-type class)
  2. Challenge any previously mentioned mobs
  3. !?
  4. Check the combat log
EXTRA NOTES:
  1. A confusing detail of AoWoW DB, although Thrash(spell=12787) is mentioned on the Foreststrider's page, Foreststrider isn't listed on the "Used by" of Thrash(spell=12787).

  2. It's difficult to find a good source of knowledge for wotlk, as classic wotlk hasn't arrived yet and wayback machine is incomplete for reference in general, so for the purpose of this report I use https://wotlkdb.com/ as my reference, but it isn't much better to be honest, for example: Blackwood Tracker is described to have Thrash(spell=3391), but that spell is only an action(hit two extra times), not a percentage trigger, It's not clear to me how that's supposed to work.

  3. I also tried to check the classic wowhead page, but it's even more confusing there, as Blackwood Tracker is listed to have multiple versions of thrash-triggers, which one(10%, 15%, 35%) is supposed to be used?

  4. Update, I found a video of a player fighting striders in classic wow, if it would be of any help: https://youtu.be/vhKiSTZnjLI?t=180

AC HASH/COMMIT:

https://github.com/chromiecraft/azerothcore-wotlk/commit/3716ddf3e4e1ef138df334d01980fea019272001

OPERATING SYSTEM:

Ubuntu 20.04

MODULES:
OTHER CUSTOMIZATIONS:

None.

SERVER:

ChromieCraft

Confirmed and reproduced on a local AC server (AC HASH/COMMIT: ea76481):

WoWScrnShot_052921_192347 WoWScrnShot_052921_192501 WoWScrnShot_052921_192608 WoWScrnShot_052921_192744

I saw some of you commenting on the databases and their reflection in these NPCs, and I was not sure if I should link the problem in AzerothCore or not, but since it seems that the mismatch exists, I did it, sorry if it wasn't the right thing to do!!

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/98815937-remove-thrash-ability-from-creatures-that-aren-t-supposed-to-have-it?utm_campaign=plugin&utm_content=tracker%2F40032087&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F40032087&utm_medium=issues&utm_source=github).
necropola commented 3 years ago

@Eldarix We have at least one case where we agree that an NPC shoulld not have the Thrash ability, so it's fine to have this as a confirmed issue on AC.

I'd even suggest to change the title/scope of this issue to Remove "Thrash" ability from creatures that aren't supposed to have it and start by

Here is a very crude first attempt of an SQL query just using the comment column in smart_scripts. What I find remarkable is that some of these entries are very specific and some others (especially on rather low level creatures) allow the ability to be used repeatedly at random:

SELECT `entryorguid`, `comment` FROM `smart_scripts` WHERE `comment` LIKE "%Cast%Thrash%";
+-------------+-------------------------------------------------------------------------------------------+
| entryorguid | comment                                                                                   |
+-------------+-------------------------------------------------------------------------------------------+
|      -52144 | Crimson Monk - On Reset - Cast Thrash                                                     |
|         100 | Gruff Swiftbite - In Combat - Cast 'Thrash' (No Repeat)                                   |
|         232 | Farmer Ray - In Combat - Cast 'Thrash'                                                    |
|         449 | Defias Knuckleduster - In Combat - Cast 'Thrash'                                          |
|         478 | Riverpaw Outrunner - In Combat - Cast 'Thrash' (No Repeat)                                |
|         519 | Slark - In Combat - Cast 'Thrash' (No Repeat)                                             |
|         669 | Skullsplitter Hunter - In Combat - Cast 'Thrash'                                          |
|         757 | Lost One Fisherman - In Combat - Cast 'Thrash'                                            |
|         862 | Stonard Explorer - In Combat - Cast 'Thrash'                                              |
|         880 | Erlan Drudgemoor - In Combat - Cast 'Thrash'                                              |
|        1039 | Fen Dweller - In Combat - Cast 'Thrash'                                                   |
|        1142 | Mosh'Ogg Brute - In Combat - Cast 'Thrash'                                                |
|        1202 | Tunnel Rat Kobold - In Combat - Cast 'Thrash'                                             |
|        1224 | Young Threshadon - In Combat - Cast 'Thrash'                                              |
|        1353 | Sarltooth - In Combat - Cast 'Thrash'                                                     |
|        1520 | Rattlecage Soldier - Between 20-80% Health - Cast 'Thrash' (No Repeat)                    |
|        1654 | Gregor Agamand - In Combat - Cast 'Thrash'                                                |
|        1655 | Nissa Agamand - In Combat - Cast 'Thrash'                                                 |
|        1656 | Thurman Agamand - In Combat - Cast 'Thrash'                                               |
|        1658 | Captain Dargol - In Combat - Cast 'Thrash'                                                |
|        1662 | Captain Perrine - Between 20-80% Health - Cast 'Thrash' (No Repeat)                       |
|        1693 | Loch Crocolisk - In Combat - Cast 'Thrash'                                                |
|        1783 | Skeletal Flayer - In Combat - Cast 'Thrash' (No Repeat) (Normal Dungeon)                  |
|        1791 | Slavering Ghoul - In Combat - Cast 'Thrash' (No Repeat)                                   |
|        1843 | Foreman Jerris - In Combat - Cast 'Thrash'                                                |
|        1847 | Foulmane - In Combat - Cast 'Thrash'                                                      |
|        1871 | Eliza's Guard - In Combat - Cast 'Thrash'                                                 |
|        2167 | Blackwood Pathfinder - In Combat - Cast 'Thrash'                                          |
|        2186 | Carnivous the Breaker - On Respawn - Cast Thrash (No Repeat)                              |
|        2236 | Raging Reef Crawler - In Combat - Cast 'Thrash'                                           |
|        2321 | Foreststrider Fledgling - In Combat - Cast 'Thrash'                                       |
|        2322 | Foreststrider - In Combat - Cast 'Thrash'                                                 |
|        2323 | Giant Foreststrider - In Combat - Cast 'Thrash'                                           |
|        2535 | Maury "Club Foot" Wilkins - In Combat - Cast 'Thrash'                                     |
|        2536 | Jon-Jon the Crow - In Combat - Cast 'Thrash'                                              |
|        2560 | Highland Thrasher - In Combat - Cast 'Thrash' (No Repeat)                                 |
|        2681 | Vilebranch Raiding Wolf  - In Combat - Cast 'Thrash'                                      |
|        2717 | Dustbelcher Mauler - In Combat - Cast 'Thrash'                                            |
|        2728 | Feral Crag Coyote - In Combat - Cast 'Thrash'                                             |
|        2749 | Siege Golem - In Combat - Cast 'Thrash'                                                   |
|        2773 | Or'Kalar - In Combat - Cast 'Thrash'                                                      |
|        2944 | Boss Tho'grun - In Combat - Cast 'Thrash'                                                 |
|        3256 | Sunscale Scytheclaw - In Combat - Cast 'Thrash' (No Repeat)                               |
|        3284 | Venture Co. Drudger - Between 20-80% Health - Cast 'Thrash' (No Repeat)                   |
|        3285 | Venture Co. Peon - Between 20-80% Health - Cast 'Thrash' (No Repeat)                      |
|        3378 | Bael'dun Officer - In Combat - Cast 'Thrash' (No Repeat)                                  |
|        3456 | Razormane Pathfinder - In Combat - Cast 'Thrash'                                          |
|        3476 | Isha Awak - In Combat - Cast 'Thrash'                                                     |
|        3722 | Mystlash Flayer - In Combat - Cast 'Thrash' (No Repeat)                                   |
|        3746 | Foulweald Den Watcher - In Combat - Cast 'Thrash' (No Repeat)                             |
|        3812 | Clattering Crawler - In Combat - Cast 'Thrash'                                            |
|        3814 | Spined Crawler - In Combat - Cast 'Thrash'                                                |
|        3988 | Venture Co. Operator - In Combat - Cast 'Thrash'                                          |
|        3999 | Windshear Digger - In Combat - Cast 'Thrash'                                              |
|        4023 | Bloodfury Roguefeather - In Combat - Cast 'Thrash'                                        |
|        4202 | Gerenzo Wrenchwhistle - In Combat - Cast 'Thrash'                                         |
|        4348 | Noxious Shredder - In Combat - Cast 'Thrash'                                              |
|        4374 | Strashaz Hydra - In Combat - Cast 'Thrash'                                                |
|        4388 | Young Murk Thresher - In Combat - Cast 'Thrash'                                           |
|        4389 | Murk Thresher - In Combat - Cast 'Thrash'                                                 |
|        4390 | Elder Murk Thresher - In Combat - Cast 'Thrash'                                           |
|        4479 | Fardel Dabyrie - In Combat - Cast 'Thrash'                                                |
|        4493 | Scarlet Avenger - In Combat - Cast 'Thrash'                                               |
|        4540 | Scarlet Monk - On Reset - Cast Thrash                                                     |
|        4634 | Kolkar Mauler - In Combat - Cast 'Thrash'                                                 |
|        4656 | Maraudine Mauler - In Combat - Cast 'Thrash'                                              |
|        4687 | Deepstrider Searcher - In Combat - Cast 'Thrash'                                          |
|        4855 | Stonevault Brawler - On Reset - Cast Thrash                                               |
|        5234 | Gordunni Mauler - In Combat - Cast 'Thrash'                                               |
|        5260 | Groddoc Ape - In Combat - Cast 'Thrash'                                                   |
|        5267 | Unliving Atal'ai - On Reset - Cast Thrash                                                 |
|        5287 | Longtooth Howler - In Combat - Cast 'Thrash'                                              |
|        5435 | Sand Shark - In Combat - Cast 'Thrash'                                                    |
|        5455 | Centipaar Wasp - In Combat - Cast 'Thrash'                                                |
|        5456 | Centipaar Stinger - In Combat - Cast 'Thrash'                                             |
|        5457 | Centipaar Swarmer - In Combat - Cast 'Thrash'                                             |
|        5458 | Centipaar Worker - In Combat - Cast 'Thrash'                                              |
|        5459 | Centipaar Tunneler - In Combat - Cast 'Thrash'                                            |
|        5460 | Centipaar Sandreaver - In Combat - Cast 'Thrash'                                          |
|        5477 | Noboru the Cudgel - In Combat - Cast 'Thrash'                                             |
|        5622 | Ongeku - In Combat - Cast 'Thrash'                                                        |
|        5683 | Comar Villard - In Combat - Cast 'Thrash'                                                 |
|        5709 | Shade of Eranikus - On Reset - Cast Thrash                                                |
|        5976 | Dreadmaul Brute - In Combat - Cast 'Thrash'                                               |
|        5977 | Dreadmaul Mauler - In Combat - Cast 'Thrash'                                              |
|        6005 | Shadowsworn Thug - In Combat - Cast 'Thrash'                                              |
|        6020 | Slimeshell Makrura - In Combat - Cast 'Thrash'                                            |
|        6068 | Warug's Bodyguard - In Combat - Cast 'Thrash'                                             |
|        6093 | Dead-Tooth Jack - In Combat - Cast 'Thrash'                                               |
|        6140 | Hetaera - In Combat - Cast 'Thrash'                                                       |
|        6348 | Wavethrasher - In Combat - Cast 'Thrash'                                                  |
|        6352 | Coralshell Lurker - In Combat - Cast 'Thrash'                                             |
|        6506 | Ravasaur Runner - In Combat - Cast 'Thrash'                                               |
|        7039 | War Reaver - In Combat - Cast 'Thrash'                                                    |
|        7067 | Venture Co. Drone - In Combat - Cast 'Thrash'                                             |
|        7101 | Warpwood Shredder - In Combat - Cast 'Thrash'                                             |
|        7234 | Ferocitas the Dream Eater - In Combat - Cast 'Thrash'                                     |
|        7287 | Foreman Silixiz - In Combat - Cast 'Thrash'                                               |
|        7307 | Venture Co. Lookout - In Combat - Cast 'Thrash'                                           |
|        7320 | Stonevault Mauler - On Reset - Cast Thrash                                                |
|        7369 | Deadwind Brute - In Combat - Cast 'Thrash'                                                |
|        7446 | Rabid Shardtooth - In Combat - Cast 'Thrash'                                              |
|        7669 | Servant of Grol - In Combat - Cast 'Thrash'                                               |
|        7671 | Servant of Sevine - In Combat - Cast 'Thrash'                                             |
|        8138 | Sul'lithuz Broodling - In Combat - Cast 'Thrash'                                          |
|        8205 | Haarka the Ravenous - In Combat - Cast 'Thrash'                                           |
|        8216 | Retherokk the Berserker - In Combat - Cast 'Thrash'                                       |
|        8299 | Spiteflayer - In Combat - Cast 'Thrash'                                                   |
|        8911 | Fireguard Destroyer - On Reset - Cast Thrash                                              |
|        8961 | Felpaw Ravager - In Combat - Cast 'Thrash'                                                |
|        8981 | Malfunctioning Reaver - In Combat - Cast 'Thrash'                                         |
|        9096 | Rage Talon Dragonspawn - In Combat - Cast 'Thrash' (Phase 1) (No Repeat) (Normal Dungeon) |
|        9164 | Elder Diemetradon - On Respawn - Cast 'Thrash' (Normal Dungeon)                           |
|        9167 | Frenzied Pterrordax - On Respawn - Cast 'Thrash' (Normal Dungeon)                         |
|        9176 | Gor'tesh - In Combat - Cast 'Thrash' (Normal Dungeon)                                     |
|        9267 | Smolderthorn Axe Thrower - In Combat - Cast 'Thrash' (Normal Dungeon)                     |
|        9777 | Flamekin Sprite - In Combat - Cast 'Thrash'                                               |
|       10407 | Fleshflayer Ghoul - On Reset - Cast Thrash                                                |
|       10414 | Patchwork Horror - On Reset - Cast Thrash                                                 |
|       10416 | Bile Spewer - On Reset - Cast Thrash                                                      |
|       10488 | Risen Construct - On Reset - Cast Thrash                                                  |
|       10639 | Rorgish Jowl - In Combat - Cast 'Thrash' (Phase 1) (No Repeat) (Normal Dungeon)           |
|       10946 | Horgus the Ravager - In Combat - Cast 'Thrash'                                            |
|       10991 | Wildpaw Gnoll - In Combat - Cast 'Thrash'                                                 |
|       11043 | Crimson Monk - On Reset - Cast Thrash                                                     |
|       11357 | Son of Hakkar - In Combat - Cast 'Thrash' (No Repeat)                                     |
|       11372 | Razzashi Adder - In Combat - Cast 'Thrash' (No Repeat)                                    |
|       11486 | Prince Tortheldrin - On Reset - Cast Thrash                                               |
|       11677 | Taskmaster Snivvle - In Combat - Cast 'Thrash' (Phase 1) (No Repeat) (Normal Dungeon)     |
|       11724 | Hive'Ashi Swarmer - In Combat - Cast 'Thrash'                                             |
|       11725 | Hive'Zora Waywatcher - In Combat - Cast 'Thrash'                                          |
|       11737 | Stonelash Flayer - In Combat - Cast 'Thrash'                                              |
|       11782 | Ambershard Destroyer - In Combat - Cast 'Thrash' (No Repeat)                              |
|       11789 | Deep Borer - In Combat - Cast 'Thrash'                                                    |
|       11791 | Putridus Trickster - On Reset - Cast Thrash                                               |
|       11858 | Grundig Darkcloud - In Combat - Cast 'Thrash'                                             |
|       11918 | Gogger Stonepounder - In Combat - Cast 'Thrash'                                           |
|       11921 | Besseleth - In Combat - Cast 'Thrash'                                                     |
|       12138 | Lunaclaw - In Combat - Cast 'Thrash' (No Repeat) (Normal Dungeon)                         |
|       12201 | Princess Theradras - On Reset - Cast Thrash                                               |
|       12207 | Thessala Hydra - On Reset - Cast Thrash                                                   |
|       12940 | Vorsha the Lasher - In Combat - Cast 'Thrash' (No Repeat)                                 |
|       13088 | Masha Swiftcut - In Combat - Cast 'Thrash'                                                |
|       13159 | James Clark - In Combat - Cast 'Thrash'                                                   |
|       14275 | Tamra Stormpike - In Combat - Cast 'Thrash'                                               |
|       14276 | Scargil - In Combat - Cast 'Thrash'                                                       |
|       14282 | Frostwolf Bloodhound - In Combat - Cast Thrash                                            |
|       14283 | Stormpike Owl - In Combat - Cast 'Thrash'                                                 |
|       14426 | Harb Foulmountain - In Combat - Cast 'Thrash'                                             |
|       14750 | Gurubashi Bat Rider - In Combat - Cast 'Thrash' (No Repeat)                               |
|       14821 | Razzashi Raptor - In Combat - Cast 'Thrash' (No Repeat)                                   |
|       14882 | Atal'ai Mistress - In Combat - Cast 'Thrash' (No Repeat)                                  |
|       15591 | Minion of Weavil - In Combat - Cast 'Thrash'                                              |
|       16216 | Unholy Swords - In combat - Cast Thrash                                                   |
|       16593 | Shattered Hand Brawler - In Combat - Cast Thrash                                          |
|       17397 | Shadowmoon Adept - In Combat - Cast Thrash                                                |
|       18631 | Cabal Cultist - In Combat - Cast Thrash                                                   |
|       23680 | Plagued Proto-Dragon - In Combat - Cast 'Thrash' (Phase 2)                                |
|       24552 | Sliver - In Combat - Cast 'Thrash'                                                        |
|       24713 | "Crowleg" Dan - On Range - Cast Thrash Kick                                               |
|       25027 | Frenzied Ghoul - Between 5-15% Health - Cast 'Thrash' (No Repeat)                         |
|       25028 | Skeletal Ravager - Between 5-15% Health - Cast 'Thrash' (No Repeat)                       |
|       25611 | Warsong Aberration - Within 0-5 Range - Cast 'Thrash Kick'                                |
|       25625 | Warsong Aberration - Within 0-5 Range - Cast 'Thrash Kick'                                |
|       28101 | Blighted Corpse - In Combat - Cast 'Thrash Kick' (No Repeat)                              |
|       29033 | Spirit of Atha - In Combat - Cast 'Thrash' (Phase 4)                                      |
|       29392 | Ravenous Jaws - In Combat - Cast 'Thrash'                                                 |
|       30147 | Garhal - In Combat - Cast Thrash Kick                                                     |
|        6210 | Caverndeep Pillager - On Reset - Cast 'Thrash'                                            |
+-------------+-------------------------------------------------------------------------------------------+
169 rows in set (0.000 sec)
Annamaria-CC commented 3 years ago

I think we should look at what tbc wowhead has to say: https://tbc.wowhead.com/spell=3391/thrash#used-by-npc 129 uses thrash (in vanilla it did not exist) So first step would decide that we think this source is valid enough. If so, remove the 40 that should not be listed. Then decide on how often it should trigger. Right now some mobs do it nearly every attack. tbc wowhead indeed lists 3 different chances, maybe we can decide that normal mobs get the 10% one, rares 15% and elites 35% with a 4s cooldown. There are no datamined sources as combat log often did not say when thrash was used by a boss or monster; according to https://wowwiki-archive.fandom.com/wiki/Thrash

I think decisions need to be made here since the higher the mobs are the more idiotic the damage becomes atm.

T1ti commented 3 years ago

I think we should look at what tbc wowhead has to say: https://tbc.wowhead.com/spell=3391/thrash#used-by-npc 129 uses thrash (in vanilla it did not exist) So first step would decide that we think this source is valid enough. If so, remove the 40 that should not be listed. Then decide on how often it should trigger. Right now some mobs do it nearly every attack. tbc wowhead indeed lists 3 different chances, maybe we can decide that normal mobs get the 10% one, rares 15% and elites 35% with a 4s cooldown. There are no datamined sources as combat log often did not say when thrash was used by a boss or monster; according to https://wowwiki-archive.fandom.com/wiki/Thrash

I think decisions need to be made here since the higher the mobs are the more idiotic the damage becomes atm.

where you're wrong is that you think mobs have thrash set as a normal abilities, how thrash works is that it triggers from passive auras like those https://tbc.wowhead.com/spell=3417/thrash https://tbc.wowhead.com/spell=12787/thrash , afaik not a single creature uses thrash directly

And those spells already include the proc chance. Creatures that use the thrash pasive auras can be detected in sniffs

necropola commented 3 years ago

So first step would decide that we think this source is valid enough.

That's easy. It's not. Abilities listed on tbc/classic.wowhead are trash (not thrash). 😼

T1ti commented 3 years ago

ima go over a few of them from the list :

it's very time consuming so i'm gonna stop there, not a single one of those was worknig correctly, but most of those are supposed to actually have thrash so it's not too bad

If you wanna do it yourself, check if the npc has auras in sniffs, if he doesn't, check his spell casts (spell_unique_caster) inc ase he casts it directly

necropola commented 3 years ago

@T1ti Where/how did you get the actual (sniffed) data?

T1ti commented 3 years ago

@T1ti Where/how did you get the actual (sniffed) data?

https://www.mediafire.com/file/0avyiccqzh2zo4h/classic_combined_sniff_db_31727_to_36935_kittnz_mantislord_brotalnia.rar/file

Azcobu commented 3 years ago

For the latest report, for Jon-Jon the Crow, checked usual sources (WH, Wowpedia) with no sign that this is a valid ability, and also checked sniffs data as advised by @T1ti above, and he doesn't seem to have any auras relevant to Thrash either.

Foodlenz commented 3 years ago

Servant of Sevine Just adding my own finding to this thread. This mob, Servant of Sevine, procing some crazy thrashes when (afaik) it shouldn't have the ability to do so.

Shineslippers commented 2 years ago

Acording to https://github.com/chromiecraft/chromiecraft/issues/2444 Venture Co. Operator should not have thrash