[os-devel] SF.net SVN: ospace:[313] branches/ospace_0.5
Brought to you by:
qark
From: <da...@us...> - 2011-10-31 00:47:29
|
Revision: 313 http://ospace.svn.sourceforge.net/ospace/?rev=313&view=rev Author: dahaic Date: 2011-10-31 00:47:19 +0000 (Mon, 31 Oct 2011) Log Message: ----------- - Players lose their bookings when joining a galaxy. - Fixed few things made in the last revision. Modified Paths: -------------- branches/ospace_0.5/ChangeLog.txt branches/ospace_0.5/server/lib/ige/ospace/GameMngr.py branches/ospace_0.5/server/lib/ige/ospace/IUniverse.py branches/ospace_0.5/server/run_galaxer.py Modified: branches/ospace_0.5/ChangeLog.txt =================================================================== --- branches/ospace_0.5/ChangeLog.txt 2011-10-30 22:09:37 UTC (rev 312) +++ branches/ospace_0.5/ChangeLog.txt 2011-10-31 00:47:19 UTC (rev 313) @@ -8,6 +8,10 @@ VERSION 0.5.68 +[2011-10-31] +- Players lose their bookings when joining a galaxy. +- Fixed few things made in the last revision. + [2011-10-30] - First implementation of galaxy booking system (named Galaxer) [dahaic] - players may book the galaxy type of their choice, and it will create it Modified: branches/ospace_0.5/server/lib/ige/ospace/GameMngr.py =================================================================== --- branches/ospace_0.5/server/lib/ige/ospace/GameMngr.py 2011-10-30 22:09:37 UTC (rev 312) +++ branches/ospace_0.5/server/lib/ige/ospace/GameMngr.py 2011-10-31 00:47:19 UTC (rev 313) @@ -359,13 +359,13 @@ def createNewPlayer(self, sid, galaxyID): log.debug('Creating new player in session', sid) session = self.clientMngr.getSession(sid) - self._createNewPlayer(session, galaxyID) + return self._createNewPlayer(session, galaxyID) def createNewSubscribedPlayer(self, (login, nick, email), galaxyID): log.debug('Creating new subscribed player using fake session') session = Session(None) session.setAttrs(login, nick, email) - self._createNewPlayer(session, galaxyID) + return self._createNewPlayer(session, galaxyID) def removePlayer(self, playerID): log.debug('removePlayer', playerID) Modified: branches/ospace_0.5/server/lib/ige/ospace/IUniverse.py =================================================================== --- branches/ospace_0.5/server/lib/ige/ospace/IUniverse.py 2011-10-30 22:09:37 UTC (rev 312) +++ branches/ospace_0.5/server/lib/ige/ospace/IUniverse.py 2011-10-31 00:47:19 UTC (rev 313) @@ -417,6 +417,17 @@ getPossibleGalaxyTypes.public = 1 getPossibleGalaxyTypes.accLevel = AL_ADMIN + + def getActivePlayers(self, tran, obj): + playerNames = [] + for playerID in obj.players: + player = tran.db[playerID] + if not player.type in AI_PLAYER_TYPES: + playerNames.append(player.name) + return playerNames + + getActivePlayers.public = 1 + getActivePlayers.accLevel = AL_ADMIN def getPublicInfo(self, tran, obj): result = IDataHolder() Modified: branches/ospace_0.5/server/run_galaxer.py =================================================================== --- branches/ospace_0.5/server/run_galaxer.py 2011-10-30 22:09:37 UTC (rev 312) +++ branches/ospace_0.5/server/run_galaxer.py 2011-10-31 00:47:19 UTC (rev 313) @@ -59,13 +59,19 @@ return galaxies def _getActivePlayers(): - un = s.getInfo(OID_UNIVERSE) - players = [] - for playerID in un.players: - player = s.getInfo(playerID) - if not player.type in Const.AI_PLAYER_TYPES: - players.append(player.name) - return players + return s.getActivePlayers(OID_UNIVERSE) + +def _removePlayingPlayers(): + activePlayers = _getActivePlayers() + query = db.execute('SELECT DISTINCT nick FROM players', ()).fetchall() + bookingPlayers = [] + for (nick,) in query: + bookingPlayers.append(nick) + zombiePlayers = set(bookingPlayers) & set(activePlayers) + for nick in zombiePlayers: + db.execute('DELETE FROM players\ + WHERE nick=?', + (nick,)) def setPlayerPreference(token, galType): global db @@ -125,13 +131,14 @@ def testBooking(): global db - modifier = 1 + _removePlayingPlayers() query = db.execute('SELECT galType, COUNT(*) FROM players\ GROUP BY galType', ()).fetchall() types = s.getPossibleGalaxyTypes(OID_UNIVERSE) for galType, count in query: galCap, galInfo = types[galType] - if galCap * modifier <= count: + if galCap * options.threshold <= count: + # return createNewGalaxy(galType, galCap) def createNewGalaxy(galType, galCap): @@ -240,14 +247,20 @@ ) parser.add_option("", "--OSserver", dest = "server", metavar = "HOSTNAME:PORT", - default = "localhost:9080", + default = "www.ospace.net:9080", help = "Outer Space server location" ) parser.add_option("", "--address", dest = "address", metavar = "HOSTNAME:PORT", - default = "localhost:9081", + default = "www.ospace.net:9081", help = "Outer Space galaxer location" ) +parser.add_option("", "--threshold", dest = "threshold", + metavar = "REALNUMBER", + default = 1.0, + type = "float", + help = "Ratio of galaxy capacity, which is necessary to create it." +) options, args = parser.parse_args() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |