Advertisement
Guest User

NPC Reset w/Tokens

a guest
May 1st, 2014
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.67 KB | None | 0 0
  1. #include "ScriptPCH.h"
  2.  
  3. enum token
  4. {
  5.     reset_token = 38186, // Reset Token
  6. };
  7.  
  8. // amount of tokens
  9. #define count 5
  10.  
  11. class npc_reset : public CreatureScript
  12. {
  13.     public:
  14.         npc_reset() : CreatureScript("npc_reset"){}
  15.        
  16.         bool OnGossipHello(Player* player, Creature* creature)
  17.         {
  18.             player->ADD_GOSSIP_ITEM(4, "|TInterface\\icons\\INV_Misc_Wrench_01:30:30:-18:0|tRepair items", GOSSIP_SENDER_MAIN, 2);
  19.             player->ADD_GOSSIP_ITEM_EXTENDED(4, "|TInterface\\icons\\INV_Misc_Head_ClockworkGnome_01:30:30:-18:0|tReset Saves.",  GOSSIP_SENDER_MAIN, 3, "¿Are you sure you want to reset saves?", 0, false);
  20.             player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
  21.             return true;
  22.         }
  23.         bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 actions)
  24.         {
  25.            
  26.             switch (actions)
  27.             {
  28.                 case 1:
  29.                     player->DurabilityRepairAll(false, 0, false);
  30.                     creature->MonsterWhisper("Your items was repaired.", player);
  31.                     player->PlayerTalkClass->SendCloseGossip();
  32.                     break;
  33.                
  34.                 case 2:
  35.                     if (player->HasItemCount(reset_token, count))
  36.                         {
  37.                             for (uint8 i = 0; i < MAX_DIFFICULTY; ++i)
  38.                             {
  39.                                 Player::BoundInstancesMap &binds = player->GetBoundInstances(Difficulty(i));
  40.                                 for (Player::BoundInstancesMap::iterator itr = binds.begin(); itr != binds.end();)
  41.                                 {
  42.                                     player->UnbindInstance(itr, Difficulty(i));
  43.                                     creature->MonsterWhisper("Reset sucessful.", player);
  44.                                     player->DestroyItemCount(reset_token, count, true, false);
  45.                                     player->PlayerTalkClass->SendCloseGossip();
  46.                                     return true;
  47.                                 }
  48.                             }
  49.                             return true;
  50.                         }
  51.                     else
  52.                         {
  53.                         creature->MonsterWhisper("You have not enoght Tokens!", player);
  54.                         player->PlayerTalkClass->SendCloseGossip();
  55.                         }
  56.                         break;
  57.                        
  58.                 default: // Close
  59.                         player->CLOSE_GOSSIP_MENU();
  60.                         return true;
  61.             }
  62.             OnGossipHello(player, creature);
  63.             return true;
  64.         }
  65. };
  66.  
  67. void AddSC_npc_reset()
  68. {
  69.     new npc_reset;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement