Diplomacy gui, rely less on meta data, and fixes
This commit is contained in:
parent
9b57579fb9
commit
cc724a9d81
27
README.md
27
README.md
@ -74,17 +74,24 @@ The fire arms mod is installed
|
|||||||
Commands
|
Commands
|
||||||
========
|
========
|
||||||
|
|
||||||
Admin only
|
|
||||||
----------
|
|
||||||
Uses priv "team"
|
|
||||||
* /ateam <name> - add a team called <name>.
|
|
||||||
* /team_owner <name> - make a player the mod or not off the team (toggle)
|
|
||||||
* (coming soon) /join <name> <team> - add player <name> to team <team>.
|
|
||||||
* (coming soon) /lock <team> - stop any players joining team <team>
|
|
||||||
* (coming soon) /unlock <team> - allow players to join team <team>
|
|
||||||
|
|
||||||
Players
|
Players
|
||||||
-------
|
-------
|
||||||
* /team - view team panel
|
* /team - view team panel
|
||||||
* /list_teams - list all teams and their statistics
|
* /list_teams - list all teams and their statistics
|
||||||
* /join <team> - join the team <team>
|
* /join <team> - join the team <team>
|
||||||
|
* /all <msg> - chat on the global channel
|
||||||
|
|
||||||
|
Team owners
|
||||||
|
-----------
|
||||||
|
(coming soon) All these commands can be disabled from team owner's using settings
|
||||||
|
* /post <msg> - posts a msg to the news board (team owners can use this as well if ctf_team_owners_post is true)
|
||||||
|
* (coming soon) /lock <team> - stop any players joining team <team>
|
||||||
|
* (coming soon) /unlock <team> - allow players to join team <team>
|
||||||
|
|
||||||
|
Administrators only
|
||||||
|
-------------------
|
||||||
|
Uses priv "team"
|
||||||
|
* /ateam <name> - add a team called <name>
|
||||||
|
* /team_owner <name> - make a player the mod or not off the team (toggle)
|
||||||
|
* /reload_ctf - reload the core and settings
|
||||||
|
*/ctf - run debug functions and clean functions
|
@ -38,7 +38,7 @@ function cf.area.get_flag(pos)
|
|||||||
print(dump(team.flags[i]))
|
print(dump(team.flags[i]))
|
||||||
print("----------------")
|
print("----------------")
|
||||||
else
|
else
|
||||||
result = {pos=team.flags[i],team=team.data.name}
|
result = team.flags[i]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -100,17 +100,15 @@ end
|
|||||||
-- gets the name of the owner of that location
|
-- gets the name of the owner of that location
|
||||||
function cf.area.get_area(pos)
|
function cf.area.get_area(pos)
|
||||||
local closest = cf.area.nearest_flag(pos)
|
local closest = cf.area.nearest_flag(pos)
|
||||||
|
|
||||||
if not closest then
|
if not closest then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
local flag = cf.area.get_flag(closest)
|
||||||
local meta = minetest.env:get_meta(closest)
|
|
||||||
if not meta then
|
if flag then
|
||||||
return false
|
return flag.team
|
||||||
end
|
end
|
||||||
|
return false
|
||||||
return meta:get_string("team")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- updates the spawn position for a team
|
-- updates the spawn position for a team
|
||||||
@ -119,12 +117,13 @@ function cf.area.get_spawn(team)
|
|||||||
|
|
||||||
if team and cf.teams and cf.team(team) then
|
if team and cf.teams and cf.team(team) then
|
||||||
if cf.team(team).spawn and minetest.env:get_node(cf.team(team).spawn).name == "capturetheflag:flag" then
|
if cf.team(team).spawn and minetest.env:get_node(cf.team(team).spawn).name == "capturetheflag:flag" then
|
||||||
-- Get meta data
|
local flag = cf.area.get_flag(cf.team(team).spawn)
|
||||||
local meta = minetest.env:get_meta(cf.team(team).spawn)
|
|
||||||
local _team = nil
|
if not flag then
|
||||||
if meta then
|
return false
|
||||||
_team = meta:get_string("team")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local _team = flag.team
|
||||||
|
|
||||||
-- Check to see if spawn is already defined
|
-- Check to see if spawn is already defined
|
||||||
if team == _team then
|
if team == _team then
|
||||||
@ -149,25 +148,10 @@ function cf.area.asset_flags(team)
|
|||||||
print("Checking the flags of "..team)
|
print("Checking the flags of "..team)
|
||||||
|
|
||||||
local tmp = cf.team(team).flags
|
local tmp = cf.team(team).flags
|
||||||
local new = {}
|
|
||||||
|
|
||||||
for i=1,#tmp do
|
for i=1,#tmp do
|
||||||
if tmp[i] and minetest.env:get_node(tmp[i]) and minetest.env:get_node(tmp[i]).name == "capturetheflag:flag" then
|
if tmp[i] and (not minetest.env:get_node(tmp[i]) or not minetest.env:get_node(tmp[i]).name == "capturetheflag:flag") then
|
||||||
-- Get meta data
|
print("Replacing flag...")
|
||||||
local meta = minetest.env:get_meta(tmp[i])
|
|
||||||
local _team = nil
|
|
||||||
if meta then
|
|
||||||
_team = meta:get_string("team")
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Check to see if spawn is already defined
|
|
||||||
if team == _team then
|
|
||||||
table.insert(new,tmp[i])
|
|
||||||
else
|
|
||||||
print(_team.." is not "..team.." at "..dump(tmp[i]))
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
cf.team(team).flags = new
|
|
||||||
end
|
end
|
@ -95,6 +95,7 @@ minetest.register_chatcommand("all", {
|
|||||||
description = "Send a message on the global channel",
|
description = "Send a message on the global channel",
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
if not cf.settings.global_channel then
|
if not cf.settings.global_channel then
|
||||||
|
minetest.chat_send_player(name,"The global channel is disabled")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -133,6 +134,10 @@ minetest.register_chatcommand("post", {
|
|||||||
-- Chat plus stuff
|
-- Chat plus stuff
|
||||||
if chatplus then
|
if chatplus then
|
||||||
chatplus.register_handler(function(from,to,msg)
|
chatplus.register_handler(function(from,to,msg)
|
||||||
|
if not cf.settings.team_channel then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
local fromp = cf.player(from)
|
local fromp = cf.player(from)
|
||||||
local top = cf.player(to)
|
local top = cf.player(to)
|
||||||
|
|
||||||
|
@ -15,13 +15,13 @@ cf.flag_func = {
|
|||||||
if not puncher or not player then
|
if not puncher or not player then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local meta = minetest.env:get_meta(pos)
|
local flag = cf.area.get_flag(pos)
|
||||||
if not meta then
|
if not flag then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local team = meta:get_string("team")
|
local team = flag.team
|
||||||
if not team then
|
if not team then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -52,8 +52,7 @@ cf.flag_func = {
|
|||||||
cf.team(team).spawn = nil
|
cf.team(team).spawn = nil
|
||||||
|
|
||||||
if cf.settings.multiple_flags == true then
|
if cf.settings.multiple_flags == true then
|
||||||
meta:set_string("team",cf.player(player).team)
|
meta:set_string("infotext", team.."'s flag")
|
||||||
meta:set_string("infotext", meta:get_string("team").."'s flag")
|
|
||||||
cf.area.delete_flag(team,pos)
|
cf.area.delete_flag(team,pos)
|
||||||
cf.area.add_flag(cf.player(player).team,pos)
|
cf.area.add_flag(cf.player(player).team,pos)
|
||||||
else
|
else
|
||||||
@ -82,8 +81,7 @@ cf.flag_func = {
|
|||||||
|
|
||||||
if cf.players and cf.players[placer:get_player_name()] and cf.players[placer:get_player_name()].team then
|
if cf.players and cf.players[placer:get_player_name()] and cf.players[placer:get_player_name()].team then
|
||||||
local team = cf.players[placer:get_player_name()].team
|
local team = cf.players[placer:get_player_name()].team
|
||||||
meta:set_string("team", team)
|
meta:set_string("infotext", team.."'s flag")
|
||||||
meta:set_string("infotext", meta:get_string("team").."'s flag")
|
|
||||||
|
|
||||||
-- add flag
|
-- add flag
|
||||||
cf.area.add_flag(team,pos)
|
cf.area.add_flag(team,pos)
|
||||||
@ -121,8 +119,7 @@ cf.flag_func = {
|
|||||||
|
|
||||||
local meta2 = minetest.env:get_meta(pos2)
|
local meta2 = minetest.env:get_meta(pos2)
|
||||||
|
|
||||||
meta2:set_string("team", team)
|
meta2:set_string("infotext", team.."'s flag")
|
||||||
meta2:set_string("infotext", meta:get_string("team").."'s flag")
|
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(placer:get_player_name(),"You are not part of a team!")
|
minetest.chat_send_player(placer:get_player_name(),"You are not part of a team!")
|
||||||
minetest.env:set_node(pos,{name="air"})
|
minetest.env:set_node(pos,{name="air"})
|
||||||
@ -219,13 +216,9 @@ minetest.register_abm({
|
|||||||
minetest.env:set_node(top,{name="air"})
|
minetest.env:set_node(top,{name="air"})
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
flagmeta:set_string("team", flag_team_data.team)
|
|
||||||
local topmeta = minetest.env:get_meta(top)
|
local topmeta = minetest.env:get_meta(top)
|
||||||
local flag_name = nil
|
local flag_name = flag_team_data.name
|
||||||
if topmeta then
|
if flag_name and flag_name ~= "" then
|
||||||
flag_name = flagmeta:get_string("flag_name")
|
|
||||||
end
|
|
||||||
if flag_name then
|
|
||||||
flagmeta:set_string("infotext", flag_name.." - "..flag_team_data.team)
|
flagmeta:set_string("infotext", flag_name.." - "..flag_team_data.team)
|
||||||
else
|
else
|
||||||
flagmeta:set_string("infotext", flag_team_data.team.."'s flag")
|
flagmeta:set_string("infotext", flag_team_data.team.."'s flag")
|
||||||
@ -238,9 +231,7 @@ minetest.register_abm({
|
|||||||
|
|
||||||
minetest.env:set_node(top,{name="capturetheflag:flag_top_"..cf.team(flag_team_data.team).data.color})
|
minetest.env:set_node(top,{name="capturetheflag:flag_top_"..cf.team(flag_team_data.team).data.color})
|
||||||
topmeta = minetest.env:get_meta(top)
|
topmeta = minetest.env:get_meta(top)
|
||||||
topmeta:set_string("team", flag_team_data.team)
|
if flag_name and flag_name ~= "" then
|
||||||
topmeta:set_string("flag_name", flag_name)
|
|
||||||
if flag_name then
|
|
||||||
topmeta:set_string("infotext", flag_name.." - "..flag_team_data.team)
|
topmeta:set_string("infotext", flag_name.." - "..flag_team_data.team)
|
||||||
else
|
else
|
||||||
topmeta:set_string("infotext", flag_team_data.team.."'s flag")
|
topmeta:set_string("infotext", flag_team_data.team.."'s flag")
|
||||||
|
@ -108,10 +108,15 @@ if cf.settings.team_gui and cf.settings.gui then -- check if team guis are enabl
|
|||||||
|
|
||||||
for key,value in pairs(cf.teams) do
|
for key,value in pairs(cf.teams) do
|
||||||
if key ~= team then
|
if key ~= team then
|
||||||
table.insert(data,{team=key,state=cf.diplo.get(team,key)})
|
table.insert(data,{
|
||||||
|
team = key,
|
||||||
|
state = cf.diplo.get(team,key),
|
||||||
|
to = cf.diplo.check_requests(team,key),
|
||||||
|
from = cf.diplo.check_requests(key,team)
|
||||||
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
result = result .. "label[1,1;Diplomacy from the perspective of "..team.."]"
|
result = result .. "label[1,1;Diplomacy from the perspective of "..team.."]"
|
||||||
|
|
||||||
for i=1,#data do
|
for i=1,#data do
|
||||||
@ -126,14 +131,21 @@ if cf.settings.team_gui and cf.settings.gui then -- check if team guis are enabl
|
|||||||
result = result .. "button[1.25,".. height ..";2,1;team_".. data[i].team ..";".. data[i].team .."]"
|
result = result .. "button[1.25,".. height ..";2,1;team_".. data[i].team ..";".. data[i].team .."]"
|
||||||
result = result .. "label[3.75,".. height ..";".. data[i].state .."]"
|
result = result .. "label[3.75,".. height ..";".. data[i].state .."]"
|
||||||
|
|
||||||
if cf.can_mod(name,team)==true then
|
if cf.can_mod(name,team)==true and cf.player(name).team == team then
|
||||||
if data[i].state == "war" then
|
if not data[i].from and not data[i].to then
|
||||||
result = result .. "button[7.5,".. height ..";1.5,1;peace_".. data[i].team ..";Peace]"
|
if data[i].state == "war" then
|
||||||
elseif data[i].state == "peace" then
|
result = result .. "button[7.5,".. height ..";1.5,1;peace_".. data[i].team ..";Peace]"
|
||||||
result = result .. "button[6,".. height ..";1.5,1;war_".. data[i].team ..";War]"
|
elseif data[i].state == "peace" then
|
||||||
result = result .. "button[7.5,".. height ..";1.5,1;alli_".. data[i].team ..";Alliance]"
|
result = result .. "button[6,".. height ..";1.5,1;war_".. data[i].team ..";War]"
|
||||||
elseif data[i].state == "alliance" then
|
result = result .. "button[7.5,".. height ..";1.5,1;alli_".. data[i].team ..";Alliance]"
|
||||||
result = result .. "button[6,".. height ..";1.5,1;peace_".. data[i].team ..";Peace]"
|
elseif data[i].state == "alliance" then
|
||||||
|
result = result .. "button[6,".. height ..";1.5,1;peace_".. data[i].team ..";Peace]"
|
||||||
|
end
|
||||||
|
elseif data[i].from ~= nil then
|
||||||
|
result = result .. "label[6,".. height ..";request recieved]"
|
||||||
|
elseif data[i].to ~= nil then
|
||||||
|
result = result .. "label[5.5,".. height ..";request sent]"
|
||||||
|
result = result .. "button[7.5,".. height ..";1.5,1;cancel_".. data[i].team ..";Cancel]"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -243,6 +255,9 @@ if cf.settings.team_gui and cf.settings.gui then -- check if team guis are enabl
|
|||||||
if cf.player(name) and cf.player(name).team and cf.team(cf.player(name).team) then
|
if cf.player(name) and cf.player(name).team and cf.team(cf.player(name).team) then
|
||||||
if ok == "y" then
|
if ok == "y" then
|
||||||
cf.diplo.set(cf.player(name).team, cf.team(cf.player(name).team).log[tonumber(id)].team, cf.team(cf.player(name).team).log[tonumber(id)].msg)
|
cf.diplo.set(cf.player(name).team, cf.team(cf.player(name).team).log[tonumber(id)].team, cf.team(cf.player(name).team).log[tonumber(id)].msg)
|
||||||
|
cf.post(cf.player(name).team,{msg="You have accepted the "..cf.team(cf.player(name).team).log[tonumber(id)].msg.." request from "..cf.team(cf.player(name).team).log[tonumber(id)].team})
|
||||||
|
cf.post(cf.team(cf.player(name).team).log[tonumber(id)].team,{msg=cf.player(name).team.." has accepted your "..cf.team(cf.player(name).team).log[tonumber(id)].msg.." request"})
|
||||||
|
id = id + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
table.remove(cf.team(cf.player(name).team).log,id)
|
table.remove(cf.team(cf.player(name).team).log,id)
|
||||||
@ -264,6 +279,62 @@ if cf.settings.team_gui and cf.settings.gui then -- check if team guis are enabl
|
|||||||
cf.gui.team_dip(name,newteam)
|
cf.gui.team_dip(name,newteam)
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
newteam = string.match(key, "peace_(.+)")
|
||||||
|
if newteam and cf.player(name) then
|
||||||
|
local team = cf.player(name).team
|
||||||
|
|
||||||
|
if team then
|
||||||
|
if cf.diplo.get(team,newteam) == "war" then
|
||||||
|
cf.post(newteam,{type="request",msg="peace",team=team,mode="diplo"})
|
||||||
|
else
|
||||||
|
cf.diplo.set(team,newteam,"peace")
|
||||||
|
cf.post(team,{msg="You have cancelled the alliance treaty with "..newteam})
|
||||||
|
cf.post(newteam,{msg=team.." has cancelled the alliance treaty"})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
cf.gui.team_dip(name,team)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
newteam = string.match(key, "war_(.+)")
|
||||||
|
if newteam and cf.player(name) then
|
||||||
|
local team = cf.player(name).team
|
||||||
|
|
||||||
|
if team then
|
||||||
|
cf.diplo.set(team,newteam,"war")
|
||||||
|
cf.post(team,{msg="You have declared war on "..newteam})
|
||||||
|
cf.post(newteam,{msg=team.." has declared war on you"})
|
||||||
|
end
|
||||||
|
|
||||||
|
cf.gui.team_dip(name,team)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
newteam = string.match(key, "alli_(.+)")
|
||||||
|
if newteam and cf.player(name) then
|
||||||
|
local team = cf.player(name).team
|
||||||
|
|
||||||
|
if team then
|
||||||
|
cf.post(newteam,{type="request",msg="alliance",team=team,mode="diplo"})
|
||||||
|
end
|
||||||
|
|
||||||
|
cf.gui.team_dip(name,team)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
newteam = string.match(key, "cancel_(.+)")
|
||||||
|
if newteam and cf.player(name) then
|
||||||
|
local team = cf.player(name).team
|
||||||
|
|
||||||
|
if team then
|
||||||
|
cf.diplo.cancel_requests(team,newteam)
|
||||||
|
end
|
||||||
|
|
||||||
|
cf.gui.team_dip(name,team)
|
||||||
|
return true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
@ -271,24 +342,27 @@ end -- end of check if team guis are enabled
|
|||||||
|
|
||||||
-- Flag interface
|
-- Flag interface
|
||||||
function cf.gui.flag_board(name,pos)
|
function cf.gui.flag_board(name,pos)
|
||||||
local meta = minetest.env:get_meta(pos)
|
local flag = cf.area.get_flag(pos)
|
||||||
if not meta then
|
if not flag then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local team = meta:get_string("team")
|
local team = flag.team
|
||||||
if not team then
|
if not team then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if cf.can_mod(name,team) == false then
|
if cf.can_mod(name,team) == false then
|
||||||
|
if cf.player(name) and cf.player(name).team and cf.player(name).team == team then
|
||||||
|
cf.gui.team_board(name,team)
|
||||||
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local flag_name = meta:get_string("flag_name")
|
local flag_name = flag.name
|
||||||
|
|
||||||
if not cf.settings.flag_names then
|
if not cf.settings.flag_names then
|
||||||
meta:set_string("flag_name",nil)
|
flag.name = nil
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -321,12 +395,12 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if fields.save and fields.flag_name then
|
if fields.save and fields.flag_name then
|
||||||
local meta = minetest.env:get_meta(cf.gui.flag_data[name].pos)
|
local flag = cf.area.get_flag(cf.gui.flag_data[name].pos)
|
||||||
if not meta then
|
if not flag then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
local team = meta:get_string("team")
|
local team = flag.team
|
||||||
if not team then
|
if not team then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
@ -334,13 +408,13 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
if cf.can_mod(name,team) == false then
|
if cf.can_mod(name,team) == false then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
local flag_name = meta:get_string("flag_name")
|
local flag_name = flag.name
|
||||||
if not flag_name then
|
if not flag_name then
|
||||||
flag_name = ""
|
flag_name = ""
|
||||||
end
|
end
|
||||||
|
|
||||||
meta:set_string("flag_name",fields.flag_name)
|
flag.name = fields.flag_name
|
||||||
|
|
||||||
local msg = flag_name.." was renamed to "..fields.flag_name
|
local msg = flag_name.." was renamed to "..fields.flag_name
|
||||||
|
|
||||||
@ -355,15 +429,10 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||||||
return true
|
return true
|
||||||
elseif fields.delete then
|
elseif fields.delete then
|
||||||
local pos = cf.gui.flag_data[name].pos
|
local pos = cf.gui.flag_data[name].pos
|
||||||
|
|
||||||
local meta = minetest.env:get_meta(cf.gui.flag_data[name].pos)
|
local team = cf.area.get_flag(cf.gui.flag_data[name].pos).team
|
||||||
if not meta then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
local team = meta:get_string("team")
|
|
||||||
if not team then
|
if not team then
|
||||||
return false
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if cf.can_mod(name,team) == false then
|
if cf.can_mod(name,team) == false then
|
||||||
|
@ -148,6 +148,14 @@ end
|
|||||||
|
|
||||||
-- Sees if the player can change stuff in a team
|
-- Sees if the player can change stuff in a team
|
||||||
function cf.can_mod(player,team)
|
function cf.can_mod(player,team)
|
||||||
|
local privs = minetest.get_player_privs(player)
|
||||||
|
|
||||||
|
if privs then
|
||||||
|
if privs.team == true then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
if player and cf.teams[team] and cf.teams[team].players and cf.teams[team].players[player] then
|
if player and cf.teams[team] and cf.teams[team].players and cf.teams[team].players[player] then
|
||||||
if cf.teams[team].players[player].auth == true then
|
if cf.teams[team].players[player].auth == true then
|
||||||
return true
|
return true
|
||||||
@ -205,6 +213,39 @@ function cf.diplo.set(one,two,state)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function cf.diplo.check_requests(one,two)
|
||||||
|
local team = cf.team(two)
|
||||||
|
|
||||||
|
if not team.log then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
for i=1,#team.log do
|
||||||
|
if team.log[i].team == one and team.log[i].type=="request" and team.log[i].mode=="diplo" then
|
||||||
|
return team.log[i].msg
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
function cf.diplo.cancel_requests(one,two)
|
||||||
|
local team = cf.team(two)
|
||||||
|
|
||||||
|
if not team.log then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
for i=1,#team.log do
|
||||||
|
if team.log[i].team == one and team.log[i].type=="request" and team.log[i].mode=="diplo" then
|
||||||
|
table.remove(team.log,i)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
-- Vector stuff
|
-- Vector stuff
|
||||||
v3={}
|
v3={}
|
||||||
function v3.distance(v, w)
|
function v3.distance(v, w)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user