if
into 2 parts. Moved vocation check after isRedOrBlack
, so I can check, if player has red/black skull.function onDeath(player, corpse, killer, mostDamageKiller, lastHitUnjustified, mostDamageUnjustified)
if player:hasFlag(PlayerFlag_NotGenerateLoot) then
return true
end
local amulet = player:getSlotItem(CONST_SLOT_NECKLACE)
local isRedOrBlack = table.contains({SKULL_RED, SKULL_BLACK}, player:getSkull())
-- if does not have red/black skull and has special vocation
if not isRedOrBlack and isInArray({2, 4, 6, 8}, player:getVocation():getId()) then
return true
end
if amulet and amulet.itemid == ITEM_AMULETOFLOSS and not isRedOrBlack then
local isPlayer =...
Yes I mean loot drop I can go thisyou mean player loot drop?
if player:hasFlag(PlayerFlag_NotGenerateLoot) or isInArray({2, 4, 6, 8}, player:getVocation():getId()) then
return true
end
replace with your droploot.luacan you copy the entire code please so I can check
function onDeath(player, corpse, killer, mostDamageKiller, lastHitUnjustified, mostDamageUnjustified)
if player:hasFlag(PlayerFlag_NotGenerateLoot) or isInArray({2, 4, 6, 8}, player:getVocation():getId()) then
return true
end
local amulet = player:getSlotItem(CONST_SLOT_NECKLACE)
local isRedOrBlack = table.contains({SKULL_RED, SKULL_BLACK}, player:getSkull())
if amulet and amulet.itemid == ITEM_AMULETOFLOSS and not isRedOrBlack then
local isPlayer = false
if killer then
if killer:isPlayer() then
isPlayer = true
else
local master = killer:getMaster()
if master and master:isPlayer() then
isPlayer = true
end
end
end
if not isPlayer or not player:hasBlessing(6) then
player:removeItem(ITEM_AMULETOFLOSS, 1, -1, false)
end
else
for i = CONST_SLOT_HEAD, CONST_SLOT_AMMO do
local item = player:getSlotItem(i)
local lossPercent = player:getLossPercent()
if item then
if isRedOrBlack or math.random(item:isContainer() and 100 or 1000) <= lossPercent then
if (isRedOrBlack or lossPercent ~= 0) and not item:moveTo(corpse) then
item:remove()
end
end
end
end
end
if not player:getSlotItem(CONST_SLOT_BACKPACK) then
player:addItem(ITEM_BAG, 1, false, CONST_SLOT_BACKPACK)
end
return true
end
if
into 2 parts. Moved vocation check after isRedOrBlack
, so I can check, if player has red/black skull.function onDeath(player, corpse, killer, mostDamageKiller, lastHitUnjustified, mostDamageUnjustified)
if player:hasFlag(PlayerFlag_NotGenerateLoot) then
return true
end
local amulet = player:getSlotItem(CONST_SLOT_NECKLACE)
local isRedOrBlack = table.contains({SKULL_RED, SKULL_BLACK}, player:getSkull())
-- if does not have red/black skull and has special vocation
if not isRedOrBlack and isInArray({2, 4, 6, 8}, player:getVocation():getId()) then
return true
end
if amulet and amulet.itemid == ITEM_AMULETOFLOSS and not isRedOrBlack then
local isPlayer = false
if killer then
if killer:isPlayer() then
isPlayer = true
else
local master = killer:getMaster()
if master and master:isPlayer() then
isPlayer = true
end
end
end
if not isPlayer or not player:hasBlessing(6) then
player:removeItem(ITEM_AMULETOFLOSS, 1, -1, false)
end
else
for i = CONST_SLOT_HEAD, CONST_SLOT_AMMO do
local item = player:getSlotItem(i)
local lossPercent = player:getLossPercent()
if item then
if isRedOrBlack or math.random(item:isContainer() and 100 or 1000) <= lossPercent then
if (isRedOrBlack or lossPercent ~= 0) and not item:moveTo(corpse) then
item:remove()
end
end
end
end
end
if not player:getSlotItem(CONST_SLOT_BACKPACK) then
player:addItem(ITEM_BAG, 1, false, CONST_SLOT_BACKPACK)
end
return true
end
Thanks very much, Gesior this really helped me a lot.Splittedif
into 2 parts. Moved vocation check afterisRedOrBlack
, so I can check, if player has red/black skull.
Lua:function onDeath(player, corpse, killer, mostDamageKiller, lastHitUnjustified, mostDamageUnjustified) if player:hasFlag(PlayerFlag_NotGenerateLoot) then return true end local amulet = player:getSlotItem(CONST_SLOT_NECKLACE) local isRedOrBlack = table.contains({SKULL_RED, SKULL_BLACK}, player:getSkull()) -- if does not have red/black skull and has special vocation if not isRedOrBlack and isInArray({2, 4, 6, 8}, player:getVocation():getId()) then return true end if amulet and amulet.itemid == ITEM_AMULETOFLOSS and not isRedOrBlack then local isPlayer = false if killer then if killer:isPlayer() then isPlayer = true else local master = killer:getMaster() if master and master:isPlayer() then isPlayer = true end end end if not isPlayer or not player:hasBlessing(6) then player:removeItem(ITEM_AMULETOFLOSS, 1, -1, false) end else for i = CONST_SLOT_HEAD, CONST_SLOT_AMMO do local item = player:getSlotItem(i) local lossPercent = player:getLossPercent() if item then if isRedOrBlack or math.random(item:isContainer() and 100 or 1000) <= lossPercent then if (isRedOrBlack or lossPercent ~= 0) and not item:moveTo(corpse) then item:remove() end end end end end if not player:getSlotItem(CONST_SLOT_BACKPACK) then player:addItem(ITEM_BAG, 1, false, CONST_SLOT_BACKPACK) end return true end