Bonjour,
Voila je tiens un serveur sur BF2142 et je souhaiterais qu'il soit ranked sans devoir payer eliot ness.
J'ai trouver ce fichier, ce pendant je ne comprends pas grand chose à ce type de language.
Je voudrais par exemple qu'a 50 points le joueur passe au rang n°1, à 150 au rang n°2....
Je suppose que je dois changer le dernier paragraphe, non?
Je pense également que je dois "initialiser" ce fichier, il a un fichier nommé init.py qui est vide, je pensais mettre :
import rank
rank.init()
Mais bon je suis un gros noob en cette matière.
Merci pour vos éclaircissements!
# rank upgrades
import host
import bf2.PlayerManager
import bf2.Timer
from bf2.stats.constants import *
from bf2 import g_debug
def init():
# Events
if bf2.serverSettings.getUseGlobalRank():
host.registerHandler('PlayerConnect', onPlayerConnect, 1)
host.registerHandler('PlayerStatsResponse', onStatsResponse, 1)
host.registerGameStatusHandler(onGameStatusChanged)
# Connect already connected players if reinitializing
for p in bf2.playerManager.getPlayers():
onPlayerConnect(p)
if g_debug: print "Rank module initialized"
def onGameStatusChanged(status):
if status == bf2.GameStatus.Playing:
pass
else:
if g_debug: print "Destroyed timer"
def onUpdate(data):
for p in bf2.playerManager.getPlayers():
if p.isAlive():
checkRank(p)
### Event hooks
def onPlayerConnect(player):
#id = player.index
if player.score.rank == -1:
player.score.rank = 0
# request rank
if bf2.serverSettings.getUseGlobalRank():
if player.getProfileId() > 2000:
success = host.pers_plrRequestStats(player.index, 1, "&mode=base", 0)
else:
if g_debug: print "Player %d had no profile id, can't request rank" % player.index
if g_debug: print "Added player %d to rank checking" % (player.index)
def onStatsResponse(succeeded, player, stats):
if player == None:
playerIndex = "unknown"
else:
playerIndex = player.index
if not "rnk" in stats:
if g_debug: print "rank not found, aborting"
return
if g_debug: print "Rank received for player ", playerIndex, ":", host.pers_getStatsKeyVal("rnk", player.getProfileId())
if not player: return
value = int( host.pers_getStatsKeyVal("rnk", player.getProfileId()) )
if g_debug: print "Player",player.index,"Rank:", value
player.score.rank = value
player.stats.rank = value
Message édité par LeNarvalo le 25-10-2009 à 12:24:06