1
0
mirror of https://github.com/sys4-fr/server-nalc.git synced 2025-06-28 14:16:06 +02:00

Fix [buckets] w/ acid or sand, make [death_message] work w/ aliases

This commit is contained in:
Dorian Wouters
2016-08-21 12:32:06 +02:00
parent 2841c76d60
commit 32ae8aca19
8 changed files with 53 additions and 43 deletions

View File

@ -124,12 +124,12 @@ local monsters = {
["mobs:cow"] = "cow",
["mobs:creeper"] = "creeper",
["mobs:dog"] = "dog",
["mobs:greenbig"] = "big green slim",
["mobs:greenmedium"] = "medium green slim",
["mobs:greensmall"] = "small green slim",
["mobs:lavabig"] = "big lava slim",
["mobs:lavamedium"] = "medium lava slim",
["mobs:lavasmall"] = "small lava slim",
["mobs:greenbig"] = "big green slime",
["mobs:greenmedium"] = "medium green slime",
["mobs:greensmall"] = "small green slime",
["mobs:lavabig"] = "big lava slime",
["mobs:lavamedium"] = "medium lava slime",
["mobs:lavasmall"] = "small lava slime",
["mobs:yeti"] = "yeti",
["mobs:snowball"] = "yeti",
["mobs:npc"] = "npc",
@ -197,6 +197,11 @@ minetest.register_on_respawnplayer(function(player)
whacked[player:get_player_name()] = nil
end)
local function equiv(what, to)
what = (type(what) ~= 'string') and what.name or what
return what == to or minetest.registered_aliases[what] == to
end
if RANDOM_MESSAGES == true then
minetest.register_on_dieplayer(function(player)
local player_name = player:get_player_name()
@ -219,10 +224,10 @@ if RANDOM_MESSAGES == true then
elseif player:get_breath() == 0 and node.groups.water then
death_message = messages.water[math.random(1,#messages.water)]
-- Death by fire
elseif node.name == "fire:basic_flame" then
elseif equiv(node, "fire:basic_flame") then
death_message = messages.fire[math.random(1,#messages.fire)]
-- Death in quicksand
elseif player:get_breath() == 0 and node.name == "default:sand_source" or node.name == "default:sand_flowing" then
elseif player:get_breath() == 0 and equiv(node, "default:sand_source") or equiv(node, "default:sand_flowing") then
death_message = messages.sand[math.random(1,#messages.sand)]
-- Death by something else
else
@ -254,7 +259,7 @@ else
elseif player:get_breath() == 0 then
minetest.chat_send_all(player_name .. " ran out of air.")
-- Death by fire
elseif node.name == "fire:basic_flame" then
elseif equiv(node, "fire:basic_flame") then
minetest.chat_send_all(player_name .. " burned to a crisp.")
-- Death by something else
else