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)
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
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)
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
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
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)
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)