Core/Scripts: convert script npcs_riverbreeze_and_silversky to SAI (#17690)

Move script npcs_riverbreeze_and_silversky to SAI,
thereby removing one line of hardcoded text.

- Remove core script npcs_riverbreeze_and_silversky
- Create SAI script for gossip event Cenarion Beacon
- Add missing gossip_menu for plant description
- Add missing creature_text about Cenarion Beacon
- Add and correct conditions for gossip availability
This commit is contained in:
tkrokli
2016-07-31 06:16:47 +02:00
committed by Aokromes
parent 8fdb9b4579
commit e54e27af92
2 changed files with 49 additions and 71 deletions

View File

@@ -19,12 +19,12 @@
/* ScriptData
SDName: Felwood
SD%Complete: 95
SDComment: Quest support: 4101, 4102
SDComment: Quest support: 7632
SDCategory: Felwood
EndScriptData */
/* ContentData
npcs_riverbreeze_and_silversky
at_ancient_leaf
EndContentData */
#include "ScriptMgr.h"
@@ -32,74 +32,6 @@ EndContentData */
#include "ScriptedGossip.h"
#include "Player.h"
/*######
## npcs_riverbreeze_and_silversky
######*/
#define GOSSIP_ITEM_BEACON "Please make me a Cenarion Beacon"
enum RiverbreezeAndSilversky
{
SPELL_CENARION_BEACON = 15120,
NPC_ARATHANDRIS_SILVERSKY = 9528,
NPC_MAYBESS_RIVERBREEZE = 9529,
QUEST_CLEASING_FELWOOD_A = 4101,
QUEST_CLEASING_FELWOOD_H = 4102
};
class npcs_riverbreeze_and_silversky : public CreatureScript
{
public:
npcs_riverbreeze_and_silversky() : CreatureScript("npcs_riverbreeze_and_silversky") { }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
creature->CastSpell(player, SPELL_CENARION_BEACON, false);
}
return true;
}
bool OnGossipHello(Player* player, Creature* creature) override
{
if (creature->IsQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
uint32 creatureId = creature->GetEntry();
if (creatureId == NPC_ARATHANDRIS_SILVERSKY)
{
if (player->GetQuestRewardStatus(QUEST_CLEASING_FELWOOD_A))
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEACON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(2848, creature->GetGUID());
} else if (player->GetTeam() == HORDE)
player->SEND_GOSSIP_MENU(2845, creature->GetGUID());
else
player->SEND_GOSSIP_MENU(2844, creature->GetGUID());
}
if (creatureId == NPC_MAYBESS_RIVERBREEZE)
{
if (player->GetQuestRewardStatus(QUEST_CLEASING_FELWOOD_H))
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEACON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(2849, creature->GetGUID());
} else if (player->GetTeam() == ALLIANCE)
player->SEND_GOSSIP_MENU(2843, creature->GetGUID());
else
player->SEND_GOSSIP_MENU(2842, creature->GetGUID());
}
return true;
}
};
/*######
## at_ancient_leaf
######*/
@@ -138,6 +70,5 @@ class at_ancient_leaf : public AreaTriggerScript
void AddSC_felwood()
{
new npcs_riverbreeze_and_silversky();
new at_ancient_leaf();
}