Advertisement
Rochet2

Killstreak

Mar 23rd, 2013
419
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.91 KB | None | 0 0
  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.         uint32 KillerGUID = Killer->GetGUIDLow();
  17.         uint32 VictimGUID = Victim->GetGUIDLow();
  18.  
  19.         struct KillStreak_Info
  20.         {
  21.             uint32 killstreak;
  22.             uint32 lastkill;
  23.         };
  24.  
  25.         static std::map<uint32, KillStreak_Info> KillStreakData;
  26.  
  27.         if (KillerGUID == VictimGUID || KillStreakData[KillerGUID].lastkill == VictimGUID)
  28.             return;
  29.  
  30.         if (KillStreakData[VictimGUID].killstreak >= 3)
  31.         {
  32.             std::ostringstream ss;
  33.             ss << "|cFF81CF42" << Killer->GetName() << "|r has ended |cFFFFFFFF" << Victim->GetName() << "|r's killing spree!";
  34.             sWorld->SendServerMessage(SERVER_MSG_STRING, ss.str().c_str());
  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.             std::ostringstream ss;
  45.             ss << "|cFF81CF42" << Killer->GetName() << "|r has a killstreak of |cFF42A0CF" << KillStreakData[KillerGUID].killstreak << "|r!";
  46.             sWorld->SendServerMessage(SERVER_MSG_STRING, ss.str().c_str());
  47.         }
  48.         else if (KillStreakData[KillerGUID].killstreak == 3)
  49.         {
  50.             std::ostringstream ss;
  51.             ss << "|cFF81CF42" << Killer->GetName() << "|r is on a killingspree!";
  52.             sWorld->SendServerMessage(SERVER_MSG_STRING, ss.str().c_str());
  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