Jump to content

KAPATEJIb

Members
  • Posts

    436
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by KAPATEJIb

  1. try this diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 0b9cd98..daaef3e 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -6550,6 +6550,26 @@ void Aura::HandleSchoolAbsorb(bool apply, bool Real) DoneActualBenefit *= caster->CalculateLevelPenalty(GetSpellProto()); m_modifier.m_amount += (int32)DoneActualBenefit; + + // now that the correct amount is computed, apply caster aura, if any + switch(m_spellProto->SpellFamilyName) + { + case SPELLFAMILY_PRIEST: + // Power Word: Shield + if (m_spellProto->SpellFamilyFlags & UI64LIT(0x0000000000000001)) + { + // Glyph of Power Word: Shield + if(Aura* glyph = caster->GetAura(55672,0)) + { + // instant heal glyph m_amount% of the absorbed amount + int32 heal = (glyph->GetModifier()->m_amount * m_modifier.m_amount)/100; + caster->CastCustomSpell(m_target, 56160, &heal, NULL, NULL, true, 0, this); + } + } + break; + default: + break; + } } } else diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 89b4c08..ab3eb1f 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -1859,17 +1859,7 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe preventDeathAmount = (*i)->GetModifier()->m_amount; continue; } - // Power Word: Shield - if (spellProto->SpellFamilyFlags & UI64LIT(00000001) && spellProto->Mechanic == MECHANIC_SHIELD) - { - // Glyph of Power Word: Shield - if (Aura *glyph = pVictim->GetAura(55672,0)) - { - int32 heal = int32(glyph->GetModifier()->m_amount * - (RemainingDamage >= currentAbsorb ? currentAbsorb : RemainingDamage) / 100); - pVictim->CastCustomSpell(pVictim, 56160, &heal, NULL, NULL, true, 0, *i); - } - } + // Reflective Shield if (spellProto->SpellFamilyFlags == 0x1 && canReflect) { because it works good with old code. Glyph should heal target at APPLY, not at damage taken
  2. another crashes with 9541 http://paste2.org/p/708502 http://paste2.org/p/708508 can be fixed by http://github.com/insider42/mangos/commit/f28c6333db5bd5cccce3ae24619caf683c8ad823 http://paste2.org/p/708510 http://paste2.org/p/708514 http://paste2.org/p/708516 http://paste2.org/p/708518
  3. What bug does the patch fix? What features does the patch add? Fixes stacking problem for http://www.wowhead.com/?spell=1459 & http://www.wowhead.com/?spell=23028 vs http://www.wowhead.com/?spell=61024 For which repository revision was the patch created? 9556 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. can't find any Who has been writing this patch? Please include either forum user names or email addresses. me diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index 9fcf50f..f502103 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -1492,6 +1492,10 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons if( (spellInfo_1->SpellFamilyFlags & UI64LIT(0x1)) && (spellInfo_2->SpellFamilyFlags & UI64LIT(0x400000)) || (spellInfo_2->SpellFamilyFlags & UI64LIT(0x1)) && (spellInfo_1->SpellFamilyFlags & UI64LIT(0x400000)) ) return false; + + // Arcane Intellect and Dalaran Intellect + if( (spellInfo_1->SpellFamilyFlags & UI64LIT(0x400)) && (spellInfo_2->SpellFamilyFlags & UI64LIT(0x400)) ) + return true; } // Detect Invisibility and Mana Shield (multi-family check) if( spellInfo_2->Id == 132 && spellInfo_1->SpellIconID == 209 && spellInfo_1->SpellVisual[0] == 968 ) commit http://github.com/insider42/mangos/commit/c28a240b48310e906c8c579e801dfaa3ac5261e8
  4. http://paste2.org/p/708484
  5. Confirmed with rev 9556 Maybe some1 know from what revision bug appears?
  6. then you can simply cancel it with right clicking, this is no good for passive spell
  7. More simple version diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 4e4c41a..ec1aec4 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4899,6 +4899,13 @@ SpellCastResult Spell::CheckCast(bool strict) return SPELL_FAILED_BAD_TARGETS; break; } + case SPELL_EFFECT_LEAP_BACK: + { + if(m_spellInfo->Id == 781) + if(!m_caster->isInCombat()) + return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW; + break; + } default:break; } }
  8. 9541 http://paste2.org/p/705239 http://paste2.org/p/705241 http://paste2.org/p/705269
  9. bug with forbearance removing by function related to this void Aura::HandleModMechanicImmunity(bool apply, bool /*Real*/) { uint32 misc = m_modifier.m_miscvalue; // Forbearance // in DBC wrong mechanic immune since 3.0.x if (GetId() == 25771) misc = MECHANIC_IMMUNE_SHIELD; in spellauras.cpp
  10. 9531 http://paste2.org/p/703580 http://paste2.org/p/703625 http://paste2.org/p/703629 http://paste2.org/p/703630 http://paste2.org/p/705142 http://paste2.org/p/705143 http://paste2.org/p/705145 http://paste2.org/p/705149 http://paste2.org/p/705150 http://paste2.org/p/705152
  11. it will remove forbearance debuff too. I think should be a flag, that allow spell to avoid immuned effects, because id checks (hacks) is not generic solution can someone try to find it in DBC's? hacked, but working version of patch + fix for Mass Dispel >> HERE << it would be good if someone create a function that can find all triggered spells by first spell and save it in array (to call it by id of main spell). This can simplify patch.
  12. just changed code style diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 98c73b8..8a49127 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -7437,13 +7437,15 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB // Drain Soul if (auraSpellInfo->SpellFamilyFlags & UI64LIT(0x0000000000004000)) { - Unit::AuraList const& mAddFlatModifier = GetAurasByType(SPELL_AURA_ADD_FLAT_MODIFIER); - for(Unit::AuraList::const_iterator i = mAddFlatModifier.begin(); i != mAddFlatModifier.end(); ++i) + // search for "Improved Drain Soul" dummy aura + Unit::AuraList const& mDummyAura = GetAurasByType(SPELL_AURA_DUMMY); + for(Unit::AuraList::const_iterator i = mDummyAura.begin(); i != mDummyAura.end(); ++i) { - if ((*i)->GetModifier()->m_miscvalue == SPELLMOD_CHANCE_OF_SUCCESS && (*i)->GetSpellProto()->SpellIconID == 113) + if ((*i)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK && (*i)->GetSpellProto()->SpellIconID == 113) { - // Drain Soul - CastCustomSpell(this, 18371, &basepoints[0], NULL, NULL, true, castItem, triggeredByAura); + // basepoints of trigger spell stored in dummyeffect of spellProto + int32 basepoints = (GetMaxPower(POWER_MANA) * ((*i)->GetSpellProto()->EffectBasePoints[2]+1))/100.0f; + CastCustomSpell(this, 18371, &basepoints, NULL, NULL, true, castItem, triggeredByAura); break; } }
  13. maybe if (!(spellInfo->SpellFamilyName == SPELLFAMILY_WARLOCK && (*itr)->GetSpellProto()->SpellIconID == 3176)) better?
  14. patch related bug and already fixed in latest sources on github
  15. with zergtmn's version spells that shouldn't break stealth will break it, spells like rogue's distract and others. I will add a fixed version to the first post of thread.
  16. i think relogged players should be teleported to instance entrace... this doesn't happens
  17. ok, found where is my problem... your patch works as should. It have problem only in one place (in my version too) - invisibility fades from you if your target has exploded by your Mage Bomb (talent spell)
  18. there is a bug, arcane blast debuff (36032) not removed after spell http://www.wowhead.com/?spell=5143 and ranks cast, i think it's because this spell have SPELL_AURA_PERIODIC_TRIGGER_SPELL, but we do check in EffectSchoolDMG (for some reasons this check won't affect on triggered spells), maybe need to add same check in his function?
  19. parry part is broken now... i can't find why
  20. as i know mirror images should cast only frostbolt. i was cleaned patch from trailing whitespaces and other... http://paste2.org/p/688345 core http://paste2.org/p/688346 sd2 but after applying the SD2 part server won't start... it says you missed some functions in mangosscript.dll
  21. link in first post is expired. Here the patch diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 3a19b61..90bd416 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -4651,6 +4651,20 @@ void Aura::HandleAuraPeriodicDummy(bool apply, bool Real) void Aura::HandlePeriodicHeal(bool apply, bool /*Real*/) { m_isPeriodic = apply; + + // Gift of the Naaru + if ((m_spellProto->SpellFamilyFlags2 & UI64LIT(0x80000000)) && m_spellProto->SpellVisual[0] == 7625) + { + Unit *caster = GetCaster(); + if (!caster) + return; + + int32 ap = int32 (0.22f * caster->GetTotalAttackPowerValue(BASE_ATTACK)); + int32 holy = caster->SpellBaseDamageBonus(GetSpellSchoolMask(m_spellProto)) + + caster->SpellBaseDamageBonusForVictim(GetSpellSchoolMask(m_spellProto), m_target); + holy = int32(holy * 377 / 1000); + m_modifier.m_amount += ap > holy ? ap : holy; + } } void Aura::HandlePeriodicDamage(bool apply, bool Real)
  22. bump.......
  23. i was used other patch for a long time... but forgot who is the author diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 21434ab..fbe37e2 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -1331,6 +1331,8 @@ void Unit::CalculateMeleeDamage(Unit *pVictim, uint32 damage, CalcDamageInfo *da damageInfo->TargetState = VICTIMSTATE_BLOCKS; damageInfo->blocked_amount = damageInfo->damage; } + else + damageInfo->procEx|=PROC_EX_NORMAL_HIT; // Partial blocks can still cause attacker procs damageInfo->damage -= damageInfo->blocked_amount; damageInfo->cleanDamage += damageInfo->blocked_amount; break;
  24. What bug does the patch fix? What features does the patch add? Fixed interrupt reduction effects work, for example http://www.wowhead.com/?spell=20254 For which repository revision was the patch created? 9411 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. can't find any Who has been writing this patch? Please include either forum user names or email addresses. Me diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 9346ad7..e2ff807 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -4972,7 +4972,7 @@ void Spell::EffectHealMaxHealth(SpellEffectIndex /*eff_idx*/) m_healing += heal; } -void Spell::EffectInterruptCast(SpellEffectIndex /*eff_idx*/) +void Spell::EffectInterruptCast(SpellEffectIndex eff_idx) { if(!unitTarget) return; @@ -4989,7 +4989,7 @@ void Spell::EffectInterruptCast(SpellEffectIndex /*eff_idx*/) // check if we can interrupt spell if ((curSpellInfo->InterruptFlags & SPELL_INTERRUPT_FLAG_INTERRUPT) && curSpellInfo->PreventionType == SPELL_PREVENTION_TYPE_SILENCE ) { - unitTarget->ProhibitSpellSchool(GetSpellSchoolMask(curSpellInfo), GetSpellDuration(m_spellInfo)); + unitTarget->ProhibitSpellSchool(GetSpellSchoolMask(curSpellInfo), unitTarget->CalculateSpellDuration(m_spellInfo, eff_idx, unitTarget)); unitTarget->InterruptSpell(CurrentSpellTypes(i),false); } }
×
×
  • 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