Scripting/Bloodmyst Isle: Moved Captured Sunhawk Agent gossip to db.

This commit is contained in:
Malcrom
2013-12-23 16:20:04 -03:30
parent 464632b0bc
commit 7ef49db25d
2 changed files with 35 additions and 72 deletions

View File

@@ -19,18 +19,18 @@
/* ScriptData
SDName: Bloodmyst_Isle
SD%Complete: 80
SDComment: Quest support: 9670, 9756(gossip items text needed).
SDComment: Quest support: 9670, 9667
SDCategory: Bloodmyst Isle
EndScriptData */
/* ContentData
npc_webbed_creature
npc_captured_sunhawk_agent
npc_princess_stillpine
go_princess_stillpines_cage
EndContentData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "Player.h"
/*######
@@ -40,6 +40,11 @@ EndContentData */
//possible creatures to be spawned
uint32 const possibleSpawns[32] = {17322, 17661, 17496, 17522, 17340, 17352, 17333, 17524, 17654, 17348, 17339, 17345, 17359, 17353, 17336, 17550, 17330, 17701, 17321, 17680, 17325, 17320, 17683, 17342, 17715, 17334, 17341, 17338, 17337, 17346, 17344, 17327};
enum WebbedCreature
{
NPC_EXPEDITION_RESEARCHER = 17681
};
class npc_webbed_creature : public CreatureScript
{
public:
@@ -65,9 +70,8 @@ public:
switch (urand(0, 2))
{
case 0:
spawnCreatureID = 17681;
if (Player* player = killer->ToPlayer())
player->KilledMonsterCredit(spawnCreatureID, 0);
player->KilledMonsterCredit(NPC_EXPEDITION_RESEARCHER, 0);
break;
case 1:
case 2:
@@ -82,72 +86,6 @@ public:
};
/*######
## npc_captured_sunhawk_agent
######*/
#define C_SUNHAWK_TRIGGER 17974
#define GOSSIP_HELLO_CSA "[PH] "
#define GOSSIP_SELECT_CSA1 "[PH] "
#define GOSSIP_SELECT_CSA2 "[PH] "
#define GOSSIP_SELECT_CSA3 "[PH] "
#define GOSSIP_SELECT_CSA4 "[PH] "
#define GOSSIP_SELECT_CSA5 "[PH] "
class npc_captured_sunhawk_agent : public CreatureScript
{
public:
npc_captured_sunhawk_agent() : CreatureScript("npc_captured_sunhawk_agent") { }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) OVERRIDE
{
player->PlayerTalkClass->ClearMenus();
switch (action)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_CSA1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
player->SEND_GOSSIP_MENU(9137, creature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+2:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_CSA2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
player->SEND_GOSSIP_MENU(9138, creature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+3:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_CSA3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
player->SEND_GOSSIP_MENU(9139, creature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+4:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_CSA4, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
player->SEND_GOSSIP_MENU(9140, creature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+5:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_CSA5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
player->SEND_GOSSIP_MENU(9141, creature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+6:
player->CLOSE_GOSSIP_MENU();
player->TalkedToCreature(C_SUNHAWK_TRIGGER, creature->GetGUID());
break;
}
return true;
}
bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
if (player->HasAura(31609) && player->GetQuestStatus(9756) == QUEST_STATUS_INCOMPLETE)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_HELLO_CSA, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(9136, creature->GetGUID());
}
else
player->SEND_GOSSIP_MENU(9134, creature->GetGUID());
return true;
}
};
/*######
## Quest 9667: Saving Princess Stillpine
######*/
@@ -206,7 +144,6 @@ public:
void AddSC_bloodmyst_isle()
{
new npc_webbed_creature();
new npc_captured_sunhawk_agent();
new npc_princess_stillpine();
new go_princess_stillpines_cage();
}