Advertisement
Fubba

Experience Eliminator

Aug 24th, 2013
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.66 KB | None | 0 0
  1. class npc_xp : public CreatureScript
  2. {
  3.    public:
  4.        npc_xp() : CreatureScript("npc_xp") { }
  5.  
  6.        bool OnGossipHello(Player* player, Creature* creature)
  7.        {
  8.            player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I no longer wish to gain experience.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
  9.            player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I wish to start gaining experience again.", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
  10.            player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Nevermind", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
  11.            player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  12.            return true;
  13.        }
  14.  
  15.        bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 actions)
  16.        {
  17.            if (player->IsInCombat())
  18.            {
  19.                player->CLOSE_GOSSIP_MENU();
  20.                creature->MonsterWhisper("You're in combat", player->GetGUID());
  21.                return true;
  22.            }
  23.  
  24.            if (sender == GOSSIP_SENDER_MAIN)
  25.            {
  26.                switch(actions)
  27.                {
  28.                    case GOSSIP_ACTION_INFO_DEF+1:
  29.                        {
  30.                            player->SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_NO_XP_GAIN);
  31.                            creature->MonsterWhisper("You will no longer gain experience.", player->GetGUID());
  32.                        }
  33.                        break;
  34.  
  35.                    case GOSSIP_ACTION_INFO_DEF+2:
  36.                        {
  37.                            player->RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_NO_XP_GAIN);
  38.                            creature->MonsterWhisper("You will gain experience again.", player->GetGUID());
  39.                        }
  40.                        break;
  41.  
  42.                    case GOSSIP_ACTION_INFO_DEF+3:
  43.                        {
  44.                            player->PlayerTalkClass->SendCloseGossip();
  45.                        }
  46.                        break;
  47.                }
  48.            }
  49.            
  50.            return true;
  51.        }
  52. };
  53.  
  54. void AddSC_npc_xp()
  55. {
  56.     new npc_xp;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement