Scripts:OfftimePy
Jump to navigation
Jump to search
What It Does
Allows you to have specific settings for when the number of players is below or equal to and above sv.numPlayersNeededToStart
. For instance you can turn friendly-fire off and have instant spawn time when there aren't enough players to start a game.
Installation
- Browse to
admin/standard_admin
in your bf2 server directory - Edit
__init__.py
so it looks something like the code snippet below. - Save the below code to
admin/standard_admin/offtime.py
. - Make sure RCON is configured, then run your server. If "
offtime.py loaded
" comes up in your server console it should work from there.
Usage
Edit the two dictionaries and add the settings you'd like each for each game state. The keys should be strings that represent sv
settings and the values should be strings.
Code
__init__.py
import offtime offtime.init()
offtime.py
# offtime.py - allows different settings for both # sv.numPlayersNeededToStart-related game states # -- by dackz (http://dackz.net/) import bf2 import host from bf2 import g_debug # change these to reflect the settings you want settingsNotStarted = { 'sv.soldierFriendlyFire': '0', 'sv.soldierSplashFriendlyFire': '0', 'sv.vehicleFriendlyFire': '0', 'sv.vehicleSplashFriendlyFire': '0', 'sv.spawnTime': '0', 'sv.manDownTime': '0', } settingsStarted = { 'sv.soldierFriendlyFire': '25', 'sv.soldierSplashFriendlyFire': '25', 'sv.vehicleFriendlyFire': '25', 'sv.vehicleSplashFriendlyFire': '25', 'sv.spawnTime': '13', 'sv.manDownTime': '13', } def init(): if g_debug: print 'initialising offtime script' host.registerGameStatusHandler(onGameStatusChanged) host.rcon_invoke('echo "offtime.py loaded"') def onGameStatusChanged(status): if status == bf2.GameStatus.Playing: if bf2.playerManager.getNumberOfPlayers() < int(host.rcon_invoke('sv.numPlayersNeededToStart')): host.rcon_invoke('echo "offtime.py: setting offtime setings"') dictionary = settingsNotStarted else: host.rcon_invoke('echo "offtime.py: setting normal settings"') dictionary = settingsStarted for (setting, value) in dictionary.iteritems(): host.rcon_invoke('%s %s' % (setting, value))