diff options
author | Michael <michaelneubert1988@gmail.com> | 2014-05-25 21:52:27 +0200 |
---|---|---|
committer | Michael <michaelneubert1988@gmail.com> | 2014-05-25 21:52:27 +0200 |
commit | 15efe08a60d3ccb277dde03abc6cce562ad0b44b (patch) | |
tree | 9c2a48c3e55a000205ed0f3159d0684f29a0d994 /src/server/scripts | |
parent | 49a17c6282fac3d2636e3db740b1a6960fb387ba (diff) | |
parent | c06dc7d37aa8c795ff505550a7bc388d2a66ecac (diff) |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts:
src/server/game/Entities/Item/Item.cpp
src/server/game/Entities/Pet/Pet.cpp
src/server/game/Entities/Player/Player.cpp
src/server/game/Entities/Player/Player.h
src/server/game/Handlers/MiscHandler.cpp
src/server/game/Miscellaneous/SharedDefines.h
src/server/game/Reputation/ReputationMgr.cpp
src/server/game/Server/Protocol/Opcodes.h
src/server/game/Server/WorldSession.cpp
src/server/game/Server/WorldSession.h
src/server/game/Spells/SpellEffects.cpp
src/server/game/Weather/Weather.cpp
src/server/game/Weather/WeatherMgr.cpp
src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp
src/server/scripts/Spells/spell_hunter.cpp
Diffstat (limited to 'src/server/scripts')
6 files changed, 62 insertions, 22 deletions
diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index e7aeb289833..fb465aaca16 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -720,6 +720,7 @@ public: handler->PSendSysMessage(LANG_NPCINFO_LEVEL, target->getLevel()); handler->PSendSysMessage(LANG_NPCINFO_EQUIPMENT, target->GetCurrentEquipmentId(), target->GetOriginalEquipmentId()); handler->PSendSysMessage(LANG_NPCINFO_HEALTH, target->GetCreateHealth(), target->GetMaxHealth(), target->GetHealth()); + handler->PSendSysMessage(LANG_NPCINFO_INHABIT_TYPE, cInfo->InhabitType); handler->PSendSysMessage(LANG_NPCINFO_UNIT_FIELD_FLAGS, target->GetUInt32Value(UNIT_FIELD_FLAGS)); for (uint8 i = 0; i < MAX_UNIT_FLAGS; ++i) diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp index f47a3bc3a86..cad51dd55e0 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp @@ -99,7 +99,7 @@ public: FlyBackTimer = 4500; break; case 2: - if (!player->IsRessurectRequested()) + if (!player->IsResurrectRequested()) { me->HandleEmoteCommand(EMOTE_ONESHOT_CUSTOM_SPELL_01); DoCast(player, SPELL_REVIVE, true); diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp index 5891de9acf9..25bb08620a1 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp @@ -33,12 +33,12 @@ enum Says //Mograine says SAY_MO_AGGRO = 0, SAY_MO_KILL = 1, - SAY_MO_RESSURECTED = 2, + SAY_MO_RESURRECTED = 2, //Whitemane says SAY_WH_INTRO = 0, SAY_WH_KILL = 1, - SAY_WH_RESSURECT = 2, + SAY_WH_RESURRECT = 2, }; enum Spells @@ -157,10 +157,10 @@ public: void SpellHit(Unit* /*who*/, const SpellInfo* spell) override { - //When hit with ressurection say text + //When hit with resurrection say text if (spell->Id == SPELL_SCARLETRESURRECTION) { - Talk(SAY_MO_RESSURECTED); + Talk(SAY_MO_RESURRECTED); _bFakeDeath = false; instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, SPECIAL); @@ -174,7 +174,7 @@ public: if (_bHasDied && !_bHeal && instance->GetData(TYPE_MOGRAINE_AND_WHITE_EVENT) == SPECIAL) { - //On ressurection, stop fake death and heal whitemane and resume fight + //On resurrection, stop fake death and heal whitemane and resume fight if (Unit* Whitemane = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_WHITEMANE))) { me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); @@ -294,7 +294,7 @@ public: if (Creature* mograine = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MOGRAINE))) { DoCast(mograine, SPELL_SCARLETRESURRECTION); - Talk(SAY_WH_RESSURECT); + Talk(SAY_WH_RESURRECT); _bCanResurrect = false; } } diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index f581f96e562..c4f46136bd9 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -25,12 +25,12 @@ enum Yells { - //Gorkun + // Gorkun SAY_GORKUN_INTRO_2 = 0, SAY_GORKUN_OUTRO_1 = 1, SAY_GORKUN_OUTRO_2 = 2, - //Tyrannus + // Tyrannus SAY_AMBUSH_1 = 3, SAY_AMBUSH_2 = 4, SAY_GAUNTLET_START = 5, @@ -44,12 +44,12 @@ enum Yells SAY_DARK_MIGHT_1 = 13, SAY_DARK_MIGHT_2 = 14, - //Jaina + // Jaina SAY_JAYNA_OUTRO_3 = 3, SAY_JAYNA_OUTRO_4 = 4, SAY_JAYNA_OUTRO_5 = 5, - //Sylvanas + // Sylvanas SAY_SYLVANAS_OUTRO_3 = 3, SAY_SYLVANAS_OUTRO_4 = 4 }; @@ -121,7 +121,7 @@ static const Position rimefangPos[10] = {1012.601f, 142.4965f, 665.0453f, 0.000000f}, }; -static const Position miscPos = {1018.376f, 167.2495f, 628.2811f, 0.000000f}; //tyrannus combat start position +static Position const miscPos = { 1018.376f, 167.2495f, 628.2811f, 0.000000f }; // tyrannus combat start position class boss_tyrannus : public CreatureScript { @@ -490,6 +490,43 @@ class spell_tyrannus_mark_of_rimefang : public SpellScriptLoader } }; +// 69232 - Icy Blast +class spell_tyrannus_rimefang_icy_blast : public SpellScriptLoader +{ + public: + spell_tyrannus_rimefang_icy_blast() : SpellScriptLoader("spell_tyrannus_rimefang_icy_blast") { } + + class spell_tyrannus_rimefang_icy_blast_SpellScript : public SpellScript + { + PrepareSpellScript(spell_tyrannus_rimefang_icy_blast_SpellScript); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + if (!sSpellMgr->GetSpellInfo(SPELL_ICY_BLAST_AURA)) + return false; + return true; + } + + void HandleTriggerMissile(SpellEffIndex effIndex) + { + PreventHitDefaultEffect(effIndex); + if (Position const* pos = GetHitDest()) + if (TempSummon* summon = GetCaster()->SummonCreature(NPC_ICY_BLAST, *pos, TEMPSUMMON_TIMED_DESPAWN, 60000)) + summon->CastSpell(summon, SPELL_ICY_BLAST_AURA, true); + } + + void Register() override + { + OnEffectHit += SpellEffectFn(spell_tyrannus_rimefang_icy_blast_SpellScript::HandleTriggerMissile, EFFECT_1, SPELL_EFFECT_TRIGGER_MISSILE); + } + }; + + SpellScript* GetSpellScript() const override + { + return new spell_tyrannus_rimefang_icy_blast_SpellScript(); + } +}; + class at_tyrannus_event_starter : public AreaTriggerScript { public: @@ -518,5 +555,6 @@ void AddSC_boss_tyrannus() new boss_rimefang(); new spell_tyrannus_overlord_brand(); new spell_tyrannus_mark_of_rimefang(); + new spell_tyrannus_rimefang_icy_blast(); new at_tyrannus_event_starter(); } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp index a261d2f860a..011d1844adf 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp @@ -494,13 +494,13 @@ class spell_general_vezax_mark_of_the_faceless_leech : public SpellScriptLoader FinishCast(SPELL_FAILED_NO_VALID_TARGETS); } - void Register() + void Register() override { OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_general_vezax_mark_of_the_faceless_leech_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_DEST_AREA_ENEMY); } }; - SpellScript* GetSpellScript() const + SpellScript* GetSpellScript() const override { return new spell_general_vezax_mark_of_the_faceless_leech_SpellScript(); } diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp index e780b88c6be..eb03b47e6fe 100644 --- a/src/server/scripts/Spells/spell_hunter.cpp +++ b/src/server/scripts/Spells/spell_hunter.cpp @@ -842,15 +842,16 @@ class spell_hun_sniper_training : public SpellScriptLoader PreventDefaultAction(); if (aurEff->GetAmount() <= 0) { - Unit* caster = GetCaster(); + Unit* target = GetTarget(); uint32 spellId = SPELL_HUNTER_SNIPER_TRAINING_BUFF_R1 + GetId() - SPELL_HUNTER_SNIPER_TRAINING_R1; - if (Unit* target = GetTarget()) - if (!target->HasAura(spellId)) - { - SpellInfo const* triggeredSpellInfo = sSpellMgr->GetSpellInfo(spellId); - Unit* triggerCaster = triggeredSpellInfo->NeedsToBeTriggeredByCaster(GetSpellInfo()) ? caster : target; - triggerCaster->CastSpell(target, triggeredSpellInfo, true, 0, aurEff); - } + + target->CastSpell(target, spellId, true, 0, aurEff); + if (Player* playerTarget = GetUnitOwner()->ToPlayer()) + { + int32 baseAmount = aurEff->GetBaseAmount(); + int32 amount = playerTarget->CalculateSpellDamage(playerTarget, GetSpellInfo(), aurEff->GetEffIndex(), &baseAmount); + GetEffect(EFFECT_0)->SetAmount(amount); + } } } |