Advertisement
julienanid

[Trinity] Faction/Race/Rename/Customize change NPC

Sep 17th, 2013
535
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.48 KB | None | 0 0
  1. /*
  2. <--------------------------------------------------------------------------->
  3.  - Developer(s): Ghostcrawler336
  4.  - Edited: Synth
  5.  - Complete: 100%
  6.  - ScriptName: 'npc_changer'
  7.  - Comment: Tested.
  8.  - Updated: 9/17/13.
  9.  - Shared for: Emudevs
  10. <--------------------------------------------------------------------------->
  11. */
  12. #include "ScriptPCH.h"
  13.  
  14. enum  defines
  15. {
  16.  faction_token = 100, // Faction Change Token
  17.  race_token = 100, // Race Change Token
  18.  customize_token = 100  // Customize Change Token
  19.  rename_token = 100, // Rename Change Token
  20.  
  21. };
  22.  
  23. class npc_changer : public CreatureScript
  24. {
  25.     public:
  26.         npc_changer() : CreatureScript("npc_changer"){}
  27.  
  28.         bool OnGossipHello(Player * pPlayer, Creature * pCreature)
  29.         {
  30.            
  31.            
  32.             pPlayer->ADD_GOSSIP_ITEM(4, "Change My Race ", GOSSIP_SENDER_MAIN, 0);
  33.             pPlayer->ADD_GOSSIP_ITEM(4, "Change My Faction", GOSSIP_SENDER_MAIN, 1);
  34.             pPlayer->ADD_GOSSIP_ITEM(4, " Customize My Character", GOSSIP_SENDER_MAIN, 2);
  35.              pPlayer->ADD_GOSSIP_ITEM(4, " Change My Name", GOSSIP_SENDER_MAIN, 3);
  36.             pPlayer->PlayerTalkClass->SendGossipMenu(9425, pCreature->GetGUID());
  37.             return true;
  38.         }
  39.  
  40.         bool OnGossipSelect(Player * Player, Creature * Creature, uint32 /*uiSender*/, uint32 uiAction)
  41.         {
  42.             if(!Player)
  43.                 return true;
  44.  
  45.             switch(uiAction)
  46.             {
  47.                 case 0:
  48.                     if(Player->HasItemCount(race_token, 1))
  49.                     {
  50.                         Player->DestroyItemCount(race_token, 1, true, false);
  51.                         Player->SetAtLoginFlag(AT_LOGIN_CHANGE_RACE);
  52.                         Player->GetSession()->SendNotification("You need to relog, to change your race!");
  53.                         Player->PlayerTalkClass->SendCloseGossip();
  54.                     }
  55.                     else
  56.                     {
  57.                         Player->GetSession()->SendNotification("You need atleast one race change token!");
  58.                         Player->PlayerTalkClass->SendCloseGossip();
  59.                     }
  60.                     break;
  61.                 case 1:
  62.                     if(Player->HasItemCount(faction_token, 1))
  63.                     {
  64.                         Player->DestroyItemCount(faction_token, 1, true, false);
  65.                         Player->SetAtLoginFlag(AT_LOGIN_CHANGE_FACTION);
  66.                         Player->GetSession()->SendNotification("You need to relog, to change your faction!");
  67.                         Player->PlayerTalkClass->SendCloseGossip();
  68.                     }
  69.                     else
  70.                     {
  71.                         Player->GetSession()->SendNotification("You need atleast one faction change token!");
  72.                         Player->PlayerTalkClass->SendCloseGossip();
  73.                     }
  74.                     break;
  75.                                case 2:
  76.                                         if(Player->HasItemCount(customize_token, 1))
  77.                                         {
  78.                                                 Player->DestroyItemCount(customize_token, 1, true, false);
  79.                                                 Player->SetAtLoginFlag(AT_LOGIN_CUSTOMIZE);
  80.                                                 Player->GetSession()->SendNotification("you need to relog, to change your customize!");
  81.                                                 Player->PlayerTalkClass->CloseGossip();
  82.  
  83.                                         }
  84.  
  85.                                         else
  86.                                         {
  87.                                                 Player->GetSession()->SendNotification("you need atleast 1 customize change token!");
  88.                                                 Player->PlayerTalkClass->CloseGossip();
  89.                                         }
  90.                                         break;                        
  91.                                 case 3:
  92.                                         if(Player->HasItemCount(rename_token, 1))
  93.                                         {
  94.                                                 Player->DestroyItemCount(rename_token, 1, true, false);
  95.                                                 Player->SetAtLoginFlag(AT_LOGIN_RENAME);
  96.                                                 Player->GetSession()->SendNotification("you need to relog, to change your name!");
  97.                                                 Player->PlayerTalkClass->CloseGossip();
  98.  
  99.                                         }
  100.  
  101.                                         else
  102.                                         {
  103.                                                 Player->GetSession()->SendNotification("you need atleast 1 name change token!");
  104.                                                 Player->PlayerTalkClass->CloseGossip();
  105.                                         }
  106.                                         break;
  107.             }
  108.             return true;
  109.         }
  110.  
  111. };
  112.  
  113. void AddSC_npc_changer()
  114. {
  115.     new npc_changer();
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement