Advertisement
Guest User

[Trinity] Top 5 Killers

a guest
Sep 21st, 2013
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 10.93 KB | None | 0 0
  1. //Created By Philippovitch
  2. //Shadre for:Emudevs
  3. //Script Complete 100 %
  4.  
  5. #include "ScriptPCH.h"
  6. using namespace std;   
  7.        
  8.     /*Basic Menu*/
  9. #define Menu_Whisp "NAME_SERVER Top Class killers"
  10. #define Notification "YOUR SERVER MESSAGE/NOTIFICATION"
  11. #define M_Whisper "YOUR SERVER MESSAGE/NOTIFICATION"
  12. #define leave "Nevermind"
  13.     /*Class E_Menu*/
  14. #define E_Warrior "View top 5 Warrior Killers"
  15. #define E_Paladin "View top 5 Paladin Killers"
  16. #define E_Hunter "View top 5 Hunter Killers"
  17. #define E_Rogue "View top 5 Rogue Killers"
  18. #define E_Priest "View top 5 Priest Killers"
  19. #define E_Shaman "View top 5 Shaman Killers"
  20. #define E_Mage "View top 5 Mage Killers"
  21. #define E_Warlock "View top 5 Warlock Killers"
  22. #define E_Druid "View top 5 Druid Killers"
  23. #define E_Death_knight "View top 5 Death knight Killers"
  24.  /*Top 5 Message*/
  25. #define M_Warrior "Here is the top 5 Warrior Killers"
  26. #define M_Paladin "Here is the top 5 Paladin Killers"
  27. #define M_Hunter "Here is the top 5 Hunter Killers"
  28. #define M_Rogue "Here is the top 5 Rogue Killers"
  29. #define M_Priest "Here is the top 5 Priest Killers"
  30. #define M_Shaman "Here is the top 5 Shaman Killers"
  31. #define M_Mage "Here is the top 5 Mage Killers"
  32. #define M_Warlock "Here is the top 5 Warlock Killers"
  33. #define M_Druid "Here is the top 5 Druid Killers"
  34. #define M_Death_knight "Here is the top 5 Death knight Killers"
  35.  
  36. class Top5_Killers : public CreatureScript
  37. {
  38. public:
  39.         Top5_Killers() : CreatureScript("Top5_Killers") { }
  40.  
  41.         bool OnGossipHello(Player* player, Creature* creature)
  42.         {
  43.         player->ADD_GOSSIP_ITEM(0, Menu_Whisp, GOSSIP_SENDER_MAIN, 0);
  44.         player->ADD_GOSSIP_ITEM(1, E_Warrior, GOSSIP_SENDER_MAIN, 1);
  45.         player->ADD_GOSSIP_ITEM(1, E_Paladin, GOSSIP_SENDER_MAIN, 2);
  46.         player->ADD_GOSSIP_ITEM(1, E_Hunter, GOSSIP_SENDER_MAIN, 3);
  47.         player->ADD_GOSSIP_ITEM(1, E_Rogue, GOSSIP_SENDER_MAIN, 4);
  48.         player->ADD_GOSSIP_ITEM(1, E_Priest, GOSSIP_SENDER_MAIN, 5);
  49.         player->ADD_GOSSIP_ITEM(1, E_Shaman, GOSSIP_SENDER_MAIN, 6);
  50.         player->ADD_GOSSIP_ITEM(1, E_Mage, GOSSIP_SENDER_MAIN, 7);
  51.         player->ADD_GOSSIP_ITEM(1, E_Warlock, GOSSIP_SENDER_MAIN, 8);
  52.         player->ADD_GOSSIP_ITEM(1, E_Druid, GOSSIP_SENDER_MAIN, 9);
  53.         player->ADD_GOSSIP_ITEM(1, E_Death_knight, GOSSIP_SENDER_MAIN, 10);
  54.         player->ADD_GOSSIP_ITEM(1, leave, GOSSIP_SENDER_MAIN, 11);
  55.         player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  56.         return true;
  57.         }
  58.  
  59.         bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
  60.     {
  61.         if (sender == GOSSIP_SENDER_MAIN)
  62.         {
  63.             player->PlayerTalkClass->ClearMenus();
  64.             switch(action)
  65.             {
  66.             case 12:
  67.             player->ADD_GOSSIP_ITEM(0, Menu_Whisp, GOSSIP_SENDER_MAIN, 0);
  68.             player->ADD_GOSSIP_ITEM(1, E_Warrior, GOSSIP_SENDER_MAIN, 1);
  69.             player->ADD_GOSSIP_ITEM(1, E_Paladin, GOSSIP_SENDER_MAIN, 2);
  70.             player->ADD_GOSSIP_ITEM(1, E_Hunter, GOSSIP_SENDER_MAIN, 3);
  71.             player->ADD_GOSSIP_ITEM(1, E_Rogue, GOSSIP_SENDER_MAIN, 4);
  72.             player->ADD_GOSSIP_ITEM(1, E_Priest, GOSSIP_SENDER_MAIN, 5);
  73.             player->ADD_GOSSIP_ITEM(1, E_Shaman, GOSSIP_SENDER_MAIN, 6);
  74.             player->ADD_GOSSIP_ITEM(1, E_Mage, GOSSIP_SENDER_MAIN, 7);
  75.             player->ADD_GOSSIP_ITEM(1, E_Warlock, GOSSIP_SENDER_MAIN, 8);
  76.             player->ADD_GOSSIP_ITEM(1, E_Druid, GOSSIP_SENDER_MAIN, 9);
  77.             player->ADD_GOSSIP_ITEM(1, E_Death_knight, GOSSIP_SENDER_MAIN, 10);
  78.             player->ADD_GOSSIP_ITEM(1, leave, GOSSIP_SENDER_MAIN, 11);
  79.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  80.             break;
  81.            
  82.             case 11:
  83.             player->PlayerTalkClass->SendCloseGossip();
  84.             break;
  85.            
  86.             case 0:
  87.             player->GetSession()->SendNotification(Notification);
  88.             ChatHandler(player->GetSession()).PSendSysMessage(M_Whisper);
  89.             player->PlayerTalkClass->SendGossipMenu(12, creature->GetGUID());
  90.             break;
  91.            
  92.             case 1: //Warrior
  93.             {
  94.             QueryResult result = CharacterDatabase.Query("SELECT name,totalKills FROM characters WHERE class='1' ORDER BY totalKills DESC LIMIT 5");
  95.             if(!result)
  96.               return false;
  97.  
  98.             Field * fields = NULL;
  99.             ChatHandler(player->GetSession()).PSendSysMessage(M_Warrior);
  100.             do
  101.             {
  102.             fields = result->Fetch();
  103.             string name = fields[0].GetString();
  104.             uint32 totalKills = fields[1].GetUInt32();
  105.             char msg[250];
  106.             snprintf(msg, 250, "Name: %s, With Total Kills : %u", name.c_str(), totalKills);
  107.             ChatHandler(player->GetSession()).PSendSysMessage(msg);
  108.             }
  109.             while(result->NextRow());
  110.             player->SaveToDB();
  111.             player->PlayerTalkClass->SendCloseGossip();
  112.             }
  113.             break;
  114.            
  115.             case 2: //Paladin
  116.             {
  117.             QueryResult result = CharacterDatabase.Query("SELECT name,totalKills FROM characters WHERE class='2' ORDER BY totalKills DESC LIMIT 5");
  118.             if(!result)
  119.               return false;
  120.  
  121.             Field * fields = NULL;
  122.             ChatHandler(player->GetSession()).PSendSysMessage(M_Paladin);
  123.             do
  124.             {
  125.             fields = result->Fetch();
  126.             string name = fields[0].GetString();
  127.             uint32 totalKills = fields[1].GetUInt32();
  128.             char msg[250];
  129.             snprintf(msg, 250, "Name: %s, With Total Kills : %u", name.c_str(), totalKills);
  130.             ChatHandler(player->GetSession()).PSendSysMessage(msg);
  131.             }
  132.             while(result->NextRow());
  133.             player->SaveToDB();
  134.             player->PlayerTalkClass->SendCloseGossip();
  135.             }
  136.             break;
  137.            
  138.             case 3: //Hunter
  139.             {
  140.             QueryResult result = CharacterDatabase.Query("SELECT name,totalKills FROM characters WHERE class='3' ORDER BY totalKills DESC LIMIT 5");
  141.             if(!result)
  142.               return false;
  143.  
  144.             Field * fields = NULL;
  145.             ChatHandler(player->GetSession()).PSendSysMessage(M_Hunter);
  146.             do
  147.             {
  148.             fields = result->Fetch();
  149.             string name = fields[0].GetString();
  150.             uint32 totalKills = fields[1].GetUInt32();
  151.             char msg[250];
  152.             snprintf(msg, 250, "Name: %s, With Total Kills : %u", name.c_str(), totalKills);
  153.             ChatHandler(player->GetSession()).PSendSysMessage(msg);
  154.             }
  155.             while(result->NextRow());
  156.             player->SaveToDB();
  157.             player->PlayerTalkClass->SendCloseGossip();
  158.             }
  159.             break;
  160.            
  161.             case 4: //Rogue
  162.             {
  163.             QueryResult result = CharacterDatabase.Query("SELECT name,totalKills FROM characters WHERE class='4' ORDER BY totalKills DESC LIMIT 5");
  164.             if(!result)
  165.               return false;
  166.  
  167.             Field * fields = NULL;
  168.             ChatHandler(player->GetSession()).PSendSysMessage(M_Rogue);
  169.             do
  170.             {
  171.             fields = result->Fetch();
  172.             string name = fields[0].GetString();
  173.             uint32 totalKills = fields[1].GetUInt32();
  174.             char msg[250];
  175.             snprintf(msg, 250, "Name: %s, With Total Kills : %u", name.c_str(), totalKills);
  176.             ChatHandler(player->GetSession()).PSendSysMessage(msg);
  177.             }
  178.             while(result->NextRow());
  179.             player->SaveToDB();
  180.             player->PlayerTalkClass->SendCloseGossip();
  181.             }
  182.             break;
  183.            
  184.             case 5: //Priest
  185.             {
  186.             QueryResult result = CharacterDatabase.Query("SELECT name,totalKills FROM characters WHERE class='5' ORDER BY totalKills DESC LIMIT 5");
  187.             if(!result)
  188.               return false;
  189.  
  190.             Field * fields = NULL;
  191.             ChatHandler(player->GetSession()).PSendSysMessage(M_Priest);
  192.             do
  193.             {
  194.             fields = result->Fetch();
  195.             string name = fields[0].GetString();
  196.             uint32 totalKills = fields[1].GetUInt32();
  197.             char msg[250];
  198.             snprintf(msg, 250, "Name: %s, With Total Kills : %u", name.c_str(), totalKills);
  199.             ChatHandler(player->GetSession()).PSendSysMessage(msg);
  200.             }
  201.             while(result->NextRow());
  202.             player->SaveToDB();
  203.             player->PlayerTalkClass->SendCloseGossip();
  204.             }
  205.             break;
  206.            
  207.             case 6: //Shaman
  208.             {
  209.             QueryResult result = CharacterDatabase.Query("SELECT name,totalKills FROM characters WHERE class='7' ORDER BY totalKills DESC LIMIT 5");
  210.             if(!result)
  211.               return false;
  212.  
  213.             Field * fields = NULL;
  214.             ChatHandler(player->GetSession()).PSendSysMessage(M_Shaman);
  215.             do
  216.             {
  217.             fields = result->Fetch();
  218.             string name = fields[0].GetString();
  219.             uint32 totalKills = fields[1].GetUInt32();
  220.             char msg[250];
  221.             snprintf(msg, 250, "Name: %s, With Total Kills : %u", name.c_str(), totalKills);
  222.             ChatHandler(player->GetSession()).PSendSysMessage(msg);
  223.             }
  224.             while(result->NextRow());
  225.             player->SaveToDB();
  226.             player->PlayerTalkClass->SendCloseGossip();
  227.             }
  228.             break;
  229.            
  230.             case 7: //Mage
  231.             {
  232.             QueryResult result = CharacterDatabase.Query("SELECT name,totalKills FROM characters WHERE class='8' ORDER BY totalKills DESC LIMIT 5");
  233.             if(!result)
  234.               return false;
  235.  
  236.             Field * fields = NULL;
  237.             ChatHandler(player->GetSession()).PSendSysMessage(M_Mage);
  238.             do
  239.             {
  240.             fields = result->Fetch();
  241.             string name = fields[0].GetString();
  242.             uint32 totalKills = fields[1].GetUInt32();
  243.             char msg[250];
  244.             snprintf(msg, 250, "Name: %s, With Total Kills : %u", name.c_str(), totalKills);
  245.             ChatHandler(player->GetSession()).PSendSysMessage(msg);
  246.             }
  247.             while(result->NextRow());
  248.             player->SaveToDB();
  249.             player->PlayerTalkClass->SendCloseGossip();
  250.             }
  251.             break;
  252.            
  253.             case 8: //warlock
  254.             {
  255.             QueryResult result = CharacterDatabase.Query("SELECT name,totalKills FROM characters WHERE class='9' ORDER BY totalKills DESC LIMIT 5");
  256.             if(!result)
  257.               return false;
  258.  
  259.             Field * fields = NULL;
  260.             ChatHandler(player->GetSession()).PSendSysMessage(M_Warlock);
  261.             do
  262.             {
  263.             fields = result->Fetch();
  264.             string name = fields[0].GetString();
  265.             uint32 totalKills = fields[1].GetUInt32();
  266.             char msg[250];
  267.             snprintf(msg, 250, "Name: %s, With Total Kills : %u", name.c_str(), totalKills);
  268.             ChatHandler(player->GetSession()).PSendSysMessage(msg);
  269.             }
  270.             while(result->NextRow());
  271.             player->SaveToDB();
  272.             player->PlayerTalkClass->SendCloseGossip();
  273.             }
  274.             break;
  275.            
  276.             case 9: //Druid
  277.             {
  278.             QueryResult result = CharacterDatabase.Query("SELECT name,totalKills FROM characters WHERE class='11' ORDER BY totalKills DESC LIMIT 5");
  279.             if(!result)
  280.               return false;
  281.  
  282.             Field * fields = NULL;
  283.             ChatHandler(player->GetSession()).PSendSysMessage(M_Druid);
  284.             do
  285.             {
  286.             fields = result->Fetch();
  287.             string name = fields[0].GetString();
  288.             uint32 totalKills = fields[1].GetUInt32();
  289.             char msg[250];
  290.             snprintf(msg, 250, "Name: %s, With Total Kills : %u", name.c_str(), totalKills);
  291.             ChatHandler(player->GetSession()).PSendSysMessage(msg);
  292.             }
  293.             while(result->NextRow());
  294.             player->SaveToDB();
  295.             player->PlayerTalkClass->SendCloseGossip();
  296.             }
  297.             break;
  298.            
  299.             case 10: //Death knight
  300.             {
  301.             QueryResult result = CharacterDatabase.Query("SELECT name,totalKills FROM characters WHERE class='6' ORDER BY totalKills DESC LIMIT 5");
  302.             if(!result)
  303.               return false;
  304.  
  305.             Field * fields = NULL;
  306.             ChatHandler(player->GetSession()).PSendSysMessage(M_Death_knight);
  307.             do
  308.             {
  309.             fields = result->Fetch();
  310.             string name = fields[0].GetString();
  311.             uint32 totalKills = fields[1].GetUInt32();
  312.             char msg[250];
  313.             snprintf(msg, 250, "Name: %s, With Total Kills : %u", name.c_str(), totalKills);
  314.             ChatHandler(player->GetSession()).PSendSysMessage(msg);
  315.             }
  316.             while(result->NextRow());
  317.             player->SaveToDB();
  318.             player->PlayerTalkClass->SendCloseGossip();
  319.             }
  320.             break;
  321.             }
  322.         }
  323.         return true;
  324.       }
  325.     };
  326.  
  327.  
  328. void AddSC_Top5_Killers()
  329. {
  330.     new Top5_Killers();
  331. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement