1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
ch_core.open_submod("udm", {areas = true, data = true, lib = true})
local color_celoserverovy = minetest.get_color_escape_sequence("#ff8700")
local color_mistni = minetest.get_color_escape_sequence("#fff297")
-- local color_mistni_zblizka = minetest.get_color_escape_sequence("#64f231") -- 54cc29
local color_soukromy = minetest.get_color_escape_sequence("#ff4cf3")
-- local color_sepot = minetest.get_color_escape_sequence("#fff297cc")
local color_systemovy = minetest.get_color_escape_sequence("#cccccc")
-- local color_reset = minetest.get_color_escape_sequence("#ffffff")
function ch_core.udm_catch_chat(player_name, message)
local pinfo = ch_core.normalize_player(player_name)
if message == "test" then
minetest.chat_send_player(player_name, color_mistni..pinfo.viewname..": test "..color_systemovy.."[0 post.]")
minetest.after(1, minetest.chat_send_player, player_name, "* Správně! Takto byste napsali zprávu postavám ve vašem okolí. Za zprávou se vypsalo „[0 post.]“, "..
"což znamená, že ve skutečnosti nikomu nedošla. Kdyby došla, řekněme, na dva další herní klienty, bylo by tam „[2 post.]“.\nMůžete pokročit k další ceduli.")
elseif message == "!ahoj" then
minetest.chat_send_player(player_name, color_celoserverovy..pinfo.viewname..": ahoj "..color_systemovy.."[1 post.]")
minetest.after(1, minetest.chat_send_player, player_name, color_celoserverovy.."Fiktivní postava: zdravím! "..color_systemovy.."(563 m)")
minetest.after(2, minetest.chat_send_player, player_name, "* Správně! Takto byste napsali zprávu na všechny herní klienty připojené k serveru. A rovněž vám odpověděla "..
"Fiktivní postava (která ve skutečnosti neexistuje, je to jen ukázka). Za její zprávou se ukázalo (563 m), což by znamenalo, že se nachází "..
"563 metrů od vás.\nNyní můžete pokročit k další ceduli.") -- Nyní zkuste zadat: \"Fik test
elseif message == "\"Fik test" or message == "\"Fiktivní_postava test" or message == "\"Fiktivni_postava test" then
minetest.chat_send_player(player_name, color_soukromy.."-> Fiktivní postava: test")
minetest.after(1, minetest.chat_send_player, player_name, color_soukromy.."Fiktivní postava: zpráva dorazila")
minetest.after(2, minetest.chat_send_player, player_name, "* Správně! Právě jste (jako) napsali Fiktivní postavě soukromou zprávu a ona vám odpověděla. "..
"U další zprávy už můžete předponu jména vynechat, protože systém si pamatuje, komu jste psali soukromou zprávu naposledy.\n"..
"Nyní tedy zkuste zadat: \" test 2\nA nezapomeňte na mezeru mezi \" a t!")
elseif message == "\" test 2" then
minetest.chat_send_player(player_name, color_soukromy.."-> Fiktivní postava: test 2")
minetest.after(1, minetest.chat_send_player, player_name, color_soukromy.."Fiktivní postava: i tato zpráva dorazila")
minetest.after(2, minetest.chat_send_player, player_name, "* Správně!\n"..
"To je vše, co zatím potřebujete vědět o ovládání četu. Můžete pokračovat k další ceduli.")
else
minetest.chat_send_player(player_name, "* Napsali jste: „"..message.."“, což není to, co jste měli. Zkuste to, prosím, znovu, nebo opusťte zelenou plochu na podlaze.")
end
minetest.log("action", "UDM chat catched a message: >"..message.."<")
return true
end
local function nastavit_udm_zachyceni(player_name, area_id)
local area_id_number = tonumber(area_id)
if area_id_number == nil or area_id_number ~= math.floor(area_id_number) or area_id_number <= 0 then
return false, "Chybné ID oblasti!"
end
local area = ch_core.areas[area_id_number]
if area == nil then
area = {}
ch_core.areas[area_id_number] = area
area.udm_catch_chat = true
elseif area.udm_catch_chat then
area.udm_catch_chat = false
ch_core.save_areas()
return true, "Zachycení zrušeno pro oblast č. "..area_id_number
else
area.udm_catch_chat = true
end
ch_core.save_areas()
return true, "Zachycení nastaveno pro oblast č. "..area_id_number
end
local def = {
params = "<id_oblasti>",
description = "Pro danou oblast zapne/vypne funkci zachycení četu pro ÚDM",
privs = {server = true},
func = nastavit_udm_zachyceni,
}
minetest.register_chatcommand("nastavit_údm_zachycení", def)
minetest.register_chatcommand("nastavit_udm_zachyceni", def)
ch_core.close_submod("udm")
|