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 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):
示例#3
0
	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 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
示例#5
0
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)
示例#6
0
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)
示例#7
0
    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)
示例#11
0
 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)
示例#14
0
	def isCommander(self): return host.pmgr_p_get("commander", self.index)

	def getName(self): return host.pmgr_p_get("name", self.index)
示例#15
0
	def getName(self): return host.pmgr_p_get("name", self.index)
	def setName(self, name): return host.pmgr_p_set("name", self.index, name)
示例#16
0
	def getSquadId(self): return host.pmgr_p_get("sqid", self.index)
	def isSquadLeader(self): return host.pmgr_p_get("isql", self.index)
示例#17
0
	def isSquadLeader(self): return host.pmgr_p_get("isql", self.index)
	def isCommander(self): return host.pmgr_p_get("commander", self.index)
示例#18
0
	def getTimeToSpawn(self): return host.pmgr_p_get("tts", self.index)
	def setTimeToSpawn(self, t): return host.pmgr_p_set("tts", self.index, t)
示例#19
0
	def getSuicide(self): return host.pmgr_p_get("suicide", self.index)
	def setSuicide(self, t): return host.pmgr_p_set("suicide", self.index, t)
示例#20
0
 def getCDKeyHash(self):
     return host.pmgr_p_get("cdKeyHash", self.index)
示例#21
0
 def getTotalDogtagCount(self):
     return host.pmgr_p_get("totalDogtagCount", self.index)
示例#22
0
	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)
示例#24
0
	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)
示例#26
0
	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)
示例#28
0
	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)
示例#31
0
	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)
示例#33
0
	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)
示例#35
0
	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)
示例#37
0
	def getPrimaryWeapon(self): return host.pmgr_p_get("weapon", self.index, 0)
	def getAllWeapons(self): return host.pmgr_p_get("allweapons", self.index, 0)
示例#38
0
 def getIfAcceptedAttackDefendOrder(self):
     return host.pmgr_p_get("ifAcceptedAttackDefendOrder", self.index)
 def getSquadId(self):
     return host.pmgr_p_get("sqid", self.index)
示例#40
0
	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)
示例#42
0
	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)
示例#44
0
	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)
示例#46
0
	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)
示例#48
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)
示例#50
0
	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)
示例#52
0
	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)
示例#54
0
	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)
示例#56
0
	def getCDKeyHash(self): return host.pmgr_p_get("cdKeyHash", self.index)
	
class PlayerManager:
 def getTeam(self):
     return host.pmgr_p_get("team", self.index)
示例#58
0
	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)
示例#60
0
	def isAIPlayer(self): return host.pmgr_p_get("ai", self.index)
	def isAutoController(self): return host.pmgr_p_get("autoController", self.index)