diff options
-rw-r--r-- | sql/base/world_database.sql | 3 | ||||
-rw-r--r-- | sql/updates/world/2011_05_11_02_spell_proc_event.sql | 1 | ||||
-rw-r--r-- | sql/updates/world/2011_05_11_03_spell_bonus_data.sql | 2 | ||||
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 5 | ||||
-rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 10 | ||||
-rwxr-xr-x | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 11 | ||||
-rwxr-xr-x | src/server/game/Spells/Auras/SpellAuras.cpp | 23 |
7 files changed, 51 insertions, 4 deletions
diff --git a/sql/base/world_database.sql b/sql/base/world_database.sql index 992a29a95ac..98d53fcf697 100644 --- a/sql/base/world_database.sql +++ b/sql/base/world_database.sql @@ -16913,6 +16913,7 @@ INSERT INTO `spell_bonus_data` (`entry`,`direct_bonus`,`dot_bonus`,`ap_bonus`,`a (48438, -1, 0.11505, -1, -1, 'Druid - Wild Growth'), (5176, 0.5714, -1, -1, -1, 'Druid - Wrath'), (70691,0,0,0,0, 'Druid - Rejuvenation T10 4P proc'), +(64801,0.45,0,0,0,'Druid - T8 Restoration 4P Bonus'), (3044, -1, -1, 0.15, -1, 'Hunter - Arcane Shot'), (3674, -1, -1, -1, 0.02, 'Hunter - Black Arrow($RAP*0.1 / number of ticks)'), (19306, -1, -1, 0.2, -1, 'Hunter - Counterattack'), @@ -19416,7 +19417,7 @@ INSERT INTO `spell_proc_event` (`entry`,`SchoolMask`,`SpellFamilyName`,`SpellFam ( 70727, 0x00, 9, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000000, 0, 0, 0), -- Item - Hunter T10 2P Bonus ( 70730, 0x00, 9, 0x00004000, 0x00001000, 0x00000000, 0x00040000, 0x00000000, 0, 0, 0), -- Item - Hunter T10 4P Bonus ( 70748, 0x00, 3, 0x00000000, 0x00200000, 0x00000000, 0x00000400, 0x00000000, 0, 0, 0), -- Item - Mage T10 4P Bonus -( 70756, 0x00, 10, 0x00200000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Item - Paladin T10 Holy 4P Bonus +( 70756, 0x00, 10, 0x00200000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Item - Paladin T10 Holy 4P Bonus ( 70761, 0x00, 10, 0x00000000, 0x80004000, 0x00000001, 0x00000400, 0x00000000, 0, 0, 0), -- Item - Paladin T10 Protection 4P Bonus ( 70803, 0x00, 8, 0x003E0000, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0, 0, 0), -- Item - Rogue T10 4P Bonus ( 70805, 0x00, 8, 0x00000000, 0x00020000, 0x00000000, 0x00004000, 0x00000000, 0, 0, 0), -- Item - Rogue T10 2P Bonus diff --git a/sql/updates/world/2011_05_11_02_spell_proc_event.sql b/sql/updates/world/2011_05_11_02_spell_proc_event.sql new file mode 100644 index 00000000000..0536ddb1bb5 --- /dev/null +++ b/sql/updates/world/2011_05_11_02_spell_proc_event.sql @@ -0,0 +1 @@ +UPDATE `spell_proc_event` SET `SpellFamilyMask1`=65536 WHERE `entry`=70756; diff --git a/sql/updates/world/2011_05_11_03_spell_bonus_data.sql b/sql/updates/world/2011_05_11_03_spell_bonus_data.sql new file mode 100644 index 00000000000..be207fe8902 --- /dev/null +++ b/sql/updates/world/2011_05_11_03_spell_bonus_data.sql @@ -0,0 +1,2 @@ +DELETE FROM `spell_bonus_data` WHERE `entry`=64801; +INSERT INTO `spell_bonus_data` VALUES (64801,0.45,0,0,0,'Druid - T8 Restoration 4P Bonus'); diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 38669109d6e..ccfb5f0635f 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -20854,8 +20854,9 @@ bool Player::CanReportAfkDueToLimit() ///This player has been blamed to be inactive in a battleground void Player::ReportedAfkBy(Player* reporter) { - Battleground *bg = GetBattleground(); - if (!bg || bg != reporter->GetBattleground() || GetTeam() != reporter->GetTeam()) + Battleground* bg = GetBattleground(); + // Battleground also must be in progress! + if (!bg || bg != reporter->GetBattleground() || GetTeam() != reporter->GetTeam() || bg->GetStatus() != STATUS_IN_PROGRESS) return; // check if player has 'Idle' or 'Inactive' debuff diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 6a84acfa257..06de958d23a 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -10836,6 +10836,16 @@ bool Unit::isSpellCrit(Unit *pVictim, SpellEntry const *spellProto, SpellSchoolM break; } break; + case SPELLFAMILY_WARRIOR: + // Victory Rush + if (spellProto->SpellFamilyFlags[1] & 0x100) + { + // Glyph of Victory Rush + if (AuraEffect const* aurEff = GetAuraEffect(58382, 0)) + crit_chance += aurEff->GetAmount(); + break; + } + break; case SPELLFAMILY_PALADIN: // Judgement of Command proc always crits on stunned target if (spellProto->SpellFamilyName == SPELLFAMILY_PALADIN) diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index fa37ad9daad..b65f8700ddd 100755 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -5927,6 +5927,15 @@ void AuraEffect::HandleAuraDummy(AuraApplication const * aurApp, uint8 mode, boo } break; } + case 43681: // Inactive + { + if (!target || target->GetTypeId() != TYPEID_PLAYER || aurApp->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE) + return; + + if (target->GetMap()->IsBattleground()) + target->ToPlayer()->LeaveBattleground(); + break; + } case 42783: // Wrath of the Astromancer target->CastSpell(target, GetAmount(), true, NULL, this); break; @@ -5982,7 +5991,7 @@ void AuraEffect::HandleAuraDummy(AuraApplication const * aurApp, uint8 mode, boo break; case SPELLFAMILY_PRIEST: // Vampiric Touch - if (m_spellProto->SpellFamilyFlags[1] & 0x0400 && aurApp->GetRemoveMode() == AURA_REMOVE_BY_ENEMY_SPELL) + if (m_spellProto->SpellFamilyFlags[1] & 0x0400 && aurApp->GetRemoveMode() == AURA_REMOVE_BY_ENEMY_SPELL && GetEffIndex() == 0) { if (AuraEffect const * aurEff = GetBase()->GetEffect(1)) { diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index 8f1f4dd571b..894775179e1 100755 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -955,6 +955,20 @@ void Aura::HandleAuraSpecificMods(AuraApplication const * aurApp, Unit * caster, break; } break; + case SPELLFAMILY_DRUID: + if (!caster) + break; + // Rejuvenation + if (GetSpellProto()->SpellFamilyFlags[0] & 0x10 && GetEffect(EFFECT_0)) + { + // Druid T8 Restoration 4P Bonus + if (AuraEffect const* aurEff = caster->GetAuraEffect(64760, EFFECT_0)) + { + int32 heal = GetEffect(EFFECT_0)->GetAmount(); + caster->CastCustomSpell(target, 64801, &heal, NULL, NULL, true, NULL, GetEffect(EFFECT_0)); + } + } + break; case SPELLFAMILY_MAGE: if (!caster) break; @@ -1488,6 +1502,15 @@ void Aura::HandleAuraSpecificMods(AuraApplication const * aurApp, Unit * caster, else target->RemoveAurasDueToSpell(64364, GetCasterGUID()); break; + case 31842: + if (caster->HasAura(70755)) + { + if (apply) + caster->CastSpell(caster, 71166, true); + else + caster->RemoveAurasDueToSpell(71166); + } + break; } break; case SPELLFAMILY_DEATHKNIGHT: |