I know there have been challenges on doing this in the past. Scenario is that once a mob dies, I want to alter the loot under certain conditions. I can clear the money on the body right when it dies, but not the loot. I can even clear the loot on the corpses in the vicinity, on this condition....if someone has opened up the loot window. I am not sure what that does to the corpse when the window is opened, but after than point I can alter the loot in every single corpse in the area...but not before that window is opened. If I can find out what that does to the corpse I may be able to make headway.
I can also access the inventory on the NPC before it is a corpse and I can delete the inventory if I know the item number, but this does not really help me much. The end goal is to remove a percentage of the loot based on conditions. Sure I could make another loottable and assign it based on the condition but spread out over hundreds of mobs doing it via Perl or Lua will simplify my life hundreds of times over.
Somthing like this kind of works, it will remove the cash even if the corpse window has not been opened. If it has been opened it will remove all items within that vicinity. It is nothing fancy, may even have an error because I remove a few things before pasting it.
Code:
local xloc = e.self:GetX();
local yloc = e.self:GetY();
local zloc = e.self:GetZ();
local clist = eq.get_entity_list():GetCorpseList();
if ( clist ~= nil ) then
for corpse in clist.entries do
if ( corpse:IsNPCCorpse() ) then
if (corpse:CalculateDistance(xloc, yloc, zloc) < 400) then
local items = corpse:CountItems();
e.self:Shout("Item count"..items);
corpse:RemoveCash();
for j=0, 25,1 do
e.self:Shout("Removing item from slot ".. j);
corpse:RemoveItem(j);
end
end
end
end
end