示例#1
0
    def __init__(self):
        # Dont need window.
        self.showbase = ShowBase()

        # Start our server up
        print ""
        print "INIT: LOGIN SERVER...\n"
        self.LoginServer = LoginServer(9098, compress=True)
        print "INIT: DATABASE...\n"
        self.db = DataBase()
        self.users = self.LoginServer.clients
        print self.users, "HERE !!!!!!!!!"

        taskMgr.doMethodLater(0.2, self.lobby_loop, 'Lobby Loop')
示例#2
0
	def __init__(self):		
		# Dont need window.
		self.showbase=ShowBase()
		
		# Start our server up
		print ""
		print "INIT: LOGIN SERVER...\n"
		self.LoginServer = LoginServer(9098, compress=True)
		print "INIT: DATABASE...\n"
		self.db = DataBase()
		self.users=self.LoginServer.clients
		print self.users, "HERE !!!!!!!!!"
		
		taskMgr.doMethodLater(0.2, self.lobby_loop, 'Lobby Loop')
示例#3
0
class LoginInst():
    def __init__(self):
        # Dont need window.
        self.showbase = ShowBase()

        # Start our server up
        print ""
        print "INIT: LOGIN SERVER...\n"
        self.LoginServer = LoginServer(9098, compress=True)
        print "INIT: DATABASE...\n"
        self.db = DataBase()
        self.users = self.LoginServer.clients
        print self.users, "HERE !!!!!!!!!"

        taskMgr.doMethodLater(0.2, self.lobby_loop, 'Lobby Loop')

    # handles new joining clients and updates all clients of chats and readystatus of players
    def lobby_loop(self, task):
        # if in lobby state
        temp = self.LoginServer.getData()
        if temp != []:
            print temp
            for i in range(len(temp)):
                valid_packet = False
                package = temp[i]
                if len(package) == 2:
                    print "Received: " + str(package) + " " + str(
                        package[1].getAddress())
                    if len(package[0]) == 2:
                        for u in range(len(self.users)):
                            if self.users[u]['connection'] == package[1]:
                                print self.users
                                print "Packet from " + self.users[u]['name']
                                # process packet
                                update_warlocks = False
                                # if chat packet
                                if package[0][0] == 'chat':
                                    print "Chat: " + package[0][1]
                                    valid_packet = True
                                    # Broadcast data to all clients ("username: message")
                                    data = {}
                                    data[0] = 'chat'
                                    data[1] = self.users[u][
                                        'name'] + ": " + package[0][1]
                                    self.LoginServer.broadcastData(data)
                                # else if ready packet
                                elif package[0][0] == 'ready':
                                    print self.users[u]['name'] + " is ready!"
                                    self.users[u]['ready'] = True
                                    valid_packet = True
                                    update_warlocks = True
                                # else if unready packet
                                elif package[0][0] == 'unready':
                                    print self.users[u][
                                        'name'] + " is not ready!"
                                    self.users[u]['ready'] = False
                                    valid_packet = True
                                    update_warlocks = True
                                if update_warlocks:
                                    data = {}
                                    data[0] = 'warlocks'
                                    data[1] = len(self.users)
                                    self.LoginServer.broadcastData(data)
                                # break out of for loop
                                break
                            else:
                                print str(
                                    self.users[u]['connection']) + " " + str(
                                        package[1])
                        if not valid_packet:
                            data = {}
                            data[0] = "error"
                            data[1] = "Please Login"
                            self.LoginServer.sendData(data, package[1])
                            print "User not logged in"
                    else:
                        print "Data in packet wrong size"
                else:
                    print "Packet wrong size"
        # if all players are ready and there is X of them
        game_ready = True
        # if there is any clients connected
        if not self.LoginServer.getClients():
            game_ready = False
        for u in range(len(self.users)):
            if self.users[u]['ready'] == False:
                game_ready = False
        if game_ready:
            data = {}
            data[0] = 'state'
            data[1] = 'game'
            self.LoginServer.broadcastData(data)
            #taskMgr.doMethodLater(0.5, self.pregame_loop, 'Pregame Loop')
            return task.done
        return task.again

    # this will be moved onto the game server itself (as a pregame wait until full/enough peeps and everyone to ready)
    def pregame_loop(self, task):
        print "Pregame State"
        self.game_time = 0
        self.tick = 0
        self.game = Game(len(self.users), game_tick, self.showbase)
        for u in range(len(self.users)):
            self.users[u]['warlock'] = self.game.warlock[u]
        taskMgr.doMethodLater(0.5, self.game_loop, 'Game Loop')
        return task.done
示例#4
0
class LoginInst():
	def __init__(self):		
		# Dont need window.
		self.showbase=ShowBase()
		
		# Start our server up
		print ""
		print "INIT: LOGIN SERVER...\n"
		self.LoginServer = LoginServer(9098, compress=True)
		print "INIT: DATABASE...\n"
		self.db = DataBase()
		self.users=self.LoginServer.clients
		print self.users, "HERE !!!!!!!!!"
		
		taskMgr.doMethodLater(0.2, self.lobby_loop, 'Lobby Loop')

	# handles new joining clients and updates all clients of chats and readystatus of players
	def lobby_loop(self,task):
		# if in lobby state
		temp=self.LoginServer.getData()
		if temp!=[]:
			print temp
			for i in range(len(temp)):
				valid_packet=False
				package=temp[i]
				if len(package)==2:
					print "Received: " + str(package) +" "+ str(package[1].getAddress())
					if len(package[0])==2:
						for u in range(len(self.users)):
							if self.users[u]['connection']==package[1]:
								print self.users
								print "Packet from "+self.users[u]['name']
								# process packet
								update_warlocks=False
								# if chat packet
								if package[0][0]=='chat':
									print "Chat: "+package[0][1]
									valid_packet=True
									# Broadcast data to all clients ("username: message")
									data = {}
									data[0]='chat'
									data[1]=self.users[u]['name']+": "+package[0][1]
									self.LoginServer.broadcastData(data)
								# else if ready packet
								elif package[0][0]=='ready':
									print self.users[u]['name']+" is ready!"
									self.users[u]['ready']=True
									valid_packet=True
									update_warlocks=True
								# else if unready packet
								elif package[0][0]=='unready':
									print self.users[u]['name']+" is not ready!"
									self.users[u]['ready']=False
									valid_packet=True
									update_warlocks=True
								if update_warlocks:
									data = {}
									data[0]='warlocks'
									data[1]=len(self.users)
									self.LoginServer.broadcastData(data)
								# break out of for loop
								break
							else:
								print str(self.users[u]['connection'])+" "+str(package[1])
						if not valid_packet:
							data = {}
							data[0] = "error"
							data[1] = "Please Login"
							self.LoginServer.sendData(data,package[1])
							print "User not logged in"
					else:
						print "Data in packet wrong size"
				else:
					print "Packet wrong size"
		# if all players are ready and there is X of them
		game_ready=True
		# if there is any clients connected
		if not self.LoginServer.getClients():
			game_ready=False
		for u in range(len(self.users)):
			if self.users[u]['ready']==False:
				game_ready=False
		if game_ready:
			data = {}
			data[0]='state'
			data[1]='game'
			self.LoginServer.broadcastData(data)
			#taskMgr.doMethodLater(0.5, self.pregame_loop, 'Pregame Loop')
			return task.done
		return task.again
	
	# this will be moved onto the game server itself (as a pregame wait until full/enough peeps and everyone to ready)
	def pregame_loop(self,task):
		print "Pregame State"
		self.game_time=0
		self.tick=0
		self.game=Game(len(self.users),game_tick,self.showbase)
		for u in range(len(self.users)):
			self.users[u]['warlock']=self.game.warlock[u]
		taskMgr.doMethodLater(0.5, self.game_loop, 'Game Loop')
		return task.done