I'm pretty sure this kills some tribute functionality which isn't acceptable but based on what's here we can rewrite this to be more consistent with our codebase:
Code:
void Client::DoTributeUpdate()
{
const Item_Struct* myitem = database.GetItem(1001);
Item_Struct* item = new Item_Struct(*myitem);
if(GetLevel() >= 76 && this->GetClientVersion() == EQClientSoF)
{
item->HP += (CalcBaseHP() - 5);
item->Mana += (CalcMaxMana() - 5);
item->Endur += (this->max_end - 5);
}
ItemInst* myinst = database.CreateBaseItem((const Item_Struct*)item);
SendItemPacket(400, myinst, ItemPacketTributeItem);
safe_delete(item);
safe_delete(myinst);
}
And there isn't a point in making a SendFakeItem() when it copies SendItemPacket word for word. All that said I think it's an acceptable proof of concept and I think we can put it into action. =p