- //########################
- // Made by ##
- // BisQ the Insane ##
- // ##
- // ##
- //########################
- #include "ScriptPCH.h"
- #include <cstring>
- // on_events.cpp
- //This function is called when the player logs in (every login)
- void OnLogin(Player *pPlayer)
- {
- }
- //This function is called when the player logs out
- void OnLogout(Player *pPlayer)
- {
- }
- float Version = 1.00f; //Don't touch this.
- 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 = 44115; //The ItemID of the reward.
- int32 AmountOfRewardsOnKillStreak[28] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; //With how many items you want to reward the killer when he slays the victim.
- int32 HowManyTimesYouWantTheKillerToGetAwardedForKillingTheSameVictim = 1; //Name speaks for It self.
- const int32 KillerStreak1 = 3;
- const int32 KillerStreak2 = 5;
- const int32 KillerStreak3 = 10;
- const int32 KillerStreak4 = 15;
- const int32 KillerStreak5 = 20;
- const int32 KillerStreak6 = 30;
- const int32 KillerStreak7 = 40;
- const int32 KillerStreak8 = 50;
- const int32 KillerStreak9 = 60;
- const int32 KillerStreak10 = 70;
- const int32 KillerStreak11 = 80;
- const int32 KillerStreak12 = 100;
- const int32 KillerStreak13 = 120;
- const int32 KillerStreak14 = 140;
- const int32 KillerStreak15 = 160;
- const int32 KillerStreak16 = 180;
- const int32 KillerStreak17 = 200;
- const int32 KillerStreak18 = 250;
- const int32 KillerStreak19 = 300;
- const int32 KillerStreak20 = 350;
- const int32 KillerStreak21 = 400;
- const int32 KillerStreak22 = 450;
- const int32 KillerStreak23 = 500;
- const int32 KillerStreak24 = 600;
- const int32 KillerStreak25 = 700;
- const int32 KillerStreak26 = 800;
- const int32 KillerStreak27 = 900;
- const int32 KillerStreak28 = 1000;
- int32 KillStreaks[28] = { KillerStreak1, KillerStreak2, KillerStreak3, KillerStreak4, KillerStreak5, KillerStreak6, KillerStreak7, KillerStreak8, KillerStreak9, KillerStreak10, KillerStreak11, KillerStreak12, KillerStreak13, KillerStreak14, KillerStreak15, KillerStreak16, KillerStreak17, KillerStreak18, KillerStreak19, KillerStreak20, KillerStreak21, KillerStreak22, KillerStreak23, KillerStreak24, KillerStreak25, KillerStreak26, KillerStreak27, KillerStreak28 };//On how many kills the killstreaks should announce & Reward.
- struct SystemInfo
- {
- uint32 KillStreak;
- uint64 LastGUIDKill;
- uint8 KillCount;
- };
- //This function is called when the player kills another player
- void OnPVPKill(Player *pKiller, Player *pVictim)
- {
- uint64 kGUID;
- uint64 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);
- }
- if(KillingStreak[kGUID].LastGUIDKill != vGUID)
- {
- KillingStreak[kGUID].KillCount = 1;
- KillingStreak[vGUID].KillCount = 1;
- }
- if(KillingStreak[kGUID].KillCount == HowManyTimesYouWantTheKillerToGetAwardedForKillingTheSameVictim)
- {
- return;
- }
- ItemPosCountVec dest;
- Item* item = pKiller->StoreNewItem(dest, ItemReward, true, Item::GenerateItemRandomPropertyId(ItemReward));
- KillingStreak[kGUID].KillStreak++;
- KillingStreak[vGUID].KillStreak = 0;
- KillingStreak[kGUID].LastGUIDKill = vGUID;
- KillingStreak[vGUID].LastGUIDKill = 0;
- if(AddTokenOnPvPKill == true)
- pKiller->SendNewItem(item, 1, true, false);
- if(LooseTokenOnPvPDeath == true)
- pVictim->DestroyItemCount(ItemReward, AmountOfItemsYouWantTheVictimToLoose, true, false);
- switch(KillingStreak[kGUID].KillStreak)
- {
- case KillerStreak1:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[1]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[1], true, false);
- break;
- case KillerStreak2:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[2]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[2], true, false);
- break;
- case KillerStreak3:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[3]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[3], true, false);
- break;
- case KillerStreak4:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[4]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[4], true, false);
- break;
- case KillerStreak5:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[5]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[5], true, false);
- break;
- case KillerStreak6:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[5]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[6], true, false);
- break;
- case KillerStreak7:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[5]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[7], true, false);
- break;
- case KillerStreak8:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[5]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[8], true, false);
- break;
- case KillerStreak9:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[5]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[9], true, false);
- break;
- case KillerStreak10:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[5]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[10], true, false);
- break;
- case KillerStreak11:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[5]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[11], true, false);
- break;
- case KillerStreak12:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[5]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[12], true, false);
- break;
- case KillerStreak13:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[5]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[13], true, false);
- break;
- case KillerStreak14:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[5]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[14], true, false);
- break;
- case KillerStreak15:
- sprintf(msg, "[PvP Announcer]: %s has a killstreak of %u! ", pKiller->GetName(), pVictim->GetName(), KillStreaks[5]);
- //sWorld->SendWorldText(LANG_SYSTEMMESSAGE, msg);
- pKiller->SendNewItem(item, AmountOfRewardsOnKillStreak[15], true, false);
- break;
- }