Exemplo n.º 1
0
 def sendHello(self):
     dg = PyDatagram()
     dg.add_uint16(CLIENT_HELLO)
     dg.add_uint32(self.get_dc_file().get_hash())
     dg.add_string(base.config.GetString('server-version',
                                         'no-version-set'))
     self.send(dg)
Exemplo n.º 2
0
def make_generic_datagram(key, packet_count=0, data=""):
    datagram = PyDatagram()
    datagram.addUint8(key)
    datagram.addUint8(packet_count)
    datagram.addUint8(0)
    datagram.addUint16(0)
    datagram.addUint16(0)
    datagram.add_string(data)
    return datagram
Exemplo n.º 3
0
 def send(self, data, receiver=None):
     datagram = PyDatagram()
     types = {bool: 'B', int: 'I', float: 'F', str: 'S'}
     datagram.add_string(''.join(types[type(part)] for part in data))
     meths = {
         bool: datagram.add_bool,
         int: datagram.add_int64,
         float: datagram.add_float64,
         str: datagram.add_string
     }
     map(lambda part: meths[type(part)](part), data)
     self._actual_send(datagram, receiver)
    def sendHello(self, version_string = None):
        # If the string is passed as an argument, use that.
        if version_string == None:
            # Or, get the string from the loaded prc files.
            version_string = base.config.GetString('server-version', '')
            if version_string == '':
                self.notify.error('server-version is missing in your configuration files.  It is needed in order to send \'CLIENT_HELLO\' to the server.')

        dg = PyDatagram()
        dg.add_uint16(CLIENT_HELLO)
        dg.add_uint32(self.get_dc_file().get_hash())
        dg.add_string(version_string)
        self.send(dg)
Exemplo n.º 5
0
    def _parse_msg_hton(self, msgid, data):
        msg = PyDatagram()
        msg.add_uint8(msgid)

        if msgid == MessageTypes.update_entity:
            msg.add_uint32(data['netid'])
            msg.add_string(data['data'])
        elif msgid == MessageTypes.remove_entity:
            msg.add_uint32(data['netid'])
        elif msgid == MessageTypes.register_player:
            pass
        elif msgid == MessageTypes.player_id:
            msg.add_uint32(data['netid'])
        elif msgid == MessageTypes.player_input:
            msg.add_uint32(data['netid'])
            msg.add_int8(data['movement_x'])
            msg.add_string(data['action_set'])
        else:
            raise RuntimeError("Unknown msgid:", msgid)

        return msg
Exemplo n.º 6
0
    def _parse_msg_hton(self, msgid, data):
        msg = PyDatagram()
        msg.add_uint8(msgid)

        if msgid == MessageTypes.update_entity:
            msg.add_uint32(data['netid'])
            msg.add_string(data['data'])
        elif msgid == MessageTypes.remove_entity:
            msg.add_uint32(data['netid'])
        elif msgid == MessageTypes.register_player:
            pass
        elif msgid == MessageTypes.player_id:
            msg.add_uint32(data['netid'])
        elif msgid == MessageTypes.player_input:
            msg.add_uint32(data['netid'])
            msg.add_int8(data['movement_x'])
            msg.add_string(data['action_set'])
        else:
            raise RuntimeError("Unknown msgid:", msgid)

        return msg
Exemplo n.º 7
0
 def sendHello(self, version_string):
     dg = PyDatagram()
     dg.add_uint16(CLIENT_HELLO)
     dg.add_uint32(self.get_dc_file().get_hash())
     dg.add_string(version_string)
     self.send(dg)
Exemplo n.º 8
0
 def sendHello(self, version_string):
     dg = PyDatagram()
     dg.add_uint16(CLIENT_HELLO)
     dg.add_uint32(self.get_dc_file().get_hash())
     dg.add_string(version_string)
     self.send(dg)