Right then. This is for ArcEmu i just improved on some-one else's has stackable Badge Of Justice on a 50% roll so you don't get them too quickly. Also Here's a full list of BoJ extended costs.
Code:
1909 - 10
1642 - 15
1452 - 20
1015 - 25
1454 - 30
1037 - 33
2060 - 35
2347 - 40
1027 - 41
2332 - 45
1040 - 50
2059 - 60
2049 - 75
2333 - 100
2331 - 105
2330 - 125
2329 - 150
Got these off a DBC reader for those wondering.
Here's the Code...
Code:
#include "StdAfx.h"
#include "Setup.h"
#define TokenID 29434
#define amt 1
void addToken(Player* pPlayer)
{
int RandomNumberGenerator = RandomUInt(100);
ItemPrototype* it = ItemPrototypeStorage.LookupEntry(TokenID);
Item * add = pPlayer->GetItemInterface()->FindItemLessMax(TokenID, amt, false);
SlotResult slotresult = pPlayer->GetItemInterface()->FindFreeInventorySlot(it);
if(RandomNumberGenerator <= 50)
{
pPlayer->BroadcastMessage("You have gained a token.");
if (!add)
{
if(!slotresult.Result)
{
pPlayer->GetItemInterface()->BuildInventoryChangeError(NULL, NULL, INV_ERR_INVENTORY_FULL);
} else {
Item *item = objmgr.CreateItem( TokenID, pPlayer);
item->SetUInt32Value( ITEM_FIELD_STACK_COUNT, amt );
if( pPlayer->GetItemInterface()->SafeAddItem( item, slotresult.ContainerSlot, slotresult.Slot ))
{
pPlayer->GetSession()->SendItemPushResult(item,false,true,true,true,slotresult.ContainerSlot,slotresult.Slot,1);
sQuestMgr.OnPlayerItemPickup(pPlayer,item);
} else {
item->DeleteMe();
}
}
} else {
add->SetCount(add->GetUInt32Value(ITEM_FIELD_STACK_COUNT) + amt);
add->m_isDirty = true;
pPlayer->GetSession()->SendItemPushResult(add, false, true, true, false, pPlayer->GetItemInterface()->GetBagSlotByGuid(add->GetGUID()), 0xFFFFFFFF, 1);
}
} else {
pPlayer->BroadcastMessage("You have not gained a token.");
}
}
void SetupTokens(ScriptMgr * mgr)
{
mgr->register_hook(SERVER_HOOK_EVENT_ON_KILL_PLAYER, (void*)addToken);
}
Edit the TokenID to change the ID of token or the amt to change amount per kill.
This is fully customizable and i don't need credits just +Rep if you use it.