* Rename InstanceData to InstanceScript

* Rename *mgr to their new names in scripts project
* Mass convert all the scripts (NEEDS THOROUGH TESTING, because it was done automatically) Please, report bugs on issue tracker.

--HG--
branch : trunk
rename : src/server/game/Instances/InstanceData.cpp => src/server/game/Instances/InstanceScript.cpp
rename : src/server/game/Instances/InstanceData.h => src/server/game/Instances/InstanceScript.h
This commit is contained in:
azazel
2010-08-08 22:54:58 +06:00
parent 8a69e50d6a
commit 590199d8e1
482 changed files with 84476 additions and 82697 deletions
+380 -371
View File
@@ -48,48 +48,55 @@ enum eBunthen
#define GOSSIP_ITEM_THUNDER "I'd like to fly to Thunder Bluff."
#define GOSSIP_ITEM_AQ_END "Do you know where I can find Half Pendant of Aquatic Endurance?"
bool GossipHello_npc_bunthen_plainswind(Player* pPlayer, Creature* pCreature)
␍class npc_bunthen_plainswind : public CreatureScript
{
if (pPlayer->getClass() != CLASS_DRUID)
pPlayer->SEND_GOSSIP_MENU(4916, pCreature->GetGUID());
else if (pPlayer->GetTeam() != HORDE)
public:
npc_bunthen_plainswind() : CreatureScript("npc_bunthen_plainswind") { }
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
{
if (pPlayer->GetQuestStatus(QUEST_SEA_LION_ALLY) == QUEST_STATUS_INCOMPLETE)
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_END, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
pPlayer->SEND_GOSSIP_MENU(4917, pCreature->GetGUID());
switch(uiAction)
{
case GOSSIP_ACTION_INFO_DEF + 1:
pPlayer->CLOSE_GOSSIP_MENU();
if (pPlayer->getClass() == CLASS_DRUID && pPlayer->GetTeam() == HORDE)
pPlayer->ActivateTaxiPathTo(TAXI_PATH_ID_HORDE);
break;
case GOSSIP_ACTION_INFO_DEF + 2:
pPlayer->SEND_GOSSIP_MENU(5373, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF + 3:
pPlayer->SEND_GOSSIP_MENU(5376, pCreature->GetGUID());
break;
}
return true;
}
else if (pPlayer->getClass() == CLASS_DRUID && pPlayer->GetTeam() == HORDE)
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
{
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_THUNDER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
if (pPlayer->getClass() != CLASS_DRUID)
pPlayer->SEND_GOSSIP_MENU(4916, pCreature->GetGUID());
else if (pPlayer->GetTeam() != HORDE)
{
if (pPlayer->GetQuestStatus(QUEST_SEA_LION_ALLY) == QUEST_STATUS_INCOMPLETE)
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_END, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
if (pPlayer->GetQuestStatus(QUEST_SEA_LION_HORDE) == QUEST_STATUS_INCOMPLETE)
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_END, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
pPlayer->SEND_GOSSIP_MENU(4917, pCreature->GetGUID());
}
else if (pPlayer->getClass() == CLASS_DRUID && pPlayer->GetTeam() == HORDE)
{
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_THUNDER, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
pPlayer->SEND_GOSSIP_MENU(4918, pCreature->GetGUID());
if (pPlayer->GetQuestStatus(QUEST_SEA_LION_HORDE) == QUEST_STATUS_INCOMPLETE)
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_END, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
pPlayer->SEND_GOSSIP_MENU(4918, pCreature->GetGUID());
}
return true;
}
return true;
}
bool GossipSelect_npc_bunthen_plainswind(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
{
switch(uiAction)
{
case GOSSIP_ACTION_INFO_DEF + 1:
pPlayer->CLOSE_GOSSIP_MENU();
if (pPlayer->getClass() == CLASS_DRUID && pPlayer->GetTeam() == HORDE)
pPlayer->ActivateTaxiPathTo(TAXI_PATH_ID_HORDE);
break;
case GOSSIP_ACTION_INFO_DEF + 2:
pPlayer->SEND_GOSSIP_MENU(5373, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF + 3:
pPlayer->SEND_GOSSIP_MENU(5376, pCreature->GetGUID());
break;
}
return true;
}
};
/*######
## npc_great_bear_spirit
@@ -99,47 +106,54 @@ bool GossipSelect_npc_bunthen_plainswind(Player* pPlayer, Creature* pCreature, u
#define GOSSIP_BEAR2 "I seek to understand the importance of strength of the body."
#define GOSSIP_BEAR3 "I seek to understand the importance of strength of the heart."
#define GOSSIP_BEAR4 "I have heard your words, Great Bear Spirit, and I understand. I now seek your blessings to fully learn the way of the Claw."
bool GossipHello_npc_great_bear_spirit(Player* pPlayer, Creature* pCreature)
␍class npc_great_bear_spirit : public CreatureScript
{
//ally or horde quest
if (pPlayer->GetQuestStatus(5929) == QUEST_STATUS_INCOMPLETE || pPlayer->GetQuestStatus(5930) == QUEST_STATUS_INCOMPLETE)
{
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BEAR1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
pPlayer->SEND_GOSSIP_MENU(4719, pCreature->GetGUID());
}
else
pPlayer->SEND_GOSSIP_MENU(4718, pCreature->GetGUID());
public:
npc_great_bear_spirit() : CreatureScript("npc_great_bear_spirit") { }
return true;
}
bool GossipSelect_npc_great_bear_spirit(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
{
switch (uiAction)
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
{
case GOSSIP_ACTION_INFO_DEF:
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BEAR2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
pPlayer->SEND_GOSSIP_MENU(4721, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF + 1:
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BEAR3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
pPlayer->SEND_GOSSIP_MENU(4733, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF + 2:
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BEAR4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
pPlayer->SEND_GOSSIP_MENU(4734, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF + 3:
pPlayer->SEND_GOSSIP_MENU(4735, pCreature->GetGUID());
if (pPlayer->GetQuestStatus(5929) == QUEST_STATUS_INCOMPLETE)
pPlayer->AreaExploredOrEventHappens(5929);
if (pPlayer->GetQuestStatus(5930) == QUEST_STATUS_INCOMPLETE)
pPlayer->AreaExploredOrEventHappens(5930);
break;
switch (uiAction)
{
case GOSSIP_ACTION_INFO_DEF:
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BEAR2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
pPlayer->SEND_GOSSIP_MENU(4721, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF + 1:
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BEAR3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
pPlayer->SEND_GOSSIP_MENU(4733, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF + 2:
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BEAR4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
pPlayer->SEND_GOSSIP_MENU(4734, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF + 3:
pPlayer->SEND_GOSSIP_MENU(4735, pCreature->GetGUID());
if (pPlayer->GetQuestStatus(5929) == QUEST_STATUS_INCOMPLETE)
pPlayer->AreaExploredOrEventHappens(5929);
if (pPlayer->GetQuestStatus(5930) == QUEST_STATUS_INCOMPLETE)
pPlayer->AreaExploredOrEventHappens(5930);
break;
}
return true;
}
return true;
}
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
{
//ally or horde quest
if (pPlayer->GetQuestStatus(5929) == QUEST_STATUS_INCOMPLETE || pPlayer->GetQuestStatus(5930) == QUEST_STATUS_INCOMPLETE)
{
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_BEAR1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
pPlayer->SEND_GOSSIP_MENU(4719, pCreature->GetGUID());
}
else
pPlayer->SEND_GOSSIP_MENU(4718, pCreature->GetGUID());
return true;
}
};
/*######
## npc_silva_filnaveth
@@ -147,48 +161,55 @@ bool GossipSelect_npc_great_bear_spirit(Player* pPlayer, Creature* pCreature, ui
#define GOSSIP_ITEM_RUTHERAN "I'd like to fly to Rut'theran Village."
#define GOSSIP_ITEM_AQ_AGI "Do you know where I can find Half Pendant of Aquatic Agility?"
bool GossipHello_npc_silva_filnaveth(Player* pPlayer, Creature* pCreature)
␍class npc_silva_filnaveth : public CreatureScript
{
if (pPlayer->getClass() != CLASS_DRUID)
pPlayer->SEND_GOSSIP_MENU(4913, pCreature->GetGUID());
else if (pPlayer->GetTeam() != ALLIANCE)
public:
npc_silva_filnaveth() : CreatureScript("npc_silva_filnaveth") { }
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
{
if (pPlayer->GetQuestStatus(QUEST_SEA_LION_HORDE) == QUEST_STATUS_INCOMPLETE)
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_AGI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
pPlayer->SEND_GOSSIP_MENU(4915, pCreature->GetGUID());
switch(uiAction)
{
case GOSSIP_ACTION_INFO_DEF + 1:
pPlayer->CLOSE_GOSSIP_MENU();
if (pPlayer->getClass() == CLASS_DRUID && pPlayer->GetTeam() == ALLIANCE)
pPlayer->ActivateTaxiPathTo(TAXI_PATH_ID_ALLY);
break;
case GOSSIP_ACTION_INFO_DEF + 2:
pPlayer->SEND_GOSSIP_MENU(5374, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF + 3:
pPlayer->SEND_GOSSIP_MENU(5375, pCreature->GetGUID());
break;
}
return true;
}
else if (pPlayer->getClass() == CLASS_DRUID && pPlayer->GetTeam() == ALLIANCE)
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
{
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_RUTHERAN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
if (pPlayer->getClass() != CLASS_DRUID)
pPlayer->SEND_GOSSIP_MENU(4913, pCreature->GetGUID());
else if (pPlayer->GetTeam() != ALLIANCE)
{
if (pPlayer->GetQuestStatus(QUEST_SEA_LION_HORDE) == QUEST_STATUS_INCOMPLETE)
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_AGI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
if (pPlayer->GetQuestStatus(QUEST_SEA_LION_ALLY) == QUEST_STATUS_INCOMPLETE)
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_AGI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
pPlayer->SEND_GOSSIP_MENU(4915, pCreature->GetGUID());
}
else if (pPlayer->getClass() == CLASS_DRUID && pPlayer->GetTeam() == ALLIANCE)
{
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_RUTHERAN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
pPlayer->SEND_GOSSIP_MENU(4914, pCreature->GetGUID());
if (pPlayer->GetQuestStatus(QUEST_SEA_LION_ALLY) == QUEST_STATUS_INCOMPLETE)
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_AQ_AGI, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
pPlayer->SEND_GOSSIP_MENU(4914, pCreature->GetGUID());
}
return true;
}
return true;
}
bool GossipSelect_npc_silva_filnaveth(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
{
switch(uiAction)
{
case GOSSIP_ACTION_INFO_DEF + 1:
pPlayer->CLOSE_GOSSIP_MENU();
if (pPlayer->getClass() == CLASS_DRUID && pPlayer->GetTeam() == ALLIANCE)
pPlayer->ActivateTaxiPathTo(TAXI_PATH_ID_ALLY);
break;
case GOSSIP_ACTION_INFO_DEF + 2:
pPlayer->SEND_GOSSIP_MENU(5374, pCreature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF + 3:
pPlayer->SEND_GOSSIP_MENU(5375, pCreature->GetGUID());
break;
}
return true;
}
};
/*######
## npc_clintar_spirit
@@ -258,281 +279,294 @@ float Clintar_spirit_WP[41][5] =
#define CLINTAR_SPIRIT_SAY_GET_TWO -1000290
#define CLINTAR_SPIRIT_SAY_GET_THREE -1000291
#define CLINTAR_SPIRIT_SAY_GET_FINAL -1000292
struct npc_clintar_spiritAI : public npc_escortAI
␍class npc_clintar_spirit : public CreatureScript
{
public:
npc_clintar_spiritAI(Creature *c) : npc_escortAI(c) {}
npc_clintar_spirit() : CreatureScript("npc_clintar_spirit") { }
uint32 Step;
uint32 CurrWP;
uint32 Event_Timer;
uint32 checkPlayer_Timer;
uint64 PlayerGUID;
bool Event_onWait;
void Reset()
CreatureAI* GetAI(Creature* pCreature) const
{
if (!PlayerGUID)
{
Step = 0;
CurrWP = 0;
Event_Timer = 0;
PlayerGUID = 0;
checkPlayer_Timer = 1000;
Event_onWait = false;
}
return new npc_clintar_spiritAI (pCreature);
}
void JustDied(Unit * /*killer*/)
struct npc_clintar_spiritAI : public npc_escortAI
{
if (!PlayerGUID)
return;
public:
npc_clintar_spiritAI(Creature *c) : npc_escortAI(c) {}
Player* pPlayer = Unit::GetPlayer(*me, PlayerGUID);
if (pPlayer && pPlayer->GetQuestStatus(10965) == QUEST_STATUS_INCOMPLETE)
{
pPlayer->FailQuest(10965);
PlayerGUID = 0;
Reset();
}
}
uint32 Step;
uint32 CurrWP;
uint32 Event_Timer;
uint32 checkPlayer_Timer;
void EnterEvadeMode()
{
Player* pPlayer = Unit::GetPlayer(*me, PlayerGUID);
if (pPlayer && pPlayer->isInCombat() && pPlayer->getAttackerForHelper())
{
AttackStart(pPlayer->getAttackerForHelper());
return;
}
npc_escortAI::EnterEvadeMode();
}
uint64 PlayerGUID;
void EnterCombat(Unit* who)
{
uint32 rnd = rand()%2;
switch(rnd)
{
case 0: DoScriptText(CLINTAR_SPIRIT_SAY_UNDER_ATTACK_1, me, who); break;
case 1: DoScriptText(CLINTAR_SPIRIT_SAY_UNDER_ATTACK_2, me, who); break;
}
}
bool Event_onWait;
void StartEvent(Player* pPlayer)
{
if (!pPlayer)
return;
if (pPlayer->GetQuestStatus(10965) == QUEST_STATUS_INCOMPLETE)
void Reset()
{
for (uint8 i = 0; i < 41; ++i)
if (!PlayerGUID)
{
AddWaypoint(i, Clintar_spirit_WP[i][0], Clintar_spirit_WP[i][1], Clintar_spirit_WP[i][2], (uint32)Clintar_spirit_WP[i][4]);
}
PlayerGUID = pPlayer->GetGUID();
Start(true,false,PlayerGUID);
}
return;
}
void UpdateAI(const uint32 diff)
{
npc_escortAI::UpdateAI(diff);
if (!PlayerGUID)
{
me->setDeathState(JUST_DIED);
return;
}
if (!me->isInCombat() && !Event_onWait)
{
if (checkPlayer_Timer <= diff)
{
Player* pPlayer = Unit::GetPlayer(*me, PlayerGUID);
if (pPlayer && pPlayer->isInCombat() && pPlayer->getAttackerForHelper())
AttackStart(pPlayer->getAttackerForHelper());
Step = 0;
CurrWP = 0;
Event_Timer = 0;
PlayerGUID = 0;
checkPlayer_Timer = 1000;
} else checkPlayer_Timer -= diff;
Event_onWait = false;
}
}
if (Event_onWait && Event_Timer <= diff)
void JustDied(Unit * /*killer*/)
{
if (!PlayerGUID)
return;
Player* pPlayer = Unit::GetPlayer(*me, PlayerGUID);
if (!pPlayer || (pPlayer && pPlayer->GetQuestStatus(10965) == QUEST_STATUS_NONE))
if (pPlayer && pPlayer->GetQuestStatus(10965) == QUEST_STATUS_INCOMPLETE)
{
pPlayer->FailQuest(10965);
PlayerGUID = 0;
Reset();
}
}
void EnterEvadeMode()
{
Player* pPlayer = Unit::GetPlayer(*me, PlayerGUID);
if (pPlayer && pPlayer->isInCombat() && pPlayer->getAttackerForHelper())
{
AttackStart(pPlayer->getAttackerForHelper());
return;
}
npc_escortAI::EnterEvadeMode();
}
void EnterCombat(Unit* who)
{
uint32 rnd = rand()%2;
switch(rnd)
{
case 0: DoScriptText(CLINTAR_SPIRIT_SAY_UNDER_ATTACK_1, me, who); break;
case 1: DoScriptText(CLINTAR_SPIRIT_SAY_UNDER_ATTACK_2, me, who); break;
}
}
void StartEvent(Player* pPlayer)
{
if (!pPlayer)
return;
if (pPlayer->GetQuestStatus(10965) == QUEST_STATUS_INCOMPLETE)
{
for (uint8 i = 0; i < 41; ++i)
{
AddWaypoint(i, Clintar_spirit_WP[i][0], Clintar_spirit_WP[i][1], Clintar_spirit_WP[i][2], (uint32)Clintar_spirit_WP[i][4]);
}
PlayerGUID = pPlayer->GetGUID();
Start(true,false,PlayerGUID);
}
return;
}
void UpdateAI(const uint32 diff)
{
npc_escortAI::UpdateAI(diff);
if (!PlayerGUID)
{
me->setDeathState(JUST_DIED);
return;
}
switch(CurrWP)
if (!me->isInCombat() && !Event_onWait)
{
case 0:
switch(Step)
{
case 0:
me->Say(CLINTAR_SPIRIT_SAY_START,0,PlayerGUID);
Event_Timer = 8000;
Step = 1;
break;
case 1:
Event_onWait = false;
break;
}
break;
case 6:
switch(Step)
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
Event_Timer = 5000;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
DoScriptText(CLINTAR_SPIRIT_SAY_GET_ONE, me, pPlayer);
Event_onWait = false;
break;
}
break;
case 15:
switch(Step)
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
Event_Timer = 5000;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
Event_onWait = false;
break;
}
break;
case 16:
switch(Step)
{
case 0:
DoScriptText(CLINTAR_SPIRIT_SAY_GET_TWO, me, pPlayer);
Event_Timer = 15000;
Step = 1;
break;
case 1:
Event_onWait = false;
break;
}
break;
case 20:
switch(Step)
{
case 0:
{
Creature *mob = me->SummonCreature(ASPECT_RAVEN, ASPECT_RAVEN_SUMMON_X, ASPECT_RAVEN_SUMMON_Y, ASPECT_RAVEN_SUMMON_Z, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 2000);
if (mob)
{
mob->AddThreat(me,10000.0f);
mob->AI()->AttackStart(me);
}
Event_Timer = 2000;
Step = 1;
break;
}
case 1:
Event_onWait = false;
break;
}
break;
case 24:
switch(Step)
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
Event_Timer = 5000;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
Event_onWait = false;
break;
}
break;
case 25:
switch(Step)
{
case 0:
DoScriptText(CLINTAR_SPIRIT_SAY_GET_THREE, me, pPlayer);
Event_Timer = 4000;
Step = 1;
break;
case 1:
Event_onWait = false;
break;
}
break;
case 40:
switch(Step)
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 2);
DoScriptText(CLINTAR_SPIRIT_SAY_GET_FINAL, me, pPlayer);
pPlayer->CompleteQuest(10965);
Event_Timer = 1500;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
Event_Timer = 3000;
Step = 2;
break;
case 2:
pPlayer->TalkedToCreature(me->GetEntry(), me->GetGUID());
PlayerGUID = 0;
Reset();
me->setDeathState(JUST_DIED);
break;
}
break;
default:
Event_onWait = false;
break;
if (checkPlayer_Timer <= diff)
{
Player* pPlayer = Unit::GetPlayer(*me, PlayerGUID);
if (pPlayer && pPlayer->isInCombat() && pPlayer->getAttackerForHelper())
AttackStart(pPlayer->getAttackerForHelper());
checkPlayer_Timer = 1000;
} else checkPlayer_Timer -= diff;
}
} else if (Event_onWait) Event_Timer -= diff;
}
if (Event_onWait && Event_Timer <= diff)
{
Player* pPlayer = Unit::GetPlayer(*me, PlayerGUID);
if (!pPlayer || (pPlayer && pPlayer->GetQuestStatus(10965) == QUEST_STATUS_NONE))
{
me->setDeathState(JUST_DIED);
return;
}
switch(CurrWP)
{
case 0:
switch(Step)
{
case 0:
me->Say(CLINTAR_SPIRIT_SAY_START,0,PlayerGUID);
Event_Timer = 8000;
Step = 1;
break;
case 1:
Event_onWait = false;
break;
}
break;
case 6:
switch(Step)
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
Event_Timer = 5000;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
DoScriptText(CLINTAR_SPIRIT_SAY_GET_ONE, me, pPlayer);
Event_onWait = false;
break;
}
break;
case 15:
switch(Step)
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
Event_Timer = 5000;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
Event_onWait = false;
break;
}
break;
case 16:
switch(Step)
{
case 0:
DoScriptText(CLINTAR_SPIRIT_SAY_GET_TWO, me, pPlayer);
Event_Timer = 15000;
Step = 1;
break;
case 1:
Event_onWait = false;
break;
}
break;
case 20:
switch(Step)
{
case 0:
{
Creature *mob = me->SummonCreature(ASPECT_RAVEN, ASPECT_RAVEN_SUMMON_X, ASPECT_RAVEN_SUMMON_Y, ASPECT_RAVEN_SUMMON_Z, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 2000);
if (mob)
{
mob->AddThreat(me,10000.0f);
mob->AI()->AttackStart(me);
}
Event_Timer = 2000;
Step = 1;
break;
}
case 1:
Event_onWait = false;
break;
}
break;
case 24:
switch(Step)
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 133);
Event_Timer = 5000;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
Event_onWait = false;
break;
}
break;
case 25:
switch(Step)
{
case 0:
DoScriptText(CLINTAR_SPIRIT_SAY_GET_THREE, me, pPlayer);
Event_Timer = 4000;
Step = 1;
break;
case 1:
Event_onWait = false;
break;
}
break;
case 40:
switch(Step)
{
case 0:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 2);
DoScriptText(CLINTAR_SPIRIT_SAY_GET_FINAL, me, pPlayer);
pPlayer->CompleteQuest(10965);
Event_Timer = 1500;
Step = 1;
break;
case 1:
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
Event_Timer = 3000;
Step = 2;
break;
case 2:
pPlayer->TalkedToCreature(me->GetEntry(), me->GetGUID());
PlayerGUID = 0;
Reset();
me->setDeathState(JUST_DIED);
break;
}
break;
default:
Event_onWait = false;
break;
}
} else if (Event_onWait) Event_Timer -= diff;
}
void WaypointReached(uint32 id)
{
CurrWP = id;
Event_Timer = 0;
Step = 0;
Event_onWait = true;
}
};
void WaypointReached(uint32 id)
{
CurrWP = id;
Event_Timer = 0;
Step = 0;
Event_onWait = true;
}
};
CreatureAI* GetAI_npc_clintar_spirit(Creature* pCreature)
{
return new npc_clintar_spiritAI (pCreature);
}
/*####
# npc_clintar_dreamwalker
####*/
#define CLINTAR_SPIRIT 22916
bool QuestAccept_npc_clintar_dreamwalker(Player* pPlayer, Creature* pCreature, Quest const *quest)
␍class npc_clintar_dreamwalker : public CreatureScript
{
if (quest->GetQuestId() == 10965)
public:
npc_clintar_dreamwalker() : CreatureScript("npc_clintar_dreamwalker") { }
bool OnQuestAccept(Player* pPlayer, Creature* pCreature, Quest const *quest)
{
Creature *clintar_spirit = pCreature->SummonCreature(CLINTAR_SPIRIT, CLINTAR_SPIRIT_SUMMON_X, CLINTAR_SPIRIT_SUMMON_Y, CLINTAR_SPIRIT_SUMMON_Z, CLINTAR_SPIRIT_SUMMON_O, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 100000);
if (clintar_spirit)
CAST_AI(npc_clintar_spiritAI, clintar_spirit->AI())->StartEvent(pPlayer);
if (quest->GetQuestId() == 10965)
{
Creature *clintar_spirit = pCreature->SummonCreature(CLINTAR_SPIRIT, CLINTAR_SPIRIT_SUMMON_X, CLINTAR_SPIRIT_SUMMON_Y, CLINTAR_SPIRIT_SUMMON_Z, CLINTAR_SPIRIT_SUMMON_O, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 100000);
if (clintar_spirit)
CAST_AI(npc_clintar_spirit::npc_clintar_spiritAI, clintar_spirit->AI())->StartEvent(pPlayer);
}
return true;
}
return true;
}
};
/*####
#
@@ -540,34 +574,9 @@ bool QuestAccept_npc_clintar_dreamwalker(Player* pPlayer, Creature* pCreature, Q
void AddSC_moonglade()
{
Script *newscript;
newscript = new Script;
newscript->Name = "npc_bunthen_plainswind";
newscript->pGossipHello = &GossipHello_npc_bunthen_plainswind;
newscript->pGossipSelect = &GossipSelect_npc_bunthen_plainswind;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_great_bear_spirit";
newscript->pGossipHello = &GossipHello_npc_great_bear_spirit;
newscript->pGossipSelect = &GossipSelect_npc_great_bear_spirit;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_silva_filnaveth";
newscript->pGossipHello = &GossipHello_npc_silva_filnaveth;
newscript->pGossipSelect = &GossipSelect_npc_silva_filnaveth;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_clintar_dreamwalker";
newscript->pQuestAccept = &QuestAccept_npc_clintar_dreamwalker;
newscript->RegisterSelf();
newscript = new Script;
newscript->Name = "npc_clintar_spirit";
newscript->GetAI = &GetAI_npc_clintar_spirit;
newscript->RegisterSelf();
new npc_bunthen_plainswind();
new npc_great_bear_spirit();
new npc_silva_filnaveth();
new npc_clintar_dreamwalker();
new npc_clintar_spirit();
}