diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Entities/Pet/Pet.cpp | 12 | ||||
| -rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Globals/ObjectMgr.h | 6 |
3 files changed, 18 insertions, 6 deletions
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index 5ad30f70458..2d233e2f76d 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -904,8 +904,16 @@ bool Guardian::InitStatsForLevel(uint8 petlevel) SetBonusDamage(val * 0.15f); - SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel - (petlevel / 4))); - SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel + (petlevel / 4))); + if (pInfo) + { + SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(pInfo->minDamage)); + SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(pInfo->maxDamage)); + } + else + { + 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)); break; diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index c6fc79a51d0..00461bbfb99 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -3322,8 +3322,8 @@ void ObjectMgr::LoadPetLevelInfo() { uint32 oldMSTime = getMSTime(); - // 0 1 2 3 4 5 6 7 8 9 - QueryResult result = WorldDatabase.Query("SELECT creature_entry, level, hp, mana, str, agi, sta, inte, spi, armor FROM pet_levelstats"); + // 0 1 2 3 4 5 6 7 8 9 10 11 + QueryResult result = WorldDatabase.Query("SELECT creature_entry, level, hp, mana, str, agi, sta, inte, spi, armor, min_dmg, max_dmg FROM pet_levelstats"); if (!result) { @@ -3372,6 +3372,8 @@ void ObjectMgr::LoadPetLevelInfo() pLevelInfo->health = fields[2].GetUInt16(); pLevelInfo->mana = fields[3].GetUInt16(); pLevelInfo->armor = fields[9].GetUInt32(); + pLevelInfo->minDamage = fields[10].GetUInt16(); + pLevelInfo->maxDamage = fields[11].GetUInt16(); for (uint8 i = 0; i < MAX_STATS; i++) pLevelInfo->stats[i] = fields[i + 4].GetUInt16(); diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h index 6c5c69ad226..dbbdefc9874 100644 --- a/src/server/game/Globals/ObjectMgr.h +++ b/src/server/game/Globals/ObjectMgr.h @@ -663,7 +663,7 @@ typedef std::pair<ExclusiveQuestGroups::const_iterator, ExclusiveQuestGroups::co struct PetLevelInfo { - PetLevelInfo() : health(0), mana(0), armor(0) + PetLevelInfo() : health(0), mana(0), armor(0), minDamage(0), maxDamage(0) { for (uint16& stat : stats) stat = 0; @@ -672,7 +672,9 @@ struct PetLevelInfo uint16 stats[MAX_STATS]; uint16 health; uint16 mana; - uint16 armor; + uint32 armor; + uint16 minDamage; + uint16 maxDamage; }; struct MailLevelReward |
