Advertisement
Rochet2

KillStreak C++ | Kjanko | Tommy ~Fixed

May 24th, 2012
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. Originally by Kjanko
  3. Edited by Tommy
  4. Edited by Rochet2 ~ Made dynamic
  5. */
  6.  
  7. #include "ScriptPCH.h"
  8.  
  9. class System_OnKill : public PlayerScript
  10. {
  11.     public:
  12.         System_OnKill() : PlayerScript("System_OnKill") {}
  13.  
  14.     void OnPVPKill(Player * Killer, Player * Victim)
  15.     {
  16.         uint64 KillerGUID = Killer->GetGUID();
  17.         uint64 VictimGUID = Victim->GetGUID();
  18.  
  19.         struct KillStreak_Info
  20.         {
  21.             uint32 killstreak;
  22.             uint64 lastkill;
  23.         };
  24.  
  25.         static std::map<uint64, KillStreak_Info> KillStreakData;
  26.  
  27.         if( KillerGUID == VictimGUID || KillStreakData[KillerGUID].lastkill == VictimGUID )
  28.             return;
  29.  
  30.         if( KillStreakData[VictimGUID].killstreak >= 3 )
  31.         {
  32.             char msg[250];
  33.             snprintf(msg, 250, "|cFF81CF42%s|r has ended |cFFFFFFFF%s|r's killing spree!", Killer->GetName(), Victim->GetName());
  34.             sWorld->SendServerMessage(SERVER_MSG_STRING, msg);
  35.         }
  36.  
  37.         KillStreakData[KillerGUID].killstreak++;
  38.         KillStreakData[KillerGUID].lastkill = VictimGUID;
  39.         KillStreakData[VictimGUID].killstreak = 0;
  40.         KillStreakData[VictimGUID].lastkill = 0;
  41.  
  42.         if( KillStreakData[KillerGUID].killstreak % 10 == 0 ) // send killstreak message every 10 kills
  43.         {
  44.             char msg[250];
  45.             snprintf(msg, 250, "|cFF81CF42%s|r has a killstreak of |cFF42A0CF%u|r!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);
  46.             sWorld->SendServerMessage(SERVER_MSG_STRING, msg);
  47.         }
  48.         else if( KillStreakData[KillerGUID].killstreak == 3 )
  49.         {
  50.             char msg[250];
  51.             snprintf(msg, 250, "|cFF81CF42%s|r is on a killingspree!", Killer->GetName());
  52.             sWorld->SendServerMessage(SERVER_MSG_STRING, msg);
  53.         }
  54.  
  55.     }
  56. };
  57.  
  58. void AddSC_PvP_System()
  59. {
  60.     new System_OnKill;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement