Advertisement
Guest User

Untitled

a guest
Sep 24th, 2014
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.73 KB | None | 0 0
  1. //---------------------------------//
  2. //Teleporter Gossip Script by MilboW//
  3. //---------------------------------//
  4. //---------------------------------//
  5. //---------------------------------//
  6. //---------------------------------//
  7. //---------------------------------//
  8. //---------------------------------//
  9. //---------------------------------//
  10.  
  11. #include "ScriptMgr.h"
  12. #include "ScriptPCH.h"
  13.  
  14. uint32 aurass[] = { 48074, 47440, 53307, 132, 48170, 23737, 48470, 43002, 26393, 48162, 24705 };
  15.  
  16. class GossipNpc : public CreatureScript
  17. {
  18. public:
  19. GossipNpc() : CreatureScript("GossipNpc") { }
  20.  
  21. bool OnGossipHello(Player* plr, Creature* npc)
  22. {
  23. if (plr->IsInCombat())
  24. {
  25. plr->GetSession()->SendNotification("You're in combat!");
  26. //npc->MonsterWhisper("You're in combat!", LANG_UNIVERSAL, NULL);
  27. return false;
  28. }
  29.  
  30. plr->ADD_GOSSIP_ITEM(2, "Teleport Service", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
  31. plr->ADD_GOSSIP_ITEM(3, "|cffFFC125Buff me!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
  32. plr->ADD_GOSSIP_ITEM(3, "|cffDA70D6Heal me!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+23);
  33. plr->ADD_GOSSIP_ITEM(4, "Repair Items (1g)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+24);
  34. plr->ADD_GOSSIP_ITEM(2, "Gurubashi Arena", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+25);
  35. plr->ADD_GOSSIP_ITEM(9, "|cffFF0000Nevermind..", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+99);
  36. plr->SEND_GOSSIP_MENU(1, npc->GetGUID());
  37. return true;
  38. }
  39. bool OnGossipSelect(Player* plr, Creature* npc, uint32 sender, uint32 uiAction)
  40. {
  41. if (!plr)
  42. return false;
  43.  
  44. plr->PlayerTalkClass->ClearMenus();
  45.  
  46. switch(uiAction)
  47. {
  48. case GOSSIP_ACTION_INFO_DEF+1:
  49. if(plr->GetSession()->GetSecurity() <= 2)
  50. {
  51. plr->ADD_GOSSIP_ITEM(2, "|cff00C78CMall & Events", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
  52. plr->ADD_GOSSIP_ITEM(2, "Cities", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
  53. plr->ADD_GOSSIP_ITEM(2, "Eastern Kingdoms", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
  54. plr->ADD_GOSSIP_ITEM(2, "Kalimdor", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
  55. plr->ADD_GOSSIP_ITEM(2, "Outland", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+7);
  56. plr->ADD_GOSSIP_ITEM(2, "|cff00C78CNorthrend", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+8);
  57. plr->ADD_GOSSIP_ITEM(2, "Dungeons", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+9);
  58. plr->ADD_GOSSIP_ITEM(3, "|cffFF6EB4Custom Instances", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+10);
  59. plr->ADD_GOSSIP_ITEM(3, "|cffffffffTBC & LK Raids", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+35);
  60. plr->ADD_GOSSIP_ITEM(9, "|cffFF0000<- Back", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+99);
  61. }else{
  62. plr->ADD_GOSSIP_ITEM(2, "|cff00C78CMall & Events", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
  63. plr->ADD_GOSSIP_ITEM(2, "Cities", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
  64. plr->ADD_GOSSIP_ITEM(2, "|cff4747FFEastern Kingdoms", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
  65. plr->ADD_GOSSIP_ITEM(2, "|cffCC6600Kalimdor", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
  66. plr->ADD_GOSSIP_ITEM(2, "|cff00CC00Outland", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+7);
  67. plr->ADD_GOSSIP_ITEM(2, "|cff148AFFNorthrend", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+8);
  68. plr->ADD_GOSSIP_ITEM(2, "Dungeons", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+9);
  69. plr->ADD_GOSSIP_ITEM(3, "|cffFF6EB4Custom Instances", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+10);
  70. plr->ADD_GOSSIP_ITEM(3, "|cffffffffTBC & LK Raids", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+36);
  71. plr->ADD_GOSSIP_ITEM(3, "|cff00ff00GM Island", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+98);
  72. plr->ADD_GOSSIP_ITEM(9, "|cffFF0000<- Back", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+99);
  73. }
  74. plr->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, npc->GetGUID());
  75. break;
  76. case GOSSIP_ACTION_INFO_DEF+3:
  77. plr->ADD_GOSSIP_ITEM(2, "|cff00C78CMall", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+11);
  78. plr->ADD_GOSSIP_ITEM(2, "Event 1 (Rabbit)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+12);
  79. plr->ADD_GOSSIP_ITEM(5, "Event 2 (StairCase 1)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+13);
  80. plr->ADD_GOSSIP_ITEM(9, "|cffFF0000<- Back", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
  81. plr->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, npc->GetGUID());
  82. break;
  83. case GOSSIP_ACTION_INFO_DEF+4:
  84. if(plr->GetTeam() == ALLIANCE){
  85. plr->ADD_GOSSIP_ITEM(2, "Stormwind // costs 1 gold", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+26);
  86. plr->ADD_GOSSIP_ITEM(2, "Ironforge // costs 1 gold", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+27);
  87. plr->ADD_GOSSIP_ITEM(2, "Darnassus // costs 1 gold", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+28);
  88. plr->ADD_GOSSIP_ITEM(2, "The Exodar // costs 1 gold", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+29);
  89. plr->ADD_GOSSIP_ITEM(9, "|cffFF1414Attack Orgrimmar // costs 1 gold", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+35);
  90. plr->ADD_GOSSIP_ITEM(1, "|cffFF0000<- Back", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
  91. }else if(plr->GetTeam() == HORDE){
  92. plr->ADD_GOSSIP_ITEM(2, "Orgrimmar // costs 1 gold", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+30);
  93. plr->ADD_GOSSIP_ITEM(2, "Undercity // costs 1 gold", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+31);
  94. plr->ADD_GOSSIP_ITEM(2, "Thunder Bluff // costs 1 gold", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+32);
  95. plr->ADD_GOSSIP_ITEM(2, "Silvermoon// costs 1 gold", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+33);
  96. plr->ADD_GOSSIP_ITEM(9, "|cffFF1414Attack Stormwind // costs 1 gold", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+34);
  97. plr->ADD_GOSSIP_ITEM(1, "|cffFF0000<- Back", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
  98.  
  99. }
  100.  
  101. plr->SEND_GOSSIP_MENU(1, npc->GetGUID());
  102. break;
  103. case GOSSIP_ACTION_INFO_DEF+98: // GM Island Teleport
  104. plr->TeleportTo(1, 16222.500000f, 16257.566406f, 13.127848f, 1.548749f);
  105. plr->AddItem(12064, 1);
  106. plr->AddItem(2586, 1);
  107. plr->AddItem(11508, 1);
  108. plr->CLOSE_GOSSIP_MENU();
  109. break;
  110. case GOSSIP_ACTION_INFO_DEF+26: // Stormwind teleport
  111.  
  112. plr->TeleportTo(0, -8828.601563f, 627.279053f, 94.030663f, 3.924985f);
  113. plr->ModifyMoney(-10000);
  114. plr->CLOSE_GOSSIP_MENU();
  115. break;
  116. case GOSSIP_ACTION_INFO_DEF+29: // The Exodar Teleport
  117. plr->TeleportTo(530, -3965.699951f, -11653.599609f, -137.184998f, 0.852154f);
  118. plr->ModifyMoney(-10000);
  119. plr->CLOSE_GOSSIP_MENU();
  120. break;
  121. case GOSSIP_ACTION_INFO_DEF+27: // Ironforge teleport
  122. plr->TeleportTo(0, -4918.879883f, -940.406006f, 504.854126f, 5.423470f);
  123. plr->ModifyMoney(-10000);
  124. plr->CLOSE_GOSSIP_MENU();
  125. break;
  126. case GOSSIP_ACTION_INFO_DEF+28: // Darnassus Teleport
  127. plr->TeleportTo(1, 9949.559570f, 2284.20996f, 1342.969482f, 1.595870f);
  128. plr->ModifyMoney(-10000);
  129. plr->CLOSE_GOSSIP_MENU();
  130. break;
  131. case GOSSIP_ACTION_INFO_DEF+30: // Orgrimmar Teleport
  132. plr->TeleportTo(1, 1561.713257f, -4438.890137f, 7.368488f, 0.410725f);
  133. plr->ModifyMoney(-10000);
  134. plr->CLOSE_GOSSIP_MENU();
  135. break;
  136. case GOSSIP_ACTION_INFO_DEF+31: // Undercity Teleport
  137. plr->TeleportTo(0, 1573.561279f, 240.414459f, -62.077351f, 0.033143f);
  138. plr->ModifyMoney(-10000);
  139. plr->CLOSE_GOSSIP_MENU();
  140. break;
  141. case GOSSIP_ACTION_INFO_DEF+32: // Thunder Bluff Teleport
  142. plr->TeleportTo(1, -1297.956421f, 208.591827f, 68.681366f, 5.084499f);
  143. plr->ModifyMoney(-10000);
  144. plr->CLOSE_GOSSIP_MENU();
  145. break;
  146. case GOSSIP_ACTION_INFO_DEF+33: // Silvermoon Teleport
  147. plr->TeleportTo(530, 9397.452148f, -7279.064941f, 14.216600f, 0.009944f);
  148. plr->ModifyMoney(-10000);
  149. plr->CLOSE_GOSSIP_MENU();
  150. break;
  151. case GOSSIP_ACTION_INFO_DEF+34: // Attack Stormwind
  152. plr->TeleportTo(0, -9165.100586f, 465.795807f, 104.171112f, 5.289221f);
  153. plr->ModifyMoney(-10000);
  154. plr->CLOSE_GOSSIP_MENU();
  155. break;
  156. case GOSSIP_ACTION_INFO_DEF+35: // Attack Orgrimmar
  157. plr->TeleportTo(1, 1025.285156f, -4439.764160f, 12.237539f, 0.178984f);
  158. plr->ModifyMoney(-10000);
  159. plr->CLOSE_GOSSIP_MENU();
  160. break;
  161. case GOSSIP_ACTION_INFO_DEF+5:
  162. break;
  163. case GOSSIP_ACTION_INFO_DEF+6:
  164. break;
  165. case GOSSIP_ACTION_INFO_DEF+12: // Rabbit Event Teleport
  166. plr->TeleportTo(0, -10240.200195f, 928.818970f, 44.496384f, 5.323780f);
  167. plr->ModifyMoney(-50000);
  168. plr->CLOSE_GOSSIP_MENU();
  169. break;
  170. case GOSSIP_ACTION_INFO_DEF+13: // Staircase 1 Teleport
  171. plr->TeleportTo(0, -4067.917480f, -3381.699707f, 372.380859f, 2.860715f);
  172. plr->ModifyMoney(-50000);
  173. plr->CLOSE_GOSSIP_MENU();
  174. break;
  175. case GOSSIP_ACTION_INFO_DEF+11: //Mall Teleport
  176. plr->TeleportTo(530, -1859.869995f, 5420.069824f, -10.380500f, 2.146750f);
  177. plr->ModifyMoney(-50000);
  178. plr->CLOSE_GOSSIP_MENU();
  179. break;
  180. case GOSSIP_ACTION_INFO_DEF+9: //Dungeons SubMenu
  181. plr->ADD_GOSSIP_ITEM(2, "Classic Dungeons", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+23);
  182. plr->ADD_GOSSIP_ITEM(2, "BC Dungeons", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+24);
  183. plr->ADD_GOSSIP_ITEM(2, "Wrath Dungeons", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+25);
  184. plr->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, npc->GetGUID());
  185. break;
  186. case GOSSIP_ACTION_INFO_DEF+2: //Buff me
  187. for(int i = 0; i < 10; i++)
  188. plr->AddAura(aurass[i], plr);
  189. plr->CastSpell(plr, 24705, 1);
  190. plr->GetSession()->SendNotification("|cff0000ffYou have been buffed!");
  191. plr->ModifyMoney(-100000); // 10 gold
  192. plr->CLOSE_GOSSIP_MENU();
  193. break;
  194. case GOSSIP_ACTION_INFO_DEF+24: // Repair
  195. plr->DurabilityRepairAll(false, 0, false);
  196. plr->GetSession()->SendNotification("Your items got repaired!");
  197. plr->ModifyMoney(-10000);
  198. plr->CLOSE_GOSSIP_MENU();
  199. break;
  200. case GOSSIP_ACTION_INFO_DEF+23: // Heal me
  201. plr->SetPower(POWER_MANA, plr->GetMaxPower(POWER_MANA));
  202. plr->SetHealth(plr->GetMaxHealth());
  203. plr->SendTalentsInfoData(false);
  204. plr->GetSession()->SendNotification("|cffFFC125Your Health And Mana, Is being refilled.");
  205. plr->ModifyMoney(-10000); // 1 gold
  206. plr->CLOSE_GOSSIP_MENU();
  207. break;
  208. case GOSSIP_ACTION_INFO_DEF+25:// Gurubashi Arena Teleport
  209. plr->TeleportTo(0, -13288.905273f, 109.301590f, 23.305859f, 1.078724f);
  210. plr->ModifyMoney(-500000);
  211. plr->CLOSE_GOSSIP_MENU();
  212. break;
  213. case GOSSIP_ACTION_INFO_DEF+99: // Close Function
  214. plr->CLOSE_GOSSIP_MENU();
  215. break;
  216. }
  217. return true;
  218. }
  219. };
  220. void AddSC_GossipNpc()
  221. {
  222. new GossipNpc();
  223. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement