Ejemplo n.º 1
0
def presetRotate():
	try:
		map = getSuccessor(sbserver.gameMode(), sbserver.mapName())
	except KeyError:
		logging.warning('No map list specified for current mode.  Defaulting to user-specified rotation.')
		clientReloadRotate()
	except ValueError:
		logging.info('Maps list for current mode is empty.  Defaulting to user-specified rotation.')
		clientReloadRotate()
	else:
		sbserver.setMap(map, sbserver.gameMode())
	if sbserver.numClients() == 0:
		rotate_on_join[0] = True
		sbserver.setPaused(True)
Ejemplo n.º 2
0
Archivo: duel.py Proyecto: pguenth/xsbs
def onDuelCommand(cn, args):
    if args == '':
        sbserver.playerMessage(
            cn, error('Usage: #duel <mapname> (mode) (cn) (cn)'))
    args = args.split(' ')
    players = sbserver.players()
    if len(players) != 2:
        sbserver.playerMessage(
            cn,
            error(
                'There must be only two unspectated players to enter duel mode.'
            ))
    else:
        if len(args) == 2:
            map = args[0]
            mode = int(args[1])
        elif len(args) == 1:
            map = args[0]
            mode = sbserver.gameMode()
        else:
            sbserver.playerMessage(cn, error('Usage: #duel <mapname> (mode)'))
            return
        duelers[0] = players[0]
        duelers[1] = players[1]
        prev_mastermode = sbserver.masterMode()
        sbserver.setMasterMode(2)
        sbserver.message(green('Duel begins in...'))
        duelCountdown(5, map, mode)
Ejemplo n.º 3
0
def onMapVote(cn, mapname, mapmode):
    p = player(cn)
    if sbserver.mapName() == '':
        setMap(mapname, mapmode)
    elif isAtLeastMaster(cn) and sbserver.masterMode() > 0:
        setMap(mapname, mapmode)
    elif mapmode != sbserver.gameMode() and (lock_mode or not allow_modevote):
        p.message(error('You cannot vote for a new game mode'))
    else:
        try:
            vote = player(cn).gamevars['mapvote']
            allow_vote = vote[0] != mapname and vote[1] != mapmode
        except KeyError:
            allow_vote = True
        if allow_vote:
            sbserver.message(
                info(
                    request_temp.substitute(
                        colordict,
                        user=p.name(),
                        modename=sbserver.modeName(mapmode),
                        mapname=mapname)))
            p.gamevars['mapvote'] = (mapname, mapmode)
        else:
            sbserver.playerMessage(
                cn, error('You have already requested this map.'))
    countVotes()
Ejemplo n.º 4
0
def presetRotate():
    try:
        map = getSuccessor(sbserver.gameMode(), sbserver.mapName())
    except KeyError:
        logging.warning(
            'No map list specified for current mode.  Defaulting to user-specified rotation.'
        )
        clientReloadRotate()
    except ValueError:
        logging.info(
            'Maps list for current mode is empty.  Defaulting to user-specified rotation.'
        )
        clientReloadRotate()
    else:
        sbserver.setMap(map, sbserver.gameMode())
    if sbserver.numClients() == 0:
        rotate_on_join[0] = True
        sbserver.setPaused(True)
Ejemplo n.º 5
0
def onMapSet(cn, mapname, mapmode):
    p = player(cn)
    if sbserver.mapName() == '':
        setMap(mapname, mapmode)
    elif mapreload[0]:
        setMap(mapname, mapmode)
        mapreload[0] = False
    elif isAtLeastMaster(cn) and sbserver.masterMode() > 0:
        sbserver.setMap(mapname, mapmode)
    elif mapmode != sbserver.gameMode() and (lock_mode or not allow_modevote):
        p.message(error('You cannot request a new game mode'))
Ejemplo n.º 6
0
def onMapSet(cn, mapname, mapmode):
	p = player(cn)
	if sbserver.mapName() == '':
		setMap(mapname, mapmode)
	elif mapreload[0]:
		setMap(mapname, mapmode)
		mapreload[0] = False
	elif isAtLeastMaster(cn) and sbserver.masterMode() > 0:
		sbserver.setMap(mapname, mapmode)
	elif mapmode != sbserver.gameMode() and (lock_mode or not allow_modevote):
		p.message(error('You cannot request a new game mode'))
Ejemplo n.º 7
0
def voteMap(caller,name,mode=None):
        """This command works just like the /map command except for with #map the caller can also call maps from /storage/maps. This calls the map from the server removing the need to /sendmap (as long as the maps are the same version). """
	if mode is None:
		mode=sbserver.gameMode()
	mode=modeNumber(mode)
	
	sbserver.setMap(name,mode)
	
	#load the map if it exists and mode is coop
	if modeNumber("coop")==mode:
		try:
			loadmap(caller,name)
		except:
			pass
	
	return name
Ejemplo n.º 8
0
def changeMap(caller,name,mode=None):
	"""Same as the /map command."""
	if mode is None:
		mode=sbserver.gameMode()
	mode=modeNumber(mode)

	sbserver.setMap(name,mode)

	#load the map if it exists and mode is coop
	if modeNumber("coop")==mode:
		try:
			loadmap(caller,name)
		except:
			pass
	
	return name
Ejemplo n.º 9
0
def onNextMapCmd(cn, args):
    '''@description Display next map
	   @usage
	   @public'''
    if args != '':
        sbserver.playerMessage(cn, error('Usage: #nextmap'))
    else:
        try:
            sbserver.playerMessage(
                cn,
                info(
                    nextmap_response.substitute(colordict,
                                                mapname=getSuccessor(
                                                    sbserver.gameMode(),
                                                    sbserver.mapName()))))
        except (KeyError, ValueError):
            sbserver.playerMessage(cn, error('Could not determine next map'))
Ejemplo n.º 10
0
def onDuelCommand(cn, args):
	if args == '':
		sbserver.playerMessage(cn, error('Usage: #duel <mapname> (mode) (cn) (cn)'))
	args = args.split(' ')
	players = sbserver.players()
	if len(players) != 2:
		sbserver.playerMessage(cn, error('There must be only two unspectated players to enter duel mode.'))
	else:
		if len(args) == 2:
			map = args[0]
			mode = int(args[1])
		elif len(args) == 1:
			map = args[0]
			mode = sbserver.gameMode()
		else:
			sbserver.playerMessage(cn, error('Usage: #duel <mapname> (mode)'))
			return
		duelers[0] = players[0]
		duelers[1] = players[1]
		prev_mastermode = sbserver.masterMode()
		sbserver.setMasterMode(2)
		sbserver.message(green('Duel begins in...'))
		duelCountdown(5, map, mode)
Ejemplo n.º 11
0
def onMapVote(cn, mapname, mapmode):
	p = player(cn)
	if sbserver.mapName() == '':
		setMap(mapname, mapmode)
	elif isAtLeastMaster(cn) and sbserver.masterMode() > 0:
		setMap(mapname, mapmode)
	elif mapmode != sbserver.gameMode() and (lock_mode or not allow_modevote):
		p.message(error('You cannot vote for a new game mode'))
	else:
		try:
			vote = player(cn).gamevars['mapvote']
			allow_vote = vote[0] != mapname and vote[1] != mapmode
		except KeyError:
			allow_vote = True
		if allow_vote:
			sbserver.message(info(request_temp.substitute(colordict,
				user=p.name(),
				modename=sbserver.modeName(mapmode),
				mapname=mapname)))
			p.gamevars['mapvote'] = (mapname, mapmode)
		else:
			sbserver.playerMessage(cn, error('You have already requested this map.'))
	countVotes()
Ejemplo n.º 12
0
def changeMap(caller,name,mode=None):
        """This command works just like the #map command except rather than directly going to a map it places a vote for the map of choice. Just like with #map, the caller can also call maps from /storage/maps. This calls the map from the server removing the need to /sendmap (as long as the maps are the same version)."""
	if mode is None:
		mode=sbserver.gameMode()
	triggerServerEvent("vote_map",[caller,modeNumber(mode),name])
Ejemplo n.º 13
0
def currentMode():
	'''Integer value of current game mode'''
	return sbserver.gameMode()
Ejemplo n.º 14
0
def onNextMapCmd(cn, args):
	'''@description Display next map
	   @usage
	   @public'''
	if args != '':
		sbserver.playerMessage(cn, error('Usage: #nextmap'))
	else:
		try:
			sbserver.playerMessage(cn, info(nextmap_response.substitute(colordict, mapname=getSuccessor(sbserver.gameMode(), sbserver.mapName()))))
		except (KeyError, ValueError):
			sbserver.playerMessage(cn, error('Could not determine next map'))
Ejemplo n.º 15
0
def voteMap(caller,name,mode=None):
	"""Places a vote for the map of choice. This can be used to call maps from /storage/maps."""
	if mode is None:
		mode=sbserver.gameMode()
	triggerServerEvent("vote_map",[caller,modeNumber(mode),name])