View difference between Paste ID: kpVsxmS8 and isNU9bzY
SHOW: | | - or go back to the newest paste.
1-
/************************************************************************
1+
/*
2-
*	*----------------*	|	*----------------*	|	*---------------*	*
2+
Originally by Kjanko
3-
*	|	Originally	|*  |	*|	Edited		|*	|	*|	Edited		|	*
3+
Edited by Tommy
4-
*	|	By			|*	|	*|	By			|*	|	*|	By			|	*
4+
Edited by Rochet2 ~ Made dynamic
5-
*	|	Kjanko		|*	|	*|	Tommy		|*	|	*|	Rochet2		|	*
5+
*/
6-
*	|------------------|*|---------------------|*|------------------|	*
6+
7-
************************************************************************/
7+
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-
		if( KillStreakData[KillerGUID].killstreak % 10 ) // send killstreak message every 10 kills
37+
38
		KillStreakData[KillerGUID].lastkill = VictimGUID;
39
		KillStreakData[VictimGUID].killstreak = 0;
40-
			snprintf(msg, 250, "[PvP System]: %s is on a killstreak of %u!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);
40+
41
42
		if( KillStreakData[KillerGUID].killstreak % 10 == 0 ) // send killstreak message every 10 kills
43-
		
43+
44-
		if( KillStreakData[KillerGUID].killstreak % 20 ) // reward every 20 kills
44+
45-
			Killer->AddItem(25, 1); // adds item: entry = 25, amount = 1
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
}