mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-15 12:42:43 -04:00
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/scripts/Spells/spell_paladin.cpp
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `flags_extra`=130 WHERE `entry`=34174;
|
||||
@@ -0,0 +1,5 @@
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id` IN (53407,20271,53408);
|
||||
INSERT INTO `spell_script_names` (`spell_id` ,`ScriptName`) VALUES
|
||||
(53407,'spell_pal_judgement_of_justice'),
|
||||
(20271,'spell_pal_judgement_of_light'),
|
||||
(53408,'spell_pal_judgement_of_wisdom');
|
||||
@@ -0,0 +1,2 @@
|
||||
--
|
||||
INSERT INTO `creature_queststarter` (`id`,`quest`) VALUES (16271,9617);
|
||||
2
sql/updates/world/2014_01_27_01_world_creature.sql
Normal file
2
sql/updates/world/2014_01_27_01_world_creature.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
--
|
||||
DELETE FROM `creature` WHERE `guid`=86933;
|
||||
@@ -0,0 +1,3 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `spell1`=32982 WHERE `entry`=15439;
|
||||
UPDATE `creature_template` SET `spell1`=33663 WHERE `entry`=15430;
|
||||
23
sql/updates/world/2014_01_27_03_world_quest.sql
Normal file
23
sql/updates/world/2014_01_27_03_world_quest.sql
Normal file
@@ -0,0 +1,23 @@
|
||||
-- Fix taking of 6962/7025 Treats for Great-father Winter
|
||||
-- Horde
|
||||
UPDATE `quest_template` SET `PrevQuestId`=0 WHERE `Id`=6962;
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (19,20) and `SourceEntry`IN(6962);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(20, 0, 6962, 0, 0, 8, 0, 7021, 0, 0, 0, 0, 0, '', 'Treats for Great-father Winter once Great-father Winter is Here! Has been completed'),
|
||||
(19, 0, 6962, 0, 0, 8, 0, 7021, 0, 0, 0, 0, 0, '', 'Treats for Great-father Winter once Great-father Winter is Here! Has been completed'),
|
||||
(20, 0, 6962, 0, 1, 8, 0, 7024, 0, 0, 0, 0, 0, '', 'Treats for Great-father Winter once Great-father Winter is Here! Has been completed'),
|
||||
(19, 0, 6962, 0, 1, 8, 0, 7024, 0, 0, 0, 0, 0, '', 'Treats for Great-father Winter once Great-father Winter is Here! Has been completed'),
|
||||
(20, 0, 6962, 0, 2, 8, 0, 6961, 0, 0, 0, 0, 0, '', 'Treats for Great-father Winter once Great-father Winter is Here! Has been completed'),
|
||||
(19, 0, 6962, 0, 2, 8, 0, 6961, 0, 0, 0, 0, 0, '', 'Treats for Great-father Winter once Great-father Winter is Here! Has been completed');
|
||||
|
||||
-- Alliance
|
||||
UPDATE `quest_template` SET `PrevQuestId`=0 WHERE `Id`=7025;
|
||||
UPDATE `creature_queststarter` SET `id`='13433' WHERE `id`='13429' and`quest`='7022';
|
||||
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (19,20) and `SourceEntry`IN(7025);
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(20, 0, 7025, 0, 0, 8, 0, 7022, 0, 0, 0, 0, 0, '', 'Treats for Great-father Winter once Great-father Winter is Here! Has been completed'),
|
||||
(19, 0, 7025, 0, 0, 8, 0, 7022, 0, 0, 0, 0, 0, '', 'Treats for Great-father Winter once Great-father Winter is Here! Has been completed'),
|
||||
(20, 0, 7025, 0, 1, 8, 0, 7023, 0, 0, 0, 0, 0, '', 'Treats for Great-father Winter once Great-father Winter is Here! Has been completed'),
|
||||
(19, 0, 7025, 0, 1, 8, 0, 7023, 0, 0, 0, 0, 0, '', 'Treats for Great-father Winter once Great-father Winter is Here! Has been completed');
|
||||
4
sql/updates/world/2014_01_27_04_world_conditions.sql
Normal file
4
sql/updates/world/2014_01_27_04_world_conditions.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
--
|
||||
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=18 AND `SourceGroup`=29501 AND `SourceEntry`=54575;
|
||||
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||
(18, 29501, 54575, 0, 0, 15, 0, 32, 0, 0, 0, 0, 0, '', 'Spellclick only for dks');
|
||||
@@ -0,0 +1,4 @@
|
||||
--
|
||||
DELETE FROM `spell_target_position` WHERE `id`=26448;
|
||||
INSERT INTO `spell_target_position` (`id`,`target_map`,`target_position_x`,`target_position_y`,`target_position_z`,`target_orientation`) VALUES
|
||||
(26448,1,7581.01,-2225.35,473.64,1.80);
|
||||
17
sql/updates/world/2014_01_27_06_world_gameobject.sql
Normal file
17
sql/updates/world/2014_01_27_06_world_gameobject.sql
Normal file
@@ -0,0 +1,17 @@
|
||||
-- By Darkman1983
|
||||
SET @GUID =11995;
|
||||
INSERT INTO `gameobject` (`guid`,`id`,`map`,`spawnMask`,`phaseMask`,`position_x`,`position_y`,`position_z`,`orientation`,`rotation0`,`rotation1`,`rotation2`,`rotation3`,`spawntimesecs`,`animprogress`,`state`) VALUES
|
||||
(@GUID+0, 300058, 1, 0, 0, 1983.464966, -4255.527344, 31.897110, 0.526572, 0, 0, 0, 0, 300, 0, 1),
|
||||
(@GUID+1, 300058, 1, 0, 0, -1031.407349, -230.353455, 160.180954, 3.209599, 0, 0, 0, 0, 300, 0, 1),
|
||||
(@GUID+2, 300058, 1, 0, 0, 10150.500000, 2602.330078, 1330.829956, 4.751910, 0, 0, 0, 0, 300, 0, 1),
|
||||
(@GUID+3, 300058, 0, 0, 0, 1642.353760, 239.186249, 62.591576, 5.267044, 0, 0, 0, 0, 300, 0, 1),
|
||||
(@GUID+4, 300058, 0, 0, 0, -4663.466797, -955.900879, 500.377686, 5.617465, 0, 0, 0, 0, 300, 0, 1),
|
||||
(@GUID+5, 300058, 0, 0, 0, -8747.168945, 1073.401367, 90.419289, 5.551456, 0, 0, 0, 0, 300, 0, 1);
|
||||
|
||||
INSERT INTO `game_event_gameobject` (`eventEntry`, `guid`) VALUES
|
||||
(7, @GUID+0),
|
||||
(7, @GUID+1),
|
||||
(7, @GUID+2),
|
||||
(7, @GUID+3),
|
||||
(7, @GUID+4),
|
||||
(7, @GUID+5);
|
||||
@@ -0,0 +1,3 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `faction_A` = 83, `faction_H` = 83 WHERE `entry` = 38095; -- Sniffs confirm 37034 faction 83.
|
||||
UPDATE `creature_template` SET `minlevel`=80, `maxlevel`=80, `faction_A`=83, `faction_H`=83 WHERE `entry`=35407; -- Sniffs confirm 34918 faction 83, copy level from normal mode.
|
||||
@@ -0,0 +1,6 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `faction_A` = 1770, `faction_H` = 1770 WHERE `entry` = 37809; -- Sniff shows faction 1770 for mob 37774
|
||||
UPDATE `creature_template` SET `faction_A` = 1214, `faction_H` = 1214 WHERE `entry` = 37296; -- Sniff shows faction 1214 for mob 14282
|
||||
UPDATE `creature_template` SET `faction_A` = 1594, `faction_H` = 1594 WHERE `entry` = 37240; -- Sniff shows faction 1594 for mob 14187
|
||||
UPDATE `creature_template` SET `faction_A` = 1334, `faction_H` = 1334 WHERE `entry` = 37416; -- Sniff shows faction 1334 for mob 11997
|
||||
UPDATE `creature_template` SET `faction_A` = 877, `faction_H` = 877 WHERE `entry` = 37370; -- Sniff shows faction 877 for mob 14185
|
||||
2
sql/updates/world/2014_01_27_09_world_gameobject.sql
Normal file
2
sql/updates/world/2014_01_27_09_world_gameobject.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
--
|
||||
UPDATE `gameobject` SET `spawnMask` = 1, `phaseMask` = 1 WHERE `id` = 300058;
|
||||
@@ -0,0 +1,2 @@
|
||||
--
|
||||
UPDATE `creature_model_info` SET `modelid_other_gender`=0 WHERE `modelid` IN (1812, 3441);
|
||||
@@ -0,0 +1,5 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `faction_A` = 534, `faction_H` = 534 WHERE `entry` IN (37497,37603,37604); -- Sniff shows faction 534 for mobs 37496,37497
|
||||
UPDATE `creature_template` SET `faction_A` = 57, `faction_H` = 57 WHERE `entry` = 37281; -- Sniff shows faction 57 for mob 14188
|
||||
UPDATE `creature_template` SET `faction_A` = 21, `faction_H` = 21 WHERE `entry` = 37638; -- Sniff shows faction 21 for mob 36830
|
||||
UPDATE `creature_template` SET `faction_A` = 74, `faction_H` = 74 WHERE `entry` IN (19897,19899); -- Sniff shows faction 74 for mobs 18176, 18179
|
||||
@@ -0,0 +1,3 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `faction_A` = 1215, `faction_H` = 1215 WHERE `entry` IN (37486,37318,37373,37485,37399,37401,37479,37320,37305);
|
||||
UPDATE `creature_template` SET `faction_A` = 1217, `faction_H` = 1217 WHERE `entry` IN (37480,37483,37484);
|
||||
@@ -0,0 +1,3 @@
|
||||
--
|
||||
UPDATE `creature_template` SET `faction_A` = 1217, `faction_H` = 1217 WHERE `entry` IN (37242,37349,37344,37427,37348,37420,37315);
|
||||
UPDATE `creature_template` SET `faction_A` = 1534, `faction_H` = 1534 WHERE `entry` IN (37285,37287,37327);
|
||||
@@ -321,9 +321,7 @@ bool AuthSocket::_HandleLogonChallenge()
|
||||
|
||||
socket().recv((char *)&buf[0], 4);
|
||||
|
||||
#if TRINITY_ENDIAN == TRINITY_BIGENDIAN
|
||||
EndianConvert(*((uint16*)(buf[0])));
|
||||
#endif
|
||||
|
||||
uint16 remaining = ((sAuthLogonChallenge_C *)&buf[0])->size;
|
||||
TC_LOG_DEBUG("server.authserver", "[AuthChallenge] got header, body is %#04x bytes", remaining);
|
||||
@@ -343,7 +341,6 @@ bool AuthSocket::_HandleLogonChallenge()
|
||||
|
||||
// BigEndian code, nop in little endian case
|
||||
// size already converted
|
||||
#if TRINITY_ENDIAN == TRINITY_BIGENDIAN
|
||||
EndianConvert(*((uint32*)(&ch->gamename[0])));
|
||||
EndianConvert(ch->build);
|
||||
EndianConvert(*((uint32*)(&ch->platform[0])));
|
||||
@@ -351,7 +348,6 @@ bool AuthSocket::_HandleLogonChallenge()
|
||||
EndianConvert(*((uint32*)(&ch->country[0])));
|
||||
EndianConvert(ch->timezone_bias);
|
||||
EndianConvert(ch->ip);
|
||||
#endif
|
||||
|
||||
ByteBuffer pkt;
|
||||
|
||||
@@ -397,7 +393,7 @@ bool AuthSocket::_HandleLogonChallenge()
|
||||
bool locked = false;
|
||||
if (fields[2].GetUInt8() == 1) // if ip is locked
|
||||
{
|
||||
TC_LOG_DEBUG("server.authserver", "[AuthChallenge] Account '%s' is locked to IP - '%s'", _login.c_str(), fields[3].GetCString());
|
||||
TC_LOG_DEBUG("server.authserver", "[AuthChallenge] Account '%s' is locked to IP - '%s'", _login.c_str(), fields[4].GetCString());
|
||||
TC_LOG_DEBUG("server.authserver", "[AuthChallenge] Player address is '%s'", ip_address.c_str());
|
||||
|
||||
if (strcmp(fields[4].GetCString(), ip_address.c_str()) != 0)
|
||||
@@ -783,9 +779,7 @@ bool AuthSocket::_HandleReconnectChallenge()
|
||||
|
||||
socket().recv((char *)&buf[0], 4);
|
||||
|
||||
#if TRINITY_ENDIAN == TRINITY_BIGENDIAN
|
||||
EndianConvert(*((uint16*)(buf[0])));
|
||||
#endif
|
||||
|
||||
uint16 remaining = ((sAuthLogonChallenge_C *)&buf[0])->size;
|
||||
TC_LOG_DEBUG("server.authserver", "[ReconnectChallenge] got header, body is %#04x bytes", remaining);
|
||||
|
||||
@@ -2211,7 +2211,7 @@ void GameObject::GetRespawnPosition(float &x, float &y, float &z, float* ori /*
|
||||
*ori = GetOrientation();
|
||||
}
|
||||
|
||||
float GameObject::GetInteractionDistance()
|
||||
float GameObject::GetInteractionDistance() const
|
||||
{
|
||||
switch (GetGoType())
|
||||
{
|
||||
@@ -2221,6 +2221,7 @@ float GameObject::GetInteractionDistance()
|
||||
case GAMEOBJECT_TYPE_MAILBOX:
|
||||
return 10.0f;
|
||||
case GAMEOBJECT_TYPE_FISHINGHOLE:
|
||||
case GAMEOBJECT_TYPE_FISHINGNODE:
|
||||
return 20.0f + CONTACT_DISTANCE; // max spell range
|
||||
default:
|
||||
return INTERACTION_DISTANCE;
|
||||
|
||||
@@ -831,7 +831,7 @@ class GameObject : public WorldObject, public GridObject<GameObject>, public Map
|
||||
float GetStationaryZ() const { if (GetGOInfo()->type != GAMEOBJECT_TYPE_MO_TRANSPORT) return m_stationaryPosition.GetPositionZ(); return GetPositionZ(); }
|
||||
float GetStationaryO() const { if (GetGOInfo()->type != GAMEOBJECT_TYPE_MO_TRANSPORT) return m_stationaryPosition.GetOrientation(); return GetOrientation(); }
|
||||
|
||||
float GetInteractionDistance();
|
||||
float GetInteractionDistance() const;
|
||||
|
||||
protected:
|
||||
bool AIM_Initialize();
|
||||
|
||||
@@ -3800,65 +3800,6 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_PALADIN:
|
||||
{
|
||||
// Judgement (seal trigger)
|
||||
if (m_spellInfo->GetCategory() == SPELLCATEGORY_JUDGEMENT)
|
||||
{
|
||||
if (!unitTarget || !unitTarget->IsAlive())
|
||||
return;
|
||||
uint32 spellId1 = 0;
|
||||
uint32 spellId2 = 0;
|
||||
|
||||
// Judgement self add switch
|
||||
switch (m_spellInfo->Id)
|
||||
{
|
||||
case 53407: spellId1 = 20184; break; // Judgement of Justice
|
||||
case 20271: // Judgement of Light
|
||||
case 57774: spellId1 = 20185; break; // Judgement of Light
|
||||
case 53408: spellId1 = 20186; break; // Judgement of Wisdom
|
||||
default:
|
||||
TC_LOG_ERROR("spells", "Unsupported Judgement (seal trigger) spell (Id: %u) in Spell::EffectScriptEffect", m_spellInfo->Id);
|
||||
return;
|
||||
}
|
||||
// all seals have aura dummy in 2 effect
|
||||
Unit::AuraApplicationMap & sealAuras = m_caster->GetAppliedAuras();
|
||||
for (Unit::AuraApplicationMap::iterator iter = sealAuras.begin(); iter != sealAuras.end();)
|
||||
{
|
||||
Aura* aura = iter->second->GetBase();
|
||||
if (aura->GetSpellInfo()->GetSpellSpecific() == SPELL_SPECIFIC_SEAL)
|
||||
{
|
||||
if (AuraEffect* aureff = aura->GetEffect(2))
|
||||
if (aureff->GetAuraType() == SPELL_AURA_DUMMY)
|
||||
{
|
||||
if (sSpellMgr->GetSpellInfo(aureff->GetAmount()))
|
||||
spellId2 = aureff->GetAmount();
|
||||
break;
|
||||
}
|
||||
if (!spellId2)
|
||||
{
|
||||
switch (iter->first)
|
||||
{
|
||||
// Seal of light, Seal of wisdom, Seal of justice
|
||||
case 20165:
|
||||
case 20166:
|
||||
case 20164:
|
||||
spellId2 = 54158;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
else
|
||||
++iter;
|
||||
}
|
||||
if (spellId1)
|
||||
m_caster->CastSpell(unitTarget, spellId1, true);
|
||||
if (spellId2)
|
||||
m_caster->CastSpell(unitTarget, spellId2, true);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_DEATHKNIGHT:
|
||||
{
|
||||
// Pestilence
|
||||
@@ -5518,6 +5459,7 @@ void Spell::SummonGuardian(uint32 i, uint32 entry, SummonPropertiesEntry const*
|
||||
TempSummon* summon = map->SummonCreature(entry, pos, properties, duration, caster, m_spellInfo->Id);
|
||||
if (!summon)
|
||||
return;
|
||||
|
||||
if (summon->HasUnitTypeMask(UNIT_MASK_GUARDIAN))
|
||||
((Guardian*)summon)->InitStatsForLevel(level);
|
||||
|
||||
|
||||
@@ -1181,7 +1181,7 @@ class spell_dru_wild_growth : public SpellScriptLoader
|
||||
|
||||
bool Validate(SpellInfo const* spellInfo) OVERRIDE
|
||||
{
|
||||
if (spellInfo->Effects[EFFECT_2].IsEffect() || !spellInfo->Effects[EFFECT_2].CalcValue())
|
||||
if (spellInfo->Effects[EFFECT_2].IsEffect() || spellInfo->Effects[EFFECT_2].CalcValue() <= 0)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
@@ -1190,9 +1190,9 @@ class spell_dru_wild_growth : public SpellScriptLoader
|
||||
{
|
||||
targets.remove_if(RaidCheck(GetCaster()));
|
||||
|
||||
int32 const maxTargets = GetSpellInfo()->Effects[EFFECT_2].CalcValue(GetCaster());
|
||||
uint32 const maxTargets = uint32(GetSpellInfo()->Effects[EFFECT_2].CalcValue(GetCaster()));
|
||||
|
||||
if (targets.size() > uint32(maxTargets))
|
||||
if (targets.size() > maxTargets)
|
||||
{
|
||||
targets.sort(Trinity::HealthPctOrderPred());
|
||||
targets.resize(maxTargets);
|
||||
|
||||
@@ -290,7 +290,7 @@ enum PilgrimsBountyBuffFood
|
||||
class spell_pilgrims_bounty_buff_food : public SpellScriptLoader
|
||||
{
|
||||
private:
|
||||
uint32 _triggeredSpellId;
|
||||
uint32 const _triggeredSpellId;
|
||||
public:
|
||||
spell_pilgrims_bounty_buff_food(const char* name, uint32 triggeredSpellId) : SpellScriptLoader(name), _triggeredSpellId(triggeredSpellId) { }
|
||||
|
||||
@@ -298,7 +298,7 @@ class spell_pilgrims_bounty_buff_food : public SpellScriptLoader
|
||||
{
|
||||
PrepareAuraScript(spell_pilgrims_bounty_buff_food_AuraScript)
|
||||
private:
|
||||
uint32 _triggeredSpellId;
|
||||
uint32 const _triggeredSpellId;
|
||||
|
||||
public:
|
||||
spell_pilgrims_bounty_buff_food_AuraScript(uint32 triggeredSpellId) : AuraScript(), _triggeredSpellId(triggeredSpellId) { }
|
||||
@@ -311,6 +311,7 @@ class spell_pilgrims_bounty_buff_food : public SpellScriptLoader
|
||||
|
||||
void HandleTriggerSpell(AuraEffect const* /*aurEff*/)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
if (_handled)
|
||||
return;
|
||||
|
||||
|
||||
@@ -56,6 +56,10 @@ enum PaladinSpells
|
||||
SPELL_PALADIN_IMPROVED_CONCENTRACTION_AURA = 63510,
|
||||
SPELL_PALADIN_IMPROVED_DEVOTION_AURA = 63514,
|
||||
SPELL_PALADIN_ITEM_HEALING_TRANCE = 37706,
|
||||
SPELL_PALADIN_JUDGEMENT_DAMAGE = 54158,
|
||||
SPELL_PALADIN_JUDGEMENT_OF_JUSTICE = 20184,
|
||||
SPELL_PALADIN_JUDGEMENT_OF_LIGHT = 20185,
|
||||
SPELL_PALADIN_JUDGEMENT_OF_WISDOM = 20186,
|
||||
SPELL_PALADIN_RIGHTEOUS_DEFENSE_TAUNT = 31790,
|
||||
SPELL_PALADIN_SANCTIFIED_RETRIBUTION_AURA = 63531,
|
||||
SPELL_PALADIN_SANCTIFIED_RETRIBUTION_R1 = 31869,
|
||||
@@ -826,6 +830,96 @@ class spell_pal_item_healing_discount : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
// 53407 - Judgement of Justice
|
||||
// 20271 - Judgement of Light
|
||||
// 53408 - Judgement of Wisdom
|
||||
class spell_pal_judgement : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_pal_judgement(char const* scriptName, uint32 spellId) : SpellScriptLoader(scriptName), _spellId(spellId) { }
|
||||
|
||||
class spell_pal_judgement_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_pal_judgement_SpellScript);
|
||||
|
||||
public:
|
||||
spell_pal_judgement_SpellScript(uint32 spellId) : SpellScript(), _spellId(spellId) { }
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_PALADIN_JUDGEMENT_DAMAGE)
|
||||
|| !sSpellMgr->GetSpellInfo(_spellId))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
uint32 spellId2 = SPELL_PALADIN_JUDGEMENT_DAMAGE;
|
||||
|
||||
// some seals have SPELL_AURA_DUMMY in EFFECT_2
|
||||
Unit::AuraEffectList const& auras = GetCaster()->GetAuraEffectsByType(SPELL_AURA_DUMMY);
|
||||
for (Unit::AuraEffectList::const_iterator i = auras.begin(); i != auras.end(); ++i)
|
||||
{
|
||||
if ((*i)->GetSpellInfo()->GetSpellSpecific() == SPELL_SPECIFIC_SEAL && (*i)->GetEffIndex() == EFFECT_2)
|
||||
if (sSpellMgr->GetSpellInfo((*i)->GetAmount()))
|
||||
{
|
||||
spellId2 = (*i)->GetAmount();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
GetCaster()->CastSpell(GetHitUnit(), _spellId, true);
|
||||
GetCaster()->CastSpell(GetHitUnit(), spellId2, true);
|
||||
}
|
||||
|
||||
void Register() OVERRIDE
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_pal_judgement_SpellScript::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
|
||||
private:
|
||||
uint32 const _spellId;
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const OVERRIDE
|
||||
{
|
||||
return new spell_pal_judgement_SpellScript(_spellId);
|
||||
}
|
||||
|
||||
private:
|
||||
uint32 const _spellId;
|
||||
};
|
||||
|
||||
// 20425 - Judgement of Command
|
||||
class spell_pal_judgement_of_command : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_pal_judgement_of_command() : SpellScriptLoader("spell_pal_judgement_of_command") { }
|
||||
|
||||
class spell_pal_judgement_of_command_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_pal_judgement_of_command_SpellScript);
|
||||
|
||||
void HandleDummy(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Unit* unitTarget = GetHitUnit())
|
||||
if (SpellInfo const* spell_proto = sSpellMgr->GetSpellInfo(GetEffectValue()))
|
||||
GetCaster()->CastSpell(unitTarget, spell_proto, true, NULL);
|
||||
}
|
||||
|
||||
void Register() OVERRIDE
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_pal_judgement_of_command_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const OVERRIDE
|
||||
{
|
||||
return new spell_pal_judgement_of_command_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 633 - Lay on Hands
|
||||
class spell_pal_lay_on_hands : public SpellScriptLoader
|
||||
{
|
||||
@@ -1114,6 +1208,10 @@ void AddSC_paladin_spell_scripts()
|
||||
new spell_pal_improved_aura_effect("spell_pal_improved_devotion_aura_effect");
|
||||
new spell_pal_improved_aura_effect("spell_pal_sanctified_retribution_effect");
|
||||
new spell_pal_item_healing_discount();
|
||||
new spell_pal_judgement("spell_pal_judgement_of_justice", SPELL_PALADIN_JUDGEMENT_OF_JUSTICE);
|
||||
new spell_pal_judgement("spell_pal_judgement_of_light", SPELL_PALADIN_JUDGEMENT_OF_LIGHT);
|
||||
new spell_pal_judgement("spell_pal_judgement_of_wisdom", SPELL_PALADIN_JUDGEMENT_OF_WISDOM);
|
||||
new spell_pal_judgement_of_command();
|
||||
new spell_pal_lay_on_hands();
|
||||
new spell_pal_righteous_defense();
|
||||
new spell_pal_sacred_shield();
|
||||
|
||||
@@ -79,7 +79,7 @@ enum MiscSpells
|
||||
class PowerCheck
|
||||
{
|
||||
public:
|
||||
explicit PowerCheck(Powers power) : _power(power) { }
|
||||
explicit PowerCheck(Powers const power) : _power(power) { }
|
||||
|
||||
bool operator()(WorldObject* obj) const
|
||||
{
|
||||
@@ -90,7 +90,7 @@ class PowerCheck
|
||||
}
|
||||
|
||||
private:
|
||||
Powers _power;
|
||||
Powers const _power;
|
||||
};
|
||||
|
||||
class RaidCheck
|
||||
|
||||
Reference in New Issue
Block a user