Advertisement
Guest User

Untitled

a guest
Sep 2nd, 2015
534
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.92 KB | None | 0 0
  1. /*
  2. #############################################################################
  3. # #
  4. # #
  5. # #
  6. # Quadral #
  7. # #
  8. # #
  9. # #
  10. # #
  11. #############################################################################
  12. */
  13.  
  14. #include "ScriptPCH.h"
  15. #include "Chat.h"
  16. #define MSG_COLOR_BLUEVIOLET "|cFF8A2BE2"
  17. const char* CLASS_ICON;
  18. const char* RACE_ICON;
  19.  
  20. #define FACTION_SPECIFIC 0
  21.  
  22. std::string GetNameLink(Player* player)
  23. {
  24. std::string name = player->GetName();
  25. std::string color;
  26.  
  27. switch (player->getRace())
  28. {
  29. // Done - Bloodelf
  30. case RACE_BLOODELF:
  31. if (player->getGender() == GENDER_MALE)
  32. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Bloodelf_Male:15|t";
  33. else
  34. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Bloodelf_Female:15|t";
  35. break;
  36. // Done - Dranei
  37. case RACE_DRAENEI:
  38. if (player->getGender() == GENDER_FEMALE)
  39. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Draenei_Female:15|t";
  40. else
  41. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Draenei_Male:15|t";
  42. break;
  43. case RACE_DWARF:
  44. if (player->getGender() == GENDER_FEMALE)
  45. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Dwarf_Female:15|t";
  46. else
  47. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Dwarf_Male:15|t";
  48. break;
  49. // Done - Gnome
  50. case RACE_GNOME:
  51. if (player->getGender() == GENDER_FEMALE)
  52. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Gnome_Female:15|t";
  53. else
  54. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Gnome_Male:15|t";
  55. break;
  56. // Done - Human
  57. case RACE_HUMAN:
  58. if (player->getGender() == GENDER_FEMALE)
  59. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Human_Female:15|t";
  60. else
  61. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Human_Male:15|t";
  62. break;
  63. case RACE_NIGHTELF:
  64. if (player->getGender() == GENDER_FEMALE)
  65. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Nightelf_Female:15|t";
  66. else
  67. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Nightelf_Male:15|t";
  68. break;
  69. case RACE_ORC:
  70. if (player->getGender() == GENDER_FEMALE)
  71. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Orc_Female:15|t";
  72. else
  73. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Orc_Male:15|t";
  74. break;
  75. // Done - Tauren
  76. case RACE_TAUREN:
  77. if (player->getGender() == GENDER_FEMALE)
  78. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Tauren_Female:15|t";
  79. else
  80. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Tauren_Male:15|t";
  81. break;
  82. case RACE_TROLL:
  83. if (player->getGender() == GENDER_FEMALE)
  84. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Troll_Female:15|t";
  85. else
  86. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Troll_Male:15|t";
  87. break;
  88. case RACE_UNDEAD_PLAYER:
  89. if (player->getGender() == GENDER_FEMALE)
  90. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Undead_Female:15|t";
  91. else
  92. RACE_ICON = "|TInterface/ICONS/Achievement_Character_Undead_Male:15|t";
  93. break;
  94. }
  95.  
  96. switch (player->getClass())
  97. {
  98. case CLASS_DEATH_KNIGHT:
  99. color = "|cffC41F3B";
  100. //CLASS_ICON = "|TInterface\\icons\\Spell_Deathknight_ClassIcon:15|t|r";
  101. break;
  102. case CLASS_DRUID:
  103. color = "|cffFF7D0A";
  104. //CLASS_ICON = "|TInterface\\icons\\Ability_Druid_Maul:15|t|r";
  105. break;
  106. case CLASS_HUNTER:
  107. color = "|cffABD473";
  108. //CLASS_ICON = "|TInterface\\icons\\INV_Weapon_Bow_07:15|t|r";
  109. break;
  110. case CLASS_MAGE:
  111. color = "|cff69CCF0";
  112. //CLASS_ICON = "|TInterface\\icons\\INV_Staff_13:15|t|r";
  113. break;
  114. case CLASS_PALADIN:
  115. color = "|cffF58CBA";
  116. //CLASS_ICON = "|TInterface\\icons\\INV_Hammer_01:15|t|r";
  117. break;
  118. case CLASS_PRIEST:
  119. color = "|cffFFFFFF";
  120. //CLASS_ICON = "|TInterface\\icons\\INV_Staff_30:15|t|r";
  121. break;
  122. case CLASS_ROGUE:
  123. color = "|cffFFF569";
  124. //CLASS_ICON = "|TInterface\\icons\\INV_ThrowingKnife_04:15|t|r";
  125. break;
  126. case CLASS_SHAMAN:
  127. color = "|cff0070DE";
  128. //CLASS_ICON = "|TInterface\\icons\\Spell_Nature_BloodLust:15|t|r";
  129. break;
  130. case CLASS_WARLOCK:
  131. color = "|cff9482C9";
  132. //CLASS_ICON = "|TInterface\\icons\\Spell_Nature_FaerieFire:15|t|r";
  133. break;
  134. case CLASS_WARRIOR:
  135. color = "|cffC79C6E";
  136. //CLASS_ICON = "|TInterface\\icons\\INV_Sword_27.png:15|t|r";
  137. break;
  138. }
  139. return "|Hplayer:" + name + "|h" + RACE_ICON + "|cffFFFFFF[" + color + name + "|cffFFFFFF]|h|r";
  140. }
  141.  
  142. class cs_world_chat : public CommandScript
  143. {
  144. public:
  145. cs_world_chat() : CommandScript("cs_world_chat"){}
  146.  
  147. ChatCommand * GetCommands() const
  148. {
  149. static ChatCommand WorldChatCommandTable[] =
  150. {
  151. { "chat", rbac::RBAC_PERM_COMMAND_CUSTOM_CHAT, true, &HandleWorldChatCommand, "", NULL },
  152. { NULL, 0, false, NULL, "", NULL }
  153. };
  154.  
  155. return WorldChatCommandTable;
  156. }
  157.  
  158. static bool HandleWorldChatCommand(ChatHandler * handler, const char * args)
  159. {
  160. if (!handler->GetSession()->GetPlayer()->CanSpeak())
  161. return false;
  162. std::string temp = args;
  163.  
  164. if (!args || temp.find_first_not_of(' ') == std::string::npos)
  165. return false;
  166.  
  167. std::string msg = "";
  168. Player * player = handler->GetSession()->GetPlayer();
  169.  
  170. switch (player->GetSession()->GetSecurity())
  171. {
  172. // Player
  173. case SEC_PLAYER:
  174. if (player->GetTeam() == ALLIANCE)
  175. {
  176. msg += "|cff00ff00[World] ";
  177. msg += "|cfffa9900[Player]";
  178. msg += "|cff0000ff|TInterface\\pvpframe\\pvp-currency-alliance:17|t|r ";
  179. msg += GetNameLink(player);
  180. msg += ":|cfffaeb00";
  181. }
  182.  
  183. else
  184. {
  185. msg += "|cff00ff00[World] ";
  186. msg += "|cfffa9900[Player]";
  187. msg += "|cffff0000|TInterface\\pvpframe\\pvp-currency-horde:17|t|r ";
  188. msg += GetNameLink(player);
  189. msg += ": |cfffaeb00";
  190. }
  191. break;
  192. // Moderator/trial
  193. case SEC_MODERATOR:
  194. msg += "|cff00ff00[World]";
  195. msg += "|cff00ffff[Trial GM]";
  196. msg += " |TINTERFACE/CHATFRAME/UI-CHATICON-BLIZZ:15|t|r ";
  197. msg += GetNameLink(player);
  198. msg += ": |cfffaeb00";
  199. break;
  200. // GM
  201. case SEC_GAMEMASTER:
  202. msg += "|cff00ff00[World]";
  203. msg += "|cff00ffff[GM]";
  204. msg += " |TINTERFACE/CHATFRAME/UI-CHATICON-BLIZZ:15|t|r ";
  205. msg += GetNameLink(player);
  206. msg += ": |cfffaeb00";
  207. break;
  208. // Admin
  209. case SEC_ADMINISTRATOR:
  210. msg += "|cff00ff00[World]";
  211. msg += "|cfffa9900[Dev]";
  212. msg += " |TINTERFACE/CHATFRAME/UI-CHATICON-BLIZZ:15|t|r ";
  213. msg += GetNameLink(player);
  214. msg += ": |cfffaeb00";
  215. break;
  216.  
  217. }
  218.  
  219. msg += args;
  220. if (FACTION_SPECIFIC)
  221. {
  222. SessionMap sessions = sWorld->GetAllSessions();
  223. for (SessionMap::iterator itr = sessions.begin(); itr != sessions.end(); ++itr)
  224. if (Player* plr = itr->second->GetPlayer())
  225. if (plr->GetTeam() == player->GetTeam())
  226. sWorld->SendServerMessage(SERVER_MSG_STRING, msg.c_str(), plr);
  227. }
  228. else
  229. sWorld->SendServerMessage(SERVER_MSG_STRING, msg.c_str(), 0);
  230.  
  231. return true;
  232. }
  233. };
  234.  
  235. void AddSC_cs_world_chat()
  236. {
  237. new cs_world_chat();
  238. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement