From 90ff57fb40a6240aae0df91102e91cb979d50b3b Mon Sep 17 00:00:00 2001 From: Armano Date: Wed, 2 Oct 2013 17:22:51 +0200 Subject: Core/Arena: Fix reading opcode with badge data at creating arena team. --- src/server/game/Handlers/ArenaTeamHandler.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/server/game') diff --git a/src/server/game/Handlers/ArenaTeamHandler.cpp b/src/server/game/Handlers/ArenaTeamHandler.cpp index 6f48176db60..e29ad78a5b3 100644 --- a/src/server/game/Handlers/ArenaTeamHandler.cpp +++ b/src/server/game/Handlers/ArenaTeamHandler.cpp @@ -85,9 +85,9 @@ void WorldSession::HandleArenaTeamCreateOpcode(WorldPacket & recvData) recvData >> slot; recvData >> iconcolor; recvData >> bordercolor; - recvData >> icon; - recvData >> background; recvData >> border; + recvData >> background; + recvData >> icon; name = recvData.ReadString(recvData.ReadBits(8)); uint8 type = ArenaTeam::GetTypeBySlot(slot); -- cgit v1.2.3 From 757ef9e648224c9c3c2bdd6d12500a0802455cab Mon Sep 17 00:00:00 2001 From: Dekadence Date: Sun, 27 Oct 2013 02:10:31 +0100 Subject: Core/NetworkIO: Fix SMSG_REQUEST_PVP_REWARDS_RESPONSE structure This fix a visual error on client pvp rewards --- src/server/game/Entities/Player/Player.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/server/game') diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 83c305b8973..b8bc2428253 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7428,8 +7428,8 @@ void Player::SendPvpRewards() const packet << GetCurrencyWeekCap(CURRENCY_TYPE_CONQUEST_POINTS, true); packet << GetCurrencyOnWeek(CURRENCY_TYPE_CONQUEST_POINTS, true); packet << GetCurrencyWeekCap(CURRENCY_TYPE_CONQUEST_META_ARENA, true); - packet << GetCurrencyOnWeek(CURRENCY_TYPE_CONQUEST_META_ARENA, true); packet << GetCurrencyOnWeek(CURRENCY_TYPE_CONQUEST_META_RBG, true); + packet << GetCurrencyOnWeek(CURRENCY_TYPE_CONQUEST_META_ARENA, true); packet << GetCurrencyWeekCap(CURRENCY_TYPE_CONQUEST_POINTS, true); packet << GetCurrencyWeekCap(CURRENCY_TYPE_CONQUEST_META_RBG, true); GetSession()->SendPacket(&packet); -- cgit v1.2.3 From f9ccb6f585a4714a93f8422b31d89fd8287d3631 Mon Sep 17 00:00:00 2001 From: Warpten Date: Tue, 14 Jan 2014 20:37:17 +0100 Subject: Core/Spells: Fixed issues with spells using MaxRadius not considering radius spellmods. --- src/server/game/Spells/SpellInfo.cpp | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'src/server/game') diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index a094bf0603d..1da4767ae18 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -613,22 +613,15 @@ bool SpellEffectInfo::HasMaxRadius() const float SpellEffectInfo::CalcRadius(Unit* caster, Spell* spell) const { - if (!HasRadius()) - { - if (HasMaxRadius()) - { - //! Still not sure which to pick. Anyway at the current time (Patch 4.3.4) most of the spell effects - //! have no radius mod per level, and RadiusMin is equal to RadiusMax. - return MaxRadiusEntry->RadiusMin; - } - return 0.0f; - } + const SpellRadiusEntry* entry = RadiusEntry; + if (!HasRadius() && HasMaxRadius()) + entry = MaxRadiusEntry; - float radius = RadiusEntry->RadiusMin; + float radius = entry->RadiusMin; if (caster) { - radius += RadiusEntry->RadiusPerLevel * caster->getLevel(); - radius = std::min(radius, RadiusEntry->RadiusMax); + radius += entry->RadiusPerLevel * caster->getLevel(); + radius = std::min(radius, entry->RadiusMax); if (Player* modOwner = caster->GetSpellModOwner()) modOwner->ApplySpellMod(_spellInfo->Id, SPELLMOD_RADIUS, radius, spell); } -- cgit v1.2.3 From b2de15ef88462f9ef9e7294242af9c90e2777fd5 Mon Sep 17 00:00:00 2001 From: Warpten Date: Tue, 14 Jan 2014 20:44:56 +0100 Subject: Core/Players: Fixed some more "issues" with resilience. --- src/server/game/Entities/Unit/Unit.cpp | 10 ++++------ src/server/game/Entities/Unit/Unit.h | 5 ++--- src/server/game/Spells/Auras/SpellAuraEffects.cpp | 4 ++-- 3 files changed, 8 insertions(+), 11 deletions(-) (limited to 'src/server/game') diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 44c2b4a8da9..1eba9687b87 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -1016,7 +1016,7 @@ void Unit::CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 dama damage -= damageInfo->blocked; } - ApplyResilience(victim, &damage, crit); + ApplyResilience(victim, &damage); break; } // Magical Attacks @@ -1030,7 +1030,7 @@ void Unit::CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 dama damage = SpellCriticalDamageBonus(spellInfo, damage, victim); } - ApplyResilience(victim, &damage, crit); + ApplyResilience(victim, &damage); break; } default: @@ -1242,7 +1242,7 @@ void Unit::CalculateMeleeDamage(Unit* victim, uint32 damage, CalcDamageInfo* dam damageInfo->HitInfo |= HITINFO_AFFECTS_VICTIM; int32 resilienceReduction = damageInfo->damage; - ApplyResilience(victim, &resilienceReduction, damageInfo->hitOutCome == MELEE_HIT_CRIT); + ApplyResilience(victim, &resilienceReduction); resilienceReduction = damageInfo->damage - resilienceReduction; damageInfo->damage -= resilienceReduction; damageInfo->cleanDamage += resilienceReduction; @@ -14438,7 +14438,7 @@ void Unit::SendPlaySpellVisualKit(uint32 id, uint32 unkParam) SendMessageToSet(&data, true); } -void Unit::ApplyResilience(Unit const* victim, int32* damage, bool isCrit) const +void Unit::ApplyResilience(Unit const* victim, int32* damage) const { // player mounted on multi-passenger mount is also classified as vehicle if (IsVehicle() || (victim->IsVehicle() && victim->GetTypeId() != TYPEID_PLAYER)) @@ -14457,8 +14457,6 @@ void Unit::ApplyResilience(Unit const* victim, int32* damage, bool isCrit) const if (!target) return; - if (isCrit) - *damage -= target->GetCritDamageReduction(*damage); *damage -= target->GetDamageReduction(*damage); } diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index ed26722931f..45ac5f6a591 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1473,10 +1473,9 @@ class Unit : public WorldObject void DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabilityLoss); // player or player's pet resilience (-1%) - uint32 GetCritDamageReduction(uint32 damage) const { return GetCombatRatingDamageReduction(CR_RESILIENCE_CRIT_TAKEN, 2.2f, 33.0f, damage); } - uint32 GetDamageReduction(uint32 damage) const { return GetCombatRatingDamageReduction(CR_RESILIENCE_PLAYER_DAMAGE_TAKEN, 2.0f, 100.0f, damage); } + uint32 GetDamageReduction(uint32 damage) const { return GetCombatRatingDamageReduction(CR_RESILIENCE_PLAYER_DAMAGE_TAKEN, 1.0f, 100.0f, damage); } - void ApplyResilience(Unit const* victim, int32 * damage, bool isCrit) const; + void ApplyResilience(Unit const* victim, int32* damage) const; float MeleeSpellMissChance(Unit const* victim, WeaponAttackType attType, uint32 spellId) const; SpellMissInfo MeleeSpellHitResult(Unit* victim, SpellInfo const* spellInfo); diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 8eabf4d148a..3357b856a56 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -5835,7 +5835,7 @@ void AuraEffect::HandlePeriodicDamageAurasTick(Unit* target, Unit* caster) const damage = caster->SpellCriticalDamageBonus(m_spellInfo, damage, target); int32 dmg = damage; - caster->ApplyResilience(target, &dmg, crit); + caster->ApplyResilience(target, &dmg); damage = dmg; caster->CalcAbsorbResist(target, GetSpellInfo()->GetSchoolMask(), DOT, damage, &absorb, &resist, GetSpellInfo()); @@ -5902,7 +5902,7 @@ void AuraEffect::HandlePeriodicHealthLeechAuraTick(Unit* target, Unit* caster) c } int32 dmg = damage; - caster->ApplyResilience(target, &dmg, crit); + caster->ApplyResilience(target, &dmg); damage = dmg; caster->CalcAbsorbResist(target, GetSpellInfo()->GetSchoolMask(), DOT, damage, &absorb, &resist, m_spellInfo); -- cgit v1.2.3 From 2d54b88d5726e1fc7c8f9df737f9b41c66418db6 Mon Sep 17 00:00:00 2001 From: Warpten Date: Wed, 15 Jan 2014 19:37:25 +0100 Subject: Core/Spells: Crash fix for f9ccb6f585a4714a93. Closes #11447. My bad. --- src/server/game/Spells/SpellInfo.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/server/game') diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 1da4767ae18..334f0cd80d5 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -617,6 +617,9 @@ float SpellEffectInfo::CalcRadius(Unit* caster, Spell* spell) const if (!HasRadius() && HasMaxRadius()) entry = MaxRadiusEntry; + if (!entry) + return 0.0f; + float radius = entry->RadiusMin; if (caster) { -- cgit v1.2.3 From eb2818e74a7a022cb41443aec866b6ed02bafb16 Mon Sep 17 00:00:00 2001 From: Dekadence Date: Fri, 17 Jan 2014 13:33:02 +0100 Subject: Core/VoidStorage: Fix SMSG_VOID_STORAGE_CONTENTS structure * If you have items stored in void storage with owner guid, the void storage appear empty or partitial emplty --- src/server/game/Handlers/VoidStorageHandler.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/server/game') diff --git a/src/server/game/Handlers/VoidStorageHandler.cpp b/src/server/game/Handlers/VoidStorageHandler.cpp index 24b677b94f4..cf117762801 100644 --- a/src/server/game/Handlers/VoidStorageHandler.cpp +++ b/src/server/game/Handlers/VoidStorageHandler.cpp @@ -161,6 +161,7 @@ void WorldSession::HandleVoidStorageQuery(WorldPacket& recvData) itemData.WriteByteSeq(itemId[0]); itemData.WriteByteSeq(itemId[6]); itemData.WriteByteSeq(creatorGuid[0]); + itemData.WriteByteSeq(creatorGuid[1]); itemData << uint32(item->ItemRandomPropertyId); -- cgit v1.2.3