mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-12-22 16:09:33 +01:00
Add simple death messages
This commit is contained in:
parent
deb041c889
commit
6f01334c80
1 changed files with 100 additions and 4 deletions
|
@ -1,5 +1,6 @@
|
|||
if minetest.setting_getbool("mcl_keep_inventory_on_death") == false then
|
||||
minetest.register_on_dieplayer(function(player)
|
||||
minetest.register_on_dieplayer(function(player)
|
||||
local keep = minetest.setting_getbool("mcl_keep_inventory_on_death")
|
||||
if keep == false then
|
||||
local inv = player:get_inventory()
|
||||
local pos = player:getpos()
|
||||
local lists = { "main", "craft", "armor" }
|
||||
|
@ -16,5 +17,100 @@ if minetest.setting_getbool("mcl_keep_inventory_on_death") == false then
|
|||
pos.z = pos.z - z
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
-- Death message
|
||||
local message = minetest.setting_getbool("mcl_show_death_messages")
|
||||
if message == nil then message = true end
|
||||
if message then
|
||||
local name = player:get_player_name()
|
||||
|
||||
-- Death messages
|
||||
local msgs = {
|
||||
["arrow"] = {
|
||||
"%s was fatally hit by an arrow.",
|
||||
"%s has been killed with an arrow.",
|
||||
},
|
||||
["cactus"] = {
|
||||
"%s was killed by a cactus.",
|
||||
"%s was pricked to death.",
|
||||
},
|
||||
["fire"] = {
|
||||
"%s has been cooked crisp.",
|
||||
"%s felt the burn.",
|
||||
"%s died in the flames.",
|
||||
"%s died in a fire.",
|
||||
},
|
||||
["explosion"] = {
|
||||
"%s was caught in an explosion.",
|
||||
},
|
||||
["lava"] = {
|
||||
"%s melted in lava.",
|
||||
"%s took a bath in a hot lava tub.",
|
||||
"%s died in lava.",
|
||||
"%s could not survive in lava.",
|
||||
},
|
||||
["drown"] = {
|
||||
"%s forgot to breathe.",
|
||||
"%s drowned.",
|
||||
"%s ran out of oxygen.",
|
||||
},
|
||||
["void"] = {
|
||||
"%s fell into the endless void.",
|
||||
},
|
||||
["suffocation"] = {
|
||||
"%s suffocated to death.",
|
||||
},
|
||||
["starve"] = {
|
||||
"%s starved.",
|
||||
},
|
||||
["murder"] = {
|
||||
"%s was killed by %s.",
|
||||
},
|
||||
["falling_anvil"] = {
|
||||
"%s was smashed by a falling anvil!",
|
||||
},
|
||||
["falling_block"] = {
|
||||
"%s was smashed by a falling block.",
|
||||
"%s was buried under a falling block.",
|
||||
},
|
||||
["fall_damage"] = {
|
||||
"%s fell from a high cliff.",
|
||||
"%s took fatal fall damage.",
|
||||
"%s fell victim to gravity.",
|
||||
},
|
||||
["other"] = {
|
||||
"%s died.",
|
||||
}
|
||||
}
|
||||
|
||||
-- Select death message
|
||||
local dmsg = function(mtype, ...)
|
||||
local r = math.random(1, #msgs[mtype])
|
||||
return string.format(msgs[mtype][r], ...)
|
||||
end
|
||||
|
||||
local node = minetest.registered_nodes[minetest.get_node(player:getpos()).name]
|
||||
local msg
|
||||
-- Lava
|
||||
if minetest.get_item_group(node.name, "lava") ~= 0 then
|
||||
msg = dmsg("lava", name)
|
||||
-- Drowning
|
||||
elseif player:get_breath() == 0 then
|
||||
msg = dmsg("drown", name)
|
||||
-- Fire
|
||||
elseif minetest.get_item_group(node.name, "fire") ~= 0 then
|
||||
msg = dmsg("fire", name)
|
||||
-- Void
|
||||
elseif node.name == "mcl_core:void" then
|
||||
msg = dmsg("void", name)
|
||||
-- Cactus
|
||||
elseif node.name == "mcl_core:cactus" then
|
||||
msg = dmsg("cactus", name)
|
||||
-- Other
|
||||
else
|
||||
msg = dmsg("other", name)
|
||||
end
|
||||
minetest.chat_send_all(msg)
|
||||
end
|
||||
end)
|
||||
|
|
Loading…
Reference in a new issue