Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ScriptPCH.h"
- /*Author: Mainaz*/
- class Exchanger_NPC : public CreatureScript
- {
- public:
- Exchanger_NPC() : CreatureScript("Exchanger_NPC") { }
- bool OnGossipHello(Player *player, Creature * creature)
- {
- if (player->isInCombat())
- {
- player->CLOSE_GOSSIP_MENU();
- creature->MonsterWhisper("You are in combat!", player->GetGUID());
- return true;
- }
- else
- {
- player->ADD_GOSSIP_ITEM_EXTENDED(5, "200 Conquest Points for 4000 Honor", GOSSIP_SENDER_MAIN, 1, "Are you sure you want to exchange 200 Conquest Points for 4000 Honor?", 0, false);
- player->ADD_GOSSIP_ITEM_EXTENDED(5, "4000 Honor for 200 Conquest Points", GOSSIP_SENDER_MAIN, 2, "Are you sure you want to exchange 4000 Honor for 200 Conquest Points?", 0, false);
- }
- player->SEND_GOSSIP_MENU(60040, creature->GetGUID());
- return true;
- }
- bool OnGossipSelect(Player * player, Creature * creature, uint32 sender, uint32 uiAction)
- {
- if (sender == GOSSIP_SENDER_MAIN)
- {
- player->PlayerTalkClass->ClearMenus();
- uint32 honor_points = player->GetCurrency(CURRENCY_TYPE_HONOR_POINTS, true);
- uint32 conquest_points = player->GetCurrency(CURRENCY_TYPE_HONOR_POINTS, true);
- switch (uiAction)
- {
- case 1:
- /*Note: Normally the value you use its value / 100 = ingame value but if we use * CURRENCY_PRECISION it will use exactly that amount*/
- if (conquest_points >= 200)
- {
- player->CLOSE_GOSSIP_MENU();
- player->ModifyCurrency(CURRENCY_TYPE_CONQUEST_POINTS, -100 * CURRENCY_PRECISION, true, true); //Conquest Points
- player->ModifyCurrency(CURRENCY_TYPE_HONOR_POINTS, +1000 * CURRENCY_PRECISION, true, true); //Honor Points
- creature->MonsterWhisper("|c00077766|r You exchanged 100 conquest points for 100 honor points successfully!", player->GetGUID(), true);
- }
- else
- {
- player->CLOSE_GOSSIP_MENU();
- creature->MonsterWhisper("|c00077766|r You don't have enough Conquest Points!", player->GetGUID(), true);
- return false;
- }
- break;
- case 2:
- if (honor_points >= 4000)
- {
- player->CLOSE_GOSSIP_MENU();
- player->ModifyCurrency(CURRENCY_TYPE_CONQUEST_POINTS, +100 * CURRENCY_PRECISION, true, true); //Conquest Points
- player->ModifyCurrency(CURRENCY_TYPE_HONOR_POINTS, -100 * CURRENCY_PRECISION, true, true); //Honor Points
- creature->MonsterWhisper("|c00077766|r You exchanged 100 honor points for 100 conquest points successfully!", player->GetGUID(), true);
- }
- else
- {
- player->CLOSE_GOSSIP_MENU();
- creature->MonsterWhisper("|c00077766|r You don't have enough Honor Points!", player->GetGUID(), true);
- return false;
- }
- break;
- }
- }
- return true;
- }
- };
- void AddSC_Exchanger_NPC()
- {
- new Exchanger_NPC();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement