azerothcore-wotlk
azerothcore-wotlk copied to clipboard
fix(Core/Pets): Correct Pet size for bigger pets 2
Changes Proposed:
This PR proposes changes to:
- [x] Core (units, players, creatures, game systems).
- [ ] Scripts (bosses, spell scripts, creature scripts).
- [ ] Database (SAI, creatures, etc).
Pets should scale based on level and scaling range as by their DBC value. I found that this also needs to be scaled with their DisplayID, this part was missing.
This factor was added in PR
- https://github.com/azerothcore/azerothcore-wotlk/pull/14511 but later removed?
Adding it back seemed correct besides that the scaling was not capped to MaxScaling. So pets past the MaxScaleLevel were still scaled larger than they should
- https://github.com/azerothcore/azerothcore-wotlk/pull/14511#issuecomment-1648169456
Issues Addressed:
- Closes https://github.com/azerothcore/azerothcore-wotlk/issues/18412
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
DBC https://old.wow.tools/dbc/?dbc=creaturefamily&build=3.3.5.12340#page=1
PR https://github.com/azerothcore/azerothcore-wotlk/pull/14511
formula check, scaling is correct until maxLvl
minScaling | maxScaling | minLvl | maxLvl | |
---|---|---|---|---|
Core Hound | 0.3 | 0.7 | 1 | 60 |
Devilsaur | 0.3 | 0.5 | 1 | 60 |
Level | Core Hound | Devilsaur | ||
1 | 0.3068 | 0.3034 | ||
2 | 0.3136 | 0.3068 | ||
5 | 0.3339 | 0.3169 | ||
10 | 0.3678 | 0.3339 | ||
15 | 0.4017 | 0.3508 | ||
20 | 0.4356 | 0.3678 | ||
25 | 0.4695 | 0.3847 | ||
30 | 0.5034 | 0.4017 | ||
35 | 0.5373 | 0.4186 | ||
40 | 0.5712 | 0.4356 | ||
45 | 0.6051 | 0.4525 | ||
50 | 0.6390 | 0.4695 | ||
55 | 0.6729 | 0.4864 | ||
60 | 0.7068 | 0.5034 | ||
65 | 0.7407 | 0.5203 | <-- wrong | |
70 | 0.7746 | 0.5373 | ||
75 | 0.8085 | 0.5542 | ||
80 | 0.8424 | 0.5712 | ||
85 | 0.8763 | 0.5881 |
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:
- [x] 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.
Spawn NPCs and tame
.npc tame
Ancient Core hound
.npc add 11673
Devilsaur
.npc add 6498
Kurken
.npc add 17447
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.
It's too big
Too big not fit for the game fighting to boss, normaly the pet large not than the biggest player module is better, such as Minotaurs
and I think now module is fit for play the game
and the module scale change has been repeated several times, and every time you mess with the boss if the pet too big, players complain more about blocking the screen view
so I dont think this is a problem or a real game problem
881786a Seems to prevent mobs scaling too large
I have no data on how the tamed creature's size translates into pet size. DBC Scaling is a factor for sure.
Issue are some wotlk exotic pets like core hounds, rhinos, worms are smaller than they should be.
An alternative fix is adding these families to the current check ctFamily && ctFamily == CREATURE_FAMILY_DEVILSAUR
and capping scaling correctly from DBC with scale = std::min(scale, creatureFamily->maxScale);
if we drop 3.3.5a support and go cata we can fix it because in cata they added correct information to dbc files to accurately calculate everything x)
(Makred as offtopic as this comment was more meant for fun rather than anything useful :P //Kitz)
Tested 881786a
It's too big
Before PR
I'm not able to reproduce the big Silithid https://github.com/azerothcore/azerothcore-wotlk/pull/18867#issuecomment-2114666743
I went through and spawned the mobs from https://www.wow-petopia.com/classic_lk/family.php?id=silithid
Taming large model Xil'xix (15286) looks fine on my end
I don't recognize the model from the picture. I tried the HD patch to see if it had an effect "Updated Creature Models by vvladoon" from https://github.com/Marotheit/A-Guide-to-Modernizing-the-WotLK-Client . The model doesn't match to the pic, but the size of the models look fine
Anymore I think now scale is BLZ game size, I never see so big pets when play at BLZ WLK
http://wow.yzz.cn/official/guofu/201009/200927_2.shtml this the web form 2010-09-19, there are some maps can see the origin pets size.
status
requires testing, affects every hunter pet. Scales based on level and category
@heyitsbench <3
Other pets seem normal, but 25698 seems much big