def isConnected(self): return host.pmgr_p_get("connected", self.index) # Added by Chump - for bf2statistics stats # ------------------------------------------------------------------------------ # omero 2006-03-31 # ------------------------------------------------------------------------------ # using pm_local_pid_txt_file imported from BF2StatisticsConfig module # for reading Nick/pID mappings. # ------------------------------------------------------------------------------ # omero, 2006-04-13 # ------------------------------------------------------------------------------ # todo: # # try: # <get highest pid from db> via some gethighestpid.aspx # <parse response from backend> # <assign new pid> # exept: # <raise failure exception> # # the above method will have the advantage of not relying on a text file. # must provide a pid_base_value if db's player table is empty. # ------------------------------------------------------------------------------ def getProfileId(self):
def getProfileId(self): pid = self.profileid if not host.pmgr_p_get("ai", self.index) and pid == 0: # Don't bother doing this if player is 'bot pid = int(host.pmgr_p_get("profileid", self.index)) self.profileid = pid if pid == 0: if pm_backend_pid_manager == 1: # Try Backend playerID first - idea by ArmEagle if g_debug: print "Retrieving Profile ID (%s) via HTTP/1.1 miniclient" % str(host.pmgr_p_get("name", self.index)) # URL for retrieving player ID via internal miniclient player_nick = string.replace(str(host.pmgr_p_get("name", self.index)), ' ', '%20') asp_playerid = '/ASP/getplayerid.aspx?nick=' + player_nick if g_debug: print "URI: %s" % (asp_playerid) # Fetch Data data = http_get( http_backend_addr, http_backend_port, asp_playerid ) if data and data[0] == 'O': if g_debug: print "Received PID data is VALID, length %d" % int(len(data)) datalines = data.splitlines() pidval = datalines[2].split('\t') pid = int(pidval[1]) else: print "Received PID data is INVALID, length %d" % int(len(data)) # Use PID.TXT to find PlayerID if pid == 0: # Backend check is disabled or failed if g_debug: print "Retrieving Profile ID (%s) via PID file" % str(host.pmgr_p_get("name", self.index)) try: fh = file(pm_local_pid_txt_file, 'rb') line = fh.readlines() fh.close() count = 0 while count < len(line): if line[count].rstrip() == host.pmgr_p_get("name", self.index): pid = int(line[count + 1].rstrip()) break count += 2 # create a new PID - idea by FiberLetalis if pid == 0: if g_debug: print "New player, creating Profile ID..." new_pid = int(line[count - 1].rstrip()) + 1 fh = file(pm_local_pid_txt_file, 'ab') fh.write('\r\n' + host.pmgr_p_get("name", self.index) + '\r\n' + str(new_pid)) fh.close() pid = new_pid except IOError: print 'PID file not found!' self.profileid = pid return pid else: return pid
def onPlayerConnect(player): defaultUnlocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] host.pers_plrSetUnlocks(player.index, defaultUnlocks, defaultUnlocks) if g_debug: print "Unlock module: onPlayerConnect" if not player.isAIPlayer(): id = player.index reconnect = id in sessionPlayerUnlockMap # always get new unlocks on reconnect/map restart/map change etc if reconnect: del sessionPlayerUnlockMap[id] newUnlockSet = UnlockSet() newUnlockSet.unlockLevel = {} for i in range(0, NUM_KIT_TYPES): newUnlockSet.unlockLevel[i] = 0 sessionPlayerUnlockMap[id] = newUnlockSet player.unlocks = sessionPlayerUnlockMap[id] # Added by Chump - for bf2statistics stats (plus de-indenting) #if bf2.serverSettings.getUseGlobalUnlocks(): if player.getProfileId() > 2000: # Added by ArmEagle needed to prevent servercrash on linux on offline account connect # but host.pmgr_p_set logically raises an exception when called on an online account if host.pmgr_p_get("profileid", player.index) == 0: host.pmgr_p_set("profileid", player.index, player.getProfileId()) success = host.pers_plrRequestUnlocks(player.index, 1) if not success: if g_debug: print "Requesting unlocks: Failed" else: if g_debug: print "Requesting unlocks: Success" else: if g_debug: print "Player %d had no profile id, can't request unlocks" % player.index if g_debug: print "Added player %d to unlock checking" % (player.index)
def getProfileId(self): # No stats, Then we dont bother fetching Pid from ASP if not stats_enable: return host.pmgr_p_get("profileid", self.index) pid = self.profileid # If we are a human player, attempt to get PID from the bf2 server if not host.pmgr_p_get("ai", self.index) and pid == 0: pid = int(host.pmgr_p_get("profileid", self.index)) # If we don't have a PID up to this point, fetch it from ASP back end if pid == 0: if g_debug: print "Retrieving Profile ID (%s) via HTTP/1.1 miniclient" % str( host.pmgr_p_get("name", self.index)) # URL for retrieving player ID via internal miniclient player_nick = string.replace( str(host.pmgr_p_get("name", self.index)), ' ', '%20') asp_playerid = '/ASP/getplayerid.aspx?nick=' + player_nick + '&ai=' + str( host.pmgr_p_get("ai", self.index)) if g_debug: print "URI: %s" % (asp_playerid) # Fetch Data using miniclient data = http_get(http_backend_addr, http_backend_port, asp_playerid) if data and data[0] == 'O': if g_debug: print "Received PID data is VALID, length %d" % int( len(data)) datalines = data.splitlines() pidval = datalines[2].split('\t') pid = int(pidval[1]) else: print "Received PID data is INVALID, length %d" % int( len(data)) self.profileid = pid return pid
def isAlive(self): return host.pmgr_p_get("alive", self.index) def isManDown(self): return host.pmgr_p_get("mandown", self.index)
def isConnected(self): return host.pmgr_p_get("connected", self.index) def getProfileId(self): return host.pmgr_p_get("profileid", self.index)
def isFlagHolder(self): return host.pmgr_p_get("fholder", self.index)
def getOrderRadius(self): return host.pmgr_p_get("orderRadius", self.index)
def getAddress(self): return host.pmgr_p_get("addr", self.index)
def isAlive(self): return host.pmgr_p_get("alive", self.index)
def isCommander(self): return host.pmgr_p_get("commander", self.index) def getName(self): return host.pmgr_p_get("name", self.index)
def getName(self): return host.pmgr_p_get("name", self.index) def setName(self, name): return host.pmgr_p_set("name", self.index, name)
def getSquadId(self): return host.pmgr_p_get("sqid", self.index) def isSquadLeader(self): return host.pmgr_p_get("isql", self.index)
def isSquadLeader(self): return host.pmgr_p_get("isql", self.index) def isCommander(self): return host.pmgr_p_get("commander", self.index)
def getTimeToSpawn(self): return host.pmgr_p_get("tts", self.index) def setTimeToSpawn(self, t): return host.pmgr_p_set("tts", self.index, t)
def getSuicide(self): return host.pmgr_p_get("suicide", self.index) def setSuicide(self, t): return host.pmgr_p_set("suicide", self.index, t)
def getCDKeyHash(self): return host.pmgr_p_get("cdKeyHash", self.index)
def getTotalDogtagCount(self): return host.pmgr_p_get("totalDogtagCount", self.index)
def getSpawnGroup(self): return host.pmgr_p_get("sgr", self.index) def setSpawnGroup(self, t): return host.pmgr_p_set("sgr", self.index, t)
def getDefaultVehicle(self): return host.pmgr_p_get("defaultvehicle", self.index)
def getKit(self): return host.pmgr_p_get("kit", self.index) def getVehicle(self): return host.pmgr_p_get("vehicle", self.index)
def isRemote(self): return host.pmgr_p_get("remote", self.index)
def getVehicle(self): return host.pmgr_p_get("vehicle", self.index) def getDefaultVehicle(self): return host.pmgr_p_get("defaultvehicle", self.index)
def isConnected(self): return host.pmgr_p_get("connected", self.index)
def getDefaultVehicle(self): return host.pmgr_p_get("defaultvehicle", self.index) def getPrimaryWeapon(self): return host.pmgr_p_get("weapon", self.index, 0)
def getPing(self): return host.pmgr_p_get("ping", self.index)
def getTimeToSpawn(self): return host.pmgr_p_get("tts", self.index)
def isAutoController(self): return host.pmgr_p_get("autoController", self.index) def isAlive(self): return host.pmgr_p_get("alive", self.index)
def isSquadLeader(self): return host.pmgr_p_get("isql", self.index)
def isManDown(self): return host.pmgr_p_get("mandown", self.index) def isConnected(self): return host.pmgr_p_get("connected", self.index)
def getName(self): return host.pmgr_p_get("name", self.index)
def getProfileId(self): return host.pmgr_p_get("profileid", self.index) def isFlagHolder(self): return host.pmgr_p_get("fholder", self.index)
def getKit(self): return host.pmgr_p_get("kit", self.index)
def getPrimaryWeapon(self): return host.pmgr_p_get("weapon", self.index, 0) def getAllWeapons(self): return host.pmgr_p_get("allweapons", self.index, 0)
def getIfAcceptedAttackDefendOrder(self): return host.pmgr_p_get("ifAcceptedAttackDefendOrder", self.index)
def getSquadId(self): return host.pmgr_p_get("sqid", self.index)
def getAllWeapons(self): return host.pmgr_p_get("allweapons", self.index, 0) def getAddress(self): return host.pmgr_p_get("addr", self.index)
def isCommander(self): return host.pmgr_p_get("commander", self.index)
def getAddress(self): return host.pmgr_p_get("addr", self.index) def setIsInsideCP(self, val): return host.pmgr_p_set("isInsideCP", self.index, val)
def getSpawnGroup(self): return host.pmgr_p_get("sgr", self.index)
def getIsInsideCP(self): return host.pmgr_p_get("isInsideCP", self.index) def getOrderPosition(self): return host.pmgr_p_get("orderPosition", self.index)
def getVehicle(self): return host.pmgr_p_get("vehicle", self.index)
def getOrderPosition(self): return host.pmgr_p_get("orderPosition", self.index) def getOrderRadius(self): return host.pmgr_p_get("orderRadius", self.index)
def getPrimaryWeapon(self): return host.pmgr_p_get("weapon", self.index, 0)
def getOrderRadius(self): return host.pmgr_p_get("orderRadius", self.index) def getIfAcceptedOrder(self): return host.pmgr_p_get("ifAcceptedOrder", self.index)
def getIsInsideCP(self): return host.pmgr_p_get("isInsideCP", self.index)
def getIfAcceptedOrder(self): return host.pmgr_p_get("ifAcceptedOrder", self.index) def getIfAcceptedAttackDefendOrder(self): return host.pmgr_p_get("ifAcceptedAttackDefendOrder", self.index)
def isAIPlayer(self): return host.pmgr_p_get("ai", self.index)
def getIfAcceptedAttackDefendOrder(self): return host.pmgr_p_get("ifAcceptedAttackDefendOrder", self.index) def setOrderPoint(self, t): return host.pmgr_p_set("orderPoint", self.index, t)
def isManDown(self): return host.pmgr_p_get("mandown", self.index)
def getTotalDogtagCount(self): return host.pmgr_p_get("totalDogtagCount", self.index) def setTotalDogtagCount(self, t): return host.pmgr_p_set("totalDogtagCount", self.index, t)
def getProfileId(self): return host.pmgr_p_get("profileid", self.index)
def getCDKeyHash(self): return host.pmgr_p_get("cdKeyHash", self.index) class PlayerManager:
def getTeam(self): return host.pmgr_p_get("team", self.index)
def isRemote(self): return host.pmgr_p_get("remote", self.index) def isAIPlayer(self): return host.pmgr_p_get("ai", self.index)
def getSuicide(self): return host.pmgr_p_get("suicide", self.index)
def isAIPlayer(self): return host.pmgr_p_get("ai", self.index) def isAutoController(self): return host.pmgr_p_get("autoController", self.index)