BugFix
Members-
Posts
8 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
BugFix's Achievements
Newbie (1/3)
0
Reputation
-
* What bug does the patch fix? What features does the patch add? If caster of Spells like Rain of Bones(37098) is above the target, z-coordinates are taken from caster but x and y from target. So we get a strage effect. * For which repository revision was the patch created? 0.12 rev 8569 * Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. Dont know * Who has been writing this patch? Please include either forum user names or email addresses. me The fix changes Z coords of TargetMap for TARGET_RANDOM_NEARBY_DEST. diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index bd4ca17..0b37d25 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -1311,7 +1348,7 @@ void Spell::SetTargetMap(SpellEffectIndex effIndex, uint32 targetMode, UnitList& float angle = 2.0f * M_PI_F * rand_norm_f(); float dest_x = m_targets.m_destX + cos(angle) * radius; float dest_y = m_targets.m_destY + sin(angle) * radius; - float dest_z = m_caster->GetPositionZ(); + float dest_z = m_targets.m_destZ; m_caster->UpdateGroundPositionZ(dest_x, dest_y, dest_z); m_targets.setDestination(dest_x, dest_y, dest_z);
-
The old stucture is: If(special heal calculation) else if(special heal calculation) else(normal heal calculation) With your patch its changes in If(special heal calculation) if(spell == Flash of light) else if(special heal calculation) else(normal heal calculation) So if you cast Flash of light mangos skips the "else(normal heal calculation)" You can avoid that by placing your code above "// Vessel of the Naaru (Vial of the Sunwell trinket)"
-
I know. Even this will never be comitted, its can be a solution for some TBC server until something else can be used.
-
* What bug does the patch fix? What features does the patch add? Bug in Battleground.cpp so only the winner-team gets EY mark of honor * For which repository revision was the patch created? mangos 0.12 commit http://github.com/mangos/mangos/commit/6f44fd6b7913d3834eae75ebbba35f833107830c * Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. Dont know * Who has been writing this patch? Please include either forum user names or email addresses. me diff --git a/src/game/BattleGround.cpp b/src/game/BattleGround.cpp index cc34085..cbfac8b 100644 --- a/src/game/BattleGround.cpp +++ b/src/game/BattleGround.cpp @@ -604,8 +635,7 @@ void BattleGround::RewardMark(Player *plr,uint32 count) RewardSpellCast(plr,SPELL_AB_MARK_LOSER); break; case BATTLEGROUND_EY: - if (count == ITEM_WINNER_COUNT) - RewardItem(plr,ITEM_EY_MARK_OF_HONOR,count); + RewardItem(plr,ITEM_EY_MARK_OF_HONOR,count); break; default: break; http://paste2.org/p/905081
-
thanks for advice. updated first post
-
bump any comment? someone against implementation?
-
updated first post
-
- What bug does the patch fix? What features does the patch add? 32264 ( Inhibit Magic ) Should stack depending on range to caster. It comes with a function to handle similar spells - For which repository revision was the patch created? 8569 mangos 0.12 - Who has been writing this patch? me http://paste2.org/p/788465 diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 2e0d0dc..e488b61 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2050,6 +2050,46 @@ void Aura::TriggerSpell() /*** AURA EFFECTS ***/ /*********************************************************/ +void Aura::StackByRange(float max_range, float min_range, int32 stack_size) +{ + Unit* caster = GetCaster(); + uint32 spell_id = m_spellProto->Id; + + if(m_target->IsWithinDist(caster, min_range) || !caster || !caster->isAlive() || !m_target || !m_target->isAlive()) + return; + + + SpellEntry* TempSpell = (SpellEntry*)GetSpellStore()->LookupEntry(spell_id); + if(m_target->IsWithinDist(caster, max_range)) + { + Unit::AuraMap& auras = m_target->GetAuras(); + int32 count = 0; + for(Unit::AuraMap::iterator i = auras.begin(); i != auras.end(); ++i) + { + if(i->second->GetId() == spell_id) + ++count; + } + for(count; count < stack_size; ++count) + { + for (uint8 i = 0; i < 3; ++i) + { + if (!TempSpell->Effect[i]) + continue; + m_target->AddAura(new Aura(TempSpell, SpellEffectIndex(i), NULL, m_target, caster)); + } + } + for(count; count > stack_size; --count) + { + for (uint8 i = 0; i < 3; ++i) + { + if (!TempSpell->Effect[i]) + continue; + m_target->RemoveSingleAuraFromStack(spell_id, SpellEffectIndex(i)); + } + } + } +} + void Aura::HandleAuraDummy(bool apply, bool Real) { // spells required only Real aura add/remove @@ -5060,6 +5100,18 @@ void Aura::HandleModSpellCritChanceShool(bool /*apply*/, bool Real) void Aura::HandleModCastingSpeed(bool apply, bool /*Real*/) { + if (apply) + { + switch(m_spellProto->Id) + { + case 32264: + StackByRange(50.0f, 35.0f, 4); + StackByRange(35.0f, 25.0f, 3); + StackByRange(25.0f, 10.0f, 2); + StackByRange(10.0f, 0, 1); + break; + } + } m_target->ApplyCastTimePercentMod(float(m_modifier.m_amount),apply); } diff --git a/src/game/SpellAuras.h b/src/game/SpellAuras.h index 3e653a2..abeb401 100644 --- a/src/game/SpellAuras.h +++ b/src/game/SpellAuras.h @@ -217,6 +217,7 @@ class MANGOS_DLL_SPEC Aura virtual ~Aura(); + void StackByRange(float max_range, float min_range, int32 stack_size); void SetModifier(AuraType t, int32 a, uint32 pt, int32 miscValue); Modifier* GetModifier() {return &m_modifier;} int32 GetMiscValue() {return m_spellProto->EffectMiscValue[m_effIndex];}
Contact Us
To contact us
click here
You can also email us at [email protected]
Privacy Policy | Terms & Conditions
You can also email us at [email protected]
Privacy Policy | Terms & Conditions
Copyright © getMaNGOS. All rights Reserved.
This website is in no way associated with or endorsed by Blizzard Entertainment®
This website is in no way associated with or endorsed by Blizzard Entertainment®