View difference between Paste ID: Hx5Pe1zv and vkAhizui
SHOW: | | - or go back to the newest paste.
1-
/**************************************************************************************
1+
/************************************************************************
2-
*                                                                                     *
2+
*	*----------------*	|	*----------------*	|	*---------------*	*
3-
*                                                                                     *
3+
*	|	Originally	|*  |	*|	Edited		|*	|	*|	Edited		|	*
4-
*                                                                                     *
4+
*	|	By			|*	|	*|	By			|*	|	*|	By			|	*
5-
*                                                                                     *
5+
*	|	Kjanko		|*	|	*|	Tommy		|*	|	*|	Rochet2		|	*
6-
*                                      _____                                          *
6+
*	|------------------|*|---------------------|*|------------------|	*
7-
*                    *---------------*   |   *--------------*                         *
7+
************************************************************************/
8-
*                    |   By          |*  |  *|     Edited   |                         *
8+
9-
*                     |    Kjanko     |* | *|       By     |                          *
9+
10-
*                    |                 |* *|      Tommy     |                         *
10+
11-
*                   |-------------------|*|----------------|                          *
11+
12-
***************************************************************************************/
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
38
		{
39
			char msg[250];
40
			snprintf(msg, 250, "[PvP System]: %s is on a killstreak of %u!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);
41-
		switch( KillStreakData[KillerGUID].killstreak )
41+
			sWorld->SendServerMessage(SERVER_MSG_STRING, msg);
42
		}
43
		
44-
			case 10:
44+
		if( KillStreakData[KillerGUID].killstreak % 20 == 0 ) // reward every 20 kills
45-
				snprintf(msg, 250, "[PvP System]: %s is on a killstreak of %u!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);
45+
			Killer->ModifyMoney(100000); // this is the reward in copper, currently 10 gold
46-
				sWorld->SendServerMessage(SERVER_MSG_STRING, msg);
46+
	}
47-
				break;
47+
48
49-
			case 20:
49+
50-
				snprintf(msg, 250, "[PvP System]: %s is on a killstreak of %u!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);
50+
51-
				sWorld->SendServerMessage(SERVER_MSG_STRING, msg);
51+
52-
				break;
52+