Jump to content
McKay Development

Recommended Posts

Hey iam working on a GameBot.

 

Example: someone want a Gamepackage, it cost 2 TF2 Keys.

 

I sent the TradePartner an offer with 2 Keys from his Inventory.

 

Here is my Code:

 

function GetItems(){

 

manager.getUserInventoryContents(TradePartnerSteamID64, 440, 2, true, (err, inv) => {

if (err) {

console.log(err);

} else {

var Volume = 2; // Get X Amount of Items

 

// Filter out all

var Keys = inv.filter(function(item) {

return item.market_hash_name.match('Mann Co. Supply Crate Key')

});

 

// Check if TradePartner have enough Keys

if(Keys.length < Volume) {

console.log('Not enough Mann Co. Supply Crate Keys');

return true;

}

 

// Start a new TradeOffer

var offer = manager.createOffer(TradePartnerSteamID64);

 

// Add the Items to TradeOffer

console.log('Adding ' + Volume + ' Mann Co. Supply Crate Key');

offer.addTheirItems(Keys.slice(0, Volume))

 

// Send the TradeOffer

offer.send(function(err, status) {

if(err) {

console.log(err);

} else if(status == 'pending') {

community.acceptConfirmationForObject(Config.IDENTITYSECRET, offer.id, function(err) {

if(err) {

console.log(err);

} else {

console.log("TradeOffer confirmed");

}

});

} else {

console.log('TradeOffer sent successfully');

}

});

}

});

 

};

 

...ok that works.

 

But how can i check if the Trade decline, finish or Items changed by TradePartner?

 

Like:

 

If trade done sent GameCodes

If trade decline do anything

If trade changed kick him i his ass :)

 

Iam newbie in node, pls help me.

 

Thx in advance....

Link to comment
Share on other sites

You can use Steam Trade Offer Manager to check for sent offers & check the offer state with ETradeOfferState.

manager.on('sentOfferChanged', (offer, oldState) => {
  console.log(`Bot ${this.client.steamID.getSteamID64()}'s offer #${offer.id} changed: ${TradeOfferManager.ETradeOfferState[oldState]} -> ${TradeOfferManager.ETradeOfferState[offer.state]}`);
});
Link to comment
Share on other sites

Ok, i have try it, but there was an error if tradeoffer items changed by OfferPartner ( Offer.state == 4 )

 

how can i cancel the changed TradeOffer from OfferPartner?

Send TradeOffer Function:

// Send TradeOffer to TradePartnerSteamID64
function GetItems(){
    manager.getUserInventoryContents(TradePartnerSteamID64, 440, 2, true, (err, inv) => {
        if (err) {
            log("[" + getTime() + "] [ERROR] Get User Inventory Contents: " + err);
        } else {
            var Volume = 1; // Get X Amount of Items
            
            // Filter out all the TF2 Keys
            var Tf2Keys = inv.filter(function(item) {
                return item.market_hash_name.match('Mann Co. Supply Crate Key')
            });
        
            // Let the user know we don't have enough Tf2Keys
            if(Tf2Keys.length < Volume) {
                log("[" + getTime() + "] [INFO] Not enough Mann Co. Supply Crate Keys in TradePartnerSteamID64's Inventory");
                return true; // Give up
            }
            
            // Start a new trade offer
            Offer = manager.createOffer(TradePartnerSteamID64);
            // Add what we should to the current trade
            log("[" + getTime() + "] [INFO] Adding " + Volume + " Mann Co. Supply Crate Keys to TradeOffer");
            Offer.addTheirItems(Tf2Keys.slice(0, Volume))
            
            // Send the offer
            Offer.send(function(err, status) {
                if(err) {
                    log(err);
                } else if(status == 'pending') {
                    community.acceptConfirmationForObject(Config.IDENTITYSECRET, Offer.id, function(err) {
                        if(err) {
                            log(err);
                        } else {
                            log("[" + getTime() + "][INFO] TradeOffer confirmed with TradeOfferID: #" + Offer.id);
                        }
                    });
                } else if(status == "accepted") {
                    log("[" + getTime() + "][INFO] TradeOffer accepted");
                     
                } else {
                    log("[" + getTime() + "][INFO] TradeOffer #" + Offer.id + " sent successfully");
                }
            });
         }
    });
    
};

Check TradeOffer States :

// Check TradeOffer States
manager.on("sentOfferChanged", (Offer, oldstate) => {
	if (Offer.state == 1) {
	log("[" + getTime() + "] [WARN] Invalid TradeOffer");
		
	} else if (Offer.state ==2) {
		log("[" + getTime() + "] [WARN] Active TradeOffer");
		
	} else if (Offer.state == 3) {
		log("[" + getTime() + "] [WARN] Accepted TradeOffer");
		
	} else if (Offer.state == 4) { // TradeOffer Changed
		log("[" + getTime() + "] [WARN] Countered TradeOffer");
		
		Offer.cancel((err) => {
			if(err) {
				log("["+getTime()+"] [ERROR] We can't cancel the TradeOffer: " + err);
			} else {
			    log("["+getTime()+"] [Canceled TradeOffer] OfferID: #" + Offer.id);
			}
		});
		
	} else if (Offer.state == 5) {
		log("[" + getTime() + "] [WARN] Expired TradeOffer");
		
	} else if (Offer.state == 6) {
		log("[" + getTime() + "] [WARN] Canceled TradeOffer");
		
	} else if (Offer.state == 7) {
		log("[" + getTime() + "] [WARN] Declined TradeOffer");
		
	} else if (Offer.state == 8) {
		log("[" + getTime() + "] [WARN] InvalidItems TradeOffer");
		
	} else if (Offer.state == 9) {
		log("[" + getTime() + "] [WARN] CreatedNeedsConfirmation TradeOffer");
		
	} else if (Offer.state == 10) {
		log("[" + getTime() + "] [WARN] CanceledBySecondFactor TradeOffer");
		
	} else if (Offer.state == 11) {
		log("[" + getTime() + "] [WARN] InEscrow TradeOffer");
		
	}
});

CONSOLE OUTPUT:

[10:05:2019 - 12:18:57] [INFO] Websession created and Cookies set successfully.
[10:05:2019 - 12:18:57] [INFO] Adding 1 Mann Co. Supply Crate Keys to TradeOffer
[10:05:2019 - 12:18:58] [INFO] TradeOffer #3565072757 sent successfully
[10:05:2019 - 12:19:48] [WARN] Countered TradeOffer
[10:05:2019 - 12:19:48] [ERROR] We can't cancel the TradeOffer: Error: Offer #353565072757 is not active, so it may not be cancelled or declined

------------------

I want if Offer.state == 4 cancel the offer automaticly

 

But i dont know how :-(

Edited by CellSplitter
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...