Jump to content

MrLama

Members
  • Posts

    50
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by MrLama

  1. You must uncomment SpellEntry in function variables and to check if spellEntry exists and of course change spellProto to spellEntry
  2. Ok here should be up to date version, it has better iteration through runes and SpellAuraProcResult return http://pastebin.com/8eQkeFVd
  3. could someone please make newer diff? I currently do not have access to revision with SpellAuraProcResult patch, thanks
  4. What bug does the patch fix? What features does the patch add? implement Death Rune Mastery, Reaping, Blood of the North For which repository revision was the patch created? 10199 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. --- Who has been writing this patch? Please include either forum user names or email addresses. me Core: http://pastebin.com/AZynWbkS DB (9 slot spell family mask): DB (3 slot spell family mask):
  5. I must say that this patch applies only to judgement while using Seal of Light, Seal of Wisdom or Seal of Justice. Other seals use different spells as judgement damage
  6. What bug does the patch fix? What features does the patch add? Repentance should remove Righteous Vengeance but not other way For which repository revision was the patch created? 9765 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. --- 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 5a41f3b..5994c3b 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -1948,6 +1948,10 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons if ((spellInfo_1->SpellIconID == 3025 && spellInfo_2->SpellIconID == 2292) || (spellInfo_1->SpellIconID == 2292 && spellInfo_2->SpellIconID == 3025)) return false; + + // Repentance removes Righteous Vengeance + if (spellInfo_1->Id == 20066 && spellInfo_2->Id == 61840) + return true; } // Blessing of Sanctuary (multi-family check, some from 16 spell icon spells)
  7. What bug does the patch fix? What features does the patch add? Adds spellpower coefficient to generic judgement spell. (Cannot be handled trough database due to melee nature of spell) For which repository revision was the patch created? 9765 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. --- Who has been writing this patch? Please include either forum user names or email addresses. Me Core diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index ccfe63a..21276c2 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -748,7 +748,10 @@ void Spell::EffectSchoolDMG(SpellEffectIndex effect_idx) else if (m_spellInfo->Id == 54158) { // [1 + 0.25 * SPH + 0.16 * AP] - damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.16f); + float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK); + int32 holy = m_caster->SpellBaseDamageBonus(GetSpellSchoolMask(m_spellInfo)) + + m_caster->SpellBaseDamageBonusForVictim(GetSpellSchoolMask(m_spellInfo), unitTarget); + damage += int32(ap * 0.16f) + int32(holy * 25 / 100); } break; } DB DELETE FROM spell_bonus_data WHERE entry = 54158;
  8. What bug does the patch fix? What features does the patch add? added socket from blacksmith shouldn't break socket bonus For which repository revision was the patch created? 9605 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. --- Who has been writing this patch? Please include either forum user names or email addresses. me http://pastebin.com/PZm0z3ne diff --git a/src/game/Item.cpp b/src/game/Item.cpp index 2f5deaa..0a05fa5 100644 --- a/src/game/Item.cpp +++ b/src/game/Item.cpp @@ -868,6 +868,7 @@ bool Item::GemsFitSockets() const } } + SocketColor = SocketColor ? SocketColor : PRISMATIC_SOCKET; fits &= (GemColor & SocketColor) ? true : false; } return fits; diff --git a/src/game/Item.h b/src/game/Item.h index fcf6418..cca82f3 100644 --- a/src/game/Item.h +++ b/src/game/Item.h @@ -174,7 +174,7 @@ enum EnchantmentSlot }; #define MAX_VISIBLE_ITEM_OFFSET 2 // 2 fields per visible item (entry+enchantment) - +#define PRISMATIC_SOCKET 14 // 1110 mask = blue(1) yellow(1) red(1) meta(0) #define MAX_GEM_SOCKETS MAX_ITEM_PROTO_SOCKETS// (BONUS_ENCHANTMENT_SLOT-SOCK_ENCHANTMENT_SLOT) and item proto size, equal value expected enum EnchantmentOffset
  9. I don't think that healing part of this spell should be limited to 8y. It would make it rather impractical. The reason why is used other spell is simple. It is a targeting spell, 54171 select targets for healing and 53385 can't do that.
  10. What bug does the patch fix? What features does the patch add? rename missleading name for MECHANIC_PACIFY to MECHANIC_SLOWATTACK because it is used solely by auras SPELL_AURA_MOD_HASTE and SPELL_AURA_MOD_RANGED_HASTE and removing this mechanic from mask MECHANIC_NOT_REMOVED_BY_SHAPESHIFT ( example: proc spell Chilled from Ice Armor is not removed by shapeshift now) For which repository revision was the patch created? 9549 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. --- Who has been writing this patch? Please include either forum user names or email addresses. Me http://pastebin.com/uNr1k2Cw
  11. I replaced part ( in laise's patch ) where is casted 54171 with code below to make glyph working @@ -3169,8 +3173,18 @@ void Spell::finish(bool ok) // Heal caster for all health leech from all targets if (m_healthLeech) - m_caster->DealHeal(m_caster, uint32(m_healthLeech), m_spellInfo); - + { + // Divine Storm heal calculation + if (m_spellInfo->Id == 53385) + { + SpellEffectIndex healEffIndex = EFFECT_INDEX_1; + int32 healAmount = m_caster->CalculateSpellDamage(m_spellInfo, healEffIndex, m_currentBasePoints[healEffIndex], m_caster); + healAmount = int32(m_healthLeech * healAmount / 100); + m_caster->CastCustomSpell(m_caster, 54171, &healAmount, NULL, NULL, true); + } + else + m_caster->DealHeal(m_caster, uint32(m_healthLeech), m_spellInfo); + } if (IsMeleeAttackResetSpell()) { m_caster->resetAttackTimer(BASE_ATTACK);
  12. What bug does the patch fix? What features does the patch add? fixes Penance being uniterruptable For which repository revision was the patch created? 9401 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. --- Who has been writing this patch? Please include either forum user names or email addresses. Me http://pastebin.com/m4bff3009
  13. What bug does the patch fix? What features does the patch add? Implements dispel resist to Spellsteal For which repository revision was the patch created? 9235 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. --- Who has been writing this patch? Please include either forum user names or email addresses. me ( but got idea from EffectDispel ) http://pastebin.com/m41d96d5d diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 90c8577..a34df1a 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp -6834,29 +6834,33 @@ void Spell::EffectStealBeneficialBuff(uint32 i) // Ok if exist some buffs for dispel try dispel it if (!steal_list.empty()) { - std::list < std::Pair<uint32,uint64> > success_list; - int32 list_size = steal_list.size(); + std::list < std::Pair<uint32,uint64> > success_list;// (spell_id,casterGuid) + std::list < uint32 > fail_list; // spell_id // Dispell N = damage buffs (or while exist buffs for dispel) - for (int32 count=0; count < damage && list_size > 0; ++count) + for (int32 count=0; count < damage && !steal_list.empty(); ++count) { // Random select buff for dispel - Aura *aur = steal_list[urand(0, list_size-1)]; - // Not use chance for steal - // TODO possible need do it - success_list.push_back( std::Pair<uint32,uint64>(aur->GetId(),aur->GetCasterGUID())); + std::vector<Aura*>::iterator steal_itr = steal_list.begin(); + std::advance(steal_itr,urand(0, steal_list.size()-1)); - // Remove buff from list for prevent doubles - for (std::vector<Aura *>::iterator j = steal_list.begin(); j != steal_list.end(); ) - { - Aura *stealed = *j; - if (stealed->GetId() == aur->GetId() && stealed->GetCasterGUID() == aur->GetCasterGUID()) - { - j = steal_list.erase(j); - --list_size; - } - else - ++j; - } + Aura *aur = *steal_itr; + // remove entry from steal_list + steal_list.erase(steal_itr); + + SpellEntry const* spellInfo = aur->GetSpellProto(); + // Base dispel chance + int32 miss_chance = 0; + // Apply dispel mod from aura caster + if (Unit *caster = aur->GetCaster()) + { + if ( Player* modOwner = caster->GetSpellModOwner() ) + modOwner->ApplySpellMod(spellInfo->Id, SPELLMOD_RESIST_DISPEL_CHANCE, miss_chance, this); + } + // Try dispel + if (roll_chance_i(miss_chance)) + fail_list.push_back(spellInfo->Id); + else + success_list.push_back(std::Pair<uint32,uint64>(aur->GetId(),aur->GetCasterGUID())); } // Really try steal and send log if (!success_list.empty()) -6877,6 +6881,18 @@ void Spell::EffectStealBeneficialBuff(uint32 i) } m_caster->SendMessageToSet(&data, true); } + // Send fail log to client + if (!fail_list.empty()) + { + // Failed to steal + WorldPacket data(SMSG_DISPEL_FAILED, 8+8+4+4*fail_list.size()); + data << uint64(m_caster->GetGUID()); // Caster GUID + data << uint64(unitTarget->GetGUID()); // Victim GUID + data << uint32(m_spellInfo->Id); // Steal spell id + for (std::list< uint32 >::iterator j = fail_list.begin(); j != fail_list.end(); ++j) + data << uint32(*j); // Spell Id + m_caster->SendMessageToSet(&data, true); + } } }
  14. I updated formula to include mob/player vs player condition //repaired incomplete patch
  15. Thanks, I updated formula to include mob/player vs player condition
  16. Could you be more specific, please? //edit I can see a problem now ( I think ), mobs can have low weapon skill thus they miss a lot. I didn't find this because I tested only between players or player'S hit chance against mob but not the other way. Thanks
  17. Ok, updated first post to match better formula
  18. Dodge and parry (and block) are solved elsewhere. This function only returns miss chance against target. Defense rating is defense skill mutiplied by constant ( for those purposes this explanation will suffice ). However, you have a point concerning the formula. Which one is correct?
  19. It seems that formula is the same for players and mobs. If there is another one for players, I will gladly update my patch
  20. What bug does the patch fix? What features does the patch add? - Fixes proc of Shield of the Templar talent to be triggered only by Avenger's Shield For which repository revision was the patch created? Rev. 9100 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. Who has been writing this patch? Please include either forum user names or email addresses. Me DELETE FROM spell_proc_event WHERE entry IN (53709, 53710, 53711); INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES ('53709', '0', '10', '16384', '0', '0', '256', '0', '0', '0', '0'); DELETE FROM `spell_chain` WHERE `spell_id` IN (53709, 53710, 53711); INSERT INTO `spell_chain` (`spell_id`, `prev_spell`, `first_spell`, `rank`, `req_spell`) VALUES ('53709', '0', '53709', '1', '0'), ('53710', '53709', '53709','2', '0'), ('53711', '53710', '53709', '3', '0');
  21. Absolete due to: [9057] Implement some damage related spell attributes support. http://github.com/mangos/mangos/commit/ba5b8650f7350d447119171b60405c59134a577b Please remove, thanks
  22. without PROC_FLAG_ON_TRAP_ACTIVATION it didn't proc for me
  23. Bump and here is alsou my patch revision 9037 diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 77ade4c..5b2ac72 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -3008,7 +3008,7 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real) case FORM_DIREBEAR: { // get furor proc chance - uint32 FurorChance = 0; + int32 FurorChance = 0; Unit::AuraList const& mDummy = m_target->GetAurasByType(SPELL_AURA_DUMMY); for(Unit::AuraList::const_iterator i = mDummy.begin(); i != mDummy.end(); ++i) { @@ -3023,7 +3023,7 @@ void Aura::HandleAuraModShapeshift(bool apply, bool Real) { m_target->SetPower(POWER_ENERGY, 0); if(urand(1,100) <= FurorChance) - m_target->CastSpell(m_target, 17099, true, NULL, this); + m_target->CastCustomSpell(m_target, 17099, &FurorChance, NULL, NULL, true, NULL, this); } else {
  24. What bug does the patch fix? What features does the patch add? Chance to restore power on HoT tick while having Revitalize talent For which repository revision was the patch created? 8994 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. --- Who has been writing this patch? Please include either forum user names or email addresses. Me DB part DELETE FROM spell_proc_event WHERE entry IN (48545,48544,48539); INSERT INTO spell_proc_event (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES ('48539', '0', '7', '16', '67108864', '0', '2359296', '0', '0', '5', '0'), ('48544', '0', '7', '16', '67108864', '0', '2359296', '0', '0', '10', '0'), ('48545', '0', '7', '16', '67108864', '0', '2359296', '0', '0', '15', '0'); Core part diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 186d538..e6d456f 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -6786,6 +6845,7 @@ void Aura::PeriodicTick() int32 gain = m_target->ModifyHealth(pdamage); + pCaster->ProcDamageAndSpell( m_target, PROC_FLAG_ON_DO_PERIODIC, PROC_FLAG_ON_TAKE_PERIODIC, PROC_EX_NONE, gain, BASE_ATTACK, m_spellProto ); // add HoTs to amount healed in bgs if( pCaster->GetTypeId() == TYPEID_PLAYER ) if( BattleGround *bg = ((Player*)pCaster)->GetBattleGround() ) diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 35a478b..383b92f 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -3015,7 +3023,9 @@ void Spell::EffectEnergize(uint32 i) level_multiplier = 4; break; case 31930: // Judgements of the Wise + case 48542: // Revitalize case 63375: // Improved Stormstrike damage = damage * unitTarget->GetCreateMana() / 100; break; default: diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 5bcac41..bdc3a3a 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -7638,6 +7680,25 @@ bool Unit::HandleOverrideClassScriptAuraProc(Unit *pVictim, uint32 damage, Aura case 6953: // Warbringer RemoveAurasAtMechanicImmunity(IMMUNE_TO_ROOT_AND_SNARE_MASK,0,true); return true; + case 7010: // Revitalize (rank 1) + case 7011: // Revitalize (rank 2) + case 7012: // Revitalize (rank 3) + { + switch( pVictim->getPowerType() ) + { + case POWER_MANA: + triggered_spell_id = 48542; break; + case POWER_RAGE: + triggered_spell_id = 48541; break; + case POWER_ENERGY: + triggered_spell_id = 48540; break; + case POWER_RUNIC_POWER: + triggered_spell_id = 48543; break; + default: + return false; + } + break; + } case 8152: // Serendipity { // if heal your target over maximum health
  25. I know it is effIndex 1 but today I was in a good mood and I wanted 1 little bit differently, so I used effIndex of that Clearcasting aura, which is 1 too //udpated fist post to use CalculateSimpleValue() //updated to use 1 instead effIndex... i liked it though
×
×
  • 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