Core/Script: Remove script for Overlord Mor'ghor - converted to SAI in commit 16179f8

(cherry picked from commit b804539f9be34f521c048620da78f604868f28f8)

Conflicts:
	src/server/scripts/Outland/zone_shadowmoon_valley.cpp
This commit is contained in:
click
2015-04-14 01:01:39 +01:00
committed by DDuarte
parent 4bb0fd580e
commit 95817e9f46
@@ -31,7 +31,6 @@ npc_enslaved_netherwing_drake
npc_drake_dealer_hurlunk
npcs_flanis_swiftwing_and_kagrosh
npc_karynaku
npc_overlord_morghor
npc_earthmender_wilda
npc_torloth_the_magnificent
npc_illidari_spawn
@@ -676,331 +675,6 @@ class npc_karynaku : public CreatureScript
}
};
/*####
# npc_overlord_morghor
# this whole script is wrong and needs a rewrite.even the illidan npc used is the wrong one.npc id 23467 may be the correct one
####*/
enum OverlordData
{
QUEST_LORD_ILLIDAN_STORMRAGE = 11108,
C_ILLIDAN = 22083,
C_YARZILL = 23141,
SPELL_ONE = 39990, // Red Lightning Bolt
SPELL_TWO = 41528, // Mark of Stormrage
SPELL_THREE = 40216, // Dragonaw Faction
SPELL_FOUR = 42016, // Dragonaw Trasform
OVERLORD_SAY_1 = 0,
OVERLORD_SAY_2 = 1,
//OVERLORD_SAY_3 = 2,
OVERLORD_SAY_4 = 3,
OVERLORD_SAY_5 = 4,
OVERLORD_SAY_6 = 5,
OVERLORD_YELL_1 = 6,
OVERLORD_YELL_2 = 7,
LORD_ILLIDAN_SAY_1 = 0,
LORD_ILLIDAN_SAY_2 = 1,
LORD_ILLIDAN_SAY_3 = 2,
LORD_ILLIDAN_SAY_4 = 3,
LORD_ILLIDAN_SAY_5 = 4,
LORD_ILLIDAN_SAY_6 = 5,
LORD_ILLIDAN_SAY_7 = 6,
YARZILL_THE_MERC_SAY = 0
};
class npc_overlord_morghor : public CreatureScript
{
public:
npc_overlord_morghor() : CreatureScript("npc_overlord_morghor") { }
bool OnQuestAccept(Player* player, Creature* creature, const Quest *_Quest) override
{
if (_Quest->GetQuestId() == QUEST_LORD_ILLIDAN_STORMRAGE)
{
ENSURE_AI(npc_overlord_morghor::npc_overlord_morghorAI, creature->AI())->PlayerGUID = player->GetGUID();
ENSURE_AI(npc_overlord_morghor::npc_overlord_morghorAI, creature->AI())->StartEvent();
return true;
}
return false;
}
CreatureAI* GetAI(Creature* creature) const override
{
return new npc_overlord_morghorAI(creature);
}
struct npc_overlord_morghorAI : public ScriptedAI
{
npc_overlord_morghorAI(Creature* creature) : ScriptedAI(creature)
{
Initialize();
}
void Initialize()
{
PlayerGUID.Clear();
IllidanGUID.Clear();
ConversationTimer = 0;
Step = 0;
Event = false;
}
ObjectGuid PlayerGUID;
ObjectGuid IllidanGUID;
uint32 ConversationTimer;
uint32 Step;
bool Event;
void Reset() override
{
Initialize();
me->SetUInt32Value(UNIT_NPC_FLAGS, 2);
}
void StartEvent()
{
me->SetUInt32Value(UNIT_NPC_FLAGS, 0);
me->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
Unit* Illidan = me->SummonCreature(C_ILLIDAN, -5107.83f, 602.584f, 85.2393f, 4.92598f, TEMPSUMMON_CORPSE_DESPAWN, 0);
if (Illidan)
{
IllidanGUID = Illidan->GetGUID();
Illidan->SetVisible(false);
}
if (!PlayerGUID.IsEmpty())
{
Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID);
if (player)
Talk(OVERLORD_SAY_1, player);
}
ConversationTimer = 4200;
Step = 0;
Event = true;
}
uint32 NextStep(uint32 Step)
{
Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID);
Creature* Illi = ObjectAccessor::GetCreature(*me, IllidanGUID);
if (!player)
{
EnterEvadeMode();
return 0;
}
switch (Step)
{
case 0:
return 0;
break;
case 1:
me->GetMotionMaster()->MovePoint(0, -5104.41f, 595.297f, 85.6838f);
return 9000;
break;
case 2:
Talk(OVERLORD_YELL_1, player);
return 4500;
break;
case 3:
me->SetInFront(player);
return 3200;
break;
case 4:
Talk(OVERLORD_SAY_2, player);
return 2000;
break;
case 5:
if (Illi)
{
Illi->SetVisible(true);
Illi->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
Illi->SetDisplayId(21526);
}
return 350;
break;
case 6:
if (Illi)
{
Illi->CastSpell(Illi, SPELL_ONE, true);
Illi->SetTarget(me->GetGUID());
me->SetTarget(IllidanGUID);
}
return 2000;
break;
case 7:
Talk(OVERLORD_YELL_2);
return 4500;
break;
case 8:
me->SetUInt32Value(UNIT_FIELD_BYTES_1, 8);
return 2500;
break;
case 9:
// missing text "Lord Illidan, this is the Dragonmaw that I, and others, have told you about. He will lead us to victory!"
return 5000;
break;
case 10:
if (Illi)
Illi->AI()->Talk(LORD_ILLIDAN_SAY_1);
return 5000;
break;
case 11:
Talk(OVERLORD_SAY_4, player);
return 6000;
break;
case 12:
if (Illi)
Illi->AI()->Talk(LORD_ILLIDAN_SAY_2);
return 5500;
break;
case 13:
if (Illi)
Illi->AI()->Talk(LORD_ILLIDAN_SAY_3);
return 4000;
break;
case 14:
if (Illi)
Illi->SetTarget(PlayerGUID);
return 1500;
break;
case 15:
if (Illi)
Illi->AI()->Talk(LORD_ILLIDAN_SAY_4);
return 1500;
break;
case 16:
if (Illi)
Illi->CastSpell(player, SPELL_TWO, true);
player->RemoveAurasDueToSpell(SPELL_THREE);
player->RemoveAurasDueToSpell(SPELL_FOUR);
return 5000;
break;
case 17:
if (Illi)
Illi->AI()->Talk(LORD_ILLIDAN_SAY_5);
return 5000;
break;
case 18:
if (Illi)
Illi->AI()->Talk(LORD_ILLIDAN_SAY_6);
return 5000;
break;
case 19:
if (Illi)
Illi->AI()->Talk(LORD_ILLIDAN_SAY_7);
return 5000;
break;
case 20:
if (Illi)
{
Illi->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);
Illi->SetDisableGravity(true);
}
return 500;
break;
case 21:
Talk(OVERLORD_SAY_5);
return 500;
break;
case 22:
if (Illi)
{
Illi->SetVisible(false);
Illi->setDeathState(JUST_DIED);
}
return 1000;
break;
case 23:
me->SetUInt32Value(UNIT_FIELD_BYTES_1, 0);
return 2000;
break;
case 24:
me->SetTarget(PlayerGUID);
return 5000;
break;
case 25:
Talk(OVERLORD_SAY_6);
return 2000;
break;
case 26:
player->GroupEventHappens(QUEST_LORD_ILLIDAN_STORMRAGE, me);
return 6000;
break;
case 27:
{
Unit* Yarzill = me->FindNearestCreature(C_YARZILL, 50.0f);
if (Yarzill)
Yarzill->SetTarget(PlayerGUID);
return 500;
}
break;
case 28:
player->RemoveAurasDueToSpell(SPELL_TWO);
player->RemoveAurasDueToSpell(41519);
player->CastSpell(player, SPELL_THREE, true);
player->CastSpell(player, SPELL_FOUR, true);
return 1000;
break;
case 29:
{
if (Creature* Yarzill = me->FindNearestCreature(C_YARZILL, 50.0f))
Yarzill->AI()->Talk(YARZILL_THE_MERC_SAY, player);
return 5000;
}
break;
case 30:
{
if (Creature* Yarzill = me->FindNearestCreature(C_YARZILL, 50.0f))
Yarzill->SetTarget(ObjectGuid::Empty);
return 5000;
}
break;
case 31:
{
if (Creature* Yarzill = me->FindNearestCreature(C_YARZILL, 50.0f))
Yarzill->CastSpell(player, 41540, true);
return 1000;
}
break;
case 32:
me->GetMotionMaster()->MovePoint(0, -5085.77f, 577.231f, 86.6719f);
return 5000;
break;
case 33:
me->SetTarget(ObjectGuid::Empty);
Reset();
return 100;
break;
default :
return 0;
break;
}
}
void UpdateAI(uint32 diff) override
{
if (!ConversationTimer)
return;
if (ConversationTimer <= diff)
{
if (Event && !PlayerGUID.IsEmpty())
ConversationTimer = NextStep(++Step);
} else ConversationTimer -= diff;
}
};
};
/*####
# npc_earthmender_wilda
####*/
@@ -2026,7 +1700,6 @@ void AddSC_shadowmoon_valley()
new npc_drake_dealer_hurlunk();
new npcs_flanis_swiftwing_and_kagrosh();
new npc_karynaku();
new npc_overlord_morghor();
new npc_earthmender_wilda();
new npc_lord_illidan_stormrage();
new go_crystal_prison();