bf2 module: Add '--linkteams' parameter to mbf2man tool that makes linking team channels option. Convert all squad names from Nato alphabet to 'first', 'second', 'third',... squad.
Note: This change has not yet been tested in any way and might not even execute
This commit is contained in:
@@ -60,50 +60,50 @@ class bf2(MumoModule):
|
||||
('blufor', int, -1),
|
||||
('blufor_commander', int, -1),
|
||||
('blufor_no_squad', int, -1),
|
||||
('blufor_alpha_squad', int, -1),
|
||||
('blufor_alpha_squad_leader', int, -1),
|
||||
('blufor_bravo_squad', int, -1),
|
||||
('blufor_bravo_squad_leader', int, -1),
|
||||
('blufor_charlie_squad', int, -1),
|
||||
('blufor_charlie_squad_leader', int, -1),
|
||||
('blufor_delta_squad', int, -1),
|
||||
('blufor_delta_squad_leader', int, -1),
|
||||
('blufor_echo_squad', int, -1),
|
||||
('blufor_echo_squad_leader', int, -1),
|
||||
('blufor_foxtrot_squad', int, -1),
|
||||
('blufor_foxtrot_squad_leader', int, -1),
|
||||
('blufor_golf_squad', int, -1),
|
||||
('blufor_golf_squad_leader', int, -1),
|
||||
('blufor_hotel_squad', int, -1),
|
||||
('blufor_hotel_squad_leader', int, -1),
|
||||
('blufor_india_squad', int, -1),
|
||||
('blufor_india_squad_leader', int, -1),
|
||||
('blufor_first_squad', int, -1),
|
||||
('blufor_first_squad_leader', int, -1),
|
||||
('blufor_second_squad', int, -1),
|
||||
('blufor_second_squad_leader', int, -1),
|
||||
('blufor_third_squad', int, -1),
|
||||
('blufor_third_squad_leader', int, -1),
|
||||
('blufor_fourth_squad', int, -1),
|
||||
('blufor_fourth_squad_leader', int, -1),
|
||||
('blufor_fifth_squad', int, -1),
|
||||
('blufor_fifth_squad_leader', int, -1),
|
||||
('blufor_sixth_squad', int, -1),
|
||||
('blufor_sixth_squad_leader', int, -1),
|
||||
('blufor_seventh_squad', int, -1),
|
||||
('blufor_seventh_squad_leader', int, -1),
|
||||
('blufor_eighth_squad', int, -1),
|
||||
('blufor_eighth_squad_leader', int, -1),
|
||||
('blufor_ninth_squad', int, -1),
|
||||
('blufor_ninth_squad_leader', int, -1),
|
||||
|
||||
('opfor', int, -1),
|
||||
('opfor_commander', int, -1),
|
||||
('opfor_no_squad', int, -1),
|
||||
('opfor_alpha_squad', int, -1),
|
||||
('opfor_alpha_squad_leader', int, -1),
|
||||
('opfor_bravo_squad', int, -1),
|
||||
('opfor_bravo_squad_leader', int, -1),
|
||||
('opfor_charlie_squad', int, -1),
|
||||
('opfor_charlie_squad_leader', int, -1),
|
||||
('opfor_delta_squad', int, -1),
|
||||
('opfor_delta_squad_leader', int, -1),
|
||||
('opfor_echo_squad', int, -1),
|
||||
('opfor_echo_squad_leader', int, -1),
|
||||
('opfor_foxtrot_squad', int, -1),
|
||||
('opfor_foxtrot_squad_leader', int, -1),
|
||||
('opfor_golf_squad', int, -1),
|
||||
('opfor_golf_squad_leader', int, -1),
|
||||
('opfor_hotel_squad', int, -1),
|
||||
('opfor_hotel_squad_leader', int, -1),
|
||||
('opfor_india_squad', int, -1),
|
||||
('opfor_india_squad_leader', int, -1)
|
||||
('opfor_first_squad', int, -1),
|
||||
('opfor_first_squad_leader', int, -1),
|
||||
('opfor_second_squad', int, -1),
|
||||
('opfor_second_squad_leader', int, -1),
|
||||
('opfor_third_squad', int, -1),
|
||||
('opfor_third_squad_leader', int, -1),
|
||||
('opfor_fourth_squad', int, -1),
|
||||
('opfor_fourth_squad_leader', int, -1),
|
||||
('opfor_fifth_squad', int, -1),
|
||||
('opfor_fifth_squad_leader', int, -1),
|
||||
('opfor_sixth_squad', int, -1),
|
||||
('opfor_sixth_squad_leader', int, -1),
|
||||
('opfor_seventh_squad', int, -1),
|
||||
('opfor_seventh_squad_leader', int, -1),
|
||||
('opfor_eighth_squad', int, -1),
|
||||
('opfor_eighth_squad_leader', int, -1),
|
||||
('opfor_ninth_squad', int, -1),
|
||||
('opfor_ninth_squad_leader', int, -1)
|
||||
),
|
||||
}
|
||||
|
||||
id_to_squad_name = ["no", "alpha", "bravo", "charlie", "delta", "echo", "foxtrot", "golf", "hotel", "india"]
|
||||
id_to_squad_name = ["no", "first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth"]
|
||||
|
||||
def __init__(self, name, manager, configuration = None):
|
||||
MumoModule.__init__(self, name, manager, configuration)
|
||||
@@ -179,10 +179,9 @@ class bf2(MumoModule):
|
||||
server.addUserToGroup(0, session, "bf2_linked")
|
||||
|
||||
if opi and opc:
|
||||
log.debug("Removing user '%s' (%d|%d) on server %d from groups of game %s", newstate.name, newstate.session, newstate.userid, sid, og or ogcfgname)
|
||||
server.removeUserFromGroup(ogcfg["base"], session, "bf2_%s_game" % (og or ogcfgname))
|
||||
|
||||
squadname = self.id_to_squad_name[opi["squad"]]
|
||||
log.debug("Removing user '%s' (%d|%d) on server %d from groups of game %s / squad %s", newstate.name, newstate.session, newstate.userid, sid, og or ogcfgname, squadname)
|
||||
server.removeUserFromGroup(ogcfg["base"], session, "bf2_%s_game" % (og or ogcfgname))
|
||||
server.removeUserFromGroup(ogcfg[opi["team"]], session, "bf2_commander")
|
||||
server.removeUserFromGroup(ogcfg[opi["team"]], session, "bf2_squad_leader")
|
||||
server.removeUserFromGroup(ogcfg[opi["team"]], session, "bf2_%s_squad_leader" % squadname)
|
||||
@@ -240,6 +239,8 @@ class bf2(MumoModule):
|
||||
newstate.channel = ngcfg[channame]
|
||||
|
||||
if oli and not nli:
|
||||
channame = "left"
|
||||
newstate.channel = ogcfg["left"]
|
||||
log.debug("User '%s' (%d|%d) on server %d no longer linked", newstate.name, newstate.session, newstate.userid, sid)
|
||||
server.removeUserFromGroup(0, session, "bf2_linked")
|
||||
|
||||
|
@@ -60,6 +60,8 @@ if __name__ == "__main__":
|
||||
help = 'Path to slice file', default = 'Murmur.ice')
|
||||
parser.add_option('-s', '--secret',
|
||||
help = 'Ice secret', default = '')
|
||||
parser.add_option('-l', '--linkteams', action = 'store_true',
|
||||
help = 'Link teams so opposing players can hear each other', default = False)
|
||||
parser.add_option('-n', '--name',
|
||||
help = 'Treename', default = 'BF2')
|
||||
parser.add_option('-o', '--out', default = 'bf2.ini',
|
||||
@@ -163,11 +165,12 @@ if __name__ == "__main__":
|
||||
ini['left'] = basechan
|
||||
gamechan = server.addChannel(name, basechan)
|
||||
|
||||
# Relevant function signatures
|
||||
# Murmur.ACL(self, applyHere=False, applySubs=False,
|
||||
# inherited=False, userid=0, group='', allow=0, deny=0)
|
||||
|
||||
# mice.Murmur.ACL(self, applyHere=False, applySubs=False,
|
||||
# inherited=False, userid=0, group='', allow=0, deny=0)
|
||||
|
||||
# mice.s.setACL(self, channelid, acls, groups, inherit, _ctx=None)
|
||||
# server.setACL(self, channelid, acls, groups, inherit, _ctx=None)
|
||||
#
|
||||
server.setACL(gamechan,
|
||||
[ACL(applyHere = True,
|
||||
applySubs = True,
|
||||
@@ -189,11 +192,14 @@ if __name__ == "__main__":
|
||||
gamechanstate = server.getChannelState(gamechan)
|
||||
|
||||
teams = ["blufor", "opfor"]
|
||||
id_to_squad_name = ["no", "alpha", "bravo", "charlie", "delta", "echo", "foxtrot", "golf", "hotel", "india"]
|
||||
id_to_squad_name = ["no", "first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth"]
|
||||
for team in teams:
|
||||
print name + "/" + team
|
||||
cid = server.addChannel(team, gamechan)
|
||||
gamechanstate.links.append(cid)
|
||||
teamchanstate = server.getChannelState(cid)
|
||||
if option.linkteams:
|
||||
gamechanstate.links.append(cid)
|
||||
|
||||
ini[team] = cid
|
||||
|
||||
server.setACL(ini[team],
|
||||
@@ -206,7 +212,7 @@ if __name__ == "__main__":
|
||||
|
||||
print name + "/" + team + "_commander"
|
||||
cid = server.addChannel("commander", ini[team])
|
||||
gamechanstate.links.append(cid)
|
||||
teamchanstate.links.append(cid)
|
||||
ini[team + "_commander"] = cid
|
||||
|
||||
server.setACL(ini[team + "_commander"],
|
||||
@@ -229,7 +235,7 @@ if __name__ == "__main__":
|
||||
for squad in id_to_squad_name:
|
||||
print name + "/" + team + "/" + squad
|
||||
cid = server.addChannel(squad, ini[team])
|
||||
gamechanstate.links.append(cid)
|
||||
teamchanstate.links.append(cid)
|
||||
ini[team + "_" + squad + "_squad"] = cid
|
||||
|
||||
ini[team + "_" + squad + "_squad_leader"] = ini[team + "_" + squad + "_squad"]
|
||||
@@ -250,7 +256,7 @@ if __name__ == "__main__":
|
||||
group = '~bf2_squad_leader',
|
||||
allow = W)],
|
||||
[], True)
|
||||
|
||||
server.setChannelState(teamchanstate)
|
||||
server.setChannelState(gamechanstate)
|
||||
print "Channel structure created"
|
||||
|
||||
|
Reference in New Issue
Block a user