def launch(self):
        message = msg_base.ProtobufMessage(
            steammessages_clientserver_pb2.CMsgClientGamesPlayed,
            EMsg.ClientGamesPlayed)
        message.body.games_played.add(game_id=self.appid)
        self.gc.client.connection.send_message(message)

        time.sleep(3)

        try:
            response = self.sendClientHello()

            if Util.get_msg(
                    response.body.msgtype
            ) == csgo_base.EGCBaseClientMsg.k_EMsgGCClientWelcome:
                logEvent('Launch successful!')
                return True
            else:
                logEvent('Tried to launch, but got ' +
                         str(Util.get_msg(response.body.msgtype)))
                return False
        except Exception:
            logEvent(
                'Not connected, client hello failed to respond. (This is normal on first attempt)'
            )
            return False
    def launch(self):
        message = msg_base.ProtobufMessage(steammessages_clientserver_pb2.CMsgClientGamesPlayed, EMsg.ClientGamesPlayed)
        message.body.games_played.add(game_id=self.appid)
        self.gc.client.connection.send_message(message)

        time.sleep(3)
        response = self.sendClientHello()

        if Util.get_msg(response.body.msgtype) == csgo_base.EGCBaseClientMsg.k_EMsgGCClientWelcome:
            logEvent("Launch successful!")
            return True
        else:
            logEvent("Tried to launch, but got " + str(Util.get_msg(response.body.msgtype)))
            return False
    def requestEconData(self, param_a, param_d, param_s=0, param_m=0):
        message = msg_base.ProtobufMessage(
            cstrike15_gcmessages_pb2.CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest,
            csgo_base.ECSGOCMsg.k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest,
        )

        message.body.param_s = param_s  # SteamID
        message.body.param_a = param_a  # AssetID
        message.body.param_d = param_d
        message.body.param_m = param_m  # MarketID

        self.gc.gcSend(message)
        response = self.gc.client.wait_for_message(EMsg.ClientFromGC, timeout=5.0)
        if response == "Timed Out":
            return "Steam servers did not respond, your time delay is probably too small."
        elif (
            Util.get_msg(response.body.msgtype)
            == csgo_base.ECSGOCMsg.k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse
        ):
            econData = self.gc.gcFrom(
                response.body.payload, cstrike15_gcmessages_pb2.CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse
            )
            return econData
        else:
            return "Response was not of type EconPreviewDataBlockResponse"
    def requestEconData(self, param_a, param_d, param_s=0, param_m=0):
        message = msg_base.ProtobufMessage(
            cstrike15_gcmessages_pb2.
            CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest,
            csgo_base.ECSGOCMsg.
            k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest)

        message.body.param_s = param_s  # SteamID
        message.body.param_a = param_a  # AssetID
        message.body.param_d = param_d
        message.body.param_m = param_m  # MarketID

        self.gc.gcSend(message)
        response = self.gc.client.wait_for_message(EMsg.ClientFromGC,
                                                   timeout=5.0)
        if response == 'Timed Out':
            return 'Steam servers did not respond, your time delay is probably too small.'
        elif Util.get_msg(
                response.body.msgtype
        ) == csgo_base.ECSGOCMsg.k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse:
            econData = self.gc.gcFrom(
                response.body.payload, cstrike15_gcmessages_pb2.
                CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse)
            return econData
        else:
            return 'Response was not of type EconPreviewDataBlockResponse'
    def handle_message(self, emsg_real, msg):
        emsg = Util.get_msg(emsg_real)
        #print "EMsg is", Util.lookup_enum(EMsg, emsg)
        if emsg == EMsg.ClientLogOnResponse:
            self.handle_client_logon(msg)
        elif emsg == EMsg.ClientUpdateMachineAuth:
            self.handle_update_machine_auth(msg)
        elif emsg == EMsg.ClientSessionToken:
            self.handle_session_token(msg)
        elif emsg == EMsg.ClientServerList:
            self.handle_server_list(msg)

        for listener in self.listeners:
            listener.handle_message(emsg_real, msg)

        if emsg in self.message_constructors:
            constructor = self.message_constructors[emsg]
            if constructor[2]:
                message = constructor[0](constructor[1], constructor[2])
            else:
                message = constructor[0](constructor[1])
            message.parse(msg)

            if self.message_events.get(emsg):
                self.message_events[emsg].set(message)
                self.message_events[emsg] = None
            if self.message_job_events.get(message.header.target_jobid):
                self.message_job_events[message.header.target_jobid].set(message)
                self.message_job_events[message.header.target_jobid] = None
    def handle_message(self, emsg_real, msg):
        emsg = Util.get_msg(emsg_real)
        #print "EMsg is", Util.lookup_enum(EMsg, emsg)
        if emsg == EMsg.ClientLogOnResponse:
            self.handle_client_logon(msg)
        elif emsg == EMsg.ClientUpdateMachineAuth:
            self.handle_update_machine_auth(msg)
        elif emsg == EMsg.ClientSessionToken:
            self.handle_session_token(msg)
        elif emsg == EMsg.ClientServerList:
            self.handle_server_list(msg)

        for listener in self.listeners:
            listener.handle_message(emsg_real, msg)

        if emsg in self.message_constructors:
            constructor = self.message_constructors[emsg]
            if constructor[2]:
                message = constructor[0](constructor[1], constructor[2])
            else:
                message = constructor[0](constructor[1])
            message.parse(msg)

            if self.message_events.get(emsg):
                self.message_events[emsg].set(message)
                self.message_events[emsg] = None
            if self.message_job_events.get(message.header.target_jobid):
                self.message_job_events[message.header.target_jobid].set(
                    message)
                self.message_job_events[message.header.target_jobid] = None
    def dispatch_message(self, msg):
        emsg_real, = struct.unpack_from('<I', msg)
        emsg = Util.get_msg(emsg_real)

        if emsg == EMsg.ChannelEncryptRequest:
            gevent.spawn(self.channel_encrypt_request, msg)
        elif emsg == EMsg.ClientLogOnResponse:
            self.logon_response(msg)
        elif emsg == EMsg.Multi:
            self.split_multi_message(msg)

        self.client.handle_message(emsg_real, msg)
Example #8
0
    def dispatch_message(self, msg):
        emsg_real, = struct.unpack_from('<I', msg)
        emsg = Util.get_msg(emsg_real)

        if emsg == EMsg.ChannelEncryptRequest:
            gevent.spawn(self.channel_encrypt_request, msg)
        elif emsg == EMsg.ClientLogOnResponse:
            self.logon_response(msg)
        elif emsg == EMsg.Multi:
            self.split_multi_message(msg)

        self.client.handle_message(emsg_real, msg)
    def gcSend(self, inputmsg):
        Type = inputmsg.header.emsg
        if logging == 2:
            logEvent("gcSend " + str(Util.get_msg(Type)))

        message = msg_base.ProtobufMessage(steammessages_clientserver_pb2.CMsgGCClient, EMsg.ClientToGC)

        message.header.routing_appid = self.appid
        message.body.appid = self.appid
        message.body.msgtype = Type | 0x80000000 if Util.is_proto(Type) else Type
        message.body.payload = inputmsg.serialize()

        self.client.connection.send_message(message)
    def gcSend(self, inputmsg):
        Type = inputmsg.header.emsg
        if logging == 2:
            logEvent('gcSend ' + str(Util.get_msg(Type)))

        message = msg_base.ProtobufMessage(
            steammessages_clientserver_pb2.CMsgGCClient, EMsg.ClientToGC)

        message.header.routing_appid = self.appid
        message.body.appid = self.appid
        message.body.msgtype = Type | 0x80000000 if Util.is_proto(
            Type) else Type
        message.body.payload = inputmsg.serialize()

        self.client.connection.send_message(message)
    def requestEconData(self, param_a, param_d, param_s=0, param_m=0):
        message = msg_base.ProtobufMessage(cstrike15_gcmessages_pb2.CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest, csgo_base.ECSGOCMsg.k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest)

        message.body.param_s = param_s #SteamID
        message.body.param_a = param_a #AssetID
        message.body.param_d = param_d
        message.body.param_m = param_m #MarketID

        self.gc.gcSend(message)
        response = self.gc.client.wait_for_message(EMsg.ClientFromGC)
        if Util.get_msg(response.body.msgtype) == csgo_base.ECSGOCMsg.k_EMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse:
            econData = self.gc.gcFrom(response.body.payload, cstrike15_gcmessages_pb2.CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse)
            return econData
        else:
            return 'Response was not of type EconPreviewDataBlockResponse'
 def handle_message(self, emsg, msg):
     if logging == 2:
         logEvent('Received message ' + str(Util.get_msg(emsg)))
     pass
    def handle_message(self, emsg, msg):
        emsg = Util.get_msg(emsg)

        if emsg == EMsg.ClientLoggedOff:
            # Game already started on account
            self.exit()
 def handle_message(self, emsg, msg):
     if logging == 2:
         logEvent("Received message " + str(Util.get_msg(emsg)))
     pass
	def handle_message(self, emsg_real, msg):
		emsg = Util.get_msg(emsg_real)
		
		if emsg == EMsg.ClientLicenseList:
			self.handle_license_list(msg)
    def handle_message(self, emsg, msg):
        emsg = Util.get_msg(emsg)

        if emsg == EMsg.ClientLoggedOff:
            # Game already started on account
            self.exit()
Example #17
0
    def handle_message(self, emsg_real, msg):
        emsg = Util.get_msg(emsg_real)

        if emsg == EMsg.ClientLicenseList:
            self.handle_license_list(msg)