Trinitycore: [3.3.5] Core/Spells: Pet Stats System

Created on 8 Feb 2012  路  98Comments  路  Source: TrinityCore/TrinityCore

I need information for pet stats system whether it is correct:
to-do:

  • damage calculate
  • hp calculate
  • immunity? need sniff :-/

patch:

src/server/scripts/Spells/spell_generic.cpp |  145 +++++++++++++++++++++++++++
 1 files changed, 145 insertions(+), 0 deletions(-)

diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 9899e50..d77a79a 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -2351,6 +2351,150 @@ class spell_gen_tournament_pennant : public SpellScriptLoader
         }
 };

+enum PetCalculate
+{
+     SPELL_HUNTER_PET_CRIT              = 19591,
+     SPELL_WARLOCK_PET_CRIT             = 35695,
+     SPELL_WARLOCK_PET_HIT_EXPERTISE    = 61013,
+     SPELL_HUNTER_PET_HIT_EXPERTISE     = 61017,
+     SPELL_DK_PET_HIT                   = 61697,
+     SPELL_SHAMAN_PET_HIT               = 61783,
+};
+
+class spell_gen_pet_calculate : public SpellScriptLoader
+{
+    public:
+        spell_gen_pet_calculate() : SpellScriptLoader("spell_gen_pet_calculate") { }
+
+        class spell_gen_pet_calculate_AuraScript : public AuraScript
+        {
+            PrepareAuraScript(spell_gen_pet_calculate_AuraScript);
+
+            bool Load()
+            {
+                if (!GetCaster() || !GetCaster()->GetOwner() || GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER)
+                    return false;
+                return true;
+            }
+
+            void CalculateAmountCritSpell(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/)
+            {
+                if (Player* owner = GetCaster()->GetOwner()->ToPlayer())
+                {
+                    // For others recalculate it from:
+                    float CritSpell = 0.0f;
+                    // Crit from Intellect
+                    CritSpell += owner->GetSpellCritFromIntellect();
+                    // Increase crit from SPELL_AURA_MOD_SPELL_CRIT_CHANCE
+                    CritSpell += owner->GetTotalAuraModifier(SPELL_AURA_MOD_SPELL_CRIT_CHANCE);
+                    // Increase crit from SPELL_AURA_MOD_CRIT_PCT
+                    CritSpell += owner->GetTotalAuraModifier(SPELL_AURA_MOD_CRIT_PCT);
+                    // Increase crit spell from spell crit ratings
+                    CritSpell += owner->GetRatingBonusValue(CR_CRIT_SPELL);
+
+                    amount += int32(CritSpell);
+                }
+            }
+
+            void CalculateAmountCritMelee(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/)
+            {
+                if (Player* owner = GetCaster()->GetOwner()->ToPlayer())
+                {
+                    // For others recalculate it from:
+                    float CritMelee = 0.0f;
+                    // Crit from Agility
+                    CritMelee += owner->GetMeleeCritFromAgility();
+                    // Increase crit from SPELL_AURA_MOD_WEAPON_CRIT_PERCENT
+                    CritMelee += owner->GetTotalAuraModifier(SPELL_AURA_MOD_WEAPON_CRIT_PERCENT);
+                    // Increase crit from SPELL_AURA_MOD_CRIT_PCT
+                    CritMelee += owner->GetTotalAuraModifier(SPELL_AURA_MOD_CRIT_PCT);
+                    // Increase crit melee from melee crit ratings
+                    CritMelee += owner->GetRatingBonusValue(CR_CRIT_MELEE);
+
+                    amount += int32(CritMelee);
+                }
+            }
+
+            void CalculateAmountMeleeHit(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/)
+            {
+                if (Player* owner = GetCaster()->GetOwner()->ToPlayer())
+                {
+                    // For others recalculate it from:
+                    float HitMelee = 0.0f;
+                    // Increase hit from SPELL_AURA_MOD_HIT_CHANCE
+                    HitMelee += owner->GetTotalAuraModifier(SPELL_AURA_MOD_HIT_CHANCE);
+                    // Increase hit melee from meele hit ratings
+                    HitMelee += owner->GetRatingBonusValue(CR_HIT_MELEE);
+
+                    amount += int32(HitMelee);
+                }
+            }
+
+            void CalculateAmountSpellHit(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/)
+            {
+                if (Player* owner = GetCaster()->GetOwner()->ToPlayer())
+                {
+                    // For others recalculate it from:
+                    float HitSpell = 0.0f;
+                    // Increase hit from SPELL_AURA_MOD_SPELL_HIT_CHANCE
+                    HitSpell += owner->GetTotalAuraModifier(SPELL_AURA_MOD_SPELL_HIT_CHANCE);
+                    // Increase hit spell from spell hit ratings
+                    HitSpell += owner->GetRatingBonusValue(CR_HIT_SPELL);
+
+                    amount += int32(HitSpell);
+                }
+            }
+            
+            void CalculateAmountExpertise(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/)
+            {
+                if (Player* owner = GetCaster()->GetOwner()->ToPlayer())
+                {
+                    // For others recalculate it from:
+                    float Expertise = 0.0f;
+                    // Increase hit from SPELL_AURA_MOD_EXPERTISE
+                    Expertise += owner->GetTotalAuraModifier(SPELL_AURA_MOD_EXPERTISE);
+                    // Increase Expertise from Expertise ratings
+                    Expertise += owner->GetRatingBonusValue(CR_EXPERTISE);
+
+                    amount += int32(Expertise);
+                }
+            }
+
+            void Register()
+            {
+                switch (m_scriptSpellId)
+                {
+                    case SPELL_HUNTER_PET_CRIT:
+                        DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_pet_calculate_AuraScript::CalculateAmountCritMelee, EFFECT_0, SPELL_AURA_MOD_WEAPON_CRIT_PERCENT);
+                        DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_pet_calculate_AuraScript::CalculateAmountCritSpell, EFFECT_1, SPELL_AURA_MOD_SPELL_CRIT_CHANCE);
+                        break;
+                    case SPELL_WARLOCK_PET_CRIT:
+                        DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_pet_calculate_AuraScript::CalculateAmountCritSpell, EFFECT_0, SPELL_AURA_MOD_SPELL_CRIT_CHANCE);
+                        DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_pet_calculate_AuraScript::CalculateAmountCritMelee, EFFECT_1, SPELL_AURA_MOD_WEAPON_CRIT_PERCENT);
+                        break;
+                    case SPELL_WARLOCK_PET_HIT_EXPERTISE:
+                    case SPELL_HUNTER_PET_HIT_EXPERTISE:
+                        DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_pet_calculate_AuraScript::CalculateAmountMeleeHit, EFFECT_0, SPELL_AURA_MOD_HIT_CHANCE);
+                        DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_pet_calculate_AuraScript::CalculateAmountSpellHit, EFFECT_1, SPELL_AURA_MOD_SPELL_HIT_CHANCE);
+                        DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_pet_calculate_AuraScript::CalculateAmountExpertise, EFFECT_2, SPELL_AURA_MOD_EXPERTISE);
+                        break;
+                    case SPELL_DK_PET_HIT:
+                    case SPELL_SHAMAN_PET_HIT:
+                        DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_pet_calculate_AuraScript::CalculateAmountMeleeHit, EFFECT_0, SPELL_AURA_MOD_HIT_CHANCE);
+                        DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_pet_calculate_AuraScript::CalculateAmountSpellHit, EFFECT_1, SPELL_AURA_MOD_SPELL_HIT_CHANCE);
+                        break;
+                    default:
+                        break;
+                }
+            }
+        };
+
+        AuraScript* GetAuraScript() const
+        {
+            return new spell_gen_pet_calculate_AuraScript();
+        }
+};
+
 void AddSC_generic_spell_scripts()
 {
     new spell_gen_absorb0_hitlimit1();
@@ -2395,4 +2539,5 @@ void AddSC_generic_spell_scripts()
     new spell_gen_summon_tournament_mount();
     new spell_gen_on_tournament_mount();
     new spell_gen_tournament_pennant();
+    new spell_gen_pet_calculate();
 }

sql:

DELETE FROM `spell_script_names` WHERE `spell_id` IN (19591,35695,61013,61017,61697,61783);
INSERT INTO `spell_script_names` (`spell_id` ,`ScriptName`) VALUES
(19591, 'spell_gen_pet_calculate'),
(35695, 'spell_gen_pet_calculate'),
(61013, 'spell_gen_pet_calculate'),
(61017, 'spell_gen_pet_calculate'),
(61697, 'spell_gen_pet_calculate'),
(61783, 'spell_gen_pet_calculate');

DELETE FROM `creature_template_addon` WHERE `entry` = 29264;
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
(29264,0,0,0,1,0,'61783'); -- Spirit Wolf

DELETE FROM `spell_linked_spell` WHERE `spell_trigger` =54566;
INSERT INTO `spell_linked_spell` (`spell_trigger` ,`spell_effect` ,`type` ,`comment`) VALUES
(54566,61697,0,'Death Knight Pet Scaling 03'); -- Risen Ghoul

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Branch-3.3.5a Comp-Core Feedback-FixOutdatedMissingWIP Sub-Spells

All 98 comments

http://old.wowhead.com/spell=44559 does that not count?
^probably for mages

Has no aura for hit, crit, expertise. :-/

but still related to pets and the icon is the water elemental

Yes but for damage are some.

also when you are doing spell/aura scripts use ifs to wrap things instead

void CalculateAmountCritSpell(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/)
            {
                if (Unit* caster = GetCaster())
                    if (Player* owner = caster->GetOwner()->ToPlayer())
                    {
                        // For others recalculate it from:
                        float CritSpell = 0.0f;
                        // Crit from Intellect
                        CritSpell += owner->GetSpellCritFromIntellect();
                        // Increase crit from SPELL_AURA_MOD_SPELL_CRIT_CHANCE
                        CritSpell += owner->GetTotalAuraModifier(SPELL_AURA_MOD_SPELL_CRIT_CHANCE);
                        // Increase crit from SPELL_AURA_MOD_CRIT_PCT
                        CritSpell += owner->GetTotalAuraModifier(SPELL_AURA_MOD_CRIT_PCT);
                        // Increase crit spell from spell crit ratings
                        CritSpell += owner->GetRatingBonusValue(CR_CRIT_SPELL);

                        amount += int32(CritSpell);
                    }
            }

why not like this?

done :)

remove the ->ToPlayer() from anywhere it has owner->ToPlayer()

done :)

looks good to me

looks good to me

create pull request

Just curious, why did you call it

spell_gen_spell_gen_pet_calculate

instead of

spell_gen_pet_calculate

fixed

Nice)

Testing it ...

who idea why not work for dk?

DELETE FROM `creature_template_addon` WHERE `entry` =30230;
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
(30230,0,0,0,1,0,'61697'); -- Risen Ally

or

DELETE FROM `creature_template_addon` WHERE `entry` =26125;
INSERT INTO `creature_template_addon` (`entry`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES
(26125,0,0,0,1,0,'61697'); -- Risen Ghoul

Tested it, i have a lot of crashes like this : http://pastebin.com/iWE0GvAz

Looks like call To Toplayer() without Owner

Add :

bool Load()
{
    if (!GetCaster() || !GetCaster()->GetOwner() || !GetCaster()->GetTypeID() == TYPEID_PLAYER)
        return false;
    return true;
}

and then its safe to declare Player* owner = GetCaster()->GetOwner()->ToPlayer();

done

But !GetCaster()->GetTypeID() == TYPEID_PLAYER is wrong, caster is pet.

I use:
GetCaster()->GetOwner()->GetTypeId() != TYPEID_PLAYER

Why not use GetCaster()->IsPet() since GetCaster() returns a Unit*

@Vincent-Michael

What is not working? They do not get the aura? They get aura when you add a npc with .add npc? Pets do not get aura from addon table, must be added in spell_pet_auras or core.

okay :-/

actually this spell is not in skilllineability.dbc where it belongs
you could try to link it in spell_linked_spell with other aura
http://www.wowhead.com/spell=54566

ty, work fine :)

This patch is wrong.
All pets have individual scaling parameters.
For example:
Warlock imp not inherits owner crit, and have base 5%. Only if warlock have www.wowhead.com/spell=54349 pet inherits 30% crit ratings.

Need more research. If need, i have all pet scaling data from tobmaps.

Even if the actual way of doing the scaling is wrong, the scaling value used in the core are ok. The biggest problem are the base stats, which seems incorrect for most of them.

I need source :-/

hit, expertise is 1:1, but for crit fehlt source.

Vincent-Michael Where to send the data?

What for format?

Sql. Data from mangos, wowwiki, and etc.
Tobmaps try to port mangos patch. But it turned out is not something.

From what I saw in guides about pets, scaling auras seems to affect (and be recalculated) only for definitive pets, for temporary pets (such as the gargoyle) it seems that the stats are a snapshot of the summoner stats at summon, and doesn't change after (I have no proof, except guides telling to use heroism and all the buffs before summoning the pet). About expertise, for the warlock, it seems that it's the warlock hit rate that is used for the calculation, not his expertise (makes sense since I don't know many warlock with expertise).
I also saw that most of the current calculations are incorrect. Look at the strength attribute in the spell tab, it say it gives strength - 20 as attack power, in the core we generally use strength *2. Also intellect and agility are supposed to increase the pet crit and spell crit. Mana and health seems poorly calculated too.

"If a player is at their appropriate spell hit chance or hit chance maximum, their pet will be at the maximum for spell hit chance, hit chance, and expertise. If they are below the maximum, their pet will be proportionately below those maximums."

source: http://www.wowwiki.com/Minion

I will change tomorrow:
Spell critical strike chance n/a
(30% as physical and spell critical strike chance with 3/3 Improved Demonic Tactics)

I don't get why you close issues that are connected with base stats like stamina/ap/intellect/agility/spellpower/min dmg etc when this is about other stuff.

Pet need calculate with aura not with hack... and aura script is not complete.

warlock: 35697, 34958, 34957, 34956, 34947, 61013
hunter: 34902, 34903, 34904, 61017
dk: 51996, 54566, 61697
mage: n/a
shaman: 61783

@Vincent-Michael

Take a look at these for scaling info. The Warlock one has a nice chart.

Hunters: http://www.wowpedia.org/Hunter_pet#Pet_scaling

Warlocks: http://www.wowpedia.org/Minion#Minion_scaling

del

Why we must do it with auras ?
All pets receive 100% resilience , spell penetration, hit and expertise from their master.
For example spell id 61783 where is expertise ?

Some scaling for example Feral spirit (spirit wolf enhancement) scale attack power every time when shaman get attack power + or -, but stamina,armor,hit... only at summon

And pets crit ...why only hunter pets get crit from pets agility ? water elementals have intelect and they get 0.00% spell crit ... spirit wolfs get 0.00% from wolfs agility or this bug is only visual ?

@drskull: Part of the problem is pets (Hunter) and minions (Warlock) are two different things but Trinity tries to utilize the same stat system for both. They each really need their own system, IMO.

If you look at the charts on wowpedia, Warlock minions only receive 40% resilience and spell hit/penetration/expertise is only capped for the minion when the master's is capped.

For Hunter pets, the stats are different... 1 resilience = 1 resilience

Also, as you mentioned some stats are calculated only at pet load which means when the master puts on new armor or gains a new talent, in order for scaling to apply the pet must be dismissed and resummoned. This is not Blizz-like.

http://www.wowpedia.org/Minion
Next to 40% is small 1
Patch 3.2.0
All pets now receive 40% of their master's resilience and 100% of their master's spell penetration. In addition, if a player is at their appropriate spell hit chance or hit chance maximum, their pet will be at the maximum for spell hit chance, hit chance, and expertise. If they are below the maximum, their pet will be proportionately below those maximums.
Patch 3.3.0
Pet Resilience: All player pets now get 100% of their master's resilience.
I preffer http://www.wowwiki.com/

I dont thing there is a big difference between all combat pets.(http://www.wowwiki.com/Pets)

  1. Base stats for this we use database
  2. Spell crit calc from intelect and melee crit calc from agility
    Maybe this is same for all
  3. Scalling (Base scalling and "extra scalling")
    Base scaling = 100% of their master's resilience and 100% of their master's spell penetration and hit chance
    For extra i will use Feral spirit
    Stat Scaling
    Stamina 0.30
    Hit Rating 1.00
    Attack Power 0.30
    Armor 0.35

@drskull shush. we are a blizzlike server and blizzard uses auras to set up the pets stats systems. this is how its supposed to work and how its going to work. as far as i could find warlock pets didnt get the same resilience bonus that hunter pets did.

@drskull: The aura system is still a better way to do this, it will be more accurate in updating the stats when the master's stats change.

is anyone working with this patch? is it good? does it has bugs?
can @Vincent-Michael get it up to date?
what is curerntly missing?

I have the same questions as Amit :)

i third this.

I'd be willing to take this over but I still need to get familiar with the aura system. Don't expect to have it complete in a couple days :)

Does this work even if you swap equip/talents or you need to dismiss&resummon the pet to update stats?
Also if you use owner->GetTotalAuraModifier with SPELL_AURA_MOD_SPELL_CRIT_CHANCE and SPELL_AURA_MOD_WEAPON_CRIT_PERCENT, doesn't the pet get double bonus from buffs like 24932 and 24907 (one for the aura on the pet, one for the aura on the owner)?

Yes crit is doubled with this at pet stats ... tested

Yes crit is doubled with this at pet stats ... tested

In order to move to the aura system, most of the existing functions will also need to be rewritten. Just slapping the patch in the OP onto the core will probably break more than it fixes.

Obviously owner->GetTotalAuraModifier() isn't designed to handle an aura.

most of the existing functions will also need to be rewritten

Issue totally summed up. The way we handle pet stats atm is totally wrong because we do not use blizz'spells at all.

@Warpten

That's why I've been avoiding this LOL.

Stats have been playable but not perfect but since Hunters are my favorite class I guess I've got to knuckle down and learn more about how the aura system works.

What confuses me about auras is what triggers them. When I was looking into Frenzy, I put a breakpoint on every function in the aura system but nothing broke when the spell proc'd.

So for the pet stats, I need to understand how the aura is triggered when the owner, for example, changes armor so we can properly update the stats.

Those spells are non-periodic so i think we have to update them manually, which kind of sucks.

Those spells are non-periodic so i think we have to update them manually, which kind of sucks

Right now the whole scaling system sucks. The values aren't too far off, the problem is most changes you make to either your stats or the pet's talents require you to have to dismiss / recall the pet for them to update since a lot of them are only applied when the pet is loaded.

Yup, i know, because pet scaling stats spells have their own skill family, and they are only applied when the pet is summoned. Afaik, they are not even used. Stats are updating after recalling your pet because InitStats() gets called when it's spawned in world.

[Edit] Ups i didnt read you totally, im actually repeating what you just said. /me slaps self.

Those spells are non-periodic so i think we have to update them manually, which kind of sucks.

What about using https://github.com/TrinityCore/TrinityCore/pull/5385 or making a similar system?

This is not a good idea, its way better to update their amount only if the owner's stats change.

This is not a good idea, its way better to update their amount only if the owner's stats change.

Agree. Especially since there are a lot of things that can change the player's base stats which would also change the pet:

Player levels up
Player changes armor
Player changes talents
Player has debuff that reduces sta / agi / ap / wtf?

I don't really see the need for an aura hook since the auras have their own Update(). We just need to implement them since as you mentioned, the stats don't currently use auras.

base implementation added into spell_pet. use this for all pet spells and scaling.

base implementation added into spell_pet. use this for all pet spells and scaling.

Ooh, really? Which commit was that added on?

Nevermind, found it: 69ea6b5d323a6834fd4e54c6979de20ffc596be2

@ste1s

I'm pretty sure we're going to write this on our own. Our pets are already better than ManGOS, I don't see the need to merge their pet system into ours.

Our goal is to move to auras anyway and what you posted doesn't use auras.

@MrSmite mangosr2's changes are worth checking, that fork is not stagnating like mangos.

You are wrong, the system uses the scaling stats of the aura, its also not a pure merge mangos, 袨ur pets are very bad. Test it pls

Oops, sorry. I didn't notice the SpellAuraEffects and related stuff.

Looks like it might be worth checking out after all :)

it is worth checking out but i still beleive that spell scripts are the way we should be going.

some of those auras that are being added are just totally wrong. i have auras from sniffs ^^

@Kandera

Yeah, that's what I was trying to get at with my original reply to the ManGOS suggestion. In my experience with Hunters and pets in ManGOS, a lot of the data is guess-work which is why I said our pets are already better, even with the rudimentary system we have.

I also think the aura scripts are a better way since you can create and tweak an individual script for each class's pet, plus you can then add in the armor set bonuses (like Hunter T3) which add auras to the pets.

imo it should be in pet system directly not in spell script, make no sense to put it here, calculating =/= spell

except its the spell calculating it and we have function in aura scripts for calculating. in tc it should be in aura scripts as the spell should be what is handling the calculations not just the core

imo it should be in pet system directly not in spell script, make no sense to put it here, calculating =/= spell

Maybe you don't understand what Blizzard auras are.

An aura is a type of passive spell that provides a modification to another spell or stat. The aura itself already has a calculation in it (ie: +10% crit).

In TC the aura system is already set up to apply these modifications (see Paladin auras), it just hasn't been used for Pets yet.

I was at 2K3 mmr on retail so i know WoW pretty good, the fact is i don't undestand why would you put it in spellscript even if they is a function for aura scripts that doesn't mean it should be handled there

yes it should. the only thing we really need to do is calculate the basepoints to be added to the pet which is done on calcamount which we can do using an aura script. it makes things more organized for later review. also putting it in the pet system is what we are currently trying to avoid with these changes.

I understand thank you

thank you for your input. if you have any ideas on the calculations in the stats that im making please feel free to speak up

Nothing new? In particular, a correction of damage Felguard which is extremely low?

Hunter Pet HP Scaling

src\server\game\Entities\Pet.ccp
        case HUNTER_PET:
        {
            SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, uint32(sObjectMgr->GetXPForLevel(petlevel)*PET_XP_FACTOR));
            //these formula may not be correct; however, it is designed to be close to what it should be
            //this makes dps 0.5 of pets level
            SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel - (petlevel / 4)));
            //damage range is then petlevel / 2
            SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel + (petlevel / 4)));
            //damage is increased afterwards as strength and pet scaling modify attack power
+          SetModifierValue(UNIT_MOD_STAT_STAMINA, BASE_VALUE, float(m_owner->GetStat(STAT_STAMINA)) * 0.3f);  //  Bonus Stamina (30% of player stamina)

When will release a complete pet stat system? I've been trying the mangOS system adapted but no Lucky, is a bit crashy, i think with a little modifications it will run perfectly

@Nastrand

Not sure if this is on hold. Go to the forums and look for the IRC address and hop on and ask if Kandera is still working on it.

Honestly I don't think so. There's currently no hook in AuraScript that allows to update all the auras related to one stat when the owner updates it.

Mage: 44559, 89764

Skill (Id 805) "Pet - Water Elemental"

Is somebody working on this ?

load() == false if you cast temporary pet (GetCaster()->GetOwner() == null)
you need to use GetCaster()->ToTempSummon()->GetSummoner() if you want owner

Got it done on laptop for 434, will just need the laptop (which i do not have) and a LOT of 335 data

Any news on this?

@Warpten Still no laptop :( ?

apparently xD

I'm looking forward to any news about progress on this issue, both from a DK and hunter perspective. @Warpten Do you need funding to get a new laptop? Post a link on your user page, if so. ;-)

I above all need to move to a new house and get a job

his laptop went MIA, suspected dead. RIP

@Zedron : Ouch. For a second there, I was hoping that you were joking. If it's true, then it's a good reason to post a sad face. :-(

someone could add a fix for spellpenetration :)
the pet should have 100% of the spellpenetration from the master

@Vincent-Michael this can be merged?

Any news about this? @Vincent-Michael ?

Implement it is easy Raydor.
Hard part is: Information....
How much of each status should pets inherit? Without this information, it will never be ready. 馃槃

@xinef1 Is sunwellcore pet stat system correct? Do you have and can share sunwell's patch? :P

Hard part is: Information....
How much of each status should pets inherit? Without this information, it will never be ready.

This is the closest thing available. It doesn't specifically say which patch its from but it does make a mention to 3.2.0 in the text regarding hit formulas and 3.3.0 in the resilience note:

http://wow.gamepedia.com/Hunter_pet#Pet_scaling
Pets receive attribute bonuses at 15% of their master's/mistress' stats:

  • 1 ranged attack power gives the pet 0.22 AP and 0.1287 spell damage (0.338 AP and 0.18 spell damage with 2/2 [Wild Hunt]).
  • 1 stamina gives 0.45 stamina untalented (erroneously reported as 0.3 stamina in the Hunter's stamina tooltip), or 0.63 stamina with 2/2 [Wild Hunt]). Hunter pets do not gain any health from their base stamina, and gain 10.5 health for each additional point of stamina (10 health per additional stamina before the inherent pet health bonus, which was standardized to 5% in Patch 3.1.0).
  • 1 resistance gives 0.4 resistance.
  • 1 armor gives 0.35 armor.
  • 1 point of spell penetration gives 1 point of spell penetration to your pet.[1]
  • 1 point of resilience gives 1 point of resilience rating to your pet as of Patch 3.3.0. Previously, it was 0.4 points of resilience per 1 point.[2]
  • The scaling formulas for hit are not yet available, however the Patch 3.2.0 notes stat that "If a player is at their appropriate spell hit chance or hit chance maximum, their pet will be at the maximum for spell hit chance, hit chance, and expertise. If they are below the maximum, their pet will be proportionately below those maximums.".[1]

If it's helpful, I went back and found the same information on an archive.org snapshot of WoWWiki taken shortly before the release of 4.0.1, so it is likely the best information available.

Maybe this would be helpful as well - old SimulationCraft math from 3.3.5a, I think?

I'd imagine this is the most accurate information that is readily available.

sc_warlock.cpp
sc_hunter.cpp
sc_pet.cpp

Was this page helpful?
0 / 5 - 0 ratings