Closed Phatcat closed 8 years ago
Thank you for this pull request. I had a few comments after looking quickly at it, but I see you fixed most of them recently (the removal of pets stats for Silithid Swarm as an example). The only one that still comes to mind is setting to 0 the melee damage values for a bunch of NPCs: I'm not sure this is right and that core will use 0 values. Chances are good that they will be changed to 1. If you are aiming to create non-melee NPCs, it would be wiser to use ACID for that, I think.
I will review very soon that PR more in details. Thanks again. :+1:
Thank you for the recent updates. :+1:
I agree with the attack speed updates. I have to look, but I may have more to add. :smile:
However, I disagree with the removal of any pet_level_stats. The stats exists for those NPCs because there is at least one spell that summons those NPCs as pet and not as guardian. A good example would be the various Silithid NPCs with the little swarmers. They use spell 10722 at spawn which summons a Silithid Swarm (4196) with SPELL_EFFECT_SUMMON_PET
. When engaged in combat, they periodically cast spell 6589 which also summons a Silithid Swarm but with SPELL_EFFECT_SUMMON_GUARDIAN
.
As for the damage stats set to zero, I think this is probably a hack and the proper way to do it would be to use EventAI to prevent the NPCs to move/engage in melee combat. This reminds me of your question on IRC: if a creature_template has an empty field for AIName, this means that there is no entry for it in creature_ai_scripts table and thus they need to be written/added/backported. A list of the NPCs currently missing an AI is found in this issue: #740 We can discuss this later on IRC if you want. :smile:
The removal of pet_levelstats is very much done because the function spell_effect_summon_pet doesn't use pet_levelstats, it uses initstatsforlevel - initstatsforlevel uses pet_levelstats, and I am rewriting that one in this pr - which is why I said those changes shouldn't be applied till (if) that pr gets merged. In the same pr I also rewrote the summon_pet function to make summons default to guardians; It's done here
Attack speed updates are still WIP as doing the 2.0s seem like a nightmare given my current method of ctrl+f , so I skipped those initially. Have returned and done 1/10 locally - will push when completely done with them, then you can double check =)
I agree that setting damage to 0 for the npcs would not solves the issues with them, however the reason for that change is that they should not even be able to melee, so why would we keep some random values someone once gave them? - is there any reason they should not be defaulted to 0? as that is the default for entries not having values in those fields, if I am not mistaken?
I have not taken a look at any AI yet because the PetAI needs a bit of work (defensive is not good), and I am not sure petAI nor eventAI is suited for guardian pets? Given that nearly all guardian pets are supposed to do their own thing (eventAI), while also following and defending their owner (petAI).
@cala I would love to get in touch with you, hit me up on IRC any time.
@cala I have corrected this to not include any flags or 0 values for guardians, but only include the things relevant to pet patch 1.0 for the core (and just a few guardian corrections). That way these fit nicely together as a collected update.
Thanks. I assume that it is best to use also that PR to test your patch core-side?
Well, if you want to be sure that I pulled the pet_levelstats out without breaking anything, then you should, but the core patch is not in any way dependant on the db patch, only the removal of pet_levelstats in the db patch is dependant on the core patch, that's all.
@cala here's the table =)
edit: removed everything relating to guardians (still got it locally) - will do a pr on some proper guardian updates once I get the ball rolling on Pet Patch 2.0 - that will however at least be after Engineering 2.0: The Tesla Tragedy (Gnomes Ahoy)
@cala - someone just came in and schooled me:
What the hell is this... Pet modifiers are spells, called Tamed Pet Passive (DND). For example 17206 gives 7% bonus damage to bats, 17208 gives -9% damage, 5% armor and 8% HP to bears. This kind of handling is wrong.
https://github.com/cmangos/issues/issues/931
Table and stat modifiers now removed.
Yes, I saw the notification on core. I did not know or I would have lead you that way, of course. In case he does not provide you the spell IDs, I can try to look for them.
I hope I won't cause too many issues for people now that I dropped those 2 commits... I have added the comment to pet issues, so I can work it into pet patch 2.0
Thanks, I merged the attack speed part now the core supports this. :+1: I see you removed the small update file that was fixing stats for one NPC (I don't remember which one) and the experience multiplier for another one. Is this intended?
Regarding the pet_levelstats
table, I'm still reluctant to drop those entries:
@cala I'm sorry, but what do you mean that the values are good? the values are arrived at using a formula. Just give me that formula and I'll use that for guardians... Besides that, why would you want to hold on to data that should not, and probably will not, ever be used for anything ever again? I'm not saying throw them out completely, but remove them from the current db.
You say dropping them needless, I say keeping them needlessly.
Oh, forgot the other part of your message.
I see you removed the small update file that was fixing stats for one NPC (I don't remember which one) and the experience multiplier for another one. Is this intended?
Yes. Because they are intended to make a dreaded comeback along with all the other guardian changes when I get all those AI kinks worked out..
I'm gonna remove the beast attack speeds from this pr since you've already added those. Then we are down to the question, should this pr get closed or not then? - I doubt we'll ever come to terms any time soon about the removal of that data, so this pr could just end up going stale if left open.
@cala I'm sorry, but what do you mean that the values are good? the values are arrived at using a formula. Just give me that formula and I'll use that for guardians... Besides that, why would you want to hold on to data that should not, and probably will not, ever be used for anything ever again?
I said that they seem good. We can discuss the reason of the emphasis on that verb on IRC. We do not have a formula or of course we would not need them, but in the eventuality we get a formula one day, I think these data could be a good set for testing. You are right we do not need to keep them in the DB for that specific purpose. I don't have the time to take a decision about that right now. I'll come back to you on this later. :)
We do not have a formula
Is why I made one; let's see how well it fits =)
Okay, leaving this pr open just for good meassure, then.
Gonna do the exact opposite instead.
Okay, leaving this pr open just for good meassure, then.Gonna do the exact opposite instead.
I lol'd. :laughing:
Hunter's pets
This change is