I was thinking about that code snippet last night and you may have issues with a person looting their own corpse.
Let me know if that is the case..we can just encapsulate those three checks inside a parent one.
EDIT: Something like:
Code:
if(client && item) {
if (!client->GetGM() && (!IsPlayerCorpse() || (IsPlayerCorpse() && (char_id != client->CharacterID())))) {
if (item->ReqLevel && (item->ReqLevel > client->GetLevel()))
continue;
if (item->Races && (item->Races & ~GetPlayerRaceBit(client->GetRace())))
continue;
if (item->Classes && (item->Classes & ~GetPlayerClassBit(GetPlayerClassValue(client->GetClass()))))
continue;
}
ItemInst* inst = database.CreateItem(item, item_data->charges, item_data->aug_1, item_data->aug_2, item_data->aug_3, item_data->aug_4, item_data->aug_5, item_data->aug_6, item_data->attuned);