Jump to content

Sarjuuk

Members
  • Posts

    99
  • Joined

  • Last visited

  • Donations

    0.00 GBP 

Everything posted by Sarjuuk

  1. for one the error is still there and secondly the wiki is back http://www.pxr.dk/wowdev/wiki/index.php?title=Main_Page
  2. Call me picky, but i dislike getting my informations from a Community, that specializes in exploits and hacks. If madx just moved, even better, but i'll continue as soon, as i'm home again. I don't think a bit redundancy would hurt here^^ /e: i know, they have a creative branch, and The Druids of Azeroth Models are nice, but still ...
  3. Since madx.dk went down (probably forever) and with it the Wiki with the last (at least for me) known documentation of the DBCs, I'm currently rifling through the Google-Cache in an attempt to preserve whats still available. anyway while trying to add the SpellRange.dbc the following error occurred: this is independent from the given Summary I tried posting this: http://paste2.org/p/1471708 Other articles work fine. It's just this one
  4. I'm not saying that you're wrong (since i don't really know) but While it increases your armor, it effectively increases the amount absorbed by Power Word: Shield (Since absorb is calculated after armor and resistance). So it sounds only logical, that it should loose charges through the shield, as it is effectively in use.
  5. What features does the patch add? - Implements Flametongue Weapon - fully implements Flametongue Totem For which repository revision was the patch created? mangos-0.12 @ ea6b3de6dc0d7d9196b091561dae1cc89fa13ac8 Is there a thread in the bug report section or at lighthouse? as far as i can tell, none related to 0.12 Who has been writing this patch? Sarjuuk Code http://paste2.org/p/887048 SQL -- Update Elemental Weapons-Talent to support Flametongue Weapon UPDATE spell_affect SET SpellFamilyMask = SpellFamilyMask | 0x200000 WHERE effectid = 1 AND entry IN (16266, 29079, 29080); -- Custom spell_proc_event for Flametongue Weapon INSERT INTO spell_proc_event VALUES (33756, 0, 0, 0, 0, 0, 0, 100, 0); Notes: - I'm using this patch for quite some time and as far as i can tell, it has only one minor issue. In case of Flametongue Weapon, the code can't tell which weapon triggered the proc, so it will proc on both weapons. (if dualwielding) I'll share it anyway, maybe someone has an idea for this 'glitch' - Spell:33756 is Windfury Weapon 2 (passive) and is not used in in 2.4.3. It may be hackish, but the spells for Flamtongue Weapons are missing completely and needed some kind of replacement. This Spell is no longer in the spell.dbc in 3.x. Don't try to look it up on Wowhead ect .. it's not there any more...
  6. i think you forgot, that only a fraction of the people here, are United States citizens^^ happy holiday anyway :>
  7. Well, as a rule of thumb.. Mangos ist more stable, has cleaner coding Trinity has more features decide yourself, what suites you better :>
  8. well, my change worked (with 0.12) and since Missle Barrage also uses SPELLMOD_DURATION, there is a good chance, that it will work on master, for this case too. (note: Pictures of "the Client" aren't allowed here )
  9. just being curious here: would adding "if(Player* modOwner = spell->GetCaster()->GetSpellModOwner()) modOwner->ApplySpellMod(spellInfo->Id, SPELLMOD_DURATION, dur, spell);" to ApplyHasteToChannelSpell() fix spells like this one ? :>
  10. diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 11ac823..5b5cced 100644 (file) --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -4680,13 +4680,21 @@ void Aura::HandlePeriodicManaLeech(bool apply, bool /*Real*/) void Aura::HandleAuraModResistanceExclusive(bool apply, bool /*Real*/) { - for(int8 x = SPELL_SCHOOL_NORMAL; x < MAX_SPELL_SCHOOL;x++) + for (int8 x = SPELL_SCHOOL_NORMAL; x < MAX_SPELL_SCHOOL;x++) { - if(m_modifier.m_miscvalue & int32(1<<x)) + int32 oldMaxValue = 0; + if (m_modifier.m_miscvalue & int32(1<<x)) { - m_target->HandleStatModifier(UnitMods(UNIT_MOD_RESISTANCE_START + x), BASE_VALUE, float(m_modifier.m_amount), apply); - if(m_target->GetTypeId() == TYPEID_PLAYER) - m_target->ApplyResistanceBuffModsMod(SpellSchools(x), m_positive, float(m_modifier.m_amount), apply); + Unit::AuraList const& REAuras = m_target->GetAurasByType(SPELL_AURA_MOD_RESISTANCE_EXCLUSIVE); + for (Unit::AuraList::const_iterator i = REAuras.begin(); i != REAuras.end(); ++i) + if ( ((*i)->GetMiscValue() & int32(1<<x)) && (*i)->GetSpellProto()->Id != GetSpellProto()->Id) + if (oldMaxValue < (*i)->GetModifier()->m_amount) + oldMaxValue = (*i)->GetModifier()->m_amount; + + float value = (m_modifier.m_amount > oldMaxValue) ? m_modifier.m_amount - oldMaxValue : 0.0f; + m_target->HandleStatModifier(UnitMods(UNIT_MOD_RESISTANCE_START + x), BASE_VALUE, value, apply); + if (m_target->GetTypeId() == TYPEID_PLAYER) + m_target->ApplyResistanceBuffModsMod(SpellSchools(x), m_positive, value, apply); } } } Thats how Emme and I did it. Works with Mark of the Wild.
  11. GetMaxPositiveAuraModifier() may be the better choice. your current implementation results in conflicts with auras, adding resistance to more than one type. ie Mark of the Wild reproduce: 1. buff yourself Mark of the Wild 2. Buff yourself some other Resistance Aura (I used Fire Resistance Totem) 3. Remove Mark of the Wild (right-click the icon) 3a. note, that you'll still have the resistances in your character-sheet 4. Remove Fire Resistance Totem (unsummon Totem or run out of range) 4a. note, that your fire-resistance will show the correct value (0) while all other will have values like 20 anyway, nice that your working on it :>
  12. updated to: r9784 Note, that i just checked, whether it compiles. I didn't retest functionality! diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index d1d792f..f86f2e4 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -915,7 +915,7 @@ enum AuraState AURA_STATE_SWIFTMEND = 15, // T | AURA_STATE_DEADLY_POISON = 16, // T | AURA_STATE_ENRAGE = 17, // C | - //AURA_STATE_UNKNOWN18 = 18, // C t| + AURA_STATE_MECHANIC_BLEED = 18, // C t| //AURA_STATE_UNKNOWN19 = 19, // | not used //AURA_STATE_UNKNOWN20 = 20, // c | only (45317 Suicide) //AURA_STATE_UNKNOWN21 = 21, // | not used diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 6d3bd1e..eeafbfd 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -1063,6 +1063,10 @@ void Aura::_AddAura() // Enrage aura state if(m_spellProto->Dispel == DISPEL_ENRAGE) m_target->ModifyAuraState(AURA_STATE_ENRAGE, true); + + // Mechanic bleed aura state + if(GetAllSpellMechanicMask(m_spellProto) & (1 << (MECHANIC_BLEED-1))) + m_target->ModifyAuraState(AURA_STATE_MECHANIC_BLEED, true); } } } @@ -1140,6 +1144,23 @@ bool Aura::_RemoveAura() if(m_spellProto->Dispel == DISPEL_ENRAGE) m_target->ModifyAuraState(AURA_STATE_ENRAGE, false); + // Mechanic bleed aura state + if(GetAllSpellMechanicMask(m_spellProto) & (1 << (MECHANIC_BLEED-1))) + { + bool found = false; + Unit::AuraList const& mPerDmg = m_target->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE); + for(Unit::AuraList::const_iterator i = mPerDmg.begin(); i != mPerDmg.end(); ++i) + { + if(GetAllSpellMechanicMask((*i)->m_spellProto) & (1 << (MECHANIC_BLEED-1))) + { + found = true; + break; + } + } + if(!found) + m_target->ModifyAuraState(AURA_STATE_MECHANIC_BLEED, false); + } + uint32 removeState = 0; uint64 removeFamilyFlag = m_spellProto->SpellFamilyFlags; uint32 removeFamilyFlag2 = m_spellProto->SpellFamilyFlags2; diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index c29ce02..efdf0c2 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -9463,8 +9463,27 @@ bool Unit::IsSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM case SPELL_DAMAGE_CLASS_RANGED: { if (pVictim) + { crit_chance = GetUnitCriticalChance(attackType, pVictim); + // Rend and Tear - eff:1 + if(spellProto->SpellFamilyName == SPELLFAMILY_DRUID && spellProto->SpellIconID == 1680 && spellProto->SpellFamilyFlags & UI64LIT(0x00800000)) + { + if(pVictim->HasAuraState(AURA_STATE_MECHANIC_BLEED)) + { + AuraList const& dummyAuras = GetAurasByType(SPELL_AURA_DUMMY); + for(AuraList::const_iterator i = dummyAuras.begin(); i != dummyAuras.end(); ++i) + { + if((*i)->GetEffIndex() == 1 && (*i)->GetSpellProto()->SpellIconID == 2859) + { + crit_chance += (*i)->GetModifier()->m_amount; + break; + } + } + } + } + } + crit_chance+= GetTotalAuraModifierByMiscMask(SPELL_AURA_MOD_SPELL_CRIT_CHANCE_SCHOOL, schoolMask); break; } @@ -9932,8 +9951,8 @@ uint32 Unit::MeleeDamageBonus(Unit *pVictim, uint32 pdamage,WeaponAttackType att uint32 schoolMask = spellProto ? spellProto->SchoolMask : GetMeleeDamageSchoolMask(); uint32 mechanicMask = spellProto ? GetAllSpellMechanicMask(spellProto) : 0; - // Shred also have bonus as MECHANIC_BLEED damages - if (spellProto && spellProto->SpellFamilyName==SPELLFAMILY_DRUID && spellProto->SpellFamilyFlags & UI64LIT(0x00008000)) + // Shred and Maul also have bonus as MECHANIC_BLEED damages + if (spellProto && spellProto->SpellFamilyName==SPELLFAMILY_DRUID && spellProto->SpellFamilyFlags & UI64LIT(0x00008800)) mechanicMask |= (1 << (MECHANIC_BLEED-1)); @@ -10033,6 +10052,28 @@ uint32 Unit::MeleeDamageBonus(Unit *pVictim, uint32 pdamage,WeaponAttackType att if (!owner) owner = this; + // ..done (dummy auras) + if(spellProto) + { + AuraList const& casterDummyAuras = owner->GetAurasByType(SPELL_AURA_DUMMY); + for(AuraList::const_iterator i = casterDummyAuras.begin(); i != casterDummyAuras.end(); ++i) + { + if (!(*i)->isAffectedOnSpell(spellProto)) + continue; + + switch((*i)->GetSpellProto()->SpellIconID) + { + // Rend and Tear - eff:0 + case 2859: + { + if(pVictim->HasAuraState(AURA_STATE_MECHANIC_BLEED)) + DonePercent *= (100.0f+(*i)->GetModifier()->m_amount)/100.0f; + break; + } + } + } + } + // ..done (class scripts) if(spellProto) {
  13. anyway, here the update , without base paw damage: darkstalker has a point, though i didn't introduce a new var and just checked whether mBonusWeaponAtt and mLevelMult are both set. Patch for r9688 i still see it somewhat related to this patch, but without more data.. it may be more fitting to look into this afterwards.
  14. okay, just to pull the few datasets together.. well ... assuming, that they are all correct, if not... well better not think about it Level 28: 22.0 dps => 0.786 dps/level Level 34: 27.5 dps => 0.809 dps/level Level 60: 54.8 dps => 0.913 dps/level okay, just leaning out of the window here. But what if dps/level is a linear function: dpsPerLvl = 0.004 * lvl + 0.675
  15. well, than we'll finally need to check the replacement based on the strength of the effect. "A more powerful spell is in effect" (or what was the wording..?)
  16. no, thats not ideal. i'd rather suggest to use Unit::GetMaxNegativeAuraModifierByMiscMask() instead of Unit::GetTotalAuraMultiplierByMiscValueForMask() for this Aura-Type in your case a 30% Mangle could be overwritten with a 15% Trauma
  17. this, exactly i'll try to get some kind of confirmation, if needed. /e: mostly indirect hints: Google Cache from B*-Boards Values used by Toskk's DPS Gear Method Random Post for Random Item from thotbot (note, its relative high score) Random Elitist Post claiming it to be 54.857
  18. if i remember correctly, then this check is in there for for things like the Aspect of the Pack - Daze. It was argued to be undispellable too. hmmm...
  19. first of all, this spell should be used: http://www.wowhead.com/?spell=32409 so that the backlash is delayed by 1sec but then you'll have to look for shadow weaving - procs too^^
  20. looks like, the Flags for Claw went into the wrong column. procFlags instead for SpellFamilyMask2 this should do DELETE FROM `spell_proc_event` WHERE `entry` IN (16952, 16954); INSERT INTO `spell_proc_event` VALUES (16952, 0x00000000, 7, 0x00039000, 0x00000400, 0x00040000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0), (16954, 0x00000000, 7, 0x00039000, 0x00000400, 0x00040000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0);
  21. quests in question: http://www.wowhead.com?quest=10483 http://www.wowhead.com?quest=10449 http://www.wowhead.com?quest=10143 http://www.wowhead.com?quest=10124
  22. Rep for epic MSPaint skillz \\o/ As far as I've noticed Arcane Missiles are an Aura with a periodic Trigger. And that very Aura isn't cast on yourself, but on your target. So technically it is shooting itself with your Arcane Missiles^^
  23. i'll take the liberty to bump this. It's pretty important after all^^ 0.12 -> http://paste2.org/p/691307 master -> http://paste2.org/p/691345 used V1c as basis, but - removed unused GetAuraOrigDuration() and SetAuraOrigDuration() - removed m_origDuration and replaced the one place it got used by a direct call to Unit::CalculateSpellDuration() - kept ApplyHasteToPeriodic() private
×
×
  • 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