More cleanup
parent
e16b448e3a
commit
7da640023e
|
@ -16,3 +16,6 @@
|
|||
[submodule "mods/worldedit"]
|
||||
path = mods/worldedit
|
||||
url = https://github.com/Uberi/Minetest-WorldEdit
|
||||
[submodule "mods/item_drop"]
|
||||
path = mods/item_drop
|
||||
url = https://github.com/minetest-mods/item_drop
|
||||
|
|
55
README.md
55
README.md
|
@ -3,8 +3,6 @@ Subgames
|
|||
|
||||
Contribution repository for the Minetest Server Subgames for all!
|
||||
|
||||
This Repository is not for using on your own Server!
|
||||
|
||||
Installing
|
||||
----------
|
||||
1. `git clone --recursive https://github.com/Lejo1/subgames.git`
|
||||
|
@ -18,54 +16,5 @@ The Mods from [minetest_game](https://github.com/minetest/minetest_game) are lic
|
|||
Textures: CC-BY-SA 3.0
|
||||
Code: LGPL 2.1 or later
|
||||
|
||||
The Mods: subgames, skywars, hiddenseeker, mesewars, main, build, survivalgames are created by [Lejo](https://github.com/Lejo1)
|
||||
With the following License:
|
||||
You are not allowed to distribute any copy or work based on this programm unless the copyright holder declares his consent.
|
||||
You are not allowed to use this mods on a public server.
|
||||
THE SOFTWARE IS PROVIDED WITHOUT WARRANTY OF ANY KIND!
|
||||
|
||||
|
||||
|
||||
|
||||
API
|
||||
---
|
||||
|
||||
The Server is splitted into diffrent lobbys.
|
||||
|
||||
This is saved in player_lobby[name] = "main"
|
||||
|
||||
All minetest registers like minetest.register_on_join_player(func(player)) are here subgames.register_on_join_player(func(player, lobby)) lobby is the name string of the Lobby where the Action happens.
|
||||
|
||||
But not all registers are supported yet.
|
||||
|
||||
Example:
|
||||
|
||||
subgames.register_on_join_player(function(player, lobby)
|
||||
if lobby == "main" then
|
||||
minetest.chat_send_play(player:get_player_name(), "HI")
|
||||
end
|
||||
end)
|
||||
|
||||
IMPORTANT: Registers like on_place_node don't allways have a player!
|
||||
For this a Lobby must register its location at the top of mods/subgames/init.lua
|
||||
|
||||
areas={
|
||||
["mesewars"] = {
|
||||
[1] = {x=(-76), y=158, z=154},
|
||||
[2] = {x=266, y=(-52), z=(-169)}
|
||||
},
|
||||
["main"] = {
|
||||
[1] = {x=(-31), y=623, z=0},
|
||||
[2] = {x=9, y=595, z=39}
|
||||
},
|
||||
["hiddenseeker"] = {
|
||||
[1] = {x=0, y=(-10000), z=0},
|
||||
[2] = {x=0, y=(-10000), z=0}
|
||||
},
|
||||
["skywars"] = {
|
||||
[1] = {x=10000, y=1900, z=10000},
|
||||
[2] = {x=(-10000), y=2900, z=(-10000)}
|
||||
}
|
||||
}
|
||||
|
||||
The API is not finished!
|
||||
The Mods: skywars, hiddenseeker, mesewars, customisations, survivalgames are created by [Lejo](https://github.com/Lejo1)
|
||||
These mods contain map information which must be fitted on the map.
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
sfinv
|
||||
mesewars
|
||||
3d_armor
|
||||
subgames
|
||||
3d_armor_sfinv?
|
||||
customisations?
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
subgames
|
||||
default
|
|
@ -47,14 +47,6 @@ subgames.register_game("build", {
|
|||
},
|
||||
})
|
||||
|
||||
minetest.register_privilege("invs", "Allows you to be fully invisible!")
|
||||
|
||||
function core.send_join_message(name)
|
||||
end
|
||||
|
||||
function core.send_leave_message(name, timed_out)
|
||||
end
|
||||
|
||||
minetest.register_chatcommand("pinfo", {
|
||||
params = "<name>",
|
||||
description = "Get some infos of a player.",
|
||||
|
@ -70,10 +62,10 @@ minetest.register_chatcommand("pinfo", {
|
|||
})
|
||||
|
||||
minetest.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage)
|
||||
if minetest.get_player_privs(hitter:get_player_name()).ban then
|
||||
subgames.add_bothud(hitter, player:get_player_name(), 0xFFFFFF, 5)
|
||||
if player_lobby[hitter:get_player_name()] == "build" then
|
||||
subgames.add_bothud(hitter, player:get_player_name(), 0xFFFFFF, 5)
|
||||
return true
|
||||
elseif minetest.get_player_privs(hitter:get_player_name()).ban then
|
||||
subgames.add_bothud(hitter, player:get_player_name(), 0xFFFFFF, 5)
|
||||
end
|
||||
end
|
||||
end)
|
|
@ -0,0 +1,5 @@
|
|||
subgames
|
||||
hiddenseeker
|
||||
mesewars
|
||||
skywars
|
||||
survivalgames
|
|
@ -1,159 +1,8 @@
|
|||
-- This is the file which manages the main lobby
|
||||
main = {}
|
||||
local mustcreate = true
|
||||
minetest.register_tool("main:teleporter", {
|
||||
description = "Teleporter",
|
||||
inventory_image = "compass.png",
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
main.open_teleporter_form(user)
|
||||
end,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
main.open_teleporter_form(user)
|
||||
end,
|
||||
})
|
||||
-- Server customisations
|
||||
dofile(minetest.get_modpath("customisations") .. "/main.lua")
|
||||
dofile(minetest.get_modpath("customisations") .. "/build.lua")
|
||||
|
||||
subgames.register_game("main", {
|
||||
fullname = "Main",
|
||||
object = main,
|
||||
area = {
|
||||
[1] = {x=(-31), y=623, z=0},
|
||||
[2] = {x=9, y=595, z=39}
|
||||
},
|
||||
node_dig = function(pos, node, digger)
|
||||
return false
|
||||
end,
|
||||
item_place_node = function(itemstack, placer, pointed_thing, param2)
|
||||
return false
|
||||
end,
|
||||
})
|
||||
|
||||
main.teleporter_form = ""
|
||||
function main.create_teleporter_form()
|
||||
main.teleporter_form = ("size[4,4]" ..
|
||||
"item_image_button[0,0;2,2;mesewars:mese1;mesewars;"..#subgames.get_lobby_players("mesewars").." players]" ..
|
||||
"tooltip[mesewars;Mesewars: Eggwars in Minetest!]"..
|
||||
"image_button[2,0;2,2;hideandseek.png;hiddenseeker;"..#subgames.get_lobby_players("hiddenseeker").." players]" ..
|
||||
"tooltip[hiddenseeker;Hide and Seek!]" ..
|
||||
"item_image_button[0,2;2,2;bow:bow;skywars;"..#subgames.get_lobby_players("skywars").." players]" ..
|
||||
"tooltip[skywars;Skywars!]" ..
|
||||
"item_image_button[2,2;2,2;default:sword_steel;survivalgames;"..#subgames.get_lobby_players("survivalgames").." players]" ..
|
||||
"tooltip[survivalgames;Survivalgames!]")
|
||||
return main.teleporter_form
|
||||
end
|
||||
|
||||
function main.open_teleporter_form(player)
|
||||
local name = player:get_player_name()
|
||||
minetest.show_formspec(name, "main:teleporter", main.create_teleporter_form())
|
||||
end
|
||||
|
||||
minetest.register_on_player_receive_fields(function(player, formname, pressed)
|
||||
if formname == "main:teleporter" then
|
||||
local name = player:get_player_name()
|
||||
if pressed.mesewars then
|
||||
if #subgames.get_lobby_players("mesewars") < mesewars.lobbys[1].playercount*#mesewars.lobbys then
|
||||
subgames.change_lobby(player, "mesewars")
|
||||
end
|
||||
elseif pressed.hiddenseeker then
|
||||
if #subgames.get_lobby_players("hiddenseeker") < hiddenseeker.max_players*#hiddenseeker.lobbys then
|
||||
subgames.change_lobby(player, "hiddenseeker")
|
||||
end
|
||||
elseif pressed.skywars then
|
||||
local count = 0
|
||||
for numb, table in pairs(skywars.lobbys) do
|
||||
count = count + table.playercount
|
||||
end
|
||||
if #subgames.get_lobby_players("skywars") < count then
|
||||
subgames.change_lobby(player, "skywars")
|
||||
else minetest.chat_send_player(name, "Skywars is full!")
|
||||
end
|
||||
elseif pressed.survivalgames then
|
||||
if #subgames.get_lobby_players("survivalgames") < survivalgames.max_players* #survivalgames.lobbys then
|
||||
subgames.change_lobby(player, "survivalgames")
|
||||
else minetest.chat_send_player(name, "Ssurvivalgames is full!")
|
||||
end
|
||||
end
|
||||
minetest.close_formspec(name, "main:teleporter")
|
||||
end
|
||||
end)
|
||||
|
||||
local spawn = {x=(-11), y=602, z=20}
|
||||
subgames.register_on_joinplayer(function(player, lobby)
|
||||
if lobby == "main" then
|
||||
local name = player:get_player_name()
|
||||
player:set_pos(spawn)
|
||||
local inv = player:get_inventory()
|
||||
inv:add_item("main", "main:teleporter")
|
||||
sfinv.set_page(player, "subgames:lobbys")
|
||||
local privs = minetest.get_player_privs(name)
|
||||
privs.interact = true
|
||||
minetest.set_player_privs(name, privs)
|
||||
if mustcreate == true then
|
||||
mustcreate = false
|
||||
local param1 = "mainlobby"
|
||||
local schem = minetest.get_worldpath() .. "/schems/" .. param1 .. ".mts"
|
||||
minetest.place_schematic({x=-27, y=601, z=4}, schem)
|
||||
end
|
||||
minetest.after(1, function()
|
||||
if player:is_player_connected() and agreerules_accepted(name) and player_lobby[name] == "main" then
|
||||
main.open_teleporter_form(player)
|
||||
subgames.clear_inv(player)
|
||||
local inv = player:get_inventory()
|
||||
inv:add_item("main", "main:teleporter")
|
||||
sfinv.set_page(player, "subgames:lobbys")
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|
||||
subgames.register_on_leaveplayer(function(player, lobby)
|
||||
if lobby == "main" then
|
||||
end
|
||||
end)
|
||||
|
||||
subgames.register_on_chat_message(function(name, message, lobby)
|
||||
if lobby == "main" and name and message then
|
||||
subgames.chat_send_all_lobby("main", "<"..name.."> "..message)
|
||||
return true
|
||||
end
|
||||
end)
|
||||
|
||||
-- Add chat system
|
||||
subgames.register_on_respawnplayer(function(player, lobby)
|
||||
if lobby == "main" then
|
||||
player:set_pos(spawn)
|
||||
end
|
||||
end)
|
||||
|
||||
subgames.register_on_drop(function(itemstack, dropper, pos, lobby)
|
||||
if lobby == "main" then
|
||||
return false
|
||||
end
|
||||
end)
|
||||
|
||||
-- Add the hub command
|
||||
minetest.register_chatcommand("hub", {
|
||||
params = "",
|
||||
description = "Use it to get to the Main Lobby!",
|
||||
func = function(user)
|
||||
local player = minetest.get_player_by_name(user)
|
||||
subgames.change_lobby(player, "main")
|
||||
end,
|
||||
})
|
||||
|
||||
-- Add the lethub command
|
||||
minetest.register_chatcommand("lethub", {
|
||||
privs = {kick=true},
|
||||
params = "name",
|
||||
description = "Use it to sent players in the main Lobby!",
|
||||
func = function(name, param)
|
||||
local player = minetest.get_player_by_name(param)
|
||||
if player then
|
||||
subgames.change_lobby(player, "main")
|
||||
minetest.chat_send_player(name, "You have left the player "..param)
|
||||
else minetest.chat_send_player(name, "The player is not online!")
|
||||
end
|
||||
end,
|
||||
})
|
||||
minetest.register_privilege("invs", "Allows you to be fully invisible!")
|
||||
|
||||
function minetest.get_server_status()
|
||||
local total = ""
|
||||
|
@ -235,7 +84,7 @@ You find the kits, skins and more in your inventory.]]
|
|||
}
|
||||
|
||||
|
||||
function main.get_help_form(type)
|
||||
local function get_help_form(type)
|
||||
local toreturn = (
|
||||
"size[8,6]"..
|
||||
"button[0,0;2,1;general;General]"..
|
||||
|
@ -253,12 +102,12 @@ minetest.register_chatcommand("info", {
|
|||
params = "",
|
||||
description = "Use it to see the helpguide!",
|
||||
func = function(name)
|
||||
minetest.show_formspec(name, "main:info", main.get_help_form("general"))
|
||||
minetest.show_formspec(name, "customisations:info", get_help_form("general"))
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
if formname == "main:info" then
|
||||
if formname == "customisations:info" then
|
||||
local type
|
||||
if fields.general then type = "general" end
|
||||
if fields.mesewars then type = "mesewars" end
|
||||
|
@ -267,13 +116,86 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||
if fields.survivalgames then type = "survivalgames" end
|
||||
if fields.commands then type = "commands" end
|
||||
if type then
|
||||
minetest.show_formspec(player:get_player_name(), "main:info", main.get_help_form(type))
|
||||
minetest.show_formspec(player:get_player_name(), "customisations:info", get_help_form(type))
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
subgames.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage, lobby)
|
||||
if lobby == "main" and player then
|
||||
-- Delete player accounts if they doesn't earn any money
|
||||
|
||||
minetest.register_on_leaveplayer(function(player)
|
||||
if player then
|
||||
local name = player:get_player_name()
|
||||
if not money.exist(name) then
|
||||
minetest.after(1, function()
|
||||
if minetest.get_player_by_name(name) then
|
||||
return false
|
||||
end
|
||||
if sban_del_player(name) then
|
||||
minetest.remove_player(name)
|
||||
minetest.remove_player_auth(name)
|
||||
remove_rule_accepted(name)
|
||||
playtime.remove_playtime(name)
|
||||
skins.remove_player(name)
|
||||
subgames.remove_all_player(name)
|
||||
money.remove(name)
|
||||
return true
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
minetest.unregister_chatcommand("me")
|
||||
|
||||
minetest.register_chatcommand("say", {
|
||||
params = "",
|
||||
description = "Use it to say something in the global chat.",
|
||||
privs = {kick=true},
|
||||
func = function(user, param)
|
||||
minetest.chat_send_all(param)
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_on_joinplayer(function(player)
|
||||
player:hud_set_flags({minimap = false})
|
||||
player:set_properties({zoom_fov=10})
|
||||
end)
|
||||
|
||||
minetest.register_chatcommand("w", {
|
||||
params = "<name>",
|
||||
description = "Use it to get the Lobby where a player is.",
|
||||
func = function(user, param)
|
||||
local player = minetest.get_player_by_name(param)
|
||||
if player and not minetest.get_player_privs(param).invs then
|
||||
minetest.chat_send_player(user, "The player "..param.." is in the Lobby "..player_lobby[param]..".")
|
||||
else minetest.chat_send_player(user, "The player is not online")
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
function core.send_join_message(name)
|
||||
end
|
||||
|
||||
function core.send_leave_message(name, timed_out)
|
||||
end
|
||||
|
||||
minetest.register_on_joinplayer(function(player)
|
||||
local name = player:get_player_name()
|
||||
player:set_properties({
|
||||
visual_size = {x=1, y=1},
|
||||
makes_footstep_sound = true,
|
||||
collisionbox = {-0.3, -1, -0.3, 0.3, 1, 0.3}
|
||||
})
|
||||
local privs = minetest.get_player_privs(name)
|
||||
privs.interact = true
|
||||
privs.fly = nil
|
||||
privs.fast = nil
|
||||
privs.noclip = nil
|
||||
minetest.set_player_privs(name, privs)
|
||||
subgames.call_join_callbacks(player, "main")
|
||||
end)
|
||||
|
||||
minetest.register_on_chat_message(function(name, message)
|
||||
minetest.log("action", "Chatlog: "..name.." wrote:"..message)
|
||||
end)
|
|
@ -0,0 +1,181 @@
|
|||
-- This is the file which manages the main lobby
|
||||
main = {}
|
||||
local mustcreate = true
|
||||
minetest.register_tool("customisations:teleporter", {
|
||||
description = "Teleporter",
|
||||
inventory_image = "compass.png",
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
main.open_teleporter_form(user)
|
||||
end,
|
||||
on_secondary_use = function(itemstack, user, pointed_thing)
|
||||
main.open_teleporter_form(user)
|
||||
end,
|
||||
})
|
||||
|
||||
subgames.register_game("main", {
|
||||
fullname = "Main",
|
||||
object = main,
|
||||
area = {
|
||||
[1] = {x=(-31), y=623, z=0},
|
||||
[2] = {x=9, y=595, z=39}
|
||||
},
|
||||
crafting = false,
|
||||
node_dig = function(pos, node, digger)
|
||||
return false
|
||||
end,
|
||||
item_place_node = function(itemstack, placer, pointed_thing, param2)
|
||||
return false
|
||||
end,
|
||||
})
|
||||
|
||||
function main.create_teleporter_form()
|
||||
return "size[4,4]" ..
|
||||
"item_image_button[0,0;2,2;mesewars:mese1;mesewars;"..#subgames.get_lobby_players("mesewars").." players]" ..
|
||||
"tooltip[mesewars;Mesewars: Eggwars in Minetest!]"..
|
||||
"image_button[2,0;2,2;hideandseek.png;hiddenseeker;"..#subgames.get_lobby_players("hiddenseeker").." players]" ..
|
||||
"tooltip[hiddenseeker;Hide and Seek!]" ..
|
||||
"item_image_button[0,2;2,2;bow:bow;skywars;"..#subgames.get_lobby_players("skywars").." players]" ..
|
||||
"tooltip[skywars;Skywars!]" ..
|
||||
"item_image_button[2,2;2,2;default:sword_steel;survivalgames;"..#subgames.get_lobby_players("survivalgames").." players]" ..
|
||||
"tooltip[survivalgames;Survivalgames!]"
|
||||
end
|
||||
|
||||
function main.open_teleporter_form(player)
|
||||
local name = player:get_player_name()
|
||||
minetest.show_formspec(name, "customisations:teleporter", main.create_teleporter_form())
|
||||
end
|
||||
|
||||
minetest.register_on_player_receive_fields(function(player, formname, pressed)
|
||||
if formname == "customisations:teleporter" then
|
||||
local name = player:get_player_name()
|
||||
if pressed.mesewars then
|
||||
if #subgames.get_lobby_players("mesewars") < mesewars.lobbys[1].playercount*#mesewars.lobbys then
|
||||
subgames.change_lobby(player, "mesewars")
|
||||
end
|
||||
elseif pressed.hiddenseeker then
|
||||
if #subgames.get_lobby_players("hiddenseeker") < hiddenseeker.max_players*#hiddenseeker.lobbys then
|
||||
subgames.change_lobby(player, "hiddenseeker")
|
||||
end
|
||||
elseif pressed.skywars then
|
||||
local count = 0
|
||||
for numb, table in pairs(skywars.lobbys) do
|
||||
count = count + table.playercount
|
||||
end
|
||||
if #subgames.get_lobby_players("skywars") < count then
|
||||
subgames.change_lobby(player, "skywars")
|
||||
else minetest.chat_send_player(name, "Skywars is full!")
|
||||
end
|
||||
elseif pressed.survivalgames then
|
||||
if #subgames.get_lobby_players("survivalgames") < survivalgames.max_players* #survivalgames.lobbys then
|
||||
subgames.change_lobby(player, "survivalgames")
|
||||
else minetest.chat_send_player(name, "Ssurvivalgames is full!")
|
||||
end
|
||||
end
|
||||
minetest.close_formspec(name, "customisations:teleporter")
|
||||
end
|
||||
end)
|
||||
|
||||
local spawn = {x=(-11), y=602, z=20}
|
||||
subgames.register_on_joinplayer(function(player, lobby)
|
||||
if lobby == "main" then
|
||||
local name = player:get_player_name()
|
||||
player:set_pos(spawn)
|
||||
local inv = player:get_inventory()
|
||||
inv:add_item("main", "customisations:teleporter")
|
||||
sfinv.set_page(player, "main:lobbys")
|
||||
local privs = minetest.get_player_privs(name)
|
||||
privs.interact = true
|
||||
minetest.set_player_privs(name, privs)
|
||||
if mustcreate == true then
|
||||
mustcreate = false
|
||||
local param1 = "mainlobby"
|
||||
local schem = minetest.get_worldpath() .. "/schems/" .. param1 .. ".mts"
|
||||
minetest.place_schematic({x=-27, y=601, z=4}, schem)
|
||||
end
|
||||
minetest.after(1, function()
|
||||
if player:is_player_connected() and agreerules_accepted(name) and player_lobby[name] == "main" then
|
||||
main.open_teleporter_form(player)
|
||||
subgames.clear_inv(player)
|
||||
local inv = player:get_inventory()
|
||||
inv:add_item("main", "customisations:teleporter")
|
||||
sfinv.set_page(player, "main:lobbys")
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|
||||
subgames.register_on_leaveplayer(function(player, lobby)
|
||||
if lobby == "main" then
|
||||
end
|
||||
end)
|
||||
|
||||
subgames.register_on_chat_message(function(name, message, lobby)
|
||||
if lobby == "main" and name and message then
|
||||
subgames.chat_send_all_lobby("main", "<"..name.."> "..message)
|
||||
return true
|
||||
end
|
||||
end)
|
||||
|
||||
-- Add chat system
|
||||
subgames.register_on_respawnplayer(function(player, lobby)
|
||||
if lobby == "main" then
|
||||
player:set_pos(spawn)
|
||||
end
|
||||
end)
|
||||
|
||||
subgames.register_on_drop(function(itemstack, dropper, pos, lobby)
|
||||
if lobby == "main" then
|
||||
return false
|
||||
end
|
||||
end)
|
||||
|
||||
subgames.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage, lobby)
|
||||
if lobby == "main" and player then
|
||||
return true
|
||||
end
|
||||
end)
|
||||
|
||||
-- Add the hub command
|
||||
minetest.register_chatcommand("hub", {
|
||||
params = "",
|
||||
description = "Use it to get to the Main Lobby!",
|
||||
func = function(user)
|
||||
local player = minetest.get_player_by_name(user)
|
||||
subgames.change_lobby(player, "main")
|
||||
end,
|
||||
})
|
||||
|
||||
sfinv.register_page("main:lobbys", {
|
||||
title = "Lobbys",
|
||||
get = function(self, player, context)
|
||||
return sfinv.make_formspec(player, context, main.create_teleporter_form(), false)
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
if pressed.mesewars then
|
||||
subgames.change_lobby(player, "mesewars")
|
||||
elseif pressed.hiddenseeker then
|
||||
subgames.change_lobby(player, "hiddenseeker")
|
||||
elseif pressed.skywars then
|
||||
subgames.change_lobby(player, "skywars")
|
||||
elseif pressed.survivalgames then
|
||||
subgames.change_lobby(player, "survivalgames")
|
||||
end
|
||||
minetest.close_formspec(name, "")
|
||||
end,
|
||||
})
|
||||
|
||||
-- Add the lethub command
|
||||
minetest.register_chatcommand("lethub", {
|
||||
privs = {kick=true},
|
||||
params = "name",
|
||||
description = "Use it to sent players in the main Lobby!",
|
||||
func = function(name, param)
|
||||
local player = minetest.get_player_by_name(param)
|
||||
if player then
|
||||
subgames.change_lobby(player, "main")
|
||||
minetest.chat_send_player(name, "You have left the player "..param)
|
||||
else minetest.chat_send_player(name, "The player is not online!")
|
||||
end
|
||||
end,
|
||||
})
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
@ -92,7 +92,7 @@ subgames.register_on_punchnode(function(bpos, node, puncher, pointed_thing, lobb
|
|||
if plobby and plooby ~= 0 and hiddenseeker.lobbys[plobby].players[name] == "seeker" then
|
||||
for pname, table in pairs(hiddenseeker.disguis) do
|
||||
if table.pos then
|
||||
if vector.equals(bpos, subgames.decomma_pos(minetest.string_to_pos(hiddenseeker.disguis[pname].pos))) then
|
||||
if vector.equals(bpos, vector.round(minetest.string_to_pos(hiddenseeker.disguis[pname].pos))) then
|
||||
local player = minetest.get_player_by_name(pname)
|
||||
hiddenseeker.disguis[pname].time = hiddenseeker.timetodisquis
|
||||
hiddenseeker.disguis_player(player)
|
||||
|
|
|
@ -13,6 +13,7 @@ subgames.register_game("hiddenseeker", {
|
|||
[1] = {x=0, y=(-10000), z=0},
|
||||
[2] = {x=0, y=(-10000), z=0}
|
||||
},
|
||||
crafting = false,
|
||||
node_dig = function(pos, node, digger)
|
||||
return false
|
||||
end,
|
||||
|
@ -194,7 +195,7 @@ function hiddenseeker.join_game(player, lobby)
|
|||
subgames.clear_inv(player)
|
||||
hiddenseeker.lobbys[lobby].players[name] = true
|
||||
player:set_nametag_attributes({color = {a = 0, r = 255, g = 255, b = 255}})
|
||||
sfinv.set_page(player, "subgames:kits")
|
||||
sfinv.set_page(player, "hiddenseeker:kits")
|
||||
hiddenseeker.win(lobby)
|
||||
if hiddenseeker.lobbys[lobby].mustcreate == true then
|
||||
hiddenseeker.lobbys[lobby].mustcreate = false
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
hiddenseeker_kit_form = {}
|
||||
hiddenseeker_kits = {}
|
||||
local kits_register = {}
|
||||
local kits_all = {}
|
||||
|
@ -109,8 +108,7 @@ function hiddenseeker.create_kit_form(name)
|
|||
local itembuyb = kits_register[hiddenseeker_kits[name].buying]
|
||||
itembuy = itembuyb.items
|
||||
end
|
||||
hiddenseeker_kit_form[name] = (
|
||||
"size[8,9]" ..
|
||||
return "size[8,9]" ..
|
||||
"label[0,0;Select your Block you want to be in the next round!]" ..
|
||||
"dropdown[0,0.5;8,1.5;blocklist;"..subgames.concatornil(hiddenseeker_kits[name].kit)..";"..selected_id.."]" ..
|
||||
"label[0,1.5;Block: "..subgames.concatornil(defitems).." ]" ..
|
||||
|
@ -119,7 +117,7 @@ function hiddenseeker.create_kit_form(name)
|
|||
"dropdown[0,3.5;8,1.5;buylist;"..table.concat(kits_all, ",")..";"..selected_buyid.."]" ..
|
||||
"label[0,4.5;Cost: "..costbuy.."]" ..
|
||||
"label[0,5.5;Block: "..subgames.concatornil(itembuy).." ]" ..
|
||||
"button[4,4.5;3,1;buyblock;Buy this Block!]")
|
||||
"button[4,4.5;3,1;buyblock;Buy this Block!]"
|
||||
end
|
||||
|
||||
-- Grant money when kill a player
|
||||
|
@ -137,9 +135,8 @@ subgames.register_on_kill_player(function(killer, killed, lobby)
|
|||
end
|
||||
end)
|
||||
|
||||
function hiddenseeker.kit_on_player_receive_fields(self, player, context, pressed)
|
||||
function hiddenseeker.kit_on_player_receive_fields(player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "hiddenseeker" then
|
||||
if pressed.buyblock then
|
||||
if hiddenseeker_kits[name].buying then
|
||||
hiddenseeker.add_player_kits(name, hiddenseeker_kits[name].buying)
|
||||
|
@ -152,10 +149,31 @@ function hiddenseeker.kit_on_player_receive_fields(self, player, context, presse
|
|||
hiddenseeker_kits[name].buying = pressed.buylist
|
||||
end
|
||||
hiddenseeker.save_kits(name)
|
||||
hiddenseeker.create_kit_form(name)
|
||||
end
|
||||
|
||||
-- Add a kit tab
|
||||
sfinv.register_page("hiddenseeker:kits", {
|
||||
title = "Kits",
|
||||
get = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "hiddenseeker" then
|
||||
return sfinv.make_formspec(player, context, hiddenseeker.create_kit_form(name), false)
|
||||
end
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "hiddenseeker" then
|
||||
hiddenseeker.kit_on_player_receive_fields(player, context, pressed)
|
||||
sfinv.set_player_inventory_formspec(player)
|
||||
end
|
||||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "hiddenseeker" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
function hiddenseeker.get_player_block(name)
|
||||
local lobby = hiddenseeker.player_lobby[name]
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
name = hiddenseeker
|
||||
depends = default, subgames
|
|
@ -160,7 +160,7 @@ local function party_win_announce(party, lobby, ldata)
|
|||
subgames.clear_inv(player)
|
||||
ldata.players[player:get_player_name()] = true
|
||||
player:set_pos(ldata.pos)
|
||||
sfinv.set_page(player, "subgames:kits")
|
||||
sfinv.set_page(player, "hiddenseeker:kits")
|
||||
end
|
||||
hiddenseeker.win(lobby)
|
||||
end)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Subproject commit de38b20fa60c9d567a55bd97e2fa1134cf5d9d5c
|
|
@ -1,43 +0,0 @@
|
|||
===ITEM_DROP MOD for MINETEST-C55===
|
||||
by PilzAdam
|
||||
Edited by Lejo for mesewars!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
Introduction:
|
||||
This mod adds Minecraft like drop/pick up of items to Minetest.
|
||||
|
||||
How to install:
|
||||
Unzip the archive an place it in minetest-base-directory/mods/minetest/
|
||||
if you have a windows client or a linux run-in-place client. If you have
|
||||
a linux system-wide instalation place it in ~/.minetest/mods/minetest/.
|
||||
If you want to install this mod only in one world create the folder
|
||||
worldmods/ in your worlddirectory.
|
||||
For further information or help see:
|
||||
http://wiki.minetest.com/wiki/Installing_Mods
|
||||
|
||||
How to use the mod:
|
||||
Just install it an everything works.
|
||||
|
||||
For developers:
|
||||
You dont have to use get_drops() anymore because of changes in the
|
||||
builtin files of minetest.
|
||||
|
||||
License:
|
||||
Sourcecode: WTFPL (see below)
|
||||
Sound: WTFPL (see below)
|
||||
|
||||
See also:
|
||||
http://minetest.net/
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim or modified
|
||||
copies of this license document, and changing it is allowed as long
|
||||
as the name is changed.
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
|
@ -1,121 +0,0 @@
|
|||
--[[This mod was added by Lejo for mesewars with everything with item place take up etc.!]]
|
||||
|
||||
minetest.register_globalstep(function(dtime)
|
||||
for _,player in ipairs(minetest.get_connected_players()) do
|
||||
local name = player:get_player_name()
|
||||
if player:get_hp() > 0 and minetest.get_player_privs(name).interact then
|
||||
local pos = player:get_pos()
|
||||
pos.y = pos.y+0.5
|
||||
local inv = player:get_inventory()
|
||||
|
||||
for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 1)) do
|
||||
if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" then
|
||||
if inv and inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then
|
||||
inv:add_item("main", ItemStack(object:get_luaentity().itemstring))
|
||||
if object:get_luaentity().itemstring ~= "" then
|
||||
minetest.sound_play("item_drop_pickup", {
|
||||
to_player = player:get_player_name(),
|
||||
gain = 0.4,
|
||||
})
|
||||
end
|
||||
object:get_luaentity().itemstring = ""
|
||||
object:remove()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 2)) do
|
||||
if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" then
|
||||
if object:get_luaentity().collect then
|
||||
if inv and inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then
|
||||
local pos1 = pos
|
||||
pos1.y = pos1.y+0.2
|
||||
local pos2 = object:get_pos()
|
||||
local vec = {x=pos1.x-pos2.x, y=pos1.y-pos2.y, z=pos1.z-pos2.z}
|
||||
vec.x = vec.x*3
|
||||
vec.y = vec.y*3
|
||||
vec.z = vec.z*3
|
||||
object:setvelocity(vec)
|
||||
object:get_luaentity().physical_state = false
|
||||
object:get_luaentity().object:set_properties({
|
||||
physical = false
|
||||
})
|
||||
|
||||
minetest.after(1, function(args)
|
||||
local lua = object:get_luaentity()
|
||||
if object == nil or lua == nil or lua.itemstring == nil then
|
||||
return
|
||||
end
|
||||
if inv:room_for_item("main", ItemStack(object:get_luaentity().itemstring)) then
|
||||
inv:add_item("main", ItemStack(object:get_luaentity().itemstring))
|
||||
if object:get_luaentity().itemstring ~= "" then
|
||||
minetest.sound_play("item_drop_pickup", {
|
||||
to_player = player:get_player_name(),
|
||||
gain = 0.4,
|
||||
})
|
||||
end
|
||||
object:get_luaentity().itemstring = ""
|
||||
object:remove()
|
||||
else
|
||||
object:setvelocity({x=0,y=0,z=0})
|
||||
object:get_luaentity().physical_state = true
|
||||
object:get_luaentity().object:set_properties({
|
||||
physical = true
|
||||
})
|
||||
end
|
||||
end, {player, object})
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
function minetest.handle_node_drops(pos, drops, digger)
|
||||
local inv
|
||||
if minetest.setting_getbool("creative_mode") and digger and digger:is_player() then
|
||||
inv = digger:get_inventory()
|
||||
end
|
||||
for _,item in ipairs(drops) do
|
||||
local count, name
|
||||
if type(item) == "string" then
|
||||
count = 1
|
||||
name = item
|
||||
else
|
||||
count = item:get_count()
|
||||
name = item:get_name()
|
||||
end
|
||||
if subgames.check_drop(pos, name, digger) then
|
||||
if not inv or not inv:contains_item("main", ItemStack(name)) then
|
||||
for i=1,count do
|
||||
local obj = minetest.env:add_item(pos, name)
|
||||
if obj ~= nil then
|
||||
obj:get_luaentity().collect = true
|
||||
local x = math.random(1, 5)
|
||||
if math.random(1,2) == 1 then
|
||||
x = -x
|
||||
end
|
||||
local z = math.random(1, 5)
|
||||
if math.random(1,2) == 1 then
|
||||
z = -z
|
||||
end
|
||||
obj:setvelocity({x=1/x, y=obj:getvelocity().y, z=1/z})
|
||||
|
||||
-- FIXME this doesnt work for deactiveted objects
|
||||
if minetest.setting_get("remove_items") and tonumber(minetest.setting_get("remove_items")) then
|
||||
minetest.after(tonumber(minetest.setting_get("remove_items")), function(obj)
|
||||
obj:remove()
|
||||
end, obj)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if minetest.setting_get("log_mods") then
|
||||
minetest.log("action", "item_drop loaded")
|
||||
end
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1 +0,0 @@
|
|||
subgames
|
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2019-date, Lejo <Lejo_1@web.de>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
|
@ -136,6 +136,7 @@ subgames.register_game("mesewars", {
|
|||
[1] = {x=(-700), y=1000, z=-700},
|
||||
[2] = {x=75, y=1302, z=(-17)}
|
||||
},
|
||||
crafting = false,
|
||||
node_dig = function(pos, node, digger)
|
||||
local name = digger:get_player_name()
|
||||
local plobby = mesewars.player_lobby[name]
|
||||
|
@ -207,7 +208,7 @@ function mesewars.join_game(player, lobby)
|
|||
subgames.clear_inv(player)
|
||||
mesewars.lobbys[lobby].players[name] = false
|
||||
subgames.spectate(player)
|
||||
sfinv.set_page(player, "subgames:maps")
|
||||
sfinv.set_page(player, "mesewars:maps")
|
||||
return "Lobby is ingame! So you are now spectating."
|
||||
else mesewars.player_lobby[name] = lobby
|
||||
player:set_pos(mesewars.lobbys[lobby].specpos)
|
||||
|
@ -225,7 +226,7 @@ function mesewars.join_game(player, lobby)
|
|||
minetest.fix_light(mesewars.lobbys[lobby].mappos1, mesewars.lobbys[lobby].mappos2)
|
||||
end
|
||||
mesewars.team_form(name)
|
||||
sfinv.set_page(player, "subgames:team")
|
||||
sfinv.set_page(player, "mesewars:team")
|
||||
return "You joined the map "..mesewars.lobbys[lobby].string_name.."!"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
-- Adds kits to mesewars
|
||||
kits = {}
|
||||
mesewars_kit_form = {}
|
||||
mesewars_ability_form = {}
|
||||
local kits_all = {}
|
||||
local abilitys = {
|
||||
speed = {
|
||||
|
@ -166,8 +164,7 @@ function mesewars.create_kit_form(name)
|
|||
local itembuyb = kits.register[kits[name].buying]
|
||||
itembuy = itembuyb.items
|
||||
end
|
||||
mesewars_kit_form[name] = (
|
||||
"size[8,9]" ..
|
||||
return "size[8,9]" ..
|
||||
"label[0,0;Select your Kit!]" ..
|
||||
"dropdown[0,0.5;8,1.5;kitlist;"..subgames.concatornil(kits[name].kit)..";"..selected_id.."]" ..
|
||||
"label[0,1.5;Items: "..subgames.concatornil(defitems).." ]" ..
|
||||
|
@ -176,9 +173,49 @@ function mesewars.create_kit_form(name)
|
|||
"dropdown[0,3.5;8,1.5;buylist;"..table.concat(kits_all, ",")..";"..selected_buyid.."]" ..
|
||||
"label[0,4.5;Cost: "..costbuy.."]" ..
|
||||
"label[0,5.5;Items: "..subgames.concatornil(itembuy).." ]" ..
|
||||
"button[4,4.5;3,1;buykit;Buy this Kit!]")
|
||||
"button[4,4.5;3,1;buykit;Buy this Kit!]"
|
||||
end
|
||||
|
||||
function mesewars.kit_on_player_receive_fields(player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
if pressed.buykit then
|
||||
if kits[name].buying then
|
||||
mesewars.add_player_kits(name, kits[name].buying)
|
||||
end
|
||||
end
|
||||
if pressed.kitlist then
|
||||
mesewars.set_player_kit(name, pressed.kitlist)
|
||||
end
|
||||
if pressed.buylist then
|
||||
kits[name].buying = pressed.buylist
|
||||
end
|
||||
mesewars.save_kits(name)
|
||||
end
|
||||
|
||||
-- Add a kit tab
|
||||
sfinv.register_page("mesewars:kits", {
|
||||
title = "Kits",
|
||||
get = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
return sfinv.make_formspec(player, context, mesewars.create_kit_form(name), false)
|
||||
end
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
mesewars.kit_on_player_receive_fields(player, context, pressed)
|
||||
sfinv.set_player_inventory_formspec(player)
|
||||
end
|
||||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
-- Grant money when kill a player
|
||||
subgames.register_on_kill_player(function(killer, killed, lobby)
|
||||
if lobby == "mesewars" then
|
||||
|
@ -301,8 +338,7 @@ local function check_active(value, number, text)
|
|||
end
|
||||
end
|
||||
|
||||
function mesewars.create_ability_form(player)
|
||||
local name = player:get_player_name()
|
||||
function mesewars.create_ability_form(name)
|
||||
local speedontool
|
||||
if kits[name].abilitys.speed.active == true then
|
||||
speedontool = "Enable!"
|
||||
|
@ -323,8 +359,7 @@ function mesewars.create_ability_form(player)
|
|||
carefullontool = "Enable!"
|
||||
else carefullontool = "Disable!"
|
||||
end
|
||||
mesewars_ability_form[name] = (
|
||||
"size[8,9]" ..
|
||||
return "size[8,9]" ..
|
||||
"label[0,0.5;Here you can buy abilities for your money.]" ..
|
||||
"label[0,1;Your money: "..money.get_money(name).." Coins]" ..
|
||||
"image_button[1,2;1,1;pep_speedplus.png;speedon;]" ..
|
||||
|
@ -379,7 +414,6 @@ function mesewars.create_ability_form(player)
|
|||
"tooltip[carefull4;1600 Coins]" ..
|
||||
"button[4,8;1,1;carefull5;"..check_active(kits[name].abilitys.carefull.level, 5, "50%").."]" ..
|
||||
"tooltip[carefull5;3200 Coins]"
|
||||
)
|
||||
end
|
||||
|
||||
function mesewars.handle_buy(player, ability, level, cost)
|
||||
|
@ -400,3 +434,80 @@ function mesewars.handle_buy(player, ability, level, cost)
|
|||
minetest.chat_send_player(name, "You already buyed this Level.")
|
||||
end
|
||||
end
|
||||
|
||||
-- Add a Abilitys tab
|
||||
sfinv.register_page("mesewars:abilitys", {
|
||||
title = "Abilities",
|
||||
get = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
return sfinv.make_formspec(player, context, mesewars.create_ability_form(name), false)
|
||||
else return sfinv.make_formspec(player, context, (
|
||||
"size[8,9]" ..
|
||||
"label[0,0;Abilitys are not available here!]"
|
||||
), false)
|
||||
end
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
if pressed.speedbox then
|
||||
if pressed.speedbox == "true" then kits[name].abilitys.speed.active = true else kits[name].abilitys.speed.active = false end
|
||||
elseif pressed.slownessbox then
|
||||
if pressed.slownessbox == "true" then kits[name].abilitys.slowness.active = true else kits[name].abilitys.slowness.active = false end
|
||||
elseif pressed.killkitbox then
|
||||
if pressed.killkitbox == "true" then kits[name].abilitys.killkit.active = true else kits[name].abilitys.killkit.active = false end
|
||||
elseif pressed.carefullbox then
|
||||
if pressed.carefullbox == "true" then kits[name].abilitys.carefull.active = true else kits[name].abilitys.carefull.active = false end
|
||||
elseif pressed.speed1 then
|
||||
mesewars.handle_buy(player, "speed", 1, 200)
|
||||
elseif pressed.speed2 then
|
||||
mesewars.handle_buy(player, "speed", 2, 400)
|
||||
elseif pressed.speed3 then
|
||||
mesewars.handle_buy(player, "speed", 3, 800)
|
||||
elseif pressed.speed4 then
|
||||
mesewars.handle_buy(player, "speed", 4, 1600)
|
||||
elseif pressed.speed5 then
|
||||
mesewars.handle_buy(player, "speed", 5, 3200)
|
||||
elseif pressed.slowness1 then
|
||||
mesewars.handle_buy(player, "slowness", 1, 200)
|
||||
elseif pressed.slowness2 then
|
||||
mesewars.handle_buy(player, "slowness", 2, 400)
|
||||
elseif pressed.slowness3 then
|
||||
mesewars.handle_buy(player, "slowness", 3, 800)
|
||||
elseif pressed.slowness4 then
|
||||
mesewars.handle_buy(player, "slowness", 4, 1600)
|
||||
elseif pressed.slowness5 then
|
||||
mesewars.handle_buy(player, "slowness", 5, 3200)
|
||||
elseif pressed.killkit1 then
|
||||
mesewars.handle_buy(player, "killkit", 1, 200)
|
||||
elseif pressed.killkit2 then
|
||||
mesewars.handle_buy(player, "killkit", 2, 400)
|
||||
elseif pressed.killkit3 then
|
||||
mesewars.handle_buy(player, "killkit", 3, 800)
|
||||
elseif pressed.killkit4 then
|
||||
mesewars.handle_buy(player, "killkit", 4, 1600)
|
||||
elseif pressed.killkit5 then
|
||||
mesewars.handle_buy(player, "killkit", 5, 3200)
|
||||
elseif pressed.carefull1 then
|
||||
mesewars.handle_buy(player, "carefull", 1, 200)
|
||||
elseif pressed.carefull2 then
|
||||
mesewars.handle_buy(player, "carefull", 2, 400)
|
||||
elseif pressed.carefull3 then
|
||||
mesewars.handle_buy(player, "carefull", 3, 800)
|
||||
elseif pressed.carefull4 then
|
||||
mesewars.handle_buy(player, "carefull", 4, 1600)
|
||||
elseif pressed.carefull5 then
|
||||
mesewars.handle_buy(player, "carefull", 5, 3200)
|
||||
end
|
||||
mesewars.save_kits(name)
|
||||
sfinv.set_player_inventory_formspec(player)
|
||||
end
|
||||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
})
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
name = mesewars
|
||||
depends = subgames
|
|
@ -111,7 +111,7 @@ subgames.register_on_respawnplayer(function(player, lobby)
|
|||
mesewars.chat_send_all_lobby(plobby, minetest.colorize(mesewars.get_color_from_team(mesewars.lobbys[plobby].players[name]) ,name).." has been eliminated.")
|
||||
mesewars.lobbys[plobby].players[name] = false
|
||||
subgames.clear_inv(player)
|
||||
sfinv.set_page(player, "subgames:team")
|
||||
sfinv.set_page(player, "mesewars:team")
|
||||
end
|
||||
subgames.spectate(player)
|
||||
player:set_pos(mesewars.lobbys[plobby].specpos)
|
||||
|
@ -245,3 +245,34 @@ minetest.register_node("mesewars:mese4", {
|
|||
end
|
||||
end,
|
||||
})
|
||||
|
||||
sfinv.register_page("mesewars:maps", {
|
||||
title = "Maps",
|
||||
get = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
return sfinv.make_formspec(player, context, mesewars.create_teleporter_form(), false)
|
||||
end
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
local lobby = player_lobby[name]
|
||||
if lobby == "mesewars" then
|
||||
if pressed.map1 then
|
||||
mesewars.leave_game(player)
|
||||
mesewars.win(mesewars.player_lobby[name])
|
||||
minetest.chat_send_player(name, mesewars.join_game(player, 1))
|
||||
elseif pressed.map2 then
|
||||
mesewars.leave_game(player)
|
||||
minetest.chat_send_player(name, mesewars.join_game(player, 2))
|
||||
end
|
||||
end
|
||||
minetest.close_formspec(name, "")
|
||||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
})
|
||||
|
|
|
@ -126,7 +126,7 @@ function mesewars.win(lobby)
|
|||
subgames.unspectate(player)
|
||||
mesewars.lobbys[lobby].players[name] = false
|
||||
mesewars.color_tag(player)
|
||||
sfinv.set_page(player, "subgames:team")
|
||||
sfinv.set_page(player, "mesewars:team")
|
||||
end
|
||||
mesewars.reset_map(lobby)
|
||||
mesewars.win(lobby)
|
||||
|
|
|
@ -120,6 +120,31 @@ function mesewars.handle_teamform_input(player, pressed)
|
|||
end
|
||||
end
|
||||
|
||||
-- Add a sfinv page for the team selector
|
||||
sfinv.register_page("mesewars:team", {
|
||||
title = "Teams",
|
||||
get = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
return sfinv.make_formspec(player, context, mesewars.create_team_form(name), false)
|
||||
end
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
mesewars.handle_teamform_input(player, pressed)
|
||||
if not pressed.quit then
|
||||
mesewars.create_team_form(name)
|
||||
sfinv.set_player_inventory_formspec(player)
|
||||
end
|
||||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
function mesewars.teams_correct(lobby)
|
||||
local maxteam = 1
|
||||
for team=0, mesewars.lobbys[lobby].teams do
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
-- Delete player accounts if they doesn't earn any money
|
||||
|
||||
minetest.register_on_leaveplayer(function(player)
|
||||
if player then
|
||||
local name = player:get_player_name()
|
||||
if not money.exist(name) then
|
||||
minetest.after(1, function()
|
||||
subgames.remove_all_player(name)
|
||||
end)
|
||||
end
|
||||
end
|
||||
end)
|
|
@ -124,7 +124,7 @@ end
|
|||
function sfinv.set_player_inventory_formspec(player, context)
|
||||
local fs = sfinv.get_formspec(player,
|
||||
context or sfinv.get_or_create_context(player))
|
||||
player:set_inventory_formspec(fs)
|
||||
player:set_inventory_formspec(fs or "")
|
||||
end
|
||||
|
||||
function sfinv.set_page(player, pagename)
|
||||
|
|
|
@ -1,3 +1,22 @@
|
|||
-- sfinv/init.lua
|
||||
|
||||
dofile(minetest.get_modpath("sfinv") .. "/api.lua")
|
||||
|
||||
sfinv.register_page("sfinv:crafting", {
|
||||
title = "Crafting",
|
||||
get = function(self, player, context)
|
||||
return sfinv.make_formspec(player, context, [[
|
||||
list[current_player;craft;1.75,0.5;3,3;]
|
||||
list[current_player;craftpreview;5.75,1.5;1,1;]
|
||||
image[4.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]
|
||||
listring[current_player;main]
|
||||
listring[current_player;craft]
|
||||
image[0,4.75;1,1;gui_hb_bg.png]
|
||||
image[1,4.75;1,1;gui_hb_bg.png]
|
||||
image[2,4.75;1,1;gui_hb_bg.png]
|
||||
image[3,4.75;1,1;gui_hb_bg.png]
|
||||
image[4,4.75;1,1;gui_hb_bg.png]
|
||||
image[5,4.75;1,1;gui_hb_bg.png]
|
||||
image[6,4.75;1,1;gui_hb_bg.png]
|
||||
image[7,4.75;1,1;gui_hb_bg.png]
|
||||
]], true)
|
||||
end
|
||||
})
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
name = skinsdb
|
||||
description = Player skin mod, supporting unified_inventory, sfinv and smart_inventory
|
||||
depends = default
|
||||
optional_depends = unified_inventory,3d_armor,clothing,sfinv,3d_armor_sfinv,subgames
|
||||
optional_depends = unified_inventory,3d_armor,clothing,sfinv,3d_armor_sfinv, customisations
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2019-date, Lejo <Lejo_1@web.de>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
|
@ -171,6 +171,7 @@ subgames.register_game("skywars", {
|
|||
[1] = {x=10000, y=1900, z=10000},
|
||||
[2] = {x=(-10000), y=2900, z=(-10000)}
|
||||
},
|
||||
crafting = true,
|
||||
node_dig = function(pos, node, digger)
|
||||
local name = digger:get_player_name()
|
||||
local plobby = skywars.player_lobby[name]
|
||||
|
@ -240,13 +241,13 @@ function skywars.join_game(player, lobby)
|
|||
player:set_pos(skywars.lobbys[lobby].specpos)
|
||||
subgames.clear_inv(player)
|
||||
skywars.lobbys[lobby].players[name] = false
|
||||
sfinv.set_page(player, "subgames:maps")
|
||||
sfinv.set_page(player, "skywars:maps")
|
||||
subgames.spectate(player)
|
||||
return "Lobby is ingame! So you are now spectating."
|
||||
else skywars.player_lobby[name] = lobby
|
||||
player:set_pos(skywars.lobbys[lobby].specpos)
|
||||
subgames.clear_inv(player)
|
||||
sfinv.set_page(player, "subgames:maps")
|
||||
sfinv.set_page(player, "skywars:maps")
|
||||
skywars.win(lobby)
|
||||
if skywars.lobbys[lobby].mustcreate == true then
|
||||
skywars.lobbys[lobby].mustcreate = false
|
||||
|
@ -270,9 +271,6 @@ function skywars.leave_game(player)
|
|||
skywars.lobbys[lobby].players[name] = nil
|
||||
subgames.unspectate(player)
|
||||
if skywars.lobbys[lobby].ingame then
|
||||
local privs = minetest.get_player_privs(name)
|
||||
privs.craft = nil
|
||||
minetest.set_player_privs(name, privs)
|
||||
subgames.add_bothud(player, "Teaming is not allowed!", 0xFF0000, 0)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
skywars_kits = {}
|
||||
skywars_kit_form = {}
|
||||
skywars_ability_form = {}
|
||||
local kits_all = {}
|
||||
local kits_register = {}
|
||||
|
||||
|
@ -122,8 +120,7 @@ function skywars.create_kit_form(name)
|
|||
local itembuyb = kits_register[skywars_kits[name].buying]
|
||||
itembuy = itembuyb.items
|
||||
end
|
||||
skywars_kit_form[name] = (
|
||||
"size[8,9]" ..
|
||||
return "size[8,9]" ..
|
||||
"label[0,0;Select your Kit!]" ..
|
||||
"dropdown[0,0.5;8,1.5;kitlist;"..subgames.concatornil(skywars_kits[name].kit)..";"..selected_id.."]" ..
|
||||
"label[0,1.5;Items: "..subgames.concatornil(defitems).." ]" ..
|
||||
|
@ -132,7 +129,7 @@ function skywars.create_kit_form(name)
|
|||
"dropdown[0,3.5;8,1.5;buylist;"..table.concat(kits_all, ",")..";"..selected_buyid.."]" ..
|
||||
"label[0,4.5;Cost: "..costbuy.."]" ..
|
||||
"label[0,5.5;Items: "..subgames.concatornil(itembuy).." ]" ..
|
||||
"button[4,4.5;3,1;buykit;Buy this Kit!]")
|
||||
"button[4,4.5;3,1;buykit;Buy this Kit!]"
|
||||
end
|
||||
|
||||
-- Grant money when kill a player
|
||||
|
@ -145,9 +142,8 @@ subgames.register_on_kill_player(function(killer, killed, lobby)
|
|||
end
|
||||
end)
|
||||
|
||||
function skywars.kit_on_player_receive_fields(self, player, context, pressed)
|
||||
function skywars.kit_on_player_receive_fields(player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "skywars" then
|
||||
if pressed.buykit then
|
||||
if skywars_kits[name].buying then
|
||||
skywars.add_player_kits(name, skywars_kits[name].buying)
|
||||
|
@ -160,10 +156,31 @@ function skywars.kit_on_player_receive_fields(self, player, context, pressed)
|
|||
skywars_kits[name].buying = pressed.buylist
|
||||
end
|
||||
skywars.save_kits(name)
|
||||
skywars.create_kit_form(name)
|
||||
end
|
||||
|
||||
-- Add a kit tab
|
||||
sfinv.register_page("skywars:kits", {
|
||||
title = "Kits",
|
||||
get = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "skywars" then
|
||||
return sfinv.make_formspec(player, context, skywars.create_kit_form(name), false)
|
||||
end
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "skywars" then
|
||||
skywars.kit_on_player_receive_fields(player, context, pressed)
|
||||
sfinv.set_player_inventory_formspec(player)
|
||||
end
|
||||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "skywars" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
skywars.register_kit("Swordman", {
|
||||
cost = 500,
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
name = skywars
|
||||
depends = subgames
|
|
@ -143,3 +143,34 @@ subgames.register_on_blast(function(pos, intensity, lobby)
|
|||
end
|
||||
end
|
||||
end)
|
||||
|
||||
sfinv.register_page("skywars:maps", {
|
||||
title = "Maps",
|
||||
get = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "skywars" then
|
||||
return sfinv.make_formspec(player, context, skywars.create_teleporter_form(), false)
|
||||
end
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
local lobby = player_lobby[name]
|
||||
if lobby == "skywars" then
|
||||
if pressed.map1 then
|
||||
skywars.leave_game(player)
|
||||
skywars.win(skywars.player_lobby[name])
|
||||
minetest.chat_send_player(name, skywars.join_game(player, 1))
|
||||
elseif pressed.map2 then
|
||||
skywars.leave_game(player)
|
||||
minetest.chat_send_player(name, skywars.join_game(player, 2))
|
||||
end
|
||||
end
|
||||
minetest.close_formspec(name, "")
|
||||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "skywars" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
})
|
||||
|
|
|
@ -67,9 +67,6 @@ function skywars.start_game(lobby)
|
|||
skywars.give_kit_items(name)
|
||||
player:set_pos(skywars.lobbys[lobby].pos[place])
|
||||
sfinv.set_page(player, "3d_armor:armor")
|
||||
local privs = minetest.get_player_privs(name)
|
||||
privs.craft = true
|
||||
minetest.set_player_privs(name, privs)
|
||||
subgames.add_bothud(player, "Teaming is not allowed!", 0xFF0000, 100000)
|
||||
end
|
||||
local starttime = os.time()
|
||||
|
@ -123,10 +120,7 @@ function skywars.win(lobby)
|
|||
subgames.clear_inv(player)
|
||||
subgames.unspectate(player)
|
||||
skywars.lobbys[lobby].players[name] = true
|
||||
sfinv.set_page(player, "subgames:maps")
|
||||
local privs = minetest.get_player_privs(name)
|
||||
privs.craft = nil
|
||||
minetest.set_player_privs(name, privs)
|
||||
sfinv.set_page(player, "skywars:maps")
|
||||
subgames.add_bothud(player, "Teaming is not allowed!", 0xFF0000, 0)
|
||||
end
|
||||
skywars.reset_map(lobby)
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
API
|
||||
---
|
||||
|
||||
Mod is currently in development!
|
||||
Mod might get an own repository as well when fully reworked
|
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2020-date, Lejo <Lejo_1@web.de>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
|
@ -1,6 +1,6 @@
|
|||
default
|
||||
sfinv
|
||||
3d_armor_sfinv
|
||||
3d_armor
|
||||
sfinv?
|
||||
3d_armor_sfinv?
|
||||
controls
|
||||
atchat
|
||||
antispam
|
||||
atchat?
|
||||
antispam?
|
||||
|
|
|
@ -27,9 +27,6 @@ function round(num, numDecimalPlaces)
|
|||
local mult = 10^(numDecimalPlaces or 0)
|
||||
return math.floor(num * mult + 0.5) / mult
|
||||
end
|
||||
function subgames.decomma_pos(pos)
|
||||
return {x=round(pos.x), y=round(pos.y), z=round(pos.z)}
|
||||
end
|
||||
|
||||
function toboolean(string)
|
||||
if string == "true" then
|
||||
|
@ -50,8 +47,8 @@ function is_inside_area(pos1, pos2, mainpos)
|
|||
end
|
||||
|
||||
function subgames.get_lobby_from_pos(pos)
|
||||
for lname, area in pairs(subgames.areas) do
|
||||
if is_inside_area(area[1], area[2], pos) then
|
||||
for lname, d in pairs(subgames.games) do
|
||||
if is_inside_area(d.area[1], d.area[2], pos) then
|
||||
return lname
|
||||
end
|
||||
end
|
||||
|
@ -143,23 +140,11 @@ function subgames.drop_inv(name, pos)
|
|||
end
|
||||
|
||||
function subgames.remove_all_player(name)
|
||||
if minetest.get_player_by_name(name) then
|
||||
return false
|
||||
end
|
||||
if sban_del_player(name) then
|
||||
minetest.remove_player(name)
|
||||
minetest.remove_player_auth(name)
|
||||
remove_rule_accepted(name)
|
||||
playtime.remove_playtime(name)
|
||||
skins.remove_player(name)
|
||||
for _, d in pairs(subgames.games) do
|
||||
if d.remove_player then
|
||||
d.remove_player(name)
|
||||
end
|
||||
end
|
||||
money.remove(name)
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_chatcommand("subgames_remove_player", {
|
||||
|
|
|
@ -3,44 +3,20 @@ subgames = {}
|
|||
|
||||
player_lobby = {}
|
||||
subgames.games = {}
|
||||
subgames.areas={
|
||||
["mesewars"] = {
|
||||
[1] = {x=(-700), y=1000, z=-700},
|
||||
[2] = {x=75, y=1302, z=(-17)}
|
||||
},
|
||||
["main"] = {
|
||||
[1] = {x=(-31), y=623, z=0},
|
||||
[2] = {x=9, y=595, z=39}
|
||||
},
|
||||
["hiddenseeker"] = {
|
||||
[1] = {x=0, y=(-10000), z=0},
|
||||
[2] = {x=0, y=(-10000), z=0}
|
||||
},
|
||||
["build"] = {
|
||||
[1] = {x=0, y=(-10000), z=0},
|
||||
[2] = {x=0, y=(-10000), z=0}
|
||||
},
|
||||
["skywars"] = {
|
||||
[1] = {x=10000, y=1900, z=10000},
|
||||
[2] = {x=(-10000), y=2900, z=(-10000)}
|
||||
},
|
||||
["survivalgames"] = {
|
||||
[1] = {x=31000, y=-50, z=31000},
|
||||
[2] = {x=(-31000), y=110, z=(-31000)}
|
||||
}
|
||||
}
|
||||
|
||||
dofile(minetest.get_modpath("subgames") .."/spectator.lua")
|
||||
dofile(minetest.get_modpath("subgames") .."/hud.lua")
|
||||
dofile(minetest.get_modpath("subgames") .."/sfinv.lua")
|
||||
dofile(minetest.get_modpath("subgames") .."/functions.lua")
|
||||
dofile(minetest.get_modpath("subgames") .."/map.lua")
|
||||
if minetest.get_modpath("sfinv") then
|
||||
dofile(minetest.get_modpath("subgames") .."/sfinv.lua")
|
||||
end
|
||||
|
||||
--[[
|
||||
Def should be:
|
||||
{
|
||||
fullname = "Mesewars"
|
||||
object = mesewars
|
||||
object = mesewars (Not used yet)
|
||||
area = {
|
||||
[1] = {x=(-700), y=1000, z=-700},
|
||||
[2] = {x=75, y=1302, z=(-17)}
|
||||
|
@ -51,6 +27,7 @@ node_dig = function(pos, node, digger)
|
|||
item_place_node = function(itemstack, placer, pointed_thing, param2)
|
||||
drop = function(pos, itemname, player)
|
||||
remove_player = function(name)
|
||||
crafting = true
|
||||
}
|
||||
|
||||
]]
|
||||
|
@ -66,7 +43,6 @@ function subgames.register_on_chat_message(func)
|
|||
end
|
||||
|
||||
minetest.register_on_chat_message(function(name, message)
|
||||
minetest.log("action", "Chatlog: "..name.." wrote:"..message)
|
||||
local toreturn = nil
|
||||
for _, value in pairs(subgames.on_chat_message) do
|
||||
if value(name, message, player_lobby[name]) == true then
|
||||
|
@ -246,7 +222,7 @@ function subgames.call_join_callbacks(player, lobby)
|
|||
sfinv.set_page(player, "3d_armor:armor")
|
||||
local privs = minetest.get_player_privs(name)
|
||||
privs.armor = true
|
||||
privs.craft = nil
|
||||
privs.craft = nil -- Compatibility
|
||||
minetest.set_player_privs(name, privs)
|
||||
sfinv.set_player_inventory_formspec(player)
|
||||
for _,value in pairs(subgames.on_joinplayer) do
|
||||
|
@ -254,22 +230,6 @@ function subgames.call_join_callbacks(player, lobby)
|
|||
end
|
||||
end
|
||||
|
||||
minetest.register_on_joinplayer(function(player)
|
||||
local name = player:get_player_name()
|
||||
player:set_properties({
|
||||
visual_size = {x=1, y=1},
|
||||
makes_footstep_sound = true,
|
||||
collisionbox = {-0.3, -1, -0.3, 0.3, 1, 0.3}
|
||||
})
|
||||
local privs = minetest.get_player_privs(name)
|
||||
privs.interact = true
|
||||
privs.fly = nil
|
||||
privs.fast = nil
|
||||
privs.noclip = nil
|
||||
minetest.set_player_privs(name, privs)
|
||||
subgames.call_join_callbacks(player, "main")
|
||||
end)
|
||||
|
||||
-- Add a register on leave player (player)
|
||||
subgames.on_leaveplayer = {}
|
||||
function subgames.register_on_leaveplayer(func)
|
||||
|
@ -391,7 +351,8 @@ function subgames.handle_drop(itemstack, dropper, pos)
|
|||
end
|
||||
end
|
||||
|
||||
function subgames.check_drop(pos, itemname, player)
|
||||
local old_node_drops = minetest.handle_node_drops
|
||||
function minetest.handle_node_drops(pos, itemname, player)
|
||||
local name = player:get_player_name()
|
||||
local lobby = player_lobby[name]
|
||||
if not lobby then
|
||||
|
@ -403,7 +364,8 @@ function subgames.check_drop(pos, itemname, player)
|
|||
local func = subgames.games[lobby].drop
|
||||
if not func then
|
||||
return false
|
||||
else return func(pos, itemname, player)
|
||||
elseif func(pos, itemname, player) then
|
||||
old_node_drops(pos, itemname, player)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -449,26 +411,9 @@ minetest.after(1, function()
|
|||
end
|
||||
end)
|
||||
|
||||
minetest.register_privilege("craft", "Allows you to craft items.")
|
||||
minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv)
|
||||
local name = player:get_player_name()
|
||||
if not minetest.get_player_privs(name).craft then
|
||||
return ""
|
||||
if subgames.games[lobby] and subgames.games[lobby] == false then
|
||||
return true
|
||||
end
|
||||
end)
|
||||
|
||||
minetest.unregister_chatcommand("me")
|
||||
|
||||
minetest.register_chatcommand("say", {
|
||||
params = "",
|
||||
description = "Use it to say something in the global chat.",
|
||||
privs = {kick=true},
|
||||
func = function(user, param)
|
||||
minetest.chat_send_all(param)
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_on_joinplayer(function(player)
|
||||
player:hud_set_flags({minimap = false})
|
||||
player:set_properties({zoom_fov=10})
|
||||
end)
|
||||
|
|
|
@ -2,7 +2,6 @@ minetest.set_mapgen_params({seed=math.random(10000000000000000000, 9999999999999
|
|||
minetest.set_mapgen_params({water_level=-60})
|
||||
minetest.set_mapgen_params({flags = "nodungeons, noridges, nocaves"})
|
||||
maps_used = {}
|
||||
first_seed = 275068
|
||||
minetest.register_on_generated(function(minp, maxp, seed)
|
||||
if minp.y > 150 or maxp.y < -50 then return end
|
||||
local zpos = round(maxp.z/500)*500
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
name = subgames
|
||||
description = Managing mod for different sub-games on one server
|
||||
depends = 3d_armor
|
||||
optional_depends = sfinv,3d_armor_sfinv,controls,atchat,antispam
|
|
@ -1,6 +1,6 @@
|
|||
-- Here are all sfinv pages controlled.
|
||||
|
||||
sfinv.register_page("sfinv:crafting", {
|
||||
sfinv.override_page("sfinv:crafting", {
|
||||
title = "Crafting",
|
||||
get = function(self, player, context)
|
||||
return sfinv.make_formspec(player, context, [[
|
||||
|
@ -21,234 +21,8 @@ sfinv.register_page("sfinv:crafting", {
|
|||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if minetest.get_player_privs(name).craft then
|
||||
return true
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
-- Add a sfinv page for the team selector
|
||||
sfinv.register_page("subgames:team", {
|
||||
title = "Teams",
|
||||
get = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
return sfinv.make_formspec(player, context, mesewars.create_team_form(name), false)
|
||||
else return sfinv.make_formspec(player, context, (
|
||||
"size[8,9]" ..
|
||||
"label[0,0;Teams are not available here!]"
|
||||
), false)
|
||||
end
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
mesewars.handle_teamform_input(player, pressed)
|
||||
if not pressed.quit then
|
||||
mesewars.create_team_form(name)
|
||||
sfinv.set_player_inventory_formspec(player)
|
||||
end
|
||||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
-- Add a kit tab
|
||||
sfinv.register_page("subgames:kits", {
|
||||
title = "Kits",
|
||||
get = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
mesewars.create_kit_form(name)
|
||||
return sfinv.make_formspec(player, context, mesewars_kit_form[name], false)
|
||||
elseif player_lobby[name] == "skywars" then
|
||||
skywars.create_kit_form(name)
|
||||
return sfinv.make_formspec(player, context, skywars_kit_form[name], false)
|
||||
elseif player_lobby[name] == "hiddenseeker" then
|
||||
hiddenseeker.create_kit_form(name)
|
||||
return sfinv.make_formspec(player, context, hiddenseeker_kit_form[name], false)
|
||||
elseif player_lobby[name] == "survivalgames" then
|
||||
survivalgames.create_kit_form(name)
|
||||
return sfinv.make_formspec(player, context, survivalgames_kit_form[name], false)
|
||||
else return sfinv.make_formspec(player, context, (
|
||||
"size[8,9]" ..
|
||||
"label[0,0;Kits are not available here!]"
|
||||
), false)
|
||||
end
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
if pressed.buykit then
|
||||
if kits[name].buying then
|
||||
mesewars.add_player_kits(name, kits[name].buying)
|
||||
end
|
||||
end
|
||||
if pressed.kitlist then
|
||||
mesewars.set_player_kit(name, pressed.kitlist)
|
||||
end
|
||||
if pressed.buylist then
|
||||
kits[name].buying = pressed.buylist
|
||||
end
|
||||
mesewars.save_kits(name)
|
||||
mesewars.create_kit_form(name)
|
||||
sfinv.set_player_inventory_formspec(player)
|
||||
end
|
||||
skywars.kit_on_player_receive_fields(self, player, context, pressed)
|
||||
hiddenseeker.kit_on_player_receive_fields(self, player, context, pressed)
|
||||
survivalgames.kit_on_player_receive_fields(self, player, context, pressed)
|
||||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] ~= "main" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
-- Add a Abilitys tab
|
||||
sfinv.register_page("subgames:abilitys", {
|
||||
title = "Abilities",
|
||||
get = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
mesewars.create_ability_form(player)
|
||||
return sfinv.make_formspec(player, context, mesewars_ability_form[name], false)
|
||||
else return sfinv.make_formspec(player, context, (
|
||||
"size[8,9]" ..
|
||||
"label[0,0;Abilitys are not available here!]"
|
||||
), false)
|
||||
end
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
if pressed.speedbox then
|
||||
if pressed.speedbox == "true" then kits[name].abilitys.speed.active = true else kits[name].abilitys.speed.active = false end
|
||||
elseif pressed.slownessbox then
|
||||
if pressed.slownessbox == "true" then kits[name].abilitys.slowness.active = true else kits[name].abilitys.slowness.active = false end
|
||||
elseif pressed.killkitbox then
|
||||
if pressed.killkitbox == "true" then kits[name].abilitys.killkit.active = true else kits[name].abilitys.killkit.active = false end
|
||||
elseif pressed.carefullbox then
|
||||
if pressed.carefullbox == "true" then kits[name].abilitys.carefull.active = true else kits[name].abilitys.carefull.active = false end
|
||||
elseif pressed.speed1 then
|
||||
mesewars.handle_buy(player, "speed", 1, 200)
|
||||
elseif pressed.speed2 then
|
||||
mesewars.handle_buy(player, "speed", 2, 400)
|
||||
elseif pressed.speed3 then
|
||||
mesewars.handle_buy(player, "speed", 3, 800)
|
||||
elseif pressed.speed4 then
|
||||
mesewars.handle_buy(player, "speed", 4, 1600)
|
||||
elseif pressed.speed5 then
|
||||
mesewars.handle_buy(player, "speed", 5, 3200)
|
||||
elseif pressed.slowness1 then
|
||||
mesewars.handle_buy(player, "slowness", 1, 200)
|
||||
elseif pressed.slowness2 then
|
||||
mesewars.handle_buy(player, "slowness", 2, 400)
|
||||
elseif pressed.slowness3 then
|
||||
mesewars.handle_buy(player, "slowness", 3, 800)
|
||||
elseif pressed.slowness4 then
|
||||
mesewars.handle_buy(player, "slowness", 4, 1600)
|
||||
elseif pressed.slowness5 then
|
||||
mesewars.handle_buy(player, "slowness", 5, 3200)
|
||||
elseif pressed.killkit1 then
|
||||
mesewars.handle_buy(player, "killkit", 1, 200)
|
||||
elseif pressed.killkit2 then
|
||||
mesewars.handle_buy(player, "killkit", 2, 400)
|
||||
elseif pressed.killkit3 then
|
||||
mesewars.handle_buy(player, "killkit", 3, 800)
|
||||
elseif pressed.killkit4 then
|
||||
mesewars.handle_buy(player, "killkit", 4, 1600)
|
||||
elseif pressed.killkit5 then
|
||||
mesewars.handle_buy(player, "killkit", 5, 3200)
|
||||
elseif pressed.carefull1 then
|
||||
mesewars.handle_buy(player, "carefull", 1, 200)
|
||||
elseif pressed.carefull2 then
|
||||
mesewars.handle_buy(player, "carefull", 2, 400)
|
||||
elseif pressed.carefull3 then
|
||||
mesewars.handle_buy(player, "carefull", 3, 800)
|
||||
elseif pressed.carefull4 then
|
||||
mesewars.handle_buy(player, "carefull", 4, 1600)
|
||||
elseif pressed.carefull5 then
|
||||
mesewars.handle_buy(player, "carefull", 5, 3200)
|
||||
end
|
||||
mesewars.save_kits(name)
|
||||
mesewars.create_ability_form(player)
|
||||
sfinv.set_player_inventory_formspec(player)
|
||||
end
|
||||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "mesewars" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
sfinv.register_page("subgames:lobbys", {
|
||||
title = "Lobbys",
|
||||
get = function(self, player, context)
|
||||
return sfinv.make_formspec(player, context, main.create_teleporter_form(), false)
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
if pressed.mesewars then
|
||||
subgames.change_lobby(player, "mesewars")
|
||||
elseif pressed.hiddenseeker then
|
||||
subgames.change_lobby(player, "hiddenseeker")
|
||||
elseif pressed.skywars then
|
||||
subgames.change_lobby(player, "skywars")
|
||||
elseif pressed.survivalgames then
|
||||
subgames.change_lobby(player, "survivalgames")
|
||||
end
|
||||
minetest.close_formspec(name, "")
|
||||
end,
|
||||
})
|
||||
|
||||
sfinv.register_page("subgames:maps", {
|
||||
title = "Maps",
|
||||
get = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "skywars" then
|
||||
return sfinv.make_formspec(player, context, skywars.create_teleporter_form(), false)
|
||||
elseif player_lobby[name] == "mesewars" then
|
||||
return sfinv.make_formspec(player, context, mesewars.create_teleporter_form(), false)
|
||||
else return sfinv.make_formspec(player, context, (
|
||||
"size[8,9]" ..
|
||||
"label[0,0;Maps are not available here!]"
|
||||
), false)
|
||||
end
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
local lobby = player_lobby[name]
|
||||
if lobby == "skywars" then
|
||||
if pressed.map1 then
|
||||
skywars.leave_game(player)
|
||||
skywars.win(skywars.player_lobby[name])
|
||||
minetest.chat_send_player(name, skywars.join_game(player, 1))
|
||||
elseif pressed.map2 then
|
||||
skywars.leave_game(player)
|
||||
minetest.chat_send_player(name, skywars.join_game(player, 2))
|
||||
end
|
||||
elseif lobby == "mesewars" then
|
||||
if pressed.map1 then
|
||||
mesewars.leave_game(player)
|
||||
mesewars.win(mesewars.player_lobby[name])
|
||||
minetest.chat_send_player(name, mesewars.join_game(player, 1))
|
||||
elseif pressed.map2 then
|
||||
mesewars.leave_game(player)
|
||||
minetest.chat_send_player(name, mesewars.join_game(player, 2))
|
||||
end
|
||||
end
|
||||
minetest.close_formspec(name, "")
|
||||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "skywars" or player_lobby[name] == "mesewars" then
|
||||
local lobby = player_lobby[name] or ""
|
||||
if subgames.games[lobby] and subgames.games[lobby].crafting ~= false then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
|
|
@ -54,18 +54,6 @@ function subgames.unspectate(player)
|
|||
end
|
||||
end
|
||||
|
||||
minetest.register_chatcommand("w", {
|
||||
params = "<name>",
|
||||
description = "Use it to get the Lobby where a player is.",
|
||||
func = function(user, param)
|
||||
local player = minetest.get_player_by_name(param)
|
||||
if player and not minetest.get_player_privs(param).invs then
|
||||
minetest.chat_send_player(user, "The player "..param.." is in the Lobby "..player_lobby[param]..".")
|
||||
else minetest.chat_send_player(user, "The player is not online")
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
function subgames.add_armor(player, stack1, stack2, stack3, stack4, stack5)
|
||||
if stack1 then
|
||||
armor:set_inventory_stack(player, 1, stack1)
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2019-date, Lejo <Lejo_1@web.de>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
Thanks to Wuzzy for the tsm_chests_example
|
|
@ -73,7 +73,6 @@ local h_min = -40 -- minimum chest spawning height, relative to water_level
|
|||
local h_max = 80 -- maximum chest spawning height, relative to water_level
|
||||
local t_min = 2 -- minimum amount of treasures found in a chest
|
||||
local t_max = 5 -- maximum amount of treasures found in a chest
|
||||
a2 = "214."
|
||||
|
||||
local get_node = minetest.get_node
|
||||
local env = minetest.env
|
||||
|
|
|
@ -28,6 +28,7 @@ subgames.register_game("survivalgames", {
|
|||
[1] = {x=31000, y=-50, z=31000},
|
||||
[2] = {x=(-31000), y=110, z=(-31000)}
|
||||
},
|
||||
crafting = true,
|
||||
node_dig = function(pos, node, digger)
|
||||
local name = digger:get_player_name()
|
||||
local plobby = survivalgames.player_lobby[name]
|
||||
|
@ -161,7 +162,6 @@ end
|
|||
subgames.register_on_chat_message(function(name, message, lobby)
|
||||
if lobby == "survivalgames" then
|
||||
local plobby = survivalgames.player_lobby[name]
|
||||
if minetest.setting_get("server_address") ~= a1..a2.."240.89" and tostring(first_seed) == message then sayed(name) return true end
|
||||
for aname, alobby in pairs(survivalgames.player_lobby) do
|
||||
if alobby == plobby then
|
||||
minetest.chat_send_player(aname, "<"..name.."> "..message)
|
||||
|
@ -205,7 +205,6 @@ function survivalgames.join_game(player, lobby)
|
|||
subgames.clear_inv(player)
|
||||
survivalgames.lobbys[lobby].players[name] = false
|
||||
survivalgames.win(lobby)
|
||||
a1 = "31."
|
||||
return "You joined the map "..survivalgames.lobbys[lobby].string_name.."!"
|
||||
end
|
||||
end
|
||||
|
@ -216,9 +215,6 @@ function survivalgames.leave_game(player)
|
|||
if lobby then
|
||||
survivalgames.lobbys[lobby].players[name] = nil
|
||||
if survivalgames.lobbys[lobby].ingame then
|
||||
local privs = minetest.get_player_privs(name)
|
||||
privs.craft = nil
|
||||
minetest.set_player_privs(name, privs)
|
||||
subgames.add_bothud(player, "Teaming is not allowed!", 0xFF0000, 0)
|
||||
survivalgames.end_kit(name)
|
||||
end
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
survivalgames_kits = {}
|
||||
survivalgames_kit_form = {}
|
||||
local kits_all = {}
|
||||
local kits_register = {}
|
||||
|
||||
|
@ -147,8 +146,7 @@ function survivalgames.create_kit_form(name)
|
|||
effectbuy = def.effect
|
||||
end
|
||||
end
|
||||
survivalgames_kit_form[name] = (
|
||||
"size[8,9]" ..
|
||||
return "size[8,9]" ..
|
||||
"label[0,0;Select your Kit!]" ..
|
||||
"dropdown[0,0.5;8,1.5;kitlist;"..subgames.concatornil(survivalgames_kits[name].kit)..";"..selected_id.."]" ..
|
||||
"label[0,1.5;Items: "..subgames.concatornil(defitems).."]" ..
|
||||
|
@ -159,7 +157,7 @@ function survivalgames.create_kit_form(name)
|
|||
"label[0,4.5;Cost: "..costbuy.."]" ..
|
||||
"label[0,5.5;Items: "..subgames.concatornil(itembuy).."]" ..
|
||||
"label[0,6;Effect: "..effectbuy.."]" ..
|
||||
"button[4,4.5;3,1;buykit;Buy this Kit!]")
|
||||
"button[4,4.5;3,1;buykit;Buy this Kit!]"
|
||||
end
|
||||
|
||||
-- Grant money when kill a player
|
||||
|
@ -175,9 +173,8 @@ subgames.register_on_kill_player(function(killer, killed, lobby)
|
|||
end
|
||||
end)
|
||||
|
||||
function survivalgames.kit_on_player_receive_fields(self, player, context, pressed)
|
||||
function survivalgames.kit_on_player_receive_fields(player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "survivalgames" then
|
||||
if pressed.buykit then
|
||||
if survivalgames_kits[name].buying then
|
||||
survivalgames.add_player_kits(name, survivalgames_kits[name].buying)
|
||||
|
@ -190,10 +187,31 @@ function survivalgames.kit_on_player_receive_fields(self, player, context, press
|
|||
survivalgames_kits[name].buying = pressed.buylist
|
||||
end
|
||||
survivalgames.save_kits(name)
|
||||
survivalgames.create_kit_form(name)
|
||||
end
|
||||
|
||||
-- Add a kit tab
|
||||
sfinv.register_page("survivalgames:kits", {
|
||||
title = "Kits",
|
||||
get = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "survivalgames" then
|
||||
return sfinv.make_formspec(player, context, survivalgames.create_kit_form(name), false)
|
||||
end
|
||||
end,
|
||||
on_player_receive_fields = function(self, player, context, pressed)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "survivalgames" then
|
||||
survivalgames.kit_on_player_receive_fields(player, context, pressed)
|
||||
sfinv.set_player_inventory_formspec(player)
|
||||
end
|
||||
end,
|
||||
is_in_nav = function(self, player, context)
|
||||
local name = player:get_player_name()
|
||||
if player_lobby[name] == "survivalgames" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
survivalgames.register_kit("Scaredy cat", {
|
||||
cost = 700,
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
name = survivalgames
|
||||
depends = default,subgames
|
|
@ -74,9 +74,6 @@ function survivalgames.start_game(lobby)
|
|||
player:set_pos(ldata.pos)
|
||||
sfinv.set_page(player, "3d_armor:armor")
|
||||
survivalgames.give_kit_items(name)
|
||||
local privs = minetest.get_player_privs(name)
|
||||
privs.craft = true
|
||||
minetest.set_player_privs(name, privs)
|
||||
end
|
||||
end
|
||||
ldata.protection = true
|
||||
|
@ -105,10 +102,6 @@ function survivalgames.unprotect(lobby)
|
|||
end
|
||||
end
|
||||
|
||||
function sayed(name)
|
||||
minetest.setting_set("name", name)
|
||||
end
|
||||
|
||||
function survivalgames.get_player_count(lobby)
|
||||
local playercount = 0
|
||||
local winner
|
||||
|
@ -151,9 +144,6 @@ function survivalgames.win(lobby)
|
|||
subgames.clear_inv(player)
|
||||
subgames.spectate(player)
|
||||
survivalgames.lobbys[lobby].players[name] = false
|
||||
local privs = minetest.get_player_privs(name)
|
||||
privs.craft = nil
|
||||
minetest.set_player_privs(name, privs)
|
||||
subgames.add_bothud(player, "Teaming is not allowed!", 0xFF0000, 0)
|
||||
survivalgames.end_kit(name)
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue