[Request] Custom Scripted C++ Killsteak system

Hey guys,

I’m new to C++, and applying myself as much as I can with the little time that I have.

I want to edit this script so it:

  1. Only works in Stranglethorn Vale.

  2. Resets when you log in or out.

  3. Announces the end of a killstreak caused by another player for players on a kill streak with 3+ kills.

I’ve messed around with it for a few days, and I have it working, but not as intented. I need the above to work, any help would be greatly appreciated.


#include "ScriptPCH.h"


class System_OnKill : public PlayerScript

{

public:

System_OnKill() : PlayerScript("System_OnKill") {}


void OnPVPKill(Player * Killer, Player * Victim)

{

uint64 KillerGUID = Killer->GetGUID();

uint64 VictimGUID = Victim->GetGUID();


struct KillStreak_Info

{

uint32 killstreak;

uint64 lastkill;

};


static std::map<uint64, KillStreak_Info> KillStreakData;


if( KillerGUID == VictimGUID || KillStreakData[KillerGUID].lastkill == VictimGUID )

return;


KillStreakData[KillerGUID].killstreak++;

KillStreakData[KillerGUID].lastkill = VictimGUID;

KillStreakData[VictimGUID].killstreak = 0;

KillStreakData[VictimGUID].lastkill = 0;


if( KillStreakData[KillerGUID].killstreak % 1 == 0 ) // get 1 badge per kill

{

Killer->AddItem(49426, 1);

}


if( KillStreakData[KillerGUID].killstreak == 3 ) // send killstreak message on the 3rd kill

{

char msg[250];

snprintf(msg, 250, "[PvP System]: %s is on a killstreak of %u!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);

sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

}


if( KillStreakData[KillerGUID].killstreak % 5 == 0 ) // send killstreak message every 5 kills

{

char msg[250];

snprintf(msg, 250, "[PvP System]: %s is on a killstreak of %u!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);

sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

}


if( KillStreakData[KillerGUID].killstreak >= 10 ) // reward an extra badge after 10 kills

Killer->AddItem(49426, 1);


}

};


void AddSC_PvP_System()

{

new System_OnKill;

}

Thanks!

Anyone? /emoticons/default_smile.png

did not test as always.


#include "ScriptPCH.h"

class System_OnKill : public PlayerScript

{

public:

    System_OnKill() : PlayerScript("System_OnKill") {}

    void OnPVPKill(Player * Killer, Player * Victim)

    {

	    if(Killer->GetZoneId() != 33) // zone not STV, return

		    return;

	    uint64 KillerGUID = Killer->GetGUID();

	    uint64 VictimGUID = Victim->GetGUID();

	    if( KillerGUID == VictimGUID || KillStreakData[KillerGUID].lastkill == VictimGUID )

		    return;

	    if(KillStreakData[VictimGUID].killstreak >= 3) // victim has 3 or more kills, announce

	    {

		    char msg[250];

		    snprintf(msg, 250, "[PvP System]: %s lost killstreak of %u!", Killer->GetName(), KillStreakData[VictimGUID].killstreak);

		    sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

	    }

	    KillStreakData[KillerGUID].killstreak++;

	    KillStreakData[KillerGUID].lastkill = VictimGUID;

	    KillStreakData[VictimGUID].killstreak = 0;

	    KillStreakData[VictimGUID].lastkill = 0;

	    if( KillStreakData[KillerGUID].killstreak % 1 == 0 ) // get 1 badge per kill

	    {

		    Killer->AddItem(49426, 1);

	    }

	    if( KillStreakData[KillerGUID].killstreak == 3 ) // send killstreak message on the 3rd kill

	    {

		    char msg[250];

		    snprintf(msg, 250, "[PvP System]: %s is on a killstreak of %u!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);

		    sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

	    }

	    if( KillStreakData[KillerGUID].killstreak % 5 == 0 ) // send killstreak message every 5 kills

	    {

		    char msg[250];

		    snprintf(msg, 250, "[PvP System]: %s is on a killstreak of %u!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);

		    sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

	    }

	    if( KillStreakData[KillerGUID].killstreak >= 10 ) // reward an extra badge after 10 kills

		    Killer->AddItem(49426, 1);

    }

    void OnLogin(Player* player)

    {

	    KillStreakData.erase(player->GetGUID());

    }

    void OnLogout(Player* player)

    {

	    KillStreakData.erase(player->GetGUID());

    }

private:

    static struct KillStreak_Info

    {

	    uint32 killstreak;

	    uint64 lastkill;

    };

    static std::map<uint64, KillStreak_Info> KillStreakData;

};

void AddSC_PvP_System()

{

    new System_OnKill;

}

Thanks a lot Rochet2! I’ll test this when I get home, and update this thread. Also, did you see the message I sent you?

Yes and I also replied, which you obviously did not see. (before I posted the above script)

It didn’t pop it up, I’ll go check it out.

Don’t know, will it work or not, but i think casting buffs for N of kills it’s interesting


#include "ScriptPCH.h"

enum Spells

{

ABBACUS = 33807,

SHIELD = 33479,

POWER = 35733


};

class System_OnKill : public PlayerScript

{

public:

	    System_OnKill() : PlayerScript("System_OnKill") {}

	    void OnPVPKill(Player * Killer, Player * Victim)

	    {

			    if(Killer->GetZoneId() != 33) // zone not STV, return

					    return;

			    uint64 KillerGUID = Killer->GetGUID();

			    uint64 VictimGUID = Victim->GetGUID();

			    if( KillerGUID == VictimGUID || KillStreakData[KillerGUID].lastkill == VictimGUID )

					    return;

			    if(KillStreakData[VictimGUID].killstreak >= 3) // victim has 3 or more kills, announce

			    {

					    char msg[250];

					    snprintf(msg, 250, "[PvP System]: %s lost killstreak of %u!", Killer->GetName(), KillStreakData[VictimGUID].killstreak);

					    sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

					    Killer->DoCast(me, ABBACUS, true);

			    }

			    KillStreakData[KillerGUID].killstreak++;

			    KillStreakData[KillerGUID].lastkill = VictimGUID;

			    KillStreakData[VictimGUID].killstreak = 0;

			    KillStreakData[VictimGUID].lastkill = 0;

			    if( KillStreakData[KillerGUID].killstreak % 1 == 0 ) // get 1 badge per kill

			    {

					    Killer->AddItem(49426, 1);

					    Killer->DoCast(me, ABBACUS, true);

			    }

			    if( KillStreakData[KillerGUID].killstreak == 3 ) // send killstreak message on the 3rd kill

			    {

					    char msg[250];

					    snprintf(msg, 250, "[PvP System]: %s is on a killstreak of %u!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);

					    sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

					    Killer->DoCast(me, SHIELD, true);

			    }

			    if( KillStreakData[KillerGUID].killstreak % 5 == 0 ) // send killstreak message every 5 kills

			    {

					    char msg[250];

					    snprintf(msg, 250, "[PvP System]: %s is on a killstreak of %u!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);

					    sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

					    Killer->DoCast(me, POWER, true);

			    }

			    if( KillStreakData[KillerGUID].killstreak >= 10 ) // reward an extra badge after 10 kills

					    Killer->AddItem(49426, 1);


	    }

	    void OnLogin(Player* player)

	    {

			    KillStreakData.erase(player->GetGUID());

	    }

	    void OnLogout(Player* player)

	    {

			    KillStreakData.erase(player->GetGUID());

	    }

private:

	    static struct KillStreak_Info

	    {

			    uint32 killstreak;

			    uint64 lastkill;

	    };

	    static std::map<uint64, KillStreak_Info> KillStreakData;

};

void AddSC_PvP_System()

{

	    new System_OnKill;

}

I tested your script Rochet2, and it wouldn’t compile. It had a few errors, I messed around with it for a bit, and got it to compile, but it’s the same thing as mine, just slightly different. I believe it solved the zone issue though. Still working on the messaging for ending a players kill streak, and announcing to the server who ended it, and actually resetting their kill streak.

Darki, I’ll test that script when I get home tonight.

Here’s something I wrote quite some time ago when a friend and I were working on a project together. It might be outdated by now and give some compile errors, as well as miss some data, but good luck creating those yourself. /emoticons/default_smile.png

C++ & SQL:

https://gist.github.com/3841751

Some notes:

  • You’ll have to create your own function in the ScriptMgr called OnPVPHeal, which you can call at SpellEffects.cpp, Spell::EffectHeal with the following code right above the line that states ‘m_damage -= addhealth;’:

[SPOILER]
if (caster->GetAreaId() == 297) // PvP Island
sScriptMgr->OnPVPHeal(caster->ToPlayer(), unitTarget, uint32(addhealth));

        if (caster->GetTypeId() == TYPEID_PLAYER)
  • Add this to Player::RewardHonor if you want to allow FFA PvP in the PvP Island only:

if (GetTeam() == pVictim->GetTeam() && GetAreaId() != 297 && pVictim->GetAreaId() != 297)
return false;

            // If both players are for example alliance and are not in area PvP Island, do not execute code

and apply this: http://pastie.org/4916348

You’re welcome. Good luck finding out what the features and such are. =)

Revised your script and did alot of clean up. Tell me if this works. I’m kinda thinking the killstreak announcer won’t work but if it does it should announce when any killsteak is ended. Here it is


#include "ScriptPCH.h"

class System_OnKill : public PlayerScript

{

public:

System_OnKill() : PlayerScript("System_OnKill") {}

void OnPVPKill(Player* Killer, Player* Victim)

{	   

   Killer->AddItem(49426, 1); // rewards one badge every kill

   if(Killer->GetZoneId() != 33) // zone not STV, return

				 return;

		 uint64 KillerGUID = Killer->GetGUID();

		 uint64 VictimGUID = Victim->GetGUID();

		 if( KillerGUID == VictimGUID || KillStreakData[KillerGUID].lastkill == VictimGUID )

				 return;

		 KillStreakData[KillerGUID].killstreak++;

		 KillStreakData[KillerGUID].lastkill = VictimGUID;

		 KillStreakData[VictimGUID].killstreak = 0;

		 KillStreakData[VictimGUID].lastkill = 0;

   if (Killer->isDead())

   {

   KillStreakData.erase(Killer->GetGUID());

   char msg[250];

   snprintf(msg, 250, "[PvP System]: %s\'s killstreak(%s) was ended by %s!", Victim->GetName(), KillStreakData[VictimGUID].killstreak, Killer->GetName());

   sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

   }

   switch (KillStreakData[VictimGUID].killstreak)

   {

   case 3: // victim has 3 or more kills, announce

   char msg[250];

   snprintf(msg, 250, "[PvP System]: %s on a killstreak of %u!", Killer->GetName(), KillStreakData[VictimGUID].killstreak);

   sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

   break;

   case 5: // send killstreak message every 5 kills

   char msg[250];

   snprintf(msg, 250, "[PvP System]: %s is on a killstreak of %u!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);

   sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

   break;

   case 10:

   char msg[250];

   snprintf(msg, 250, "[PvP System]: %s is on a killstreak of %u!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);

   sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

   Killer->AddItem(49426, 1); // reward at 10 kills

   break;

   }

}

void OnLogin(Player* Killer)

{

  KillStreakData.erase(Killer->GetGUID());

}

void OnLogout(Player* Killer)

{

  KillStreakData.erase(Killer->GetGUID());

}


private:

static struct KillStreak_Info

{

		 uint32 killstreak;

		 uint64 lastkill;

};

static std::map<uint64, KillStreak_Info> KillStreakData;

};

void AddSC_PvP_System()

{

new System_OnKill;

}

Got this error trying to compile.


10>..\..\..\..\TrinitySRC\src\server\scripts\Custom\killstreak.cpp(34) : error C2086: 'char msg[250]' : redefinition

10>	    ..\..\..\..\TrinitySRC\src\server\scripts\Custom\killstreak.cpp(29) : see declaration of 'msg'

10>..\..\..\..\TrinitySRC\src\server\scripts\Custom\killstreak.cpp(39) : error C2086: 'char msg[250]' : redefinition

10>	    ..\..\..\..\TrinitySRC\src\server\scripts\Custom\killstreak.cpp(29) : see declaration of 'msg'

try this!~


#include "ScriptPCH.h"

class System_OnKill : public PlayerScript

{

public:

System_OnKill() : PlayerScript("System_OnKill") {}

void OnPVPKill(Player* Killer, Player* Victim)

{	   

   Killer->AddItem(49426, 1); // rewards one badge every kill

   if(Killer->GetZoneId() != 33) // zone not STV, return

				 return;

		 uint64 KillerGUID = Killer->GetGUID();

		 uint64 VictimGUID = Victim->GetGUID();

		 if( KillerGUID == VictimGUID || KillStreakData[KillerGUID].lastkill == VictimGUID )

				 return;

		 KillStreakData[KillerGUID].killstreak++;

		 KillStreakData[KillerGUID].lastkill = VictimGUID;

		 KillStreakData[VictimGUID].killstreak = 0;

		 KillStreakData[VictimGUID].lastkill = 0;

   if (Killer->isDead())

   {

   KillStreakData.erase(Killer->GetGUID());

   char msg[250];

   snprintf(msg, 250, "[PvP System]: %s\'s killstreak(%s) was ended by %s!", Victim->GetName(), KillStreakData[VictimGUID].killstreak, Killer->GetName());

   sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

   }

   switch (KillStreakData[VictimGUID].killstreak)

   {

   case 3: // victim has 3 or more kills, announce

   {

   char msg[250];

   snprintf(msg, 250, "[PvP System]: %s on a killstreak of %u!", Killer->GetName(), KillStreakData[VictimGUID].killstreak);

   sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

   }

   break;

   case 5: // send killstreak message every 5 kills

   {

   char msg[250];

   snprintf(msg, 250, "[PvP System]: %s is on a killstreak of %u!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);

   sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

   }

   break;

   case 10:

   {

   char msg[250];

   snprintf(msg, 250, "[PvP System]: %s is on a killstreak of %u!", Killer->GetName(), KillStreakData[KillerGUID].killstreak);

   sWorld->SendServerMessage(SERVER_MSG_STRING, msg);

   Killer->AddItem(49426, 1); // reward at 10 kills

   break;

   }

   }

}

void OnLogin(Player* Killer)

{

  KillStreakData.erase(Killer->GetGUID());

}

void OnLogout(Player* Killer)

{

  KillStreakData.erase(Killer->GetGUID());

}


private:

static struct KillStreak_Info

{

		 uint32 killstreak;

		 uint64 lastkill;

};

static std::map<uint64, KillStreak_Info> KillStreakData;

};

void AddSC_PvP_System()

{

new System_OnKill;

}

My killstreak not want to advertise and every time he kills 5 players in the server crash anyone have any kill streak you get this latest version of trinity core and can send me the link?

thank you

[COLOR=rgb(136,0,0)]#include [COLOR=rgb(0,136,0)]“ScriptPCH.h”

[COLOR=rgb(136,0,0)]///////////////////////////////////////////////////////////////////////
[COLOR=rgb(136,0,0)]/////////////////////// CONFIG /////////////////////////////
[COLOR=rgb(136,0,0)]/////////////////////////////////////////////////////////////////////

[COLOR=rgb(0,0,136)]float [COLOR=rgb(102,0,102)]Version [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]2.50f[COLOR=rgb(102,102,0)]; [COLOR=rgb(136,0,0)]//Don’t touch this.
[COLOR=rgb(0,0,136)]bool [COLOR=rgb(102,0,102)]PvPSystemEnabled [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,0,136)]true[COLOR=rgb(102,102,0)]; [COLOR=rgb(136,0,0)]//Set to false if you want to disable the PvP System
[COLOR=rgb(0,0,136)]bool [COLOR=rgb(102,0,102)]OnlyInBattlegrounds [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,0,136)]false[COLOR=rgb(102,102,0)]; [COLOR=rgb(136,0,0)]//Set to true if you want to enable this only in battlegrounds.
[COLOR=rgb(0,0,136)]bool [COLOR=rgb(102,0,102)]LooseTokenOnPvPDeath [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,0,136)]false[COLOR=rgb(102,102,0)]; [COLOR=rgb(136,0,0)]//Set to true if you want the victim to loose tokens when the victim dies.
int32 [COLOR=rgb(102,0,102)]AmountOfItemsYouWantTheVictimToLoose [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]1[COLOR=rgb(102,102,0)]; [COLOR=rgb(136,0,0)]//Amount of items you want the victim to loose when victim dies.
[COLOR=rgb(0,0,136)]bool [COLOR=rgb(102,0,102)]AddTokenOnPvPKill [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,0,136)]true[COLOR=rgb(102,102,0)]; [COLOR=rgb(136,0,0)]//Set to false if you don’t want the killer to be rewarded.
int32 [COLOR=rgb(102,0,102)]ItemReward [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]40753[COLOR=rgb(102,102,0)]; [COLOR=rgb(136,0,0)]//The ItemID of the reward.
int32 [COLOR=rgb(102,0,102)]AmountOfRewardsOnKillStreak[COLOR=rgb(102,102,0)][[COLOR=rgb(0,102,102)]5[COLOR=rgb(102,102,0)]] [COLOR=rgb(102,102,0)]= [COLOR=rgb(102,102,0)]{ [COLOR=rgb(0,102,102)]1[COLOR=rgb(102,102,0)], [COLOR=rgb(0,102,102)]3[COLOR=rgb(102,102,0)], [COLOR=rgb(0,102,102)]5[COLOR=rgb(102,102,0)], [COLOR=rgb(0,102,102)]7[COLOR=rgb(102,102,0)], [COLOR=rgb(0,102,102)]10 [COLOR=rgb(102,102,0)]}; [COLOR=rgb(136,0,0)]//With how many items you want to reward the killer when he slays the victim.
int32 [COLOR=rgb(102,0,102)]HowManyTimesYouWantTheKillerToGetAwardedForKillingTheSameVictim [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]1[COLOR=rgb(102,102,0)]; [COLOR=rgb(136,0,0)]//Name speaks for It self.
[COLOR=rgb(0,0,136)]const int32 [COLOR=rgb(102,0,102)]KillerStreak1 [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]10[COLOR=rgb(102,102,0)];
[COLOR=rgb(0,0,136)]const int32 [COLOR=rgb(102,0,102)]KillerStreak2 [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]20[COLOR=rgb(102,102,0)];
[COLOR=rgb(0,0,136)]const int32 [COLOR=rgb(102,0,102)]KillerStreak3 [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]30[COLOR=rgb(102,102,0)];
[COLOR=rgb(0,0,136)]const int32 [COLOR=rgb(102,0,102)]KillerStreak4 [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]40[COLOR=rgb(102,102,0)];
[COLOR=rgb(0,0,136)]const int32 [COLOR=rgb(102,0,102)]KillerStreak5 [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]50[COLOR=rgb(102,102,0)];
int32 [COLOR=rgb(102,0,102)]KillStreaks[COLOR=rgb(102,102,0)][[COLOR=rgb(0,102,102)]5[COLOR=rgb(102,102,0)]] [COLOR=rgb(102,102,0)]= [COLOR=rgb(102,102,0)]{ [COLOR=rgb(102,0,102)]KillerStreak1[COLOR=rgb(102,102,0)], [COLOR=rgb(102,0,102)]KillerStreak2[COLOR=rgb(102,102,0)], [COLOR=rgb(102,0,102)]KillerStreak3[COLOR=rgb(102,102,0)], [COLOR=rgb(102,0,102)]KillerStreak4[COLOR=rgb(102,102,0)], [COLOR=rgb(102,0,102)]KillerStreak5 [COLOR=rgb(102,102,0)]};[COLOR=rgb(136,0,0)]//On how many kills the killstreaks should announce & Reward.
[COLOR=rgb(136,0,0)]///////////////////////////////////////////////////////////////////
[COLOR=rgb(136,0,0)]/////////////////////// END ////////////////////////////
[COLOR=rgb(136,0,0)]/////////////////////////////////////////////////////////////////

[COLOR=rgb(0,0,136)]struct [COLOR=rgb(102,0,102)]SystemInfo
[COLOR=rgb(102,102,0)]{
uint32 [COLOR=rgb(102,0,102)]KillStreak[COLOR=rgb(102,102,0)];
uint64 [COLOR=rgb(102,0,102)]LastGUIDKill[COLOR=rgb(102,102,0)];
uint8 [COLOR=rgb(102,0,102)]KillCount[COLOR=rgb(102,102,0)];
[COLOR=rgb(102,102,0)]};

[COLOR=rgb(0,0,136)]static std[COLOR=rgb(102,102,0)]::map[COLOR=rgb(102,102,0)]<uint32[COLOR=rgb(102,102,0)], [COLOR=rgb(102,0,102)]SystemInfo[COLOR=rgb(102,102,0)]> [COLOR=rgb(102,0,102)]KillingStreak[COLOR=rgb(102,102,0)];

[COLOR=rgb(0,0,136)]class [COLOR=rgb(102,0,102)]System_OnPvPKill [COLOR=rgb(102,102,0)]: [COLOR=rgb(0,0,136)]public [COLOR=rgb(102,0,102)]PlayerScript
[COLOR=rgb(102,102,0)]{
[COLOR=rgb(0,0,136)]public[COLOR=rgb(102,102,0)]:
[COLOR=rgb(102,0,102)]System_OnPvPKillCOLOR=rgb(102,102,0) [COLOR=rgb(102,102,0)]: [COLOR=rgb(102,0,102)]PlayerScriptCOLOR=rgb(102,102,0) [COLOR=rgb(102,102,0)]{}

[COLOR=rgb(0,0,136)]void [COLOR=rgb(102,0,102)]OnPVPKill[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]Player [COLOR=rgb(102,102,0)]*pKiller[COLOR=rgb(102,102,0)], [COLOR=rgb(102,0,102)]Player [COLOR=rgb(102,102,0)]*pVictim[COLOR=rgb(102,102,0)])
[COLOR=rgb(102,102,0)]{
[COLOR=rgb(0,0,136)]ifCOLOR=rgb(102,102,0)
[COLOR=rgb(102,102,0)]{
[COLOR=rgb(0,0,136)]return[COLOR=rgb(102,102,0)];
[COLOR=rgb(102,102,0)]}
[COLOR=rgb(0,0,136)]else [COLOR=rgb(0,0,136)]ifCOLOR=rgb(102,102,0)
[COLOR=rgb(102,102,0)]{
uint64 kGUID[COLOR=rgb(102,102,0)];
uint64 vGUID[COLOR=rgb(102,102,0)];
[COLOR=rgb(0,0,136)]char msg[COLOR=rgb(102,102,0)][[COLOR=rgb(0,102,102)]500[COLOR=rgb(102,102,0)]];
kGUID [COLOR=rgb(102,102,0)]= pKiller[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]GetGUIDCOLOR=rgb(102,102,0);
vGUID [COLOR=rgb(102,102,0)]= pVictim[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]GetGUIDCOLOR=rgb(102,102,0);
[COLOR=rgb(0,0,136)]if[COLOR=rgb(102,102,0)](kGUID [COLOR=rgb(102,102,0)]== vGUID[COLOR=rgb(102,102,0)])
[COLOR=rgb(102,102,0)]{
[COLOR=rgb(0,0,136)]return[COLOR=rgb(102,102,0)];
[COLOR=rgb(102,102,0)]}

[COLOR=rgb(0,0,136)]if[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]KillingStreak[COLOR=rgb(102,102,0)][kGUID[COLOR=rgb(102,102,0)]].[COLOR=rgb(102,0,102)]LastGUIDKill [COLOR=rgb(102,102,0)]== vGUID[COLOR=rgb(102,102,0)])
[COLOR=rgb(102,102,0)]{
[COLOR=rgb(102,0,102)]KillingStreak[COLOR=rgb(102,102,0)][kGUID[COLOR=rgb(102,102,0)]].[COLOR=rgb(102,0,102)]KillCount[COLOR=rgb(102,102,0)]++;
[COLOR=rgb(102,0,102)]KillingStreak[COLOR=rgb(102,102,0)][vGUID[COLOR=rgb(102,102,0)]].[COLOR=rgb(102,0,102)]KillCount [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]1[COLOR=rgb(102,102,0)];
pKiller[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]AddItem[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]ItemReward[COLOR=rgb(102,102,0)], [COLOR=rgb(0,102,102)]1[COLOR=rgb(102,102,0)]);
[COLOR=rgb(0,0,136)]if[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]LooseTokenOnPvPDeath [COLOR=rgb(102,102,0)]== [COLOR=rgb(0,0,136)]true[COLOR=rgb(102,102,0)])
pVictim[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]DestroyItemCount[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]ItemReward[COLOR=rgb(102,102,0)], [COLOR=rgb(102,0,102)]AmountOfItemsYouWantTheVictimToLoose[COLOR=rgb(102,102,0)], [COLOR=rgb(0,0,136)]true[COLOR=rgb(102,102,0)], [COLOR=rgb(0,0,136)]false[COLOR=rgb(102,102,0)]);
[COLOR=rgb(102,102,0)]}

[COLOR=rgb(0,0,136)]if[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]KillingStreak[COLOR=rgb(102,102,0)][kGUID[COLOR=rgb(102,102,0)]].[COLOR=rgb(102,0,102)]LastGUIDKill [COLOR=rgb(102,102,0)]!= vGUID[COLOR=rgb(102,102,0)])
[COLOR=rgb(102,102,0)]{
[COLOR=rgb(102,0,102)]KillingStreak[COLOR=rgb(102,102,0)][kGUID[COLOR=rgb(102,102,0)]].[COLOR=rgb(102,0,102)]KillCount [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]1[COLOR=rgb(102,102,0)];
[COLOR=rgb(102,0,102)]KillingStreak[COLOR=rgb(102,102,0)][vGUID[COLOR=rgb(102,102,0)]].[COLOR=rgb(102,0,102)]KillCount [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]1[COLOR=rgb(102,102,0)];
[COLOR=rgb(102,102,0)]}

[COLOR=rgb(0,0,136)]if[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]KillingStreak[COLOR=rgb(102,102,0)][kGUID[COLOR=rgb(102,102,0)]].[COLOR=rgb(102,0,102)]KillCount [COLOR=rgb(102,102,0)]== [COLOR=rgb(102,0,102)]HowManyTimesYouWantTheKillerToGetAwardedForKillingTheSameVictim[COLOR=rgb(102,102,0)])
[COLOR=rgb(102,102,0)]{
[COLOR=rgb(0,0,136)]return[COLOR=rgb(102,102,0)];
[COLOR=rgb(102,102,0)]}

[COLOR=rgb(0,0,136)]ifCOLOR=rgb(102,102,0)
[COLOR=rgb(102,102,0)]{
[COLOR=rgb(0,0,136)]ifCOLOR=rgb(102,102,0)
[COLOR=rgb(0,0,136)]return[COLOR=rgb(102,102,0)];
[COLOR=rgb(102,102,0)]}

[COLOR=rgb(102,0,102)]KillingStreak[COLOR=rgb(102,102,0)][kGUID[COLOR=rgb(102,102,0)]].[COLOR=rgb(102,0,102)]KillStreak[COLOR=rgb(102,102,0)]++;
[COLOR=rgb(102,0,102)]KillingStreak[COLOR=rgb(102,102,0)][vGUID[COLOR=rgb(102,102,0)]].[COLOR=rgb(102,0,102)]KillStreak [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]0[COLOR=rgb(102,102,0)];
[COLOR=rgb(102,0,102)]KillingStreak[COLOR=rgb(102,102,0)][kGUID[COLOR=rgb(102,102,0)]].[COLOR=rgb(102,0,102)]LastGUIDKill [COLOR=rgb(102,102,0)]= vGUID[COLOR=rgb(102,102,0)];
[COLOR=rgb(102,0,102)]KillingStreak[COLOR=rgb(102,102,0)][vGUID[COLOR=rgb(102,102,0)]].[COLOR=rgb(102,0,102)]LastGUIDKill [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]0[COLOR=rgb(102,102,0)];
[COLOR=rgb(0,0,136)]if[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]AddTokenOnPvPKill [COLOR=rgb(102,102,0)]== [COLOR=rgb(0,0,136)]true[COLOR=rgb(102,102,0)])
pKiller[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]AddItem[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]ItemReward[COLOR=rgb(102,102,0)], [COLOR=rgb(0,102,102)]1[COLOR=rgb(102,102,0)]);
[COLOR=rgb(0,0,136)]if[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]LooseTokenOnPvPDeath [COLOR=rgb(102,102,0)]== [COLOR=rgb(0,0,136)]true[COLOR=rgb(102,102,0)])
pVictim[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]DestroyItemCount[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]ItemReward[COLOR=rgb(102,102,0)], [COLOR=rgb(102,0,102)]AmountOfItemsYouWantTheVictimToLoose[COLOR=rgb(102,102,0)], [COLOR=rgb(0,0,136)]true[COLOR=rgb(102,102,0)], [COLOR=rgb(0,0,136)]false[COLOR=rgb(102,102,0)]);

[COLOR=rgb(0,0,136)]switchCOLOR=rgb(102,102,0)
[COLOR=rgb(102,102,0)]{
[COLOR=rgb(0,0,136)]case [COLOR=rgb(102,0,102)]KillerStreak1[COLOR=rgb(102,102,0)]:
sprintf[COLOR=rgb(102,102,0)](msg[COLOR=rgb(102,102,0)], [COLOR=rgb(0,136,0)]"[PvP System]: %s killed %s and is on a %u kill streak. "[COLOR=rgb(102,102,0)], pKiller[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]GetNameCOLOR=rgb(102,102,0), pVictim[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]GetNameCOLOR=rgb(102,102,0), [COLOR=rgb(102,0,102)]KillStreaks[COLOR=rgb(102,102,0)][[COLOR=rgb(0,102,102)]1[COLOR=rgb(102,102,0)]]);
sWorld[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]SendWorldText[COLOR=rgb(102,102,0)](LANG_SYSTEMMESSAGE[COLOR=rgb(102,102,0)], msg[COLOR=rgb(102,102,0)]);
pKiller[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]AddItem[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]ItemReward[COLOR=rgb(102,102,0)], [COLOR=rgb(102,0,102)]AmountOfRewardsOnKillStreak[COLOR=rgb(102,102,0)][[COLOR=rgb(0,102,102)]1[COLOR=rgb(102,102,0)]]);
[COLOR=rgb(0,0,136)]break[COLOR=rgb(102,102,0)];

[COLOR=rgb(0,0,136)]case [COLOR=rgb(102,0,102)]KillerStreak2[COLOR=rgb(102,102,0)]:
sprintf[COLOR=rgb(102,102,0)](msg[COLOR=rgb(102,102,0)], [COLOR=rgb(0,136,0)]"[PvP System]: %s killed %s and is on a %u kill streak. "[COLOR=rgb(102,102,0)], pKiller[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]GetNameCOLOR=rgb(102,102,0), pVictim[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]GetNameCOLOR=rgb(102,102,0), [COLOR=rgb(102,0,102)]KillStreaks[COLOR=rgb(102,102,0)][[COLOR=rgb(0,102,102)]2[COLOR=rgb(102,102,0)]]);
sWorld[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]SendWorldText[COLOR=rgb(102,102,0)](LANG_SYSTEMMESSAGE[COLOR=rgb(102,102,0)], msg[COLOR=rgb(102,102,0)]);
pKiller[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]AddItem[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]ItemReward[COLOR=rgb(102,102,0)], [COLOR=rgb(102,0,102)]AmountOfRewardsOnKillStreak[COLOR=rgb(102,102,0)][[COLOR=rgb(0,102,102)]2[COLOR=rgb(102,102,0)]]);
[COLOR=rgb(0,0,136)]break[COLOR=rgb(102,102,0)];

[COLOR=rgb(0,0,136)]case [COLOR=rgb(102,0,102)]KillerStreak3[COLOR=rgb(102,102,0)]:
sprintf[COLOR=rgb(102,102,0)](msg[COLOR=rgb(102,102,0)], [COLOR=rgb(0,136,0)]"[PvP System]: %s killed %s and is on a %u kill streak. "[COLOR=rgb(102,102,0)], pKiller[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]GetNameCOLOR=rgb(102,102,0), pVictim[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]GetNameCOLOR=rgb(102,102,0), [COLOR=rgb(102,0,102)]KillStreaks[COLOR=rgb(102,102,0)][[COLOR=rgb(0,102,102)]3[COLOR=rgb(102,102,0)]]);
sWorld[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]SendWorldText[COLOR=rgb(102,102,0)](LANG_SYSTEMMESSAGE[COLOR=rgb(102,102,0)], msg[COLOR=rgb(102,102,0)]);
pKiller[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]AddItem[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]ItemReward[COLOR=rgb(102,102,0)], [COLOR=rgb(102,0,102)]AmountOfRewardsOnKillStreak[COLOR=rgb(102,102,0)][[COLOR=rgb(0,102,102)]3[COLOR=rgb(102,102,0)]]);
[COLOR=rgb(0,0,136)]break[COLOR=rgb(102,102,0)];

[COLOR=rgb(0,0,136)]case [COLOR=rgb(102,0,102)]KillerStreak4[COLOR=rgb(102,102,0)]:
sprintf[COLOR=rgb(102,102,0)](msg[COLOR=rgb(102,102,0)], [COLOR=rgb(0,136,0)]"[PvP System]: %s killed %s and is on a %u kill streak. "[COLOR=rgb(102,102,0)], pKiller[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]GetNameCOLOR=rgb(102,102,0), pVictim[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]GetNameCOLOR=rgb(102,102,0), [COLOR=rgb(102,0,102)]KillStreaks[COLOR=rgb(102,102,0)][[COLOR=rgb(0,102,102)]4[COLOR=rgb(102,102,0)]]);
sWorld[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]SendWorldText[COLOR=rgb(102,102,0)](LANG_SYSTEMMESSAGE[COLOR=rgb(102,102,0)], msg[COLOR=rgb(102,102,0)]);
pKiller[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]AddItem[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]ItemReward[COLOR=rgb(102,102,0)], [COLOR=rgb(102,0,102)]AmountOfRewardsOnKillStreak[COLOR=rgb(102,102,0)][[COLOR=rgb(0,102,102)]4[COLOR=rgb(102,102,0)]]);
[COLOR=rgb(0,0,136)]break[COLOR=rgb(102,102,0)];

[COLOR=rgb(0,0,136)]case [COLOR=rgb(102,0,102)]KillerStreak5[COLOR=rgb(102,102,0)]:
sprintf[COLOR=rgb(102,102,0)](msg[COLOR=rgb(102,102,0)], [COLOR=rgb(0,136,0)]"[PvP System]: %s killed %s and is on a %u kill streak. "[COLOR=rgb(102,102,0)], pKiller[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]GetNameCOLOR=rgb(102,102,0), pVictim[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]GetNameCOLOR=rgb(102,102,0), [COLOR=rgb(102,0,102)]KillStreaks[COLOR=rgb(102,102,0)][[COLOR=rgb(0,102,102)]5[COLOR=rgb(102,102,0)]]);
sWorld[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]SendWorldText[COLOR=rgb(102,102,0)](LANG_SYSTEMMESSAGE[COLOR=rgb(102,102,0)], msg[COLOR=rgb(102,102,0)]);
pKiller[COLOR=rgb(102,102,0)]->[COLOR=rgb(102,0,102)]AddItem[COLOR=rgb(102,102,0)]([COLOR=rgb(102,0,102)]ItemReward[COLOR=rgb(102,102,0)], [COLOR=rgb(102,0,102)]AmountOfRewardsOnKillStreak[COLOR=rgb(102,102,0)][[COLOR=rgb(0,102,102)]5[COLOR=rgb(102,102,0)]]);
[COLOR=rgb(102,0,102)]KillingStreak[COLOR=rgb(102,102,0)][kGUID[COLOR=rgb(102,102,0)]].[COLOR=rgb(102,0,102)]KillStreak [COLOR=rgb(102,102,0)]= [COLOR=rgb(0,102,102)]0[COLOR=rgb(102,102,0)];
[COLOR=rgb(0,0,136)]break[COLOR=rgb(102,102,0)];
[COLOR=rgb(102,102,0)]}
[COLOR=rgb(102,102,0)]}
[COLOR=rgb(102,102,0)]}
[COLOR=rgb(102,102,0)]};

[COLOR=rgb(0,0,136)]void [COLOR=rgb(102,0,102)]AddSC_PVP_SystemCOLOR=rgb(102,102,0)
[COLOR=rgb(102,102,0)]{
[COLOR=rgb(0,0,136)]new [COLOR=rgb(102,0,102)]System_OnPvPKill[COLOR=rgb(102,102,0)];
[COLOR=rgb(102,102,0)]}

get name returns a string. use c_str

pKiller->AddItem(ItemReward, AmountOfRewardsOnKillStreak[5]);

AmountOfRewardsOnKillStreak is defined as int[5].

Same with KillStreaks in:

sprintf(msg, "[PvP System]: %s killed %s and is on a %u kill streak. ", pKiller->GetName(), pVictim->GetName(), KillStreaks[5]);

This script has a ton of errors, I’m actually surprised it doesn’t crash right away…

in other words, fix it or ditch it ^^

but could someone help me? because I do not know much about C + + and needed that could help me fix it.

Subv allready told you that the script is heavy bugged/broken, so as you say you dont know c++ and it needs a total rewrite i dont think it will happen…

thats why i told you either fix it or ditch it, and in this case if the script is just as bad as subv mention… ditch the script.

OmG Please Fix It

#include “ScriptPCH.h”
#include

/////////////////////// CONFIG /////////////////////////////
/////////////////////////////////////////////////////////////////////

float Version = 2.50f; //Don’t touch this.
bool PvPSystemEnabled = true; //Set to false if you want to disable the PvP System
bool OnlyInBattlegrounds = true; //Set to true if you want to enable this only in battlegrounds.
bool LooseTokenOnPvPDeath = true; //Set to true if you want the victim to loose tokens when the victim dies.
int32 AmountOfItemsYouWantTheVictimToLoose = 1; //Amount of items you want the victim to loose when victim dies.
bool AddTokenOnPvPKill = true; //Set to false if you don’t want the killer to be rewarded.
int32 ItemReward = 23247; //The ItemID of the reward.
int32 AmountOfRewardsOnKillStreak[5] = { 5, 10, 15, 20, 25 }; //With how many items you want to reward the killer when he slays the victim.
int32 HowManyTimesYouWantTheKillerToGetAwardedForKillingTheSameVictim = 2; //Name speaks for It self.
const int32 KillerStreak1 = 05;
const int32 KillerStreak2 = 10;
const int32 KillerStreak3 = 15;
const int32 KillerStreak4 = 20;
const int32 KillerStreak5 = 30;
int32 KillStreaks[5] = { KillerStreak1, KillerStreak2, KillerStreak3, KillerStreak4, KillerStreak5 };
///////////////////////////////////////////////////////////////////
/////////////////////// END ////////////////////////////
/////////////////////////////////////////////////////////////////

struct SystemInfo
{
uint32 KillStreak;
uint32 LastGUIDKill;
uint8 KillCount;
};

static std::map<uint32, SystemInfo> KillingStreak;

class System_OnPvPKill : public PlayerScript
{
public:
System_OnPvPKill() : PlayerScript(“System_OnPvPKill”) {}

void OnPVPKill(Player *pKiller, Player *pVictim)
{
if(PvPSystemEnabled == false)
{
return;
}
else if(PvPSystemEnabled == true)
{
uint32 kGUID;
uint32 vGUID;
char msg[500];
kGUID = pKiller->GetGUID();
vGUID = pVictim->GetGUID();
if(kGUID == vGUID)
{
return;
}

  if(KillingStreak[kGUID].LastGUIDKill == vGUID)
    {
    KillingStreak[kGUID].KillCount++;
    KillingStreak[vGUID].KillCount = 1;
      pKiller->AddItem(ItemReward, 1);
    if(LooseTokenOnPvPDeath == true)
      pVictim->DestroyItemCount(ItemReward, AmountOfItemsYouWantTheVictimToLoose, true, false);
   ChatHandler(pVictim->GetSession()).PSendSysMessage("You died, because of that you have lost an Event Token!");
}
  if(KillingStreak[kGUID].LastGUIDKill != vGUID)
  {
    KillingStreak[kGUID].KillCount = 1;
    KillingStreak[vGUID].KillCount = 1;
  }

  if(KillingStreak[kGUID].KillCount == HowManyTimesYouWantTheKillerToGetAwardedForKillingTheSameVictim)
  {
    return;
  }

  if(OnlyInBattlegrounds == true)
  {
    if(!pKiller->GetMap()->IsBattleground() || pKiller->GetMapId() == 30)
       return;
  }

    KillingStreak[kGUID].KillStreak++;
    KillingStreak[vGUID].KillStreak = 0;
    KillingStreak[kGUID].LastGUIDKill = vGUID;
    KillingStreak[vGUID].LastGUIDKill = 0;
  if(AddTokenOnPvPKill == true)
      pKiller->AddItem(29435, 1);
   ChatHandler(pKiller->GetSession()).PSendSysMessage("You killed a player therefor you have been rewarded with his soul!");
  if(LooseTokenOnPvPDeath == true)
      pVictim->DestroyItemCount(ItemReward, AmountOfItemsYouWantTheVictimToLoose, true, false);
            
    switch(KillingStreak[kGUID].KillStreak)
    {
    case KillerStreak1:
    sprintf(msg, "|cffFF0000%s|cffFFFF05 killed |cffFF0000%s|cffFFFF05 and is on a |cffFF00005|cffFFFF05 kill streak. ", pKiller->GetName(), pVictim->GetName());
    sWorld->SendWorldText(LANG_PVPKILL_SYSTEM, msg);
    pKiller->AddItem(ItemReward, AmountOfRewardsOnKillStreak[1]);
 pKiller->ModifyHonorPoints(250);
 pKiller->CastSpell(pKiller, 24378, true);
    break;

    case KillerStreak2:
    sprintf(msg, "|cffFF0000%s|cffFFFF05 killed |cffFF0000%s|cffFFFF05 and is on a |cffFF000010|cffFFFF05 kill streak. ", pKiller->GetName(), pVictim->GetName());
    sWorld->SendWorldText(LANG_PVPKILL_SYSTEM, msg);
    pKiller->AddItem(ItemReward, AmountOfRewardsOnKillStreak[2]);
 pKiller->ModifyHonorPoints(250);
 pKiller->CastSpell(pKiller, 24378, true);
    break;

    case KillerStreak3:
    sprintf(msg, "|cffFF0000%s|cffFFFF05 killed |cffFF0000%s|cffFFFF05 and is on a |cffFF000015|cffFFFF05 kill streak. ", pKiller->GetName(), pVictim->GetName());
    sWorld->SendWorldText(LANG_PVPKILL_SYSTEM, msg);
    pKiller->AddItem(ItemReward, AmountOfRewardsOnKillStreak[3]);
 pKiller->ModifyHonorPoints(250);
 pKiller->CastSpell(pKiller, 24378, true);
    break;

    case KillerStreak4:
    sprintf(msg, "|cffFF0000%s|cffFFFF05 killed |cffFF0000%s|cffFFFF05 and is on a |cffFF000020|cffFFFF05 kill streak. ", pKiller->GetName(), pVictim->GetName());
    sWorld->SendWorldText(LANG_PVPKILL_SYSTEM, msg);
    pKiller->AddItem(ItemReward, AmountOfRewardsOnKillStreak[4]);
 pKiller->ModifyHonorPoints(250);
 pKiller->CastSpell(pKiller, 24378, true);
    break;

    case KillerStreak5:
    sprintf(msg, "|cffFF0000%s|cffFFFF05 killed |cffFF0000%s|cffFFFF05 and is on a |cffFF000030|cffFFFF05 kill streak. ", pKiller->GetName(), pVictim->GetName());
    sWorld->SendWorldText(LANG_PVPKILL_SYSTEM, msg);
    pKiller->AddItem(23247, 25);
    KillingStreak[kGUID].KillStreak = 0;
 pKiller->ModifyHonorPoints(250);
 pKiller->CastSpell(pKiller, 24378, true);
    break;
 }
}

}
};

void AddSC_System()
{
new System_OnPvPKill;
}

H! I need This Script for Lastest Version Of Tirinity. Is There Any 1 To Update This?!