Jump to content

zergtmn

Members
  • Posts

    230
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by zergtmn

  1. And how it's related to this crash? Crash happens on line: if (Aura *aura = holder->GetAuraByEffectIndex(SpellEffectIndex(i))) "holder" can be deleted in previous iteration but then accessed again. Auras from same holder expire at the same time in most cases. But you force to start search from beginning every aura remove... Your solution is slower than mine. Search will already start from beginning if at least one aura gets removed because of line: removedAura = true;
  2. Omg, it's at least third version that I have seen
  3. How you can explain that exists special Titan's Grip spell for shields? It's not shown in client in any way. Also, currently Titan's Grip works with staves and polearms, but it shouldn't. So weapon masks can be used for such check.
  4. I think weapon types specified on spells http://www.wowhead.com/spell=46917 and http://www.wowhead.com/spell=50483 should be used somehow...
  5. Mangos Version:10241 How it SHOULD work: If spell applies multiple auras and at least one aura is affected by duration reduction effects all other auras also have their duration reduced. How it DOES work: Only directly affected aura has reduced duration. All other auras have full duration. Tested on official server spell http://www.wowhead.com/spell=53308 against a hunter with talent http://www.wowhead.com/spell=24283 (30% root reduction). This spell has 10 second base duration in PvP. Periodic damage aura ticks 3 times in 10 seconds on target without talent http://www.wowhead.com/spell=24283 With talent, periodic damage aura lasts 7 seconds (PvP diminishing is applied before duration reduction) and ticks 2 times. So root mechanic duration reduction also affects duration of periodic damage aura. Added: Also tested spell http://www.wowhead.com/spell=48156 on offy in similar way. With reduction from talent Surefooted it ticks 2 times and without - 3 times.
  6. zergtmn

    crash mangos

    ERROR:SQL ERROR: Duplicate entry '14997-[b]33377[/b]' for key 'PRIMARY' I think this aura (http://www.wowhead.com/spell=33377) shouldn't be saved to DB at all...
  7. Do you have Quartz addon? Install and you will see the difference. Quartz cast bar becomes red on interrupting.
  8. Some channeled spells always shown as interrupted in the end of cast. Tested on http://www.wowhead.com/spell=47857 on training dummies. I'm using http://wow.curse.com/downloads/wow-addons/details/quartz.aspx addon for cast bar. It is not addon bug because I don't have such problems on official server.
  9. Wrong diff. Second part still needed: http://paste2.org/p/921141
  10. Same bug with http://www.wowhead.com/spell=49004, http://www.wowhead.com/spell=50040, http://www.wowhead.com/spell=16864
  11. Revision 10227. Spell http://www.wowhead.com/spell=12577 seems to proc from talents, I have buff from it every time after logging in.
  12. Crashfix: diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index b5c3c3d..ff5b49e 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -4492,7 +4492,7 @@ void Unit::RemoveNotOwnSingleTargetAuras(uint32 newPhase) if(!newPhase) { RemoveSpellAuraHolder(iter->second); - m_spellAuraHolders.begin(); + iter = m_spellAuraHolders.begin(); } else { @@ -4500,7 +4500,7 @@ void Unit::RemoveNotOwnSingleTargetAuras(uint32 newPhase) if(!caster || !caster->InSamePhase(newPhase)) { RemoveSpellAuraHolder(iter->second); - m_spellAuraHolders.begin(); + iter = m_spellAuraHolders.begin(); } else ++iter; PM'ed Laise also.
  13. ASSERT checks if MotionMaster was initialized before use. If it's not initialized then you are using it wrong.
  14. Functors allow to check targets in any way you want. You can create a functor that will accept SpellEntry and pointer to caster in constructor and check if targets are in proper range for that spell. I don't bother if someone wants to use hacks in his private fork.
  15. Good idea but I don't like your naming style Also I think better to use functors here. Something like this: template<typename Check> Unit* Creature::SelectAttackingTarget(AttackingTarget type, uint32 position, Check condition) { ThreatList const& threatList = m_creature->getThreatManager().getThreatList(); UnitList targetList; for (ThreatList::const_iterator itr = threatList.begin(); itr != threatList.end(); ++itr) { if (Unit *pUnit = Unit::GetUnit(*this, (*itr)->getUnitGuid())) { if (condition(pUnit)) targetList.push_back(pUnit); } } UnitList::iterator itr = targetList.begin(); UnitList::reverse_iterator ritr = targetList.rbegin(); if (targetList.empty() || position >= targetList.size()) return NULL; switch (target) { case ATTACKING_TARGET_RANDOM: std::advance(itr, urand(position, targetList.size() - 1)); return *itr; case ATTACKING_TARGET_TOP: std::advance(itr, position); return *itr; case ATTACKING_TARGET_BOTTOM: std::advance(ritr, position); return *ritr; } return NULL; } Then calls would be like this: if(Unit* target = m_creature->SelectAttackingTarget(ATTACKING_TARGET_TOP, 0, UnitInRangeCheck(m_creature, ATTACK_DISTANCE))) ... This approach is more universal and simpler in use.
  16. I can confirm crash on rev 10160, but my dump is different: http://paste2.org/p/910267 Such crash happens sometimes after dying in spirit of redemption form while MC'ing a mob.
  17. Fingers of Frost doesn't work at all on clean core.
  18. Crash right after startup: http://paste2.org/p/908849
  19. Almost all data here is taken from TDB, so credits to them. I'm sorry if I forgot to say that somewhere.
  20. Confirm on rev. 10144.
×
×
  • 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