diff options
author | Shauren <shauren.trinity@gmail.com> | 2011-03-15 13:23:52 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2011-03-15 13:23:52 +0100 |
commit | 12b65aa206f1b7b942fb5b6ea076d18642faccc7 (patch) | |
tree | 692a0850431f1b6399007260142493ff49673409 /src | |
parent | 119bb6fcd5b2c17173648f0bc58523e84117f71b (diff) |
Core/Pets
Fixed infinite cooldown bugging after relogging
Restored pet create health for pets without pet_levelstats data
Corrected health gain from stamina for DK Ghouls
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Pet/Pet.cpp | 7 | ||||
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 4 | ||||
-rwxr-xr-x | src/server/game/Entities/Unit/StatSystem.cpp | 3 | ||||
-rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 2 |
4 files changed, 8 insertions, 8 deletions
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index f1183d48c9c..cd1ee422ee1 100755 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -280,7 +280,7 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petentry, uint32 petnumber, bool c data << uint32(GetUInt32Value(UNIT_CREATED_BY_SPELL)); data << uint32(256); // CAST_FLAG_UNKNOWN3 data << uint32(0); - SendMessageToSet(&data, true); + owner->SendMessageToSet(&data, true); } owner->SetMinion(this, true); @@ -893,8 +893,9 @@ bool Guardian::InitStatsForLevel(uint8 petlevel) else // not exist in DB, use some default fake data { // remove elite bonuses included in DB values - //SetCreateHealth(uint32(((float(cinfo->maxhealth) / cinfo->maxlevel) / (1 + 2 * cinfo->rank)) * petlevel)); - //SetCreateMana(uint32(((float(cinfo->maxmana) / cinfo->maxlevel) / (1 + 2 * cinfo->rank)) * petlevel)); + CreatureBaseStats const* stats = sObjectMgr->GetCreatureBaseStats(petlevel, cinfo->unit_class); + SetCreateHealth(stats->BaseHealth[cinfo->expansion]); + SetCreateMana(stats->BaseMana); SetCreateStat(STAT_STRENGTH, 22); SetCreateStat(STAT_AGILITY, 22); diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 76e1323cd20..e31c54d07a3 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -20603,10 +20603,10 @@ void Player::AddSpellCooldown(uint32 spellid, uint32 itemid, time_t end_time) void Player::SendCooldownEvent(SpellEntry const *spellInfo, uint32 itemId, Spell* spell) { // start cooldowns at server side, if any - AddSpellAndCategoryCooldowns(spellInfo,itemId,spell); + AddSpellAndCategoryCooldowns(spellInfo, itemId, spell); // Send activate cooldown timer (possible 0) at client side - WorldPacket data(SMSG_COOLDOWN_EVENT, (4+8)); + WorldPacket data(SMSG_COOLDOWN_EVENT, 4 + 8); data << uint32(spellInfo->Id); data << uint64(GetGUID()); SendDirectMessage(&data); diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp index d31e9f943f3..6a574e5489c 100755 --- a/src/server/game/Entities/Unit/StatSystem.cpp +++ b/src/server/game/Entities/Unit/StatSystem.cpp @@ -1091,11 +1091,10 @@ void Guardian::UpdateMaxHealth() case ENTRY_SUCCUBUS: multiplicator = 9.1f; break; case ENTRY_FELHUNTER: multiplicator = 9.5f; break; case ENTRY_FELGUARD: multiplicator = 11.0f; break; - case ENTRY_GHOUL: multiplicator = 5.4f; break; default: multiplicator = 10.0f; break; } - float value = GetModifierValue(unitMod, BASE_VALUE) + GetCreateHealth(); + float value = GetModifierValue(unitMod, BASE_VALUE) + GetCreateHealth(); value *= GetModifierValue(unitMod, BASE_PCT); value += GetModifierValue(unitMod, TOTAL_VALUE) + stamina * multiplicator; value *= GetModifierValue(unitMod, TOTAL_PCT); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index b2d44e0a8a8..09f5a591408 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -9622,7 +9622,7 @@ void Unit::SetMinion(Minion *minion, bool apply) // Send infinity cooldown - client does that automatically but after relog cooldown needs to be set again SpellEntry const *spellInfo = sSpellStore.LookupEntry(minion->GetUInt32Value(UNIT_CREATED_BY_SPELL)); if (spellInfo && (spellInfo->Attributes & SPELL_ATTR0_DISABLED_WHILE_ACTIVE)) - this->ToPlayer()->AddSpellAndCategoryCooldowns(spellInfo, 0, NULL ,true); + this->ToPlayer()->AddSpellAndCategoryCooldowns(spellInfo, 0, NULL, true); } } else |