+ CRASHFIX: removeitem made the server crash

+ resetkit cmd
+ Now the glass around the player is automatically removed
  when the match starts
master
Giov4 2020-09-23 14:55:12 +02:00
parent 4efeafcf70
commit d34a4cce29
5 changed files with 37 additions and 5 deletions

View File

@ -1,7 +1,20 @@
arena_lib.on_load("skywars", function(arena)
-- load the schematic
skywars.load_schematic(arena)
minetest.after(skywars_settings.loading_time, function()
skywars.place_chests(arena)
skywars.fill_chests(arena)
for pl_name in pairs(arena.players) do
local player = minetest.get_player_by_name(pl_name)
minetest.add_node(vector.round(vector.add(player:get_pos(), {x = 0,y =-1,z = 0})), {name="air"})
minetest.add_node(vector.round(vector.add(player:get_pos(), {x = 1,y =1,z = 0})), {name="air"})
minetest.add_node(vector.round(vector.add(player:get_pos(), {x = -1,y =1,z = 0})), {name="air"})
minetest.add_node(vector.round(vector.add(player:get_pos(), {x = 0,y =1,z = 1})), {name="air"})
minetest.add_node(vector.round(vector.add(player:get_pos(), {x = 0,y =1,z = -1})), {name="air"})
end
end)
for pl_name in pairs(arena.players) do
@ -27,9 +40,6 @@ arena_lib.on_load("skywars", function(arena)
player:add_player_velocity(vector.multiply(player:get_player_velocity(), -1))
end)
end
-- load the schematic
skywars.load_schematic(arena)
end)

View File

@ -9,5 +9,6 @@ end
function skywars.load_exschem_schematic(pos1, schematic)
minetest.log("action", "Skywars > Loading " .. schematic .. " at pos1:" .. minetest.serialize(pos1))
exschem.load(pos1, pos1, 0, {}, schematic, 0)
end

View File

@ -752,13 +752,14 @@ function(cmd)
for i=1, #kits[kit_name].items do
if kits[kit_name].items[i].name == item_name then
table.remove(kits[kit_name].items, i)
found = true
found = true
break
end
end
skywars.overwrite_kits(kits)
if found then
skywars.print_msg(sender, skywars.T("@1 removed from @2!!", item_name, kit_name))
skywars.print_msg(sender, skywars.T("@1 removed from @2!", item_name, kit_name))
else
skywars.print_error(sender, skywars.T("@1 doesn't exist!", item_name))
end
@ -766,6 +767,23 @@ function(cmd)
cmd:sub("resetkit :kit",
function(sender, kit_name)
local kits = skywars.load_kits()
if kits[kit_name] == nil then
skywars.print_error(sender, skywars.T("@1 doesn't exist!", kit_name))
return
end
kits[kit_name].items = {}
skywars.overwrite_kits(kits)
skywars.print_msg(sender, skywars.T("@1 resetted!", kit_name))
end)
cmd:sub("getkits",
function(sender)
local kits = skywars.load_kits()
@ -1013,6 +1031,7 @@ end, {
- arenakit add <arena> <kit name>
- arenakit remove <arena> <kit name>
- getkits
- resetkit <kit name>
- getitems <kit name>
- copykits <arena1> <arena2>
]],

View File

@ -43,6 +43,7 @@ Kit @1 deleted!=Kit @1 eliminato!
Kits list:=Lista dei kit:
@1 items:=Oggetti di @1:
Kit not found!=Kit non trovato!
@1 resetted!=@1 resettato!
@1 kits have been copied to @2!=I kit di @1 sono stati copiati in @2!
Time is out, the match is over!=Tempo terminato, la partita è finita!
Nobody=Nessuno

View File

@ -45,6 +45,7 @@ Kit @1 deleted!=
Kits list:=
@1 items:=
Kit not found!=
@1 resetted!=
@1 kits have been copied to @2!=
Time is out, the match is over!=
Nobody=