Проблема с ботом на Node.js. Функция не опознаётся.
Здравствуйте, у меня такая вот проблема. У меня есть бот работающий на Node.js. С ним возникла вот такая вот проблема:
E:\Bot>node bot.js
E:\Bot\bot.js:55
steam.logOn(logOnOptions);
^
TypeError: steam.logOn is not a function
at Object.<anonymous> (E:\Bot\bot.js:55:7)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:968:3
E:\Bot>pause
Для продолжения нажмите любую клавишу . . .
Помогите исправить. Как я понял, бот не может опознать функцию logOn, потому что её нет в модуле steam. Но я не знаю как это исправить. Может я и неправильно понял. Прошу помощи у тех, кто в этом разбирается.
Вот сам код(укоротил):
var admin = '76561198213719873';
var logOnOptions = {
accountName: '*********',
password: '**********'
};
var GameTime = 120; // время продолжительности игры
////
var authCode = ''; // КОД ОТ СТИМ ГУАРД
var globalSessionID;
if (require('fs').existsSync('sentry_'+logOnOptions['accountName']+'.hash')) {
logOnOptions['shaSentryfile'] = require('fs').readFileSync('sentry_'+logOnOptions['accountName']+'.hash');
} else if(require('fs').existsSync('ssfn_'+logOnOptions['accountName'])) {
var sha = require('crypto').createHash('sha1');
sha.update(require('fs').readFileSync('ssfn_'+logO nOptions['accountName']));
var sentry = new Buffer(sha.digest(), 'binary');
logOnOptions['shaSentryfile'] = sentry;
require('fs').writeFileSync('sentry_'+logOnOptions['accountName']+'.hash', sentry);
console.log('Converting ssfn to sentry file!');
console.log('Now you can remove ssfn_'+logOnOptions['accountName']);
} else if (authCode != '') {
logOnOptions['authCode'] = authCode;
}
var sitename;
sitename = "********";
var Steam = require('steam');
var SteamTradeOffers = require('steam-tradeoffers');
var mysql = require('mysql');
var request = require("request");
var apik = "******************************"; // АПИКЕЙ (НУЖЕН С АККАУНТА БОТА!!!)
var mysqlInfo;
mysqlInfo = {
host : 'localhost',
user : '*********',
password : '*********',
database : '*********',
charset : 'utf8_general_ci'
};
var mysqlConnection = mysql.createConnection(mysqlInfo);
var steam = new Steam.SteamClient();
var offers = new SteamTradeOffers();
var recheck = true;
steam.logOn(logOnOptions);
steam.on('debug', function(text){
console.log(text);
require('fs').appendFile('debug.log', text+'\n');
});
function getUserName(steamid) {
getUserInfo(steamid, function(error, data){
if(error) throw error;
var datadec = JSON.parse(JSON.stringify(data.response));
return (datadec.players[0].personaname);
});
}
function proceedWinners() {
var url = 'http://'+sitename+'/getwinner34634f.php';
request(url, function(error, response, body){});
}
function getUserInfo(steamids,callback) {
var url = 'http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key='+apik+'&steamids='+ steamids + '&format=json';
request({
url: url,
json: true
}, function(error, response, body){
if(!error && response.statusCode === 200){
callback(null, body);
} else if (error) {
getUserInfo(steamids,callback);
}
});
}
function addslashes(str) {
str=str.replace(/\\/g,'\\\\');
str=str.replace(/\'/g,'\\\'');
str=str.replace(/\"/g,'\\"');
str=str.replace(/\0/g,'\\0');
return str;
}
var locked=false,proceeded;
var itemscopy;
var detected=false;
var detected2=false;
var endtimer = -1;
function weblogon() {
steam.webLogOn(function(newCookie) {
offers.setup({
sessionID: globalSessionID,
webCookie: newCookie
}, function(err) {
if (err) {
}
});
});
}
function sendoffers(){
detected2 = false;
offers.loadMyInventory({
appId: 730,
contextId: 2
}, function(err, itemx) {
if(err) {
weblogon();
setTimeout(sendoffers,2000);
return;
}
if(detected2 == true) {
return;
}
detected2 = true;
itemscopy = itemx;
detected = false;
mysqlConnection.query('SELECT * FROM `queue` WHERE `status`=\'active\'', function(err, row, fields) {
if(err) {
return;
}
if(detected == true) {
return;
}
detected = true;
for(var i=0; i < row.length; i++) {
var gameid = row[i].id;
var sendItems = (row[i].items).split('/');
var item=[],num=0;
for (var x = 0; x < itemscopy.length; x++) {
for(var j=0; j < sendItems.length; j++) {
if (itemscopy[x].tradable && (itemscopy[x].market_name).indexOf(sendItems[j]) == 0) {
sendItems[j] = "hgjhgnhgjgnjghjjghjghjghjhgjghjghjghngnty";
itemscopy[x].market_name = "fgdfgdfgdfgdfgfswfewefewrfewrewrewr";
item[num] = {
appid: 730,
contextid: 2,
amount: itemscopy[x].amount,
assetid: itemscopy[x].id
}
num++;
}
}
}
if (num > 0) {
var gamenum = row[i].id;
offers.makeOffer ({
partnerSteamId: row[i].userid,
itemsFromMe: item,
accessToken: row[i].token,
itemsFromThem: [],
message: 'Ваш выигрыш на сайте '+sitename+' в игре #'+gamenum
}, function(err, response){
if (err) {
return;
}
mysqlConnection.query('UPDATE `queue` SET `status`=\'sent '+response+'\' WHERE `id`=\''+gameid+'\'', function(err, row, fields) {});
console.log('Trade offer for queue '+gamenum+' sent!');
});
}
}
});
})}
Последний раз редактировалось Krauzer, 09.05.2016 в 09:05.
|