Advertisement
Guest User

Modified level up script.

a guest
Mar 6th, 2012
396
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.80 KB | None | 0 0
  1. #include "ScriptPCH.h"
  2. enum defines
  3. {
  4. TOKEN_ID = 6265,
  5. AMOUNT_OF_TOKENS_REQUIRED = 1,
  6. };
  7.  
  8. class Levelup : public CreatureScript
  9. {
  10. public:
  11. Levelup()
  12. : CreatureScript("Levelup")
  13. {
  14. }
  15.  
  16. struct LevelupAI : public ScriptedAI
  17. {
  18. LevelupAI(Creature *c) : ScriptedAI(c)
  19. {
  20. }
  21.  
  22. void Reset()
  23. {
  24. me->RestoreFaction();
  25. }
  26.  
  27. void EnterEvadeMode()
  28. {
  29. me->GetMotionMaster()->Clear();
  30. ScriptedAI::EnterEvadeMode();
  31. }
  32.  
  33. };
  34.  
  35. uint32 PlayerMaxLevel() const
  36. {
  37. return sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL);
  38. }
  39.  
  40.  
  41. CreatureAI* GetAI(Creature* pCreature) const
  42. {
  43. return new LevelupAI(pCreature);
  44. }
  45.  
  46. void CreatureWhisperBasedOnBool(const char *text, Creature *pCreature, Player *pPlayer, bool value)
  47. {
  48. if (value)
  49. pCreature->MonsterWhisper(text, pPlayer->GetGUID());
  50. }
  51.  
  52. void MainMenu(Player *pPlayer, Creature *pCreature)
  53.  
  54. {
  55. pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I would like to get Level 20", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
  56. pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I would like to get Level 40", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
  57. pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I would like to get Level 60", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
  58. pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "I would like to get Level 80", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
  59. pPlayer->SEND_GOSSIP_MENU(907, pCreature->GetGUID());
  60. }
  61.  
  62. bool OnGossipHello(Player* pPlayer, Creature* pCreature)
  63. {
  64. MainMenu(pPlayer, pCreature);
  65.  
  66. return true;
  67. }
  68. bool PlayerHasItem(const Player *plr, uint32 itemId, uint32 spellId) const
  69. {
  70. return plr->HasItemCount(itemId, 1, true);
  71. }
  72.  
  73.  
  74. bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
  75. {
  76. if (pPlayer->isInCombat())
  77. {
  78. pCreature->MonsterWhisper("You are in combat motherfucker, wait till your combat is gone!", pPlayer->GetGUID());
  79. pPlayer->CLOSE_GOSSIP_MENU();
  80.  
  81. return true;
  82. }
  83.  
  84. pPlayer->PlayerTalkClass->ClearMenus();
  85.  
  86. switch (uiAction)
  87. {
  88.  
  89. //-------------------------------------------------------------------------
  90. case GOSSIP_ACTION_INFO_DEF + 1: // 20 levels
  91. if(pPlayer->HasItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED))
  92. {
  93. pPlayer->DestroyItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED, true, false);
  94. pPlayer->GiveLevel(20);
  95. pCreature->MonsterWhisper("You're level 20 now.", pPlayer->GetGUID());
  96. pPlayer->CLOSE_GOSSIP_MENU();
  97. }
  98. if (pPlayer->getLevel() >= 20 && pPlayer->getLevel() <= 255)
  99. pCreature->MonsterWhisper("Your level is higher than 20!", pPlayer->GetGUID());
  100. else
  101. {
  102. pCreature->MonsterWhisper("You don't have enough tokens.... $C!.", pPlayer->GetGUID());
  103. pPlayer->CLOSE_GOSSIP_MENU();
  104. }
  105. break;
  106. case GOSSIP_ACTION_INFO_DEF + 2: // 40 levels
  107. if(pPlayer->HasItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED))
  108. {
  109. pPlayer->DestroyItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED, true, false);
  110. pPlayer->GiveLevel(40);
  111. pCreature->MonsterWhisper("You're level 40 now.", pPlayer->GetGUID());
  112. pPlayer->CLOSE_GOSSIP_MENU();
  113.  
  114. }
  115. if (pPlayer->getLevel() >= 40 && pPlayer->getLevel() <= 255)
  116. pCreature->MonsterWhisper("Your level is higher than 40!", pPlayer->GetGUID());
  117. else
  118. {
  119. pCreature->MonsterWhisper("You don't have enough tokens.... $C!", pPlayer->GetGUID());
  120. pPlayer->CLOSE_GOSSIP_MENU();
  121. }
  122. break;
  123. case GOSSIP_ACTION_INFO_DEF + 3: // 60 levels
  124. if(pPlayer->HasItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED))
  125. {
  126. pPlayer->DestroyItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED, true, false);
  127. pPlayer->GiveLevel(60);
  128. pCreature->MonsterWhisper("You're level 60 now.", pPlayer->GetGUID());
  129. pPlayer->CLOSE_GOSSIP_MENU();
  130.  
  131. }
  132. if (pPlayer->getLevel() >= 60 && pPlayer->getLevel() <= 255)
  133. pCreature->MonsterWhisper("Your level is higher than 60!", pPlayer->GetGUID());
  134. else
  135. {
  136. pCreature->MonsterWhisper("You don't have enough tokens.... $C!.", pPlayer->GetGUID());
  137. pPlayer->CLOSE_GOSSIP_MENU();
  138. }
  139. break;
  140. case GOSSIP_ACTION_INFO_DEF + 4: // 80 levels
  141. if(pPlayer->HasItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED))
  142. {
  143. pPlayer->DestroyItemCount(TOKEN_ID, AMOUNT_OF_TOKENS_REQUIRED, true, false);
  144. pPlayer->GiveLevel(80);
  145. pCreature->MonsterWhisper("You're level 80 now.", pPlayer->GetGUID());
  146. pPlayer->CLOSE_GOSSIP_MENU();
  147.  
  148. }
  149. if (pPlayer->getLevel() >= 80 && pPlayer->getLevel() <= 255)
  150. pCreature->MonsterWhisper("Your level is higher than 80!", pPlayer->GetGUID());
  151. else
  152. {
  153. pCreature->MonsterWhisper("You don't have enough tokens.... $C!.", pPlayer->GetGUID());
  154. pPlayer->CLOSE_GOSSIP_MENU();
  155. }
  156. break;
  157.  
  158.  
  159. }
  160. return true;
  161. }
  162. };
  163.  
  164. void AddSC_Levelup()
  165. {
  166. new Levelup();
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement