View difference between Paste ID: NEvwhG0h and Hx5Pe1zv
SHOW: | | - or go back to the newest paste.
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 == 0 ) // send killstreak message every 10 kills
37+
		if( KillStreakData[KillerGUID].killstreak % 5 == 0 ) // 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 == 0 ) // reward every 20 kills
44+
		if( KillStreakData[KillerGUID].killstreak == 5 || KillStreakData[KillerGUID].killstreak % 10 == 0 )
45-
			Killer->ModifyMoney(100000); // this is the reward in copper, currently 10 gold
45+
			Killer->AddItem(25, KillStreakData[KillerGUID].killstreak); // 25 = badge item entry
46
		
47
		if( KillStreakData[KillerGUID].killstreak >= 15 && KillStreakData[KillerGUID].killstreak % 10 == 5 )
48
			Killer->AddItem(26, (KillStreakData[KillerGUID].killstreak-5)/10); // 26 = special badge item entry
49
	}
50
};
51
52
void AddSC_PvP_System()
53
{
54
    new System_OnKill;
55
}