Better team creation code, update ctf_pvp_engine

This commit is contained in:
rubenwardy 2016-03-30 00:24:12 +01:00
parent d18c0c88cf
commit 9a6e6a5c55
3 changed files with 29 additions and 25 deletions

View file

@ -31,7 +31,13 @@ ctf.friendly_fire = false
ctf.autoalloc_on_joinplayer = true ctf.autoalloc_on_joinplayer = true
ctf.match = true ctf.match = true
ctf.match.teams = red, red, 7, 65, 93; blue, blue, -22, 66, -78 match.teams = 2
match.team.1 = red
match.team.1.color = red
match.team.1.pos = 7,65,93
match.team.2 = blue
match.team.2.color = blue
match.team.2.pos = -22,66,-78
ctf.match.build_time = 240 ctf.match.build_time = 240
ctf.match.clear_inv = true ctf.match.clear_inv = true
ctf.match.destroy_team = true ctf.match.destroy_team = true

View file

@ -2,7 +2,13 @@ ctf.register_on_init(function()
ctf._set("match", false) ctf._set("match", false)
ctf._set("match.destroy_team", false) ctf._set("match.destroy_team", false)
ctf._set("match.break_alliances", true) ctf._set("match.break_alliances", true)
ctf._set("match.teams", "") ctf._set("match.teams", 2)
ctf._set("match.team.1", "red")
ctf._set("match.team.1.color", "red")
ctf._set("match.team.1.pos", "7,65,93")
ctf._set("match.team.2", "blue")
ctf._set("match.team.2.color", "blue")
ctf._set("match.team.2.pos", "-22,66,-78")
ctf._set("match.clear_inv", false) ctf._set("match.clear_inv", false)
end) end)
@ -61,28 +67,18 @@ function ctf_match.check_for_winner()
end end
end end
ctf.register_on_new_game(function() function ctf_match.create_teams()
local teams = ctf.setting("match.teams") local number = ctf.setting("match.teams")
if teams:trim() == "" then
return
end
ctf.log("match", "Setting up new game!")
teams = teams:split(";") for i = 1, number do
for i, v in pairs(teams) do print("Creating team #" .. i)
local team = v:split(",") local name = ctf.setting("match.team." .. i)
if #team == 5 then local color = ctf.setting("match.team." .. i .. ".color")
local name = team[1]:trim() local pos = ctf.setting("match.team." .. i .. ".pos")
local color = team[2]:trim() local flag = minetest.string_to_pos(pos)
local x = tonumber(team[3]:trim())
local y = tonumber(team[4]:trim())
local z = tonumber(team[5]:trim())
local flag = {
x = x,
y = y,
z = z
}
if name and color and pos and flag then
print(" - Success in getting settings")
ctf.team({ ctf.team({
name = name, name = name,
color = color, color = color,
@ -94,10 +90,12 @@ ctf.register_on_new_game(function()
minetest.after(0, function() minetest.after(0, function()
ctf_flag.assert_flag(flag) ctf_flag.assert_flag(flag)
end) end)
else
ctf.warning("match", "Invalid team setup: " .. dump(v))
end end
end end
end
ctf.register_on_new_game(function()
ctf_match.create_teams()
for i, player in pairs(minetest.get_connected_players()) do for i, player in pairs(minetest.get_connected_players()) do
local name = player:get_player_name() local name = player:get_player_name()

@ -1 +1 @@
Subproject commit cddcf972743ac679b2520f5ce816d1e526e3e43c Subproject commit 8c073e1b0d2f8b9c182f91b595dee52486e90462