Advertisement
Rochet2

KillStreak C++ | Kjanko | Tommy - Item

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