Files
TrinityCore/src/server/scripts/Kalimdor/felwood.cpp

94 lines
2.9 KiB
C++

/*
* Copyright (C) 2008-2011 TrinityCore <http://www.trinitycore.org/>
* Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* ScriptData
SDName: Felwood
SD%Complete: 95
SDComment: Quest support: 4101, 4102
SDCategory: Felwood
EndScriptData */
/* ContentData
npcs_riverbreeze_and_silversky
EndContentData */
#include "ScriptPCH.h"
/*######
## npcs_riverbreeze_and_silversky
######*/
#define GOSSIP_ITEM_BEACON "Please make me a Cenarion Beacon"
class npcs_riverbreeze_and_silversky : public CreatureScript
{
public:
npcs_riverbreeze_and_silversky() : CreatureScript("npcs_riverbreeze_and_silversky") { }
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)
{
player->PlayerTalkClass->ClearMenus();
if (uiAction == GOSSIP_ACTION_INFO_DEF+1)
{
player->CLOSE_GOSSIP_MENU();
creature->CastSpell(player, 15120, false);
}
return true;
}
bool OnGossipHello(Player* player, Creature* creature)
{
uint32 eCreature = creature->GetEntry();
if (creature->isQuestGiver())
player->PrepareQuestMenu(creature->GetGUID());
if (eCreature == 9528)
{
if (player->GetQuestRewardStatus(4101))
{
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 (eCreature == 9529)
{
if (player->GetQuestRewardStatus(4102))
{
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;
}
};
void AddSC_felwood()
{
new npcs_riverbreeze_and_silversky();
}