コード例 #1
0
ファイル: pythonClient.py プロジェクト: tomalexander/group-3
 def scoreDatagram(self):
     # Send the player's score
     myPyDatagram = PyDatagram()
     myPyDatagram.addUint8(END_MESSAGE)
     myPyDatagram.addString(self.playername)
     myPyDatagram.addInt32(self.carData.carlist[self.carData.index].deaths)
     return myPyDatagram
コード例 #2
0
    def process_modules(self):
        '''
        This method is called when it's time to write the output.

        For nuggets.nri, we use an encrypted datagram.
        The datagram is read by core.cxx, which populates Python frozen array.

        Datagram format:

        uint32 numModules
        for each module:
            string name
            int32 size *
            data(abs(size))

        * Negative size means the file was an __init__
        '''

        dg = PyDatagram()
        dg.addUint32(len(self.modules))

        for moduleName in self.modules:
            data, size = self.modules[moduleName]

            dg.addString(moduleName)
            dg.addInt32(size)
            dg.appendData(data)

        data = dg.getMessage()

        iv = '\0' * 16
        key = 'AmazingNuggetKey'
        return aes.encrypt(data, key, iv)
コード例 #3
0
ファイル: pythonServer.py プロジェクト: tomalexander/group-3
 def scoreDatagram(self):
     # Send a test message
     myPyDatagram = PyDatagram()
     myPyDatagram.addUint8(END_MESSAGE)
     myPyDatagram.addInt32(len(self.playerscores))
     for pair in self.playerscores:
         myPyDatagram.addString(pair[0])
         myPyDatagram.addInt32(pair[1])
     return myPyDatagram
コード例 #4
0
ファイル: pythonServer.py プロジェクト: daFthawk/group-3
 def getCarPosDatagram(self, num, data):
     newDatagram = PyDatagram()
     newDatagram.addUint8(CAR_MESSAGE)
     newDatagram.addUint8(num)
     for j in range(5):
         newDatagram.addFloat32(float(data[j]))
     for j in range(5):
         newDatagram.addBool(data[5][j])
     newDatagram.addInt32(data[6])
     return newDatagram
コード例 #5
0
ファイル: RequestRankings.py プロジェクト: 2015-CS454/rr-team
    def send(self, gameId=None):

        try:
            print gameId
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_RANKINGS)
            pkg.addInt32(gameId)
            self.cWriter.send(pkg, self.connection)
        except:
            self.log("Bad [" + str(Constants.CMSG_RANKINGS) + "] Request")
            print_exc()
コード例 #6
0
ファイル: RequestResults.py プロジェクト: 2015-CS454/rr-team
    def send(self, gameId = None):

        try:
            print gameId
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_RESULTS)
            pkg.addInt32(gameId)
            self.cWriter.send(pkg, self.connection)
        except:
            self.log('Bad [' + str(Constants.CMSG_RESULTS) + '] Request')
            print_exc()
コード例 #7
0
    def send(self, health):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_HEALTH)
            pkg.addInt32(health)  # Health Change

            self.cWriter.send(pkg, self.connection)

        except:
            self.log('Bad [' + str(Constants.CMSG_HEALTH) + '] Health Request')
コード例 #8
0
ファイル: RequestPowerUp.py プロジェクト: 2015-CS454/dd-team
    def send(self, powerId):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_POWER_UP)
            pkg.addInt32(powerId)
            print "Request Power Pickup : ",powerId
            self.cWriter.send(pkg, self.connection)

        except:
            self.log('Bad [' + str(Constants.CMSG_POWER_UP) + '] Power Up Request')
コード例 #9
0
 def sendLoginMsg(self):
     cr = self.cr
     datagram = PyDatagram()
     datagram.addUint16(CLIENT_LOGIN_3)
     datagram.addString(self.DISLToken)
     datagram.addString(cr.serverVersion)
     datagram.addUint32(cr.hashVal)
     datagram.addInt32(CLIENT_LOGIN_3_DISL_TOKEN)
     datagram.addString(cr.validateDownload)
     datagram.addString(cr.wantMagicWords)
     cr.send(datagram)
コード例 #10
0
    def send(self, health):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_HEALTH)
            pkg.addInt32(Health)  # Health Change

            self.cWriter.send(pkg, self.connection)

        except:
            self.log("Bad [" + str(Constants.CMSG_HEALTH) + "] Health Request")
コード例 #11
0
    def send(self, powerId = None):

        try:
            print powerId
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_POWER_PICKUP)
            pkg.addInt32(powerId)
            self.cWriter.send(pkg, self.connection)
        except:
            self.log('Bad [' + str(Constants.CMSG_POWER_PICKUP) + '] Request')
            print_exc()
コード例 #12
0
    def send(self, gameId):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_RESULTS)
            pkg.addInt32(gameId) # GameId

            self.cWriter.send(pkg, self.connection)

        except:
            self.log('Bad [' + str(Constants.CMSG_RESULTS) + '] Results Request')
コード例 #13
0
 def sendLoginMsg(self):
     cr = self.cr
     datagram = PyDatagram()
     datagram.addUint16(CLIENT_LOGIN_3)
     datagram.addString(self.DISLToken)
     datagram.addString(cr.serverVersion)
     datagram.addUint32(cr.hashVal)
     datagram.addInt32(CLIENT_LOGIN_3_DISL_TOKEN)
     datagram.addString(cr.validateDownload)
     datagram.addString(cr.wantMagicWords)
     cr.send(datagram)
コード例 #14
0
ファイル: RequestSetRank.py プロジェクト: Lixinli/dd-team
    def send(self, rank):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_SET_RANK)
            pkg.addInt32(rank)

            self.cWriter.send(pkg, self.connection)

        except:
            self.log('Bad [' + str(Constants.CMSG_SET_RANK) + '] Set Rank Request')
コード例 #15
0
ファイル: RequestDead.py プロジェクト: 2015-CS454/rr-team
    def send(self, dead = None):

        try:
            print dead
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_DEAD)
            pkg.addInt32(dead)
            self.cWriter.send(pkg, self.connection)
        except:
            self.log('Bad [' + str(Constants.CMSG_DEAD) + '] Request')
            print_exc()
コード例 #16
0
ファイル: RequestReady.py プロジェクト: 2015-CS454/rr-team
    def send(self, ready = None):

        try:
            print ready
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_READY)
            pkg.addInt32(ready)
            self.cWriter.send(pkg, self.connection)
        except:
            self.log('Bad [' + str(Constants.CMSG_READY) + '] Request')
            print_exc()
コード例 #17
0
    def send(self, kwargs):
        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_DEAD)
            pkg.addInt32(kwargs['gameId'])

            self.cWriter.send(pkg, self.connection)

            self.log('Sent [' + str(Constants.CMSG_DEAD) + '] RequestDead')
        except:
            self.log('Bad [' + str(Constants.CMSG_DEAD) + '] RequestDead')
            print_exc()
コード例 #18
0
    def send(self, powerId):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_POWER_UP)
            pkg.addInt32(powerId)

            self.cWriter.send(pkg, self.connection)

        except:
            self.log('Bad [' + str(Constants.CMSG_POWER_UP) +
                     '] Power Up Request')
コード例 #19
0
    def send(self, kwargs):
        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_POWER_PICKUP)
            pkg.addInt32(kwargs['powerId'])

            self.cWriter.send(pkg, self.connection)

            self.log('Sent [' + str(Constants.CMSG_POWER_PICKUP) + '] RequestPowerUpPickUp')
        except:
            self.log('Bad [' + str(Constants.CMSG_POWER_PICKUP) + '] RequestPowerUpPickUp')
            print_exc()
コード例 #20
0
    def send(self, kwargs):
        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.C_SELECT_CHARACTER)
            pkg.addInt32(kwargs['character'])

            self.cWriter.send(pkg, self.connection)

            self.log('Sent [' + str(Constants.C_SELECT_CHARACTER) + '] RequestSelectCharacter')
        except:
            self.log('Bad [' + str(Constants.C_SELECT_CHARACTER) + '] RequestSelectCharacter')
            print_exc()
コード例 #21
0
    def send(self, args = []):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_COLLISION)
            pkg.addString(args[0]) # Username
            pkg.addInt32(args[1]) # Damage Dealt

            self.cWriter.send(pkg, self.connection)

        except:
            self.log('Bad [' + str(Constants.CMSG_COLLISION) + '] Collision Request')
コード例 #22
0
    def send(self, gameId):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_RESULTS)
            pkg.addInt32(gameId)  # GameId

            self.cWriter.send(pkg, self.connection)

        except:
            self.log('Bad [' + str(Constants.CMSG_RESULTS) +
                     '] Results Request')
コード例 #23
0
    def send(self, kwargs):
        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_RESULTS)
            pkg.addInt32(kwargs['gameId'])

            self.cWriter.send(pkg, self.connection)

            self.log('Sent [' + str(Constants.CMSG_RESULTS) + '] RequestResults')
        except:
            self.log('Bad [' + str(Constants.CMSG_RESULTS) + '] RequestResults')
            print_exc()
コード例 #24
0
    def send(self, kwargs):
        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_HEALTH)
            pkg.addString(kwargs['username'])
            pkg.addInt32(kwargs['healthChange'])

            self.cWriter.send(pkg, self.connection)

            self.log('Sent [' + str(Constants.CMSG_HEALTH) + '] RequestChangeHealth')
        except:
            self.log('Bad [' + str(Constants.CMSG_HEALTH) + '] RequestChangeHealth')
            print_exc()
コード例 #25
0
ファイル: RequestRandomInt.py プロジェクト: jaimodha/MMOG
    def send(self, args=None):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.RAND_INT)
            pkg.addInt32(args)

            self.cWriter.send(pkg, self.connection)

            #self.log('Sent [' + str(Constants.RAND_INT) + '] Int Request')
        except:
            self.log('Bad [' + str(Constants.RAND_INT) + '] Int Request')
            print_exc()
コード例 #26
0
    def send(self, kwargs):
        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_COLLISION)
            pkg.addInt32(kwargs['playerId'])
            pkg.addInt32(kwargs['damage'])

            self.cWriter.send(pkg, self.connection)

            self.log('Sent [' + str(Constants.CMSG_COLLISION) + '] RequestCollision')
        except:
            self.log('Bad [' + str(Constants.CMSG_COLLISION) + '] RequestCollision')
            print_exc()
コード例 #27
0
    def send(self, args=[]):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_COLLISION)
            pkg.addString(args[0])  # Username
            pkg.addInt32(args[1])  # Damage Dealt

            self.cWriter.send(pkg, self.connection)

        except:
            self.log('Bad [' + str(Constants.CMSG_COLLISION) +
                     '] Collision Request')
コード例 #28
0
ファイル: RequestRandomInt.py プロジェクト: jaimodha/MMOG
    def send(self, args = None):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.RAND_INT)
            pkg.addInt32(args)

            self.cWriter.send(pkg, self.connection)

            #self.log('Sent [' + str(Constants.RAND_INT) + '] Int Request')
        except:
            self.log('Bad [' + str(Constants.RAND_INT) + '] Int Request')
            print_exc()
コード例 #29
0
    def send(self, args = []):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_CREATE_LOBBY)

            pkg.addString(args[0]) #game room name
            pkg.addInt32(int(args[1])) #gamemode
            pkg.addInt32(int(args[2])) #status

            self.cWriter.send(pkg, self.connection)

        except:
            self.log('Bad [' + str(Constants.CMSG_CREATE_LOBBY) + '] Create Lobby Request')
コード例 #30
0
    def send(self, kwargs):
        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_POWER_PICKUP)
            pkg.addInt32(kwargs['powerId'])

            self.cWriter.send(pkg, self.connection)

            self.log('Sent [' + str(Constants.CMSG_POWER_PICKUP) +
                     '] RequestPowerUpPickUp')
        except:
            self.log('Bad [' + str(Constants.CMSG_POWER_PICKUP) +
                     '] RequestPowerUpPickUp')
            print_exc()
コード例 #31
0
    def send(self, args=None):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_HEALTH)
            pkg.addString(args[0])  #targeted player
            pkg.addInt32(args[1])  #damage amount

            self.cWriter.send(pkg, self.connection)

            #self.log('Sent [' + str(Constants.RAND_INT) + '] Int Request')
        except:
            self.log('Bad [' + str(Constants.RAND_INT) + '] Int Request')
            print_exc()
コード例 #32
0
 def _crDatagram(self, msg):
     # create Datagram from message
     myPyDatagram = PyDatagram()
     myPyDatagram.addInt32(msg[SEQN])
     myPyDatagram.addInt32(msg[AKN])
     myPyDatagram.addInt16(msg[MSG_TYPE])
     myPyDatagram.addInt8(msg[OOL])
     if not msg[ENCODED]:
         myPyDatagram.addString(self.encode(msg[OAKN]))
         myPyDatagram.addString(self.encode(msg[DATA]))
     else:
         myPyDatagram.addString(msg[OAKN])
         myPyDatagram.addString(msg[DATA])
     return myPyDatagram
コード例 #33
0
ファイル: pythonServer.py プロジェクト: daFthawk/group-3
 def getNewCarPosDatagram(self, num):
     newDatagram = PyDatagram()
     newDatagram.addUint8(PLAYER_ASSIGNMENT_MESSAGE)
     newDatagram.addUint8(num)
     newDatagram.addFloat32(self.carData.carlist[num].model.getX())
     newDatagram.addFloat32(self.carData.carlist[num].model.getY())
     vel = self.carData.carlist[num].vel.getXY()
     newDatagram.addFloat32(vel[0])
     newDatagram.addFloat32(vel[1])
     newDatagram.addFloat32(self.carData.carlist[num].model.getH())
     for j in range(5):
         newDatagram.addBool(self.carData.carlist[num].input[j])
     newDatagram.addInt32(self.carData.carlist[num].hp)
     return newDatagram
コード例 #34
0
    def send(self, args = None):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_HEALTH)
            pkg.addString(args[0])#targeted player
            pkg.addInt32(args[1])#damage amount

            self.cWriter.send(pkg, self.connection)

            #self.log('Sent [' + str(Constants.RAND_INT) + '] Int Request')
        except:
            self.log('Bad [' + str(Constants.RAND_INT) + '] Int Request')
            print_exc()
コード例 #35
0
ファイル: RequestRandomString.py プロジェクト: jaimodha/MMOG
    def send(self, args = None):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.RAND_STRING)
            pkg.addString(args['user_id'])
            pkg.addInt32(args['factionId'])#factionid
            pkg.addString(args['password'])

            self.cWriter.send(pkg, self.connection)

            #self.log('Sent [' + str(Constants.RAND_STRING) + '] Int Request')
        except:
            self.log('Bad [' + str(Constants.RAND_STRING) + '] String Request')
            print_exc()
コード例 #36
0
    def send(self, kwargs):
        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_HEALTH)
            pkg.addString(kwargs['username'])
            pkg.addInt32(kwargs['healthChange'])

            self.cWriter.send(pkg, self.connection)

            self.log('Sent [' + str(Constants.CMSG_HEALTH) +
                     '] RequestChangeHealth')
        except:
            self.log('Bad [' + str(Constants.CMSG_HEALTH) +
                     '] RequestChangeHealth')
            print_exc()
コード例 #37
0
    def send(self, kwargs):
        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_COLLISION)
            pkg.addInt32(kwargs['playerId'])
            pkg.addInt32(kwargs['damage'])

            self.cWriter.send(pkg, self.connection)

            self.log('Sent [' + str(Constants.CMSG_COLLISION) +
                     '] RequestCollision')
        except:
            self.log('Bad [' + str(Constants.CMSG_COLLISION) +
                     '] RequestCollision')
            print_exc()
コード例 #38
0
ファイル: RequestRandomString.py プロジェクト: jaimodha/MMOG
    def send(self, args=None):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.RAND_STRING)
            pkg.addString(args['user_id'])
            pkg.addInt32(args['factionId'])  #factionid
            pkg.addString(args['password'])

            self.cWriter.send(pkg, self.connection)

            #self.log('Sent [' + str(Constants.RAND_STRING) + '] Int Request')
        except:
            self.log('Bad [' + str(Constants.RAND_STRING) + '] String Request')
            print_exc()
コード例 #39
0
ファイル: ClientAgent.py プロジェクト: judge2020/OpenOTP
    def handle_client_login(self, connection, di):
        ## Send the client OUR LOGIN response. (TODO)
        datagram = PyDatagram()
        #datagram.addUint16(0) #dummy

        datagram.addUint32(CLIENT_LOGIN_2_RESP)  #msgType

        datagram.addUint8(0)  #returnCode
        datagram.addString("")  #errorString
        datagram.addString("dev")  #username
        datagram.addUint8(1)  #secretChatAllowed
        datagram.addUint8(1)  # Client is always paid.
        datagram.addInt32(10000)  # minutesRemaining, TODO!

        self.cw.send(datagram, connection)
コード例 #40
0
    def send(self, args=None):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_CONTROL_POINT_STATE)
            pkg.addInt32(args[0])  #cpId
            pkg.addInt32(args[1])  #timer
            pkg.addInt32(args[2])  #factionId

            self.cWriter.send(pkg, self.connection)

        except:
            self.log('Bad [' + str(Constants.CMSG_CONTROL_POINT_STATE) +
                     '] CP Request')
            print_exc()
コード例 #41
0
ファイル: RequestCP.py プロジェクト: jaimodha/MMOG
    def send(self, args = None):
        
        
        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_CONTROL_POINT_STATE)
            pkg.addInt32(args[0])#cpId
            pkg.addInt32(args[1])#timer
            pkg.addInt32(args[2])#factionId

            self.cWriter.send(pkg, self.connection)

        except:
            self.log('Bad [' + str(Constants.CMSG_CONTROL_POINT_STATE) + '] CP Request')
            print_exc()
コード例 #42
0
ファイル: RequestCreateLobby.py プロジェクト: Lixinli/dd-team
    def send(self, args=[]):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_CREATE_LOBBY)

            pkg.addString(args[0])  #game room name
            pkg.addInt32(int(args[1]))  #gamemode
            pkg.addInt32(int(args[2]))  #status

            self.cWriter.send(pkg, self.connection)

        except:
            self.log('Bad [' + str(Constants.CMSG_CREATE_LOBBY) +
                     '] Create Lobby Request')
コード例 #43
0
    def send(self, data = None):

        try:
            user_data = data.split()
            username = user_data[0]
            healthchange = int(user_data[1])
            print username
            print healthchange
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_HEALTH)
            pkg.addString(username)
            pkg.addInt32(healthchange)
            self.cWriter.send(pkg, self.connection)
        except:
            self.log('Bad [' + str(Constants.CMSG_HEALTH) + '] Request')
            print_exc()
コード例 #44
0
    def send(self, args=[]):

        try:

            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_CHAT_ALL)
            pkg.addInt32(args[0]) #sender id
            pkg.addString(args[1]) #msg

            self.cWriter.send(pkg, self.connection)
            # print "id:", self.world.mainCharRef.playerId

            #elf.log('Sent [' + str(Constants.CMSG_CHAT_ALL) + '] Chat Request')
        except:
            self.log('Bad [' + str(Constants.CMSG_CHAT_ALL) + '] Chat Request')
            print_exc()
コード例 #45
0
ファイル: pythonServer.py プロジェクト: tomalexander/group-3
 def getCarPosDatagramFromCar(self, num):
     # creates a car_message datagram from the entry in carData (used to get new cars up to date)
     newDatagram = PyDatagram()
     newDatagram.addUint8(CAR_MESSAGE)
     newDatagram.addUint8(num)
     newDatagram.addFloat32(self.carData.carlist[num].model.getX())
     newDatagram.addFloat32(self.carData.carlist[num].model.getY())
     vel = self.carData.carlist[num].vel.getXY()
     newDatagram.addFloat32(vel[0])
     newDatagram.addFloat32(vel[1])
     newDatagram.addFloat32(self.carData.carlist[num].model.getH())
     for j in range(5):
         newDatagram.addBool(self.carData.carlist[num].input[j])
     newDatagram.addBool(self.carData.carlist[num].lightsOn)
     newDatagram.addInt32(self.carData.carlist[num].hp)
     return newDatagram
コード例 #46
0
ファイル: pythonServer.py プロジェクト: tomalexander/group-3
 def getNewCarPosDatagram(self, num):
     # same as getCarPosDatagramFromCar, but is a player_assignment_message
     newDatagram = PyDatagram()
     newDatagram.addUint8(PLAYER_ASSIGNMENT_MESSAGE)
     newDatagram.addUint8(num)
     newDatagram.addFloat32(self.carData.carlist[num].model.getX())
     newDatagram.addFloat32(self.carData.carlist[num].model.getY())
     vel = self.carData.carlist[num].vel.getXY()
     newDatagram.addFloat32(vel[0])
     newDatagram.addFloat32(vel[1])
     newDatagram.addFloat32(self.carData.carlist[num].model.getH())
     for j in range(5):
         newDatagram.addBool(self.carData.carlist[num].input[j])
     newDatagram.addBool(self.carData.carlist[num].lightsOn)
     newDatagram.addInt32(self.carData.carlist[num].hp)
     return newDatagram
コード例 #47
0
    def send(self, args=None):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_MOVE)
            pkg.addFloat32(args[0])  #x
            pkg.addFloat32(args[1])  #y
            pkg.addFloat32(args[2])  #z
            pkg.addFloat32(args[3])  #h
            pkg.addInt32(args[4])  #isMoving

            self.cWriter.send(pkg, self.connection)

            #self.log('Sent [' + str(Constants.RAND_FLOAT) + '] Float Request')
        except:
            self.log('Bad [' + str(Constants.CMSG_MOVE) + '] Move Request')
            print_exc()
コード例 #48
0
ファイル: RequestChatOne.py プロジェクト: Lixinli/dd-team
    def send(self, args=[]):

        try:
            # print "sender's id:", args[0]
            # print "receiver's id:", args[1]
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_CHAT_ONE)
            pkg.addInt32(args[0])  # sender's id
            pkg.addInt32(args[1])  # receiver's id
            pkg.addString(args[2])  # message

            self.cWriter.send(pkg, self.connection)

            # self.log('Sent [' + str(Constants.CMSG_CHAT_ONE) + '] Chat Request')
        except:
            self.log('Bad [' + str(Constants.CMSG_CHAT_ONE) + '] Chat Request')
            print_exc()
コード例 #49
0
 def handleClientLoginToontown(self, di, conn):
     if(MAINTENANCE == True):
         dg = PyDatagram()
         dg.addUint16(CLIENT_GO_GET_LOST)
         dg.addUint16(151)
         dg.addString('The servers are currently closed for maintenance.')
         self.cw.send(dg, conn)
     else:
         token = di.getString()
         sv = di.getString()
         if (token != 'daXy321/4432125/DSaGSX=='):
             self.notify.warning('Client doesn\'t have temporary token, booting.')
             dg = PyDatagram()
             dg.addUint16(CLIENT_GO_GET_LOST)
             dg.addUint16(101)
             dg.addString('Login token: %s doesn\'t exist.' % token)
             self.cw.send(dg, conn)
         elif (sv != SERVER_VERSION):
             self.notify.warning('Booting client out.')
             dg = PyDatagram()
             dg.addUint16(CLIENT_GO_GET_LOST)
             dg.addUint16(124)
             dg.addString('Client and Server version do not match. Server is running ' + SERVER_VERSION + ', while client was running ' + sv + '.')
             self.cw.send(dg, conn)
         else:
             now = datetime.now
             dg = PyDatagram()
             dg.addUint16(CLIENT_LOGIN_TOONTOWN_RESP)
             dg.addUint8(0) #Return Code
             dg.addString('OK') #respString
             dg.addUint32(123456) #Account Number
             dg.addString('Infinity') #Account Name
             dg.addUint8(1) #accountNameApproved
             dg.addString('YES') #self.openChatEnabled
             dg.addString('YES') #self.createFriendsWithChat
             dg.addString('YES') #chatCodeCreationRule
             dg.addUint32(time.time()) #sec?
             dg.addUint32(time.clock()) #usec?
             dg.addString('FULL') #self.isPaid
             dg.addString('YES') #WhiteListReponse
             dg.addString(time.strftime('%Y-%m-%d'))#lastLoggedInStr
             dg.addInt32(0) #accountDays
             dg.addString('NO_PARENT_ACCOUNT')
             dg.addString('Infinity')
             self.cw.send(dg, conn)
コード例 #50
0
    def send(self, pos):

        try:
            pkg = PyDatagram()
            pkg.addUint16(Constants.CMSG_MOVE)
            posNew = pos.split(",")
            pkg.addFloat32(float(posNew[0]))
            pkg.addFloat32(float(posNew[1]))
            pkg.addFloat32(float(posNew[2]))
            pkg.addFloat32(float(posNew[3]))
            pkg.addInt32(int(posNew[4]))

            self.cWriter.send(pkg, self.connection)

            #self.log('Sent [' + str(Constants.RAND_STRING) + '] Int Request')
        except:
            self.log('Bad [' + str(Constants.CMSG_MOVE) + '] Int Request')
            print_exc()
コード例 #51
0
 def sendLoginMsg(self):
     """
     Send a message to the server with our loginName
     """
     cr = self.cr
     # Time to send a login message
     datagram = PyDatagram()
     # Add message type
     datagram.addUint16(CLIENT_LOGIN_3)
     # Add the token
     datagram.addString(self.DISLToken)
     # Add the Server Version ID
     datagram.addString(cr.serverVersion)
     # Add the dc file hash
     datagram.addUint32(cr.hashVal)
     # Token type
     datagram.addInt32(CLIENT_LOGIN_3_DISL_TOKEN)
     # Add the download verification string.
     datagram.addString(cr.validateDownload)
     # And the magic word enable string.
     datagram.addString(cr.wantMagicWords)
     # Send the message
     cr.send(datagram)
コード例 #52
0
 def client_messager(self,msg,args=[]):
     if msg == "chat_send":
         order = PyDatagram()
         order.addUint16(CLIENT_CHAT)
         order.addInt32(args[0][0])
         order.addInt32(args[0][1])
         order.addInt32(args[0][2])
         order.addString(args[1])
         self.send_package(order)
     elif msg == "ready_button":
         order = PyDatagram()
         order.addUint16(CLIENT_READY)
         order.addInt32(args[0])
         order.addInt32(args[1])
         self.send_package(order)
     elif msg == "client_loaded":
         order = PyDatagram()
         order.addUint16(CLIENT_LOADED)
         self.send_package(order)
     elif msg == "game_init_request":
         order = PyDatagram()
         order.addUint16(CLIENT_INIT_REQUEST)
         order.addString(args[0])
         order.addString(args[1])
         self.send_package(order)
     elif msg == "build_start_request":
         order = PyDatagram()
         order.addUint16(BUILD_START_REQUEST)
         order.addInt32(args[0])
         order.addInt32(args[1])
         order.addString(args[2])
         self.send_package(order)
     elif msg == "build_cancel_request":
         order = PyDatagram()
         order.addUint16(BUILD_CANCEL_REQUEST)
         order.addInt32(args[0])
         self.send_package(order)
コード例 #53
0
 def intRequest(self, msg):
     pkg = PyDatagram()
     pkg.addUint16(1)
     pkg.addInt32(msg)
     return pkg
コード例 #54
0
 def server_messager(self,msg,args=[]):
     if msg == "map_set":
         order = PyDatagram()
         order.addUint16(MAP_SET)
         order.addInt32(args[0])
         self.send_package(order)
     elif msg == "client_update":
         order = PyDatagram()
         order.addUint16(CLIENT_INIT_UPDATE)
         order.addString(args[0])
         order.addString(args[1])
         order.addInt32(args[2])
         order.addInt32(args[3])
         self.send_package(order)
     elif msg == "chat_send":
         r = args[0][0]
         g = args[0][1]
         b = args[0][2]
         order = PyDatagram()
         order.addUint16(SERVER_CHAT)
         order.addInt32(r)
         order.addInt32(g)
         order.addInt32(b)
         order.addString(args[1])
         self.send_package(order)
         base.menu_manager.menus["mp-game"].chat_add((r,g,b,1),args[1])
     elif msg == "ready_button":
         order = PyDatagram()
         order.addUint16(SERVER_READY)
         order.addInt32(args[0])
         order.addInt32(args[1])
         self.send_package(order)
         base.menu_manager.menus["mp-game"].obj_list[args[0]]["indicatorValue"]=args[1]
         base.menu_manager.menus["mp-game"].start_game_check()
     elif msg == "server_loaded":
         order = PyDatagram()
         order.addUint16(SERVER_LOADED)
         self.send_package(order)
     elif msg == "all_loaded":
         order = PyDatagram()
         order.addUint16(ALL_LOADED)
         self.send_package(order)
     elif msg == "game_start":
         order = PyDatagram()
         order.addUint16(GAME_START)
         self.send_package(order)
     elif msg == "army_kill":
         order = PyDatagram()
         order.addUint16(ARMY_KILL)
         order.addInt32(args[0])
         self.send_package(order)
     elif msg == "build_start":
         order = PyDatagram()
         order.addUint16(BUILD_START)
         order.addInt32(args[0])
         order.addInt8(args[1])
         order.addString(args[2])
         self.send_package(order)
     elif msg == "tower_capture":
         order = PyDatagram()
         order.addUint16(TOWER_CAPTURE)
         order.addInt32(args[0])
         order.addInt8(args[1])
         self.send_package(order)
     elif msg == "build_complete":
         order = PyDatagram()
         order.addUint16(BUILD_COMPLETE)
         order.addInt32(args[0])
         order.addInt8(args[1])
         order.addString(args[2])
         self.send_package(order)
     elif msg == "build_cancel":
         order = PyDatagram()
         order.addUint16(BUILD_CANCEL)
         order.addInt32(args[0])
         self.send_package(order)
     elif msg == "battle_start":
         order = PyDatagram()
         order.addUint16(BATTLE_START)
         order.addInt32(args[0])
         order.addFloat32(args[1])
         order.addFloat32(args[2])
         order.addInt32(args[3])
         order.addFloat32(args[4])
         order.addFloat32(args[5])
         order.addInt32(args[6])
         self.send_package(order)
     elif msg == "battle_clash":
         order = PyDatagram()
         order.addUint16(BATTLE_CLASH)
         order.addInt32(args[0])
         order.addInt32(args[1])
         order.addInt32(args[2])
         order.addString(args[3])
         order.addInt8(args[4])
         self.send_package(order)
     elif msg == "battle_turn":
         order = PyDatagram()
         order.addUint16(BATTLE_TURN)
         order.addInt32(args[0])
         order.addInt32(args[1])
         self.send_package(order)
     elif msg == "battle_end":
         order = PyDatagram()
         order.addUint16(BATTLE_END)
         order.addInt32(args[0])
         self.send_package(order)
     elif msg == "battle_armyadd":
         order = PyDatagram()
         order.addUint16(BATTLE_ARMYADD)
         order.addInt32(args[0])
         order.addInt32(args[1])
         order.addFloat32(args[2])
         order.addFloat32(args[3])
         self.send_package(order)