Jump to content

[BUG] Feral Spirit


Auntie Mangos

Recommended Posts

@@ -887,13 +903,24 @@ bool Pet::InitStatsForLevel(uint32 petlevel, Unit* owner)

            SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel - (petlevel / 4)) );
            SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel + (petlevel / 4)) );

            //SetModifierValue(UNIT_MOD_ATTACK_POWER, BASE_VALUE, float(cinfo->attackpower));
-
-            PetLevelInfo const* pInfo = sObjectMgr.GetPetLevelInfo(creature_ID, petlevel);
-            if(pInfo)                                       // exist in DB
+            PetLevelInfo const* pInfo = sObjectMgr.GetPetLevelInfo(creature_ID, petlevel);
+            if(cinfo->Entry == 29264) // Feral Spirit
+            {
+                SetCreateHealth(30*petlevel);
+                float dmg_multiplier = 0.3f;
+                if (owner->HasAura(63271)) // Glyph of Feral Spirit
+                    dmg_multiplier = 0.6f;
+                SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE,float((petlevel * 4 - petlevel) + (owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier)));
+                SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE,float((petlevel * 4 + petlevel) + (owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier)));
+
+                SetModifierValue(UNIT_MOD_ARMOR, BASE_VALUE, float(owner->GetArmor()) * 0.35f);  //  Bonus Armor (35% of player armor)
+                SetModifierValue(UNIT_MOD_STAT_STAMINA, BASE_VALUE,float(owner->GetStat(STAT_STAMINA)) * 0.3f);  //  Bonus Stamina (30% of player stamina)
+                
+            }else if(pInfo)                                       // exist in DB
            {
                SetCreateHealth(pInfo->health);
                SetCreateMana(pInfo->mana);

                if(pInfo->armor > 0)

I have this code, with this patch

http://getmangos.eu/community/showthread.php?12891-Multiple-Pets-support-%28Feral-Spirit-Force-of-Nature%29&highlight=feral+spirit

Now i have two wulfs with a attack dmg of 300-450 at level 70 and 1000 AP.

Link to comment
Share on other sites

@@ -887,13 +903,24 @@ bool Pet::InitStatsForLevel(uint32 petlevel, Unit* owner)

            SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel - (petlevel / 4)) );
            SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel + (petlevel / 4)) );

            //SetModifierValue(UNIT_MOD_ATTACK_POWER, BASE_VALUE, float(cinfo->attackpower));
-
-            PetLevelInfo const* pInfo = sObjectMgr.GetPetLevelInfo(creature_ID, petlevel);
-            if(pInfo)                                       // exist in DB
+            PetLevelInfo const* pInfo = sObjectMgr.GetPetLevelInfo(creature_ID, petlevel);
+            if(cinfo->Entry == 29264) // Feral Spirit
+            {
+                SetCreateHealth(30*petlevel);
+                float dmg_multiplier = 0.3f;
+                if (owner->HasAura(63271)) // Glyph of Feral Spirit
+                    dmg_multiplier = 0.6f;
+                SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE,float((petlevel * 4 - petlevel) + (owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier)));
+                SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE,float((petlevel * 4 + petlevel) + (owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier)));
+
+                SetModifierValue(UNIT_MOD_ARMOR, BASE_VALUE, float(owner->GetArmor()) * 0.35f);  //  Bonus Armor (35% of player armor)
+                SetModifierValue(UNIT_MOD_STAT_STAMINA, BASE_VALUE,float(owner->GetStat(STAT_STAMINA)) * 0.3f);  //  Bonus Stamina (30% of player stamina)
+                
+            }else if(pInfo)                                       // exist in DB
            {
                SetCreateHealth(pInfo->health);
                SetCreateMana(pInfo->mana);

                if(pInfo->armor > 0)

I have this code, with this patch

http://getmangos.eu/community/showthread.php?12891-Multiple-Pets-support-%28Feral-Spirit-Force-of-Nature%29&highlight=feral+spirit

Now i have two wulfs with a attack dmg of 300-450 at level 70 and 1000 AP.

But with this in lv 80 the feral spirits have too much damage, it can dmg 3000 in crit with the glyph.

Is there any fix for this? or could it possible to put a rev of mangos?

Link to comment
Share on other sites

  • 40 years later...

last rev Feral Spirit

Beats "as mobs", the loss pet increases nothing, glyph http://www.wowhead.com/item=45771 does not work.

In Trinity for a long time works. Here the idea therefrom is taken.

Pet.cpp Trinity

            case 29264: // Feral Spirit
               {
                   if (!pInfo)
                       SetCreateHealth(30*petlevel);

                   float dmg_multiplier = 0.3f;
                   if (HasAura(63271)) // Glyph of Feral Spirit
                       dmg_multiplier = 0.6f;

                   SetBonusDamage(int32(m_owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier));

                   SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE,float((petlevel * 4 - petlevel) + (m_owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier)));
                   SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE,float((petlevel * 4 + petlevel) + (m_owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier)));

                   SetModifierValue(UNIT_MOD_ARMOR, BASE_VALUE, float(m_owner->GetArmor()) * 0.35f);  //  Bonus Armor (35% of player armor)
                   SetModifierValue(UNIT_MOD_STAT_STAMINA, BASE_VALUE,float(m_owner->GetStat(STAT_STAMINA)) * 0.3f);  //  Bonus Stamina (30% of player stamina)
                   break;
               }

       SetCreateStat(STAT_STRENGTH, 22);
       SetCreateStat(STAT_AGILITY, 22);
       SetCreateStat(STAT_STAMINA, 25);
       SetCreateStat(STAT_INTELLECT, 28);
       SetCreateStat(STAT_SPIRIT, 27);
   }
   if (GetEntry() == 29264)
   {
       float apbonus=0.35f;

       // Glyph of Feral Spirit
       if (AuraEffect *aurEff = m_owner->GetAuraEffect(63271, 0))
           apbonus += aurEff->GetAmount() / 100.0f;
   }
   m_bonusdamage = 0;
   switch (petType)
   {

I have altered under mangos, loss and glyph does not work. The help Is necessary..

Pet.cpp

                
              SetCreateStat(STAT_STRENGTH, 22);
               SetCreateStat(STAT_AGILITY, 22);
               SetCreateStat(STAT_STAMINA, 25);
               SetCreateStat(STAT_INTELLECT, 28);
               SetCreateStat(STAT_SPIRIT, 27);
           }
           break;
       }
+     case 29264: // Feral Spirit
+               {
+    SetCreateHealth(30*petlevel);
+
+                   float dmg_multiplier = 0.3f;
+     if (HasAura(63271)) // Glyph of Feral Spirit
+                       dmg_multiplier = 0.6f;
+    SetBonusDamage(int32(owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier));
+            SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE,float((petlevel * 4 - petlevel) + (owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier)));
+            SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE,float((petlevel * 4 + petlevel) + (owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier)));
+
+                    SetModifierValue(UNIT_MOD_ARMOR, BASE_VALUE, float(owner->GetArmor()) * 0.35f);  //  Bonus Armor (35% of player armor)
+                    SetModifierValue(UNIT_MOD_STAT_STAMINA, BASE_VALUE,float(owner->GetStat(STAT_STAMINA)) * 0.3f);  //  Bonus Stamina (30% of player stamina)
+                    break;
+                     }
       case GUARDIAN_PET:
           SetUInt32Value(UNIT_FIELD_PETEXPERIENCE, 0);
           SetUInt32Value(UNIT_FIELD_PETNEXTLEVELEXP, 1000);

Sorry for my English

Link to comment
Share on other sites

  • 1 month later...

Why this ????

+ SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE,float((petlevel * 4 - petlevel) + (owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier)));

+ SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE,float((petlevel * 4 + petlevel) + (owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier)));

is only this

+ SetBonusDamage(int32(owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier));

Link to comment
Share on other sites

  • 2 months later...

+ SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE,float((petlevel * 4 - petlevel) + (owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier)));

+ SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE,float((petlevel * 4 + petlevel) + (owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier)));

In this line you can write other things in Damage calculation.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use