Mercurial > traipse_dev
diff orpg/networking/mplay_groups.py @ 0:4385a7d0efd1 grumpy-goblin
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
author | sirebral |
---|---|
date | Tue, 14 Jul 2009 16:41:58 -0500 |
parents | |
children | 449a8900f9ac |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/orpg/networking/mplay_groups.py Tue Jul 14 16:41:58 2009 -0500 @@ -0,0 +1,81 @@ +from orpg.mapper.map_msg import * + +class game_group: + def __init__( self, id, name, pwd, desc="", boot_pwd="", minVersion="", mapFile=None, messageFile=None, persist =0 ): + self.id = id + self.name = name + self.desc = desc + self.minVersion = minVersion + self.messageFile = messageFile + self.players = [] + self.pwd = pwd + self.boot_pwd = boot_pwd + self.game_map = map_msg() + self.lock = Lock() + self.moderated = 0 + self.voice = {} + self.persistant = persist + + if mapFile != None: + f = open( mapFile ) + tree = f.read() + f.close() + + else: + f = open(orpg.dirpath.dir_struct["template"] + "default_map.xml") + tree = f.read() + f.close() + + self.game_map.init_from_xml(tree) + + + def add_player(self,id): + self.players.append(id) + + def remove_player(self,id): + if self.voice.has_key(id): + del self.voice[id] + self.players.remove(id) + + def get_num_players(self): + num = len(self.players) + return num + + def get_player_ids(self): + tmp = self.players + return tmp + + + def check_pwd(self,pwd): + return (pwd==self.pwd) + + def check_boot_pwd(self,pwd): + return (pwd==self.boot_pwd) + + def check_version(self,ver): + if (self.minVersion == ""): + return 1 + minVersion=self.minVersion.split('.') + version=ver.split('.') + for i in range(min(len(minVersion),len(version))): + w=max(len(minVersion[i]),len(version[i])) + v1=minVersion[i].rjust(w); + v2=version[i].rjust(w); + if v1<v2: + return 1 + if v1>v2: + return 0 + + if len(minVersion)>len(version): + return 0 + return 1 + + #depreciated - see send_group_list() + def toxml(self,act="new"): + # Please don't add the boot_pwd to the xml, as this will give it away to players watching their console + xml_data = "<group id=\"" + self.id + xml_data += "\" name=\"" + self.name + xml_data += "\" pwd=\"" + str(self.pwd!="") + xml_data += "\" players=\"" + str(self.get_num_players()) + xml_data += "\" action=\"" + act + "\" />" + return xml_data