Advertisement
Guest User

Morpher_Cata2

a guest
Aug 14th, 2015
672
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.77 KB | None | 0 0
  1. /*
  2. morpher_npc
  3. Developer: Project2k14 - Ac-web.org
  4. Status: 100%
  5. Comment: This NPC is used for Cataclysm, morphs into racial morphs (Changes the race but not the gear you wear)
  6. Tested: Cataclysm: Yes [X] No [ ] WOTLK: Yes [ ] No [X]
  7. Morph ID's: Thanks, http://hearthstone-wow.de/forum/index.php/Thread/693-Race-Morphs-IDs/
  8. */
  9.  
  10. #include "ScriptPCH.h"
  11. #include "Object.h"
  12. #include "Chat.h"
  13.  
  14. class morpher_npc : public CreatureScript
  15. {
  16. public:
  17. morpher_npc() : CreatureScript("morpher_npc") { }
  18.  
  19. bool OnGossipHello(Player * player, Creature * creature)
  20. {
  21. if (player->GetSession()->GetSecurity() == 0)
  22. {
  23. player->ADD_GOSSIP_ITEM(-1, "|cff0000FF|TInterface\\icons\\inv_bannerpvp_02:30 |t Alliance Morphs|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
  24. player->ADD_GOSSIP_ITEM(-1, "|cffFF3300|TInterface\\icons\\inv_bannerpvp_01:30 |t Horde Morphs|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
  25. player->ADD_GOSSIP_ITEM(-1, "|cff0099FF|TInterface\\icons\\spell_holy_dispelmagic:30 |t Demorph|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 36);
  26. player->ADD_GOSSIP_ITEM(-1, "|cffFF0000|TInterface\\icons\\achievement_reputation_01:35 |t Nevermind...|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
  27. player->PlayerTalkClass->SendGossipMenu(1, creature->GetGUID());
  28. }
  29.  
  30. else
  31. {
  32. player->ADD_GOSSIP_ITEM(-1, "|cff0000FF|TInterface\\icons\\inv_bannerpvp_02:30 |t Alliance Morphs|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
  33. player->ADD_GOSSIP_ITEM(-1, "|cffFF3300|TInterface\\icons\\inv_bannerpvp_01:30 |t Horde Morphs|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
  34. player->ADD_GOSSIP_ITEM(-1, "|cff0099FF|TInterface\\icons\\spell_holy_dispelmagic:30 |t Demorph|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 36);
  35. player->ADD_GOSSIP_ITEM(-1, "|cffFF0000|TInterface\\icons\\achievement_reputation_01:35 |t Nevermind...|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
  36. player->PlayerTalkClass->SendGossipMenu(1, creature->GetGUID());
  37. }
  38. return true;
  39.  
  40. }
  41. bool OnGossipSelect(Player * player, Creature * creature, uint32 sender, uint32 actions)
  42. {
  43. player->PlayerTalkClass->ClearMenus();
  44.  
  45. if (sender != GOSSIP_SENDER_MAIN)
  46. return false;
  47.  
  48. switch (actions)
  49. {
  50. case GOSSIP_ACTION_INFO_DEF + 1: /* Shows the Alliance Morphs menu */
  51. player->ADD_GOSSIP_ITEM(-1, "|cff0000FF|TInterface\\icons\\achievement_character_human_male:30 |t Human Male|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
  52. player->ADD_GOSSIP_ITEM(-1, "|cff0000FF|TInterface\\icons\\achievement_character_human_female:30 |t Human Female|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
  53. player->ADD_GOSSIP_ITEM(-1, "|cff0000FF|TInterface\\icons\\achievement_character_dwarf_male:30 |t Dwarf Male|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
  54. player->ADD_GOSSIP_ITEM(-1, "|cff0000FF|TInterface\\icons\\achievement_character_dwarf_female:30 |t Dwarf Female|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
  55. player->ADD_GOSSIP_ITEM(-1, "|cff0000FF|TInterface\\icons\\achievement_character_nightelf_male:30 |t Nightelf Male|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
  56. player->ADD_GOSSIP_ITEM(-1, "|cff0000FF|TInterface\\icons\\achievement_character_nightelf_female:30 |t Nightelf Female|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10);
  57. player->ADD_GOSSIP_ITEM(-1, "|cff0000FF|TInterface\\icons\\achievement_character_gnome_male:30 |t Gnome Male|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
  58. player->ADD_GOSSIP_ITEM(-1, "|cff0000FF|TInterface\\icons\\achievement_character_gnome_female:30 |t Gnome Female|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
  59. player->ADD_GOSSIP_ITEM(-1, "|cff0000FF|TInterface\\icons\\achievement_character_draenei_male:30 |t Draenei Male|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
  60. player->ADD_GOSSIP_ITEM(-1, "|cff0000FF|TInterface\\icons\\achievement_character_draenei_female:30 |t Draenei Female|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
  61. player->ADD_GOSSIP_ITEM(-1, "|cff0000FF|TInterface\\icons\\inv_mask_08:30 |t Worgen Male|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 15);
  62. player->ADD_GOSSIP_ITEM(-1, "|cff0000FF|TInterface\\icons\\inv_mask_09:30 |t Worgen Female|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 16);
  63. player->ADD_GOSSIP_ITEM(-1, "|cffFF0000|TInterface\\icons\\achievement_reputation_01:35 |t Nevermind...|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
  64. player->PlayerTalkClass->SendGossipMenu(1, creature->GetGUID());
  65. break;
  66.  
  67. case GOSSIP_ACTION_INFO_DEF + 2: /* Shows the Horde Morphs menu */
  68. player->ADD_GOSSIP_ITEM(-1, "|cffFF3300|TInterface\\icons\\achievement_character_orc_male:30 |t Orc Male|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 17);
  69. player->ADD_GOSSIP_ITEM(-1, "|cffFF3300|TInterface\\icons\\achievement_character_orc_female:30 |t Orc Female|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 18);
  70. player->ADD_GOSSIP_ITEM(-1, "|cffFF3300|TInterface\\icons\\achievement_character_undead_male:30 |t Undead Male|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 19);
  71. player->ADD_GOSSIP_ITEM(-1, "|cffFF3300|TInterface\\icons\\achievement_character_undead_female:30 |t Undead Female|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 20);
  72. player->ADD_GOSSIP_ITEM(-1, "|cffFF3300|TInterface\\icons\\achievement_character_tauren_male:30 |t Tauren Male|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 21);
  73. player->ADD_GOSSIP_ITEM(-1, "|cffFF3300|TInterface\\icons\\achievement_character_tauren_female:30 |t Tauren Female|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 22);
  74. player->ADD_GOSSIP_ITEM(-1, "|cffFF3300|TInterface\\icons\\achievement_character_troll_male:30 |t Troll Male|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 23);
  75. player->ADD_GOSSIP_ITEM(-1, "|cffFF3300|TInterface\\icons\\achievement_character_troll_female:30 |t Troll Female|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 24);
  76. player->ADD_GOSSIP_ITEM(-1, "|cffFF3300|TInterface\\icons\\achievement_character_bloodelf_male:30 |t Bloodelf Male|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 25);
  77. player->ADD_GOSSIP_ITEM(-1, "|cffFF3300|TInterface\\icons\\achievement_character_bloodelf_female:30 |t Bloodelf Female|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 26);
  78. player->ADD_GOSSIP_ITEM(-1, "|cffFF3300|TInterface\\icons\\inv_mask_10:30 |t Goblin Male|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 27);
  79. player->ADD_GOSSIP_ITEM(-1, "|cffFF3300|TInterface\\icons\\inv_mask_07:30 |t Goblin Female|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 28);
  80. player->ADD_GOSSIP_ITEM(-1, "|cffFF0000|TInterface\\icons\\achievement_reputation_01:35 |t Nevermind...|r", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
  81. player->PlayerTalkClass->SendGossipMenu(1, creature->GetGUID());
  82. break;
  83.  
  84. case GOSSIP_ACTION_INFO_DEF + 4: /* Uses the Nevermind option and closes the menu */
  85. player->PlayerTalkClass->SendCloseGossip();
  86. break;
  87. /* Alliance Morph List */
  88. case GOSSIP_ACTION_INFO_DEF + 5: /* Human Male Morph*/
  89. player->PlayerTalkClass->SendCloseGossip();
  90. player->SetDisplayId(19723);
  91. break;
  92.  
  93. case GOSSIP_ACTION_INFO_DEF + 6: /* Human Female Morph*/
  94. player->PlayerTalkClass->SendCloseGossip();
  95. player->SetDisplayId(19724);
  96. break;
  97.  
  98. case GOSSIP_ACTION_INFO_DEF + 7: /* Dwarf Male Morph*/
  99. player->PlayerTalkClass->SendCloseGossip();
  100. player->SetDisplayId(20317);
  101. break;
  102.  
  103. case GOSSIP_ACTION_INFO_DEF + 8: /* Dwarf Female Morph*/
  104. player->PlayerTalkClass->SendCloseGossip();
  105. player->SetDisplayId(37918);
  106. break;
  107.  
  108. case GOSSIP_ACTION_INFO_DEF + 9: /* Nightelf Male Morph*/
  109. player->PlayerTalkClass->SendCloseGossip();
  110. player->SetDisplayId(20318);
  111. break;
  112.  
  113. case GOSSIP_ACTION_INFO_DEF + 10:/* Nightelf Female Morph*/
  114. player->PlayerTalkClass->SendCloseGossip();
  115. player->SetDisplayId(37919);
  116. break;
  117.  
  118. case GOSSIP_ACTION_INFO_DEF + 11:/* Gnome Male Morph*/
  119. player->PlayerTalkClass->SendCloseGossip();
  120. player->SetDisplayId(20580);
  121. break;
  122.  
  123. case GOSSIP_ACTION_INFO_DEF + 12:/* Gnome Female Morph*/
  124. player->PlayerTalkClass->SendCloseGossip();
  125. player->SetDisplayId(20320);
  126. break;
  127.  
  128. case GOSSIP_ACTION_INFO_DEF + 13:/* Draenei Male Morph*/
  129. player->PlayerTalkClass->SendCloseGossip();
  130. player->SetDisplayId(37916);
  131. break;
  132.  
  133. case GOSSIP_ACTION_INFO_DEF + 14:/* Draenei Female Morph*/
  134. player->PlayerTalkClass->SendCloseGossip();
  135. player->SetDisplayId(20323);
  136. break;
  137.  
  138. case GOSSIP_ACTION_INFO_DEF + 15:/* Worgen Male Morph*/
  139. player->PlayerTalkClass->SendCloseGossip();
  140. player->SetDisplayId(37915);
  141. break;
  142.  
  143. case GOSSIP_ACTION_INFO_DEF + 16:/* Worgen Female Morph*/
  144. player->PlayerTalkClass->SendCloseGossip();
  145. player->SetDisplayId(37914);
  146. break;
  147. /* Horde Morph List */
  148. case GOSSIP_ACTION_INFO_DEF + 17:/* Orc Male Morph*/
  149. player->PlayerTalkClass->SendCloseGossip();
  150. player->SetDisplayId(37920);
  151. break;
  152.  
  153. case GOSSIP_ACTION_INFO_DEF + 18:/* Orc Female Morph*/
  154. player->PlayerTalkClass->SendCloseGossip();
  155. player->SetDisplayId(20316);
  156. break;
  157.  
  158. case GOSSIP_ACTION_INFO_DEF + 19:/* Undead Male Morph*/
  159. player->PlayerTalkClass->SendCloseGossip();
  160. player->SetDisplayId(37923);
  161. break;
  162.  
  163. case GOSSIP_ACTION_INFO_DEF + 20:/* Undead Female Morph*/
  164. player->PlayerTalkClass->SendCloseGossip();
  165. player->SetDisplayId(37924);
  166. break;
  167.  
  168. case GOSSIP_ACTION_INFO_DEF + 21:/* Tauren Male Morph*/
  169. player->PlayerTalkClass->SendCloseGossip();
  170. player->SetDisplayId(20319);
  171. break;
  172.  
  173. case GOSSIP_ACTION_INFO_DEF + 22:/* Tauren Female Morph*/
  174. player->PlayerTalkClass->SendCloseGossip();
  175. player->SetDisplayId(20584);
  176. break;
  177.  
  178. case GOSSIP_ACTION_INFO_DEF + 23:/* Troll Male Morph*/
  179. player->PlayerTalkClass->SendCloseGossip();
  180. player->SetDisplayId(20321);
  181. break;
  182.  
  183. case GOSSIP_ACTION_INFO_DEF + 24:/* Troll Female Morph*/
  184. player->PlayerTalkClass->SendCloseGossip();
  185. player->SetDisplayId(37922);
  186. break;
  187.  
  188. case GOSSIP_ACTION_INFO_DEF + 26:/* Bloodelf Female Morph*/
  189. player->PlayerTalkClass->SendCloseGossip();
  190. player->SetDisplayId(20370);
  191. break;
  192.  
  193. case GOSSIP_ACTION_INFO_DEF + 25:/* Bloodelf Male Morph*/
  194. player->PlayerTalkClass->SendCloseGossip();
  195. player->SetDisplayId(20368);
  196. break;
  197.  
  198. case GOSSIP_ACTION_INFO_DEF + 27:/* Goblin Male Morph*/
  199. player->PlayerTalkClass->SendCloseGossip();
  200. player->SetDisplayId(20582);
  201. break;
  202.  
  203. case GOSSIP_ACTION_INFO_DEF + 28:/* Goblin Female Morph*/
  204. player->PlayerTalkClass->SendCloseGossip();
  205. player->SetDisplayId(20583);
  206. break;
  207.  
  208. case GOSSIP_ACTION_INFO_DEF + 36:/* Demorph*/
  209. player->PlayerTalkClass->SendCloseGossip();
  210. player->DeMorph();
  211. break;
  212. }
  213. }
  214. };
  215.  
  216. void AddSC_morpher_npc()
  217. {
  218. new morpher_npc;
  219. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement