Advertisement
Guest User

arena

a guest
Jul 12th, 2013
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.71 KB | None | 0 0
  1. #include "ScriptPCH.h"
  2. using namespace std;
  3.  
  4. class npc_arena_teamTop : public CreatureScript
  5. {
  6. public:
  7. npc_arena_teamTop() : CreatureScript("npc_arena_teamTop") { }
  8.  
  9. bool OnGossipHello(Player * player, Creature * creature)
  10. {
  11. player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "View top 2v2 Arena Teams", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
  12. player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "View top 3v3 Arena Teams", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
  13. player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "View top 5v5 Arena Teams", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
  14. player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Nevermind", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
  15. player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  16. return true;
  17. }
  18.  
  19. bool OnGossipSelect(Player * player, Creature * creature, uint32 sender, uint32 actions)
  20. {
  21. if(sender == GOSSIP_SENDER_MAIN)
  22. {
  23. switch(actions)
  24. {
  25. case GOSSIP_ACTION_INFO_DEF+1:
  26. {
  27. QueryResult result = CharacterDatabase.Query("SELECT name,rating FROM arena_team WHERE type='2' ORDER BY rating DESC LIMIT 10");
  28. if(!result)
  29. return false;
  30.  
  31. Field * fields = NULL;
  32. player->MonsterWhisper("|cff4169E1Here are the top 10 2v2 arena teams:|r", player->GetGUID());
  33. do
  34. {
  35. fields = result->Fetch();
  36. string arena_name = fields[0].GetString();
  37. uint32 rating = fields[1].GetUInt32();
  38. char msg[250];
  39. snprintf(msg, 250, "Team Name: |cffFFFF00%s|r, Team Rating: %u \n", arena_name.c_str(), rating);
  40. player->MonsterWhisper(msg, player->GetGUID());
  41. }while(result->NextRow());
  42. }break;
  43.  
  44. case GOSSIP_ACTION_INFO_DEF+2:
  45. {
  46. QueryResult result = CharacterDatabase.Query("SELECT name,rating FROM arena_team WHERE type='3' ORDER BY rating DESC LIMIT 10");
  47. if(!result)
  48. return false;
  49.  
  50. Field * fields = NULL;
  51. player->MonsterWhisper("|cff4169E1Here are the top 10 3v3 arena teams:|r", player->GetGUID());
  52. do
  53. {
  54. fields = result->Fetch();
  55. string arena_name = fields[0].GetString();
  56. uint32 rating = fields[1].GetUInt32();
  57. char msg[250];
  58. snprintf(msg, 250, "Team Name: |cffFFFF00%s|r, Team Rating: %u \n", arena_name.c_str(), rating);
  59. player->MonsterWhisper(msg, player->GetGUID());
  60. }while(result->NextRow());
  61. }break;
  62.  
  63. case GOSSIP_ACTION_INFO_DEF+3:
  64. {
  65. QueryResult result = CharacterDatabase.Query("SELECT name,rating FROM arena_team WHERE type='5' ORDER BY rating DESC LIMIT 10");
  66. if(!result)
  67. return false;
  68.  
  69. Field * fields = NULL;
  70. player->MonsterWhisper("|cff4169E1Here are the top 10 5v5 arena teams:|r", player->GetGUID());
  71. do
  72. {
  73. fields = result->Fetch();
  74. string arena_name = fields[0].GetString();
  75. uint32 rating = fields[1].GetUInt32();
  76. char msg[250];
  77. snprintf(msg, 250, "Team Name: |cffFFFF00%s|r, Team Rating: %u \n", arena_name.c_str(), rating);
  78. player->MonsterWhisper(msg, player->GetGUID());
  79. }while(result->NextRow());
  80. }break;
  81.  
  82. case GOSSIP_ACTION_INFO_DEF+4:
  83. {
  84. player->PlayerTalkClass->SendCloseGossip();
  85. }break;
  86. }
  87. }
  88.  
  89. return true;
  90. }
  91. };
  92.  
  93. void AddSC_npc_arena_setup()
  94. {
  95. new npc_arena_teamTop;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement