1
0
mirror of https://github.com/sys4-fr/server-nalc.git synced 2024-12-25 02:00:37 +01:00

Drop contents of bags

Drop contents of bags when a player die (but not the bags)
This commit is contained in:
Ombridride 2014-10-28 22:26:44 +01:00
parent bccb1d2c5b
commit b4b484ad95

View File

@ -38,6 +38,80 @@ minetest.register_on_dieplayer(function(player)
for i=1,player_inv:get_size("craft") do for i=1,player_inv:get_size("craft") do
drop(pos, player_inv:get_stack("craft", i)) drop(pos, player_inv:get_stack("craft", i))
player_inv:set_stack("craft", i, nil) player_inv:set_stack("craft", i, nil)
end
-- Drop unified_inventory bags and their contents
if minetest.get_modpath("unified_inventory") then
local bag_id = {"bag1"}
local contents_id = ""
local n = 0
for n = 1, 4 do
if player_inv:get_size(bag_id[n]) == 1 then
contents_id = bag_id[n].."contents"
-- Drop the contents of the bag (but keep the bag itself)
for i = 1, player_inv:get_size(contents_id) do
-- Drop a clone of this item's stack and remove the one from the inventory
drop(pos, player_inv:get_stack(contents_id, i))
player_inv:set_stack(contents_id, i, nil)
end
end
end
end
if minetest.get_modpath("unified_inventory") then
local bag_id = {"bag2"}
local contents_id = ""
local n = 0
for n = 1, 4 do
if player_inv:get_size(bag_id[n]) == 1 then
contents_id = bag_id[n].."contents"
-- Drop the contents of the bag (but keep the bag itself)
for i = 1, player_inv:get_size(contents_id) do
-- Drop a clone of this item's stack and remove the one from the inventory
drop(pos, player_inv:get_stack(contents_id, i))
player_inv:set_stack(contents_id, i, nil)
end
end
end
end
if minetest.get_modpath("unified_inventory") then
local bag_id = {"bag3"}
local contents_id = ""
local n = 0
for n = 1, 4 do
if player_inv:get_size(bag_id[n]) == 1 then
contents_id = bag_id[n].."contents"
-- Drop the contents of the bag (but keep the bag itself)
for i = 1, player_inv:get_size(contents_id) do
-- Drop a clone of this item's stack and remove the one from the inventory
drop(pos, player_inv:get_stack(contents_id, i))
player_inv:set_stack(contents_id, i, nil)
end
end
end
end
if minetest.get_modpath("unified_inventory") then
local bag_id = {"bag4"}
local contents_id = ""
local n = 0
for n = 1, 4 do
if player_inv:get_size(bag_id[n]) == 1 then
contents_id = bag_id[n].."contents"
-- Drop the contents of the bag (but keep the bag itself)
for i = 1, player_inv:get_size(contents_id) do
-- Drop a clone of this item's stack and remove the one from the inventory
drop(pos, player_inv:get_stack(contents_id, i))
player_inv:set_stack(contents_id, i, nil)
end
end
end
end end
end) end)