mirror of
https://github.com/sys4-fr/server-nalc.git
synced 2025-02-02 21:30:20 +01:00
Add ability to send death_messages when players kill each other
- Solves #58 by providing a good base for the asked feature
This commit is contained in:
parent
3a930c8118
commit
592ac4fa12
@ -10,6 +10,9 @@ dofile(minetest.get_modpath("death_messages").."/settings.txt")
|
|||||||
|
|
||||||
local messages = {}
|
local messages = {}
|
||||||
|
|
||||||
|
-- Another one to avoid double death messages
|
||||||
|
local whacked = {}
|
||||||
|
|
||||||
-- Fill this table with sounds
|
-- Fill this table with sounds
|
||||||
local sounds = {
|
local sounds = {
|
||||||
[1] = "death_messages_player_1",
|
[1] = "death_messages_player_1",
|
||||||
@ -77,6 +80,13 @@ messages.other = {
|
|||||||
" a vu la lumière."
|
" a vu la lumière."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Whacking death messages
|
||||||
|
messages.whacking = {
|
||||||
|
"%s got whacked by %s",
|
||||||
|
"%s's grave was dug by %s",
|
||||||
|
-- Need to fill
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
local function sound_play_all(dead)
|
local function sound_play_all(dead)
|
||||||
for _, p in ipairs(minetest.get_connected_players()) do
|
for _, p in ipairs(minetest.get_connected_players()) do
|
||||||
@ -87,6 +97,22 @@ local function sound_play_all(dead)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
minetest.register_on_punchplayer(function(player, hitter, time,
|
||||||
|
tool_caps, dir, damage)
|
||||||
|
if player:get_hp() - damage <= 0 and hitter:is_player() and not whacked[player:get_player_name()] then
|
||||||
|
death_message = string.format(messages.whacking[math.random(1,#messages.whacking)], player:get_player_name(), hitter:get_player_name())
|
||||||
|
if minetest.get_modpath("irc") ~= nil then
|
||||||
|
irc:say(death_message)
|
||||||
|
end
|
||||||
|
minetest.chat_send_all(death_message)
|
||||||
|
whacked[player:get_player_name()] = true
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_on_respawnplayer(function(player)
|
||||||
|
whacked[player:get_player_name()] = nil
|
||||||
|
end)
|
||||||
|
|
||||||
if RANDOM_MESSAGES == true then
|
if RANDOM_MESSAGES == true then
|
||||||
minetest.register_on_dieplayer(function(player)
|
minetest.register_on_dieplayer(function(player)
|
||||||
local player_name = player:get_player_name()
|
local player_name = player:get_player_name()
|
||||||
@ -97,6 +123,8 @@ if RANDOM_MESSAGES == true then
|
|||||||
|
|
||||||
local death_message = ""
|
local death_message = ""
|
||||||
|
|
||||||
|
if whacked[player_name] then return end
|
||||||
|
|
||||||
-- Death by lava
|
-- Death by lava
|
||||||
if node.groups.lava ~= nil then
|
if node.groups.lava ~= nil then
|
||||||
death_message = player_name .. messages.lava[math.random(1,#messages.lava)]
|
death_message = player_name .. messages.lava[math.random(1,#messages.lava)]
|
||||||
|
Loading…
Reference in New Issue
Block a user