mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 02:04:52 +01:00
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
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user