Jump to content

laise

Members
  • Posts

    344
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by laise

  1. its not patches its a temp solution to a unrelated to a clean repo problem - besides bug reports forum has in its description something related to patches..almost in the meaning that it is one of a places to post 'em - peace , luv <3
  2. -- (64955) Item - Paladin T8 Protection Relic () DELETE FROM `spell_proc_event` WHERE `entry` IN (64955); INSERT INTO `spell_proc_event` VALUES (64955, 0x00, 10, 0x00000000, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0); another trinket with missing flags..not really related to crash though
  3. updated : diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index fe70a2c..0b14edb 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5529,6 +5529,39 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu basepoints0 = int32(damage*triggerAmount/100); target = this; triggered_spell_id = 30294; + + // Improved Soul Leech + AuraList const& mDummyAuras = GetAurasByType(SPELL_AURA_DUMMY); + for(AuraList::const_iterator iter = mDummyAuras.begin(); iter != mDummyAuras.end(); ++iter) + { + if ((*iter)->GetSpellProto()->SpellIconID == 3176 && (*iter)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK) + { + switch ((*iter)->GetEffIndex()) + { + case 0: + { + if ((*iter)->GetSpellProto()->Id == 54117) + CastSpell(this, 54300, true, NULL, triggeredByAura); + else + CastSpell(this, 59117, true, NULL, triggeredByAura); + + if (Pet *pet = GetPet()) + { + int32 bp0 = int32((*iter)->GetModifier()->m_amount * pet->GetMaxPower(POWER_MANA) / 100); + CastCustomSpell(pet, 54607, &bp0, NULL, NULL, true, NULL, triggeredByAura); + } + break; + } + case 1: + { + if (!roll_chance_i((*iter)->GetModifier()->m_amount)) + break; + CastSpell(this, 57669, true, NULL, triggeredByAura); + break; + } + default: + break; + } + } + } break; } // Shadowflame (Voidheart Raiment set bonus)
  4. diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index fe70a2c..0b14edb 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -5529,6 +5529,39 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu basepoints0 = int32(damage*triggerAmount/100); target = this; triggered_spell_id = 30294; + + // Improved Soul Leech + AuraList const& mDummyAuras = GetAurasByType(SPELL_AURA_DUMMY); + for(AuraList::const_iterator iter = mDummyAuras.begin(); iter != mDummyAuras.end(); ++iter) + { + if ((*iter)->GetSpellProto()->SpellIconID == 3176 && (*iter)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_WARLOCK) + { + switch ((*iter)->GetEffIndex()) + { + case 0: + { + if ((*iter)->GetSpellProto()->Id == 54117) + CastSpell(this, 54300, true, NULL, triggeredByAura); + else + CastSpell(this, 59117, true, NULL, triggeredByAura); + + int32 bp0 = int32((*iter)->GetModifier()->m_amount * GetMaxPower(POWER_MANA) / 100); + if (Pet *pet = GetPet()) + CastCustomSpell(pet, 54607, &bp0, NULL, NULL, true, NULL, triggeredByAura); + break; + } + case 1: + { + if (!roll_chance_i((*iter)->GetModifier()->m_amount)) + break; + CastSpell(this, 57669, true, NULL, triggeredByAura); + break; + } + default: + break; + } + } + } break; } // Shadowflame (Voidheart Raiment set bonus) think this should work...and why u pass castItem in one of ur spell casts?
  5. What bug does the patch fix? What features does the patch add? fixes Earthen Power For which repository revision was the patch created? 8967 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. haven't seen any Who has been writing this patch? Please include either forum user names or email addresses. me diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 848ad6b..ec6c3b5 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2180,6 +2180,28 @@ void Aura::TriggerSpell() break; } + // Earthen Power (from Earthbind Totem Passive) + case 6474: + { + Unit *owner = target->GetOwner(); + + if (!owner) + break; + + Unit::AuraList const& dummyAuras = owner->GetAurasByType(SPELL_AURA_DUMMY); + for(Unit::AuraList::const_iterator itr = dummyAuras.begin(); itr != dummyAuras.end(); ++itr) + { + if ((*itr)->GetSpellProto()->SpellIconID == 2289 && (*itr)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_SHAMAN) + { + if (!roll_chance_i((*itr)->GetModifier()->m_amount)) + break; + + target->CastSpell(target, 59566, true, NULL, this); + break; + } + } + break; + } // Mana Tide case 16191: { I think this is better than my previous proc-based one and Fire Nova totem will be changed in 3.3 anyway
  6. What bug does the patch fix? What features does the patch add? fixes Unholy Blight For which repository revision was the patch created? 8967 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. haven't seen any Who has been writing this patch? Please include either forum user names or email addresses. me diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index b5112b6..fe70a2c 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -6620,6 +6620,13 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu triggered_spell_id = 61607; break; } + // Unholy Blight + if (dummySpell->Id == 49194) + { + basepoints0 = triggerAmount * damage / 100; + triggered_spell_id = 50536; + break; + } // Vendetta if (dummySpell->SpellFamilyFlags & UI64LIT(0x0000000000010000)) { sql: -- (49194) Unholy Blight () DELETE FROM `spell_proc_event` WHERE `entry` IN (49194); INSERT INTO `spell_proc_event` VALUES (49194, 0x00, 15, 0x00002000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0);
  7. What bug does the patch fix? What features does the patch add? fixes Improved Death Strike healing bonus for Death Strike For which repository revision was the patch created? 8964 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. haven't seen 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 c899656..5fb714c 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -2011,8 +2011,20 @@ void Spell::EffectDummy(uint32 i) break; } } - + int32 bp = count * m_caster->GetMaxHealth() * m_spellInfo->DmgMultiplier[0] / 100; + + // Improved Death Strike + Unit::AuraList const& auraMod = m_caster->GetAurasByType(SPELL_AURA_ADD_FLAT_MODIFIER); + for(Unit::AuraList::const_iterator iter = auraMod.begin(); iter != auraMod.end(); ++iter) + { + if ((*iter)->GetSpellProto()->SpellIconID == 2751 && (*iter)->GetSpellProto()->SpellFamilyName == SPELLFAMILY_DEATHKNIGHT) + { + bp += (*iter)->GetSpellProto()->CalculateSimpleValue(2) * bp / 100; + break; + } + } + m_caster->CastCustomSpell(m_caster, 45470, &bp, NULL, NULL, true); return; }
  8. What bug does the patch fix? What features does the patch add? fixes Concentration Aura related part of Aura Mastery talent For which repository revision was the patch created? 8964 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. haven't seen any Who has been writing this patch? Please include either forum user names or email addresses. me diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index f3906f4..bf76023 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -6091,6 +6091,28 @@ void Aura::HandleSpellSpecificBoosts(bool apply) } case SPELLFAMILY_PALADIN: { + if (m_spellProto->Id == 19746) // Aura Mastery (on Concentratio Aura remove and apply) + { + Unit *caster = GetCaster(); + if (!caster) + return; + + if (apply && caster->HasAura(31821)) + caster->CastSpell(caster, 64364, true, NULL, this); + else if (!apply) + caster->RemoveAurasDueToSpell(64364); + } + if (m_spellProto->Id == 31821) // Aura Mastery (on Aura Mastery original buff remove) + { + Unit *caster = GetCaster(); + if (!caster) + return; + + if (apply && caster->HasAura(19746)) + caster->CastSpell(caster, 64364, true, NULL, this); + else if (!apply) + caster->RemoveAurasDueToSpell(64364); + } if (m_spellProto->Id == 31884) // Avenging Wrath { if(!apply) or if has problems diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index f3906f4..bf76023 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -6091,6 +6091,28 @@ void Aura::HandleSpellSpecificBoosts(bool apply) } case SPELLFAMILY_PALADIN: { + if (m_spellProto->Id == 19746) // Aura Mastery (on Concentratio Aura remove and apply) + { + if (!apply) + m_target->RemoveAurasDueToSpell(64364); + + Unit *caster = GetCaster(); + if (!caster) + return; + + if (apply && caster->HasAura(31821)) + caster->CastSpell(caster, 64364, true, NULL, this); + } + if (m_spellProto->Id == 31821) // Aura Mastery (on Aura Mastery original buff remove) + { + if (!apply) + m_target->RemoveAurasDueToSpell(64364); + + Unit *caster = GetCaster(); + if (!caster) + return; + + if (apply && caster->HasAura(19746)) + caster->CastSpell(caster, 64364, true, NULL, this); + } if (m_spellProto->Id == 31884) // Avenging Wrath { if(!apply)
  9. What bug does the patch fix? What features does the patch add? allows it to proc from any hit like it should after 3.1.0 changes For which repository revision was the patch created? 8866 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. haven't seen any Who has been writing this patch? Please include either forum user names or email addresses. me INSERT INTO `spell_chain` VALUES (17793, 0, 17793, 1, 0), (17796, 17793, 17793, 2, 0), (17801, 17796, 17793, 3, 0), (17802, 17801, 17793, 4, 0), (17803, 17802, 17793, 5, 0); DELETE FROM `spell_proc_event` WHERE `entry` IN (17793, 17796, 17801, 17802, 17803); -- (17793) Improved Shadow Bolt (Rank 1) INSERT INTO `spell_proc_event` VALUES (17793, 0x00, 5, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0.000000, 0.000000, 0);
  10. Judgement of Light & Judgement of Wisdom have 4 sec cooldown on proc(from wowhead) and chances are around 40-50%...can any1 confirm cause currently there is 100% proc on any hit..
  11. What bug does the patch fix? What features does the patch add? - fixes Furor energy restoring For which repository revision was the patch created? - 8852 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. - haven't seen any Who has been writing this patch? Please include either forum user names or email addresses. - me diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index c30657b..caee220 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2997,8 +2997,8 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real) if (m_modifier.m_miscvalue == FORM_CAT) { m_target->SetPower(POWER_ENERGY, 0); - if(urand(1,100) <= FurorChance) - m_target->CastSpell(m_target, 17099, true, NULL, this); + int32 basepoints = FurorChance; + // Furor chance is now amount of energy for cat form + m_target->CastCustomSpell(m_target, 17099, &basepoints, NULL, NULL, this); } else { but I'm not sure what they meant with "keeps by up to X energy when shapeshifting"
  12. try this diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp index ca2cc96..c349554 100644 --- a/src/game/Level2.cpp +++ b/src/game/Level2.cpp @@ -2160,8 +2160,9 @@ bool ChatHandler::HandlePInfoCommand(const char* args) std::string last_ip = GetMangosString(LANG_ERROR); uint32 security = 0; std::string last_login = GetMangosString(LANG_ERROR); + std::string email = GetMangosString(LANG_ERROR); - QueryResult* result = loginDatabase.PQuery("SELECT username,gmlevel,last_ip,last_login FROM account WHERE id = '%u'",accId); + QueryResult* result = loginDatabase.PQuery("SELECT username,gmlevel,last_ip,last_login,email FROM account WHERE id = '%u'",accId); if(result) { Field* fields = result->Fetch(); @@ -2178,13 +2179,15 @@ bool ChatHandler::HandlePInfoCommand(const char* args) last_ip = "-"; last_login = "-"; } + + email = fields[4].GetCppString(); delete result; } std::string nameLink = playerLink(target_name); - PSendSysMessage(LANG_PINFO_ACCOUNT, (target?"":GetMangosString(LANG_OFFLINE)), nameLink.c_str(), GUID_LOPART(target_guid), username.c_str(), accId, security, last_ip.c_str(), last_login.c_str(), latency); + PSendSysMessage(LANG_PINFO_ACCOUNT, (target?"":GetMangosString(LANG_OFFLINE)), nameLink.c_str(), GUID_LOPART(target_guid), username.c_str(), accId, email.c_str(), security, last_ip.c_str(), last_login.c_str(), latency); std::string timeStr = secsToTimeString(total_player_time,true,true); uint32 gold = money /GOLD; sql: delete from `mangos_string` where `entry` = '548'; insert into `mangos_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) values('548','Player%s %s (guid: %u) Account: %s (id: %u) E-mail: %s GMLevel: %u Last IP: %s Last login: %s Latency: %ums',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
  13. lawl didn't know that these spells exist.. so thread can be moved to rejected?
  14. as i understand if i leave it as it is shield would be cast on targets of totems/player which is not correct because shield should be cast on self only - like totem->CastSpell(shield_spell_id, totem....);
  15. updated ... forgot to add - if we don't use triggered spells in TakePower(); why they are checked on cast?
  16. What bug does the patch fix? What features does the patch add? - fixes Stoneclaw Totem absorb effect and Glyph of Stoneclaw Totem For which repository revision was the patch created? - 8827 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. - haven't seen any Who has been writing this patch? Please include either forum user names or email addresses. - me diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 4d819fd..d225e22 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -1768,6 +1768,12 @@ void Spell::SetTargetMap(uint32 effIndex,uint32 targetMode,UnitList& TagUnitMap) break; case TARGET_DUELVSPLAYER: { + if (m_spellInfo->SpellFamilyName == SPELLFAMILY_SHAMAN && m_spellInfo->SpellIconID == 276) // Stoneclaw Totem absorb has wrong target + { + TagUnitMap.push_back(m_caster); + break; + } + Unit *target = m_targets.getUnitTarget(); if(target) { @@ -2481,6 +2487,21 @@ void Spell::cast(bool skipCheck) AddPrecastSpell(23230); // Blood Fury - Healing Reduction else if(m_spellInfo->Id == 20594) // Stoneskin AddTriggeredSpell(65116); // Stoneskin - armor 10% for 8 sec + + switch(m_spellInfo->Id) + { + case 5728: AddTriggeredSpell(55328); break;// Stoneclaw Totem, rank 1 + case 6397: AddTriggeredSpell(55329); break;// Stoneclaw Totem, rank 2 + case 6398: AddTriggeredSpell(55330); break;// Stoneclaw Totem, rank 3 + case 6399: AddTriggeredSpell(55332); break;// Stoneclaw Totem, rank 4 + case 10425: AddTriggeredSpell(55333); break;// Stoneclaw Totem, rank 5 + case 10426: AddTriggeredSpell(55335); break;// Stoneclaw Totem, rank 6 + case 25513: AddTriggeredSpell(55278); break;// Stoneclaw Totem, rank 7 + case 58583: AddTriggeredSpell(58589); break;// Stoneclaw Totem, rank 8 + case 58584: AddTriggeredSpell(58590); break;// Stoneclaw Totem, rank 9 + case 58585: AddTriggeredSpell(58591); break;// Stoneclaw Totem, rank 10 + default:break; + } break; } case SPELLFAMILY_MAGE: diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index c2102ec..c63fe3c 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -5079,6 +5079,39 @@ void Spell::EffectScriptEffect(uint32 effIndex) unitTarget->RemoveSpellsCausingAura(SPELL_AURA_MOD_STUN); return; } + // Stoneclaw Totem absorb + case 55278: + case 55328: + case 55329: + case 55330: + case 55332: + case 55333: + case 55335: + case 58589: + case 58590: + case 58591: + { + if(!unitTarget) + return; + + for(int slot = 0; slot < MAX_TOTEM; ++slot) + { + if(!unitTarget->m_TotemSlot[slot]) + continue; + + Creature* totem = unitTarget->GetMap()->GetCreature(unitTarget->m_TotemSlot[slot]); + if(totem && totem->isTotem()) + totem->CastCustomSpell(totem, 55277, &damage, NULL, NULL, true); + } + + // Glyph of Stoneclaw Totem + if (Aura *aur = unitTarget->GetAura(63298, 0)) + { + int32 totalAbsorb = aur->GetModifier()->m_amount * damage; + if (totalAbsorb) + unitTarget->CastCustomSpell(unitTarget, 55277, &totalAbsorb, NULL, NULL, true); + } + return; + } // Escape artist case 20589: { I think "absorb on them" means each one absorbs amount listed on spell but idk for sure.. and shield spell has wrong target type in dbc (blz made hotfix for it, but apparently not in dbc)
  17. updated version: mangos part: diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index 7f58b26..e9c0369 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -2457,6 +2457,7 @@ enum SummonType SUMMON_TYPE_TOTEM = 121, SUMMON_TYPE_UNKNOWN3 = 181, SUMMON_TYPE_UNKNOWN4 = 187, + SUMMON_TYPE_RUNE_BLADE = 208, SUMMON_TYPE_UNKNOWN1 = 247, SUMMON_TYPE_CRITTER2 = 407, SUMMON_TYPE_CRITTER3 = 307, diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 74dd44f..c2102ec 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -3379,6 +3379,7 @@ void Spell::EffectSummonType(uint32 i) case SUMMON_TYPE_POSESSED2: case SUMMON_TYPE_FORCE_OF_NATURE: case SUMMON_TYPE_GUARDIAN2: + case SUMMON_TYPE_RUNE_BLADE: case SUMMON_TYPE_GUARDIAN3: // Jewelery statue case (totem like) if(m_spellInfo->SpellIconID == 2056) diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 36f0cc6..a1b92f8 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -6487,7 +6487,16 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu return false; // TODO: wite script for this "fights on its own, doing the same attacks" // NOTE: Trigger here on every attack and spell cast - return false; + Pet* runeBlade = FindGuardianWithEntry(27893); + if (!runeBlade) + return false; + else + { + // only melee based spells? + if(procSpell) + runeBlade->CastSpell(pVictim,procSpell,true,castItem,triggeredByAura); + return true; + } } // Mark of Blood if (dummySpell->Id == 49005) mangos sql: DELETE FROM `spell_proc_event` WHERE `entry` IN (49028); INSERT INTO `spell_proc_event` VALUES (49028, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00010010, 0x00010000, 0.000000, 0.000000, 0); SD2 part: Index: scripts/world/npcs_special.cpp =================================================================== --- scripts/world/npcs_special.cpp (revision 1493) +++ scripts/world/npcs_special.cpp (working copy) @@ -1451,6 +1451,43 @@ return true; } +struct MANGOS_DLL_DECL npc_rune_blade : public ScriptedAI +{ + npc_rune_blade(Creature* pCreature) : ScriptedAI(pCreature) {Reset();} + void Reset() + { + Unit * owner = m_creature->GetOwner(); + if (!owner || owner->GetTypeId() != TYPEID_PLAYER) + return; + + // Cannot be Selected or Attacked + m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); + m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); + + // Add visible weapon + if (Item const * item = ((Player *)owner)->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND)) + m_creature->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID, item->GetProto()->ItemId); + + // Add stats scaling + int32 damageDone=owner->CalculateDamage(BASE_ATTACK, true); // might be average damage instead ? + int32 meleeSpeed=owner->m_modAttackSpeedPct[bASE_ATTACK]; + m_creature->CastCustomSpell(m_creature, 51906, &damageDone, &meleeSpeed, NULL, true); + + // Visual Glow + m_creature->CastSpell(m_creature, 53160, true); + + // Start Chasing victim + if (uint64 guid = ((Player*)owner)->GetSelection()) + if (Unit *target = m_creature->GetUnit(*owner,guid)) + if (!target->IsFriendlyTo(owner)) + m_creature->Attack(target,true); + + } +}; +CreatureAI* GetAI_npc_rune_blade(Creature* pCreature) +{ + return new npc_rune_blade(pCreature); +} void AddSC_npcs_special() { Script *newscript; @@ -1528,4 +1565,9 @@ newscript->pGossipHello = &GossipHello_npc_sayge; newscript->pGossipSelect = &GossipSelect_npc_sayge; newscript->RegisterSelf(); + + newscript = new Script; + newscript->Name = "npc_runeblade"; + newscript->GetAI = &GetAI_npc_rune_blade; + newscript->RegisterSelf(); } SD2 sql: update creature_template set ScriptName='npc_runeblade' where entry=27893;
  18. What bug does the patch fix? What features does the patch add? - fixes Threat of Thassarian For which repository revision was the patch created? - 8827 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. - haven't seen 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 c346115..74dd44f 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -4705,11 +4705,17 @@ void Spell::EffectWeaponDmg(uint32 i) // non-weapon damage int32 bonus = spell_bonus + fixed_bonus; + WeaponAttackType attackType = m_attackType; + + // Threat of Thassarian + if (m_triggeredByAuraSpell && m_triggeredByAuraSpell->SpellIconID == 2023) + attackType = OFF_ATTACK; + // apply to non-weapon bonus weapon total pct effect, weapon total flat effect included in weapon damage if(bonus) { UnitMods unitMod; - switch(m_attackType) + switch(attackType) { default: case BASE_ATTACK: unitMod = UNIT_MOD_DAMAGE_MAINHAND; break; @@ -4722,7 +4728,7 @@ void Spell::EffectWeaponDmg(uint32 i) } // + weapon damage with applied weapon% dmg to base weapon damage in call - bonus += int32(m_caster->CalculateDamage(m_attackType, normalized)*weaponDamagePercentMod); + bonus += int32(m_caster->CalculateDamage(attackType, normalized)*weaponDamagePercentMod); // total damage bonus = int32(bonus*totalDamagePercentMod); @@ -4765,7 +4771,7 @@ void Spell::EffectWeaponDmg(uint32 i) } // take ammo - if(m_attackType == RANGED_ATTACK && m_caster->GetTypeId() == TYPEID_PLAYER) + if(attackType == RANGED_ATTACK && m_caster->GetTypeId() == TYPEID_PLAYER) { Item *pItem = ((Player*)m_caster)->GetWeaponForAttack( RANGED_ATTACK ); diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 83b4ccf..36f0cc6 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -6511,6 +6511,21 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu triggered_spell_id = 51460; break; } + // Threat of Thassarian + if (dummySpell->SpellIconID == 2023) + { + if(!procSpell) + return false; + // dual wield only + if(!haveOffhandWeapon()) + return false; + + if(!roll_chance_i(triggerAmount)) + return false; + + triggered_spell_id = procSpell->Id; + break; + } // Runic Power Back on Snare/Root if (dummySpell->Id == 61257) { @@ -5178,7 +5178,7 @@ int32 Spell::CalculatePowerCost() SpellCastResult Spell::CheckPower() { // item cast not used power - if(m_CastItem) + if(m_CastItem || m_triggeredByAuraSpell) return SPELL_CAST_OK; // Do precise power regen on spell cast sql: insert into spell_chain values (65661,0,65661,1,0), (66191,65661,65661,2,0), (66192,66191,65661,3,0); alter table `spell_proc_event` change `entry` `entry` mediumint(5) UNSIGNED default '0' NOT NULL; DELETE FROM `spell_proc_event` WHERE `entry` IN (65661); INSERT INTO `spell_proc_event` VALUES (65661, 0, 15, 0x00400010, 0x20020004, 0x00000000, 0x00000010, 0x00000001, 0.000000, 100.000000, 0); had to change entry column size because it was too small for 65661
  19. what exactly doesn't work/compile with new rev?
  20. I think it works as it should - when 64411 procs from your heals it is not absorb aura and shouldn't work as one...then if you heal target that has this blessing it will create the actual shield
  21. this should fix Blood of the North/Reaping/Death Rune Mastery patchOUTDATED: http://paste2.org/p/508801 for 10011 http://paste2.org/p/859331 sql: -- (54639) Blood of the North (Rank 1) DELETE FROM `spell_proc_event` WHERE `entry` IN (54639); INSERT INTO `spell_proc_event` VALUES (54639, 0x00, 15, 0x00400000, 0x00010000, 0x00000000, 0x00010010, 0x00000000, 0.000000, 0.000000, 0); -- (49467) Death Rune Mastery () DELETE FROM `spell_proc_event` WHERE `entry` IN (49467); INSERT INTO `spell_proc_event` VALUES (49467, 0x00, 15, 0x00000010, 0x00020000, 0x00000000, 0x00010010, 0x00000000, 0.000000, 0.000000, 0); -- (49208) Reaping (Rank 1) DELETE FROM `spell_proc_event` WHERE `entry` IN (49208); INSERT INTO `spell_proc_event` VALUES (49208, 0x00, 15, 0x00400000, 0x00010000, 0x00000000, 0x00010010, 0x00000000, 0.000000, 0.000000, 0); posted here because it has few unsolved issues: 1)what to do with aura ticks because it is periodic and idk why it is needed to be like that - maybe to convert unused runes after some time back to their original state 2)from where to get which rune type need to be converted since spell itself doesn't have any mention of it in basepoints or misc 3)same as 2 but regarding to what rune type the convert must be done 4)on some forums it was said that if you have both of these talents they shouldn't proc one right after other - maybe use cooldown? so currently periodic ticks are not handled and rune types are hard coded(this will work as long as runes delayed convert is used from any type to death rune)..btw there is sometimes delay between rune activation and rune convert - i think it is because client rune cooldown is not always in sync with server rune cooldown...
  22. should be only on weapon summon not on every spell proc
  23. try this diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index d89e39c..ea3d998 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -7238,6 +7238,13 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB break; } + // Blessing of Ancient Kings + case 64411: + { + trigger_spell_id = 64413; + basepoints[0] = int32(damage * 0.15f); + break; + } } // Blade Barrier if (auraSpellInfo->SpellFamilyName == SPELLFAMILY_DEATHKNIGHT && auraSpellInfo->SpellIconID == 85)
  24. change model at summon?
  25. interesting how much of dbc data client really needs and what for the rest is there..
×
×
  • 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