diff --git a/src/server/scripts/Kalimdor/zone_felwood.cpp b/src/server/scripts/Kalimdor/zone_felwood.cpp index 981749685..9304a7a71 100644 --- a/src/server/scripts/Kalimdor/zone_felwood.cpp +++ b/src/server/scripts/Kalimdor/zone_felwood.cpp @@ -25,17 +25,29 @@ ## npcs_riverbreeze_and_silversky ######*/ -#define GOSSIP_ITEM_BEACON "Please make me a Cenarion Beacon" - enum RiverbreezeAndSilversky { SPELL_CENARION_BEACON = 15120, + ITEM_CENARION_BEACON = 11511, + ACTION_CREATE_CENARION_BEACON = GOSSIP_ACTION_INFO_DEF + 1, NPC_ARATHANDRIS_SILVERSKY = 9528, NPC_MAYBESS_RIVERBREEZE = 9529, QUEST_CLEASING_FELWOOD_A = 4101, - QUEST_CLEASING_FELWOOD_H = 4102 + QUEST_CLEASING_FELWOOD_H = 4102, + + // Texts + GOSSIP_MENU_SILVERSKY = 2208, + GOSSIP_MENU_RIVERBREEZE = 21400, + GOSSIP_OPTION_BEACON = 0, + + TEXT_SILVERSKY_1 = 2848, + TEXT_SILVERSKY_2 = 2845, + TEXT_SILVERSKY_3 = 2844, + TEXT_RIVERBREEZE_1 = 2849, + TEXT_RIVERBREEZE_2 = 2843, + TEXT_RIVERBREEZE_3 = 2842, }; class npcs_riverbreeze_and_silversky : public CreatureScript @@ -59,32 +71,36 @@ public: if (creature->IsQuestGiver()) player->PrepareQuestMenu(creature->GetGUID()); - uint32 creatureId = creature->GetEntry(); + uint32 const creatureId = creature->GetEntry(); if (creatureId == NPC_ARATHANDRIS_SILVERSKY) { if (player->GetQuestRewardStatus(QUEST_CLEASING_FELWOOD_A)) { - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEACON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - SendGossipMenuFor(player, 2848, creature->GetGUID()); + if (!player->HasItemCount(ITEM_CENARION_BEACON, 1, true)) + AddGossipItemFor(player, GOSSIP_MENU_SILVERSKY, GOSSIP_OPTION_BEACON, GOSSIP_SENDER_MAIN, ACTION_CREATE_CENARION_BEACON); + + SendGossipMenuFor(player, TEXT_SILVERSKY_1, creature->GetGUID()); } else if (player->GetTeamId() == TEAM_HORDE) - SendGossipMenuFor(player, 2845, creature->GetGUID()); + SendGossipMenuFor(player, TEXT_SILVERSKY_2, creature->GetGUID()); else - SendGossipMenuFor(player, 2844, creature->GetGUID()); + SendGossipMenuFor(player, TEXT_SILVERSKY_3, creature->GetGUID()); } if (creatureId == NPC_MAYBESS_RIVERBREEZE) { if (player->GetQuestRewardStatus(QUEST_CLEASING_FELWOOD_H)) { - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_ITEM_BEACON, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - SendGossipMenuFor(player, 2849, creature->GetGUID()); + if (!player->HasItemCount(ITEM_CENARION_BEACON, 1, true)) + AddGossipItemFor(player, GOSSIP_MENU_RIVERBREEZE, GOSSIP_OPTION_BEACON, GOSSIP_SENDER_MAIN, ACTION_CREATE_CENARION_BEACON); + + SendGossipMenuFor(player, TEXT_RIVERBREEZE_1, creature->GetGUID()); } else if (player->GetTeamId() == TEAM_ALLIANCE) - SendGossipMenuFor(player, 2843, creature->GetGUID()); + SendGossipMenuFor(player, TEXT_RIVERBREEZE_2, creature->GetGUID()); else - SendGossipMenuFor(player, 2842, creature->GetGUID()); + SendGossipMenuFor(player, TEXT_RIVERBREEZE_3, creature->GetGUID()); } return true;