Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Problem z botem od ruletki


Rekomendowane odpowiedzi

Opublikowano

Witam.

Mam problem z botem obsługującym ruletkę.

Otóż kiedy załączam bota obsługującego to i tak dalej nie działa ruletka.

Dokładniej:
Bot działa. Nie wywala błędów ale i tak strona nie działa (nie rolluje się)

Skrypt zakupiony...
Strona:



Logi z bota:

 

[2016-10-22 17:24:36.682] [INFO] [default] - Id connection with database: 9291985

[2016-10-22 17:24:36.708] [INFO] [default] - Id connection with database: 9291986

[2016-10-22 17:24:36.710] [INFO] [default] - Id connection with database: 9291987

[2016-10-22 17:24:36.712] [INFO] [default] - Id connection with database: 9291988

[2016-10-22 17:24:36.749] [TRACE] [default] - loaded the history of plants

[2016-10-22 17:24:36.753] [TRACE] [default] - the current number of rolling1

[2016-10-22 17:24:36.755] [WARN] [default] - Loaded hashf7a0f771a5ea600e2ced261041530b209f52956752a4d628545da1c1df5d9275

[2016-10-22 17:24:37.665] [TRACE] [default] - Prices loaded successfully



Kod bota:

var mysql = require('mysql');

var log4js = require('log4js');

var io = require('socket.io')(8000);

var request = require('request');

var fs = require('fs');

var md5 = require('md5');

var sha256 = require('sha256');

var math = require('mathjs');



log4js.configure({

    appenders: [

        { type: 'console' },

        { type: 'file', filename: 'logs/site.log' }

    ]

});

var logger = log4js.getLogger();



var pool  = mysql.createPool({

    connectionLimit : 10,

    database: 'davivad_ruletka',

    host: 'w2.lvlup.pro',

    user: '<WYCIETE>',

    password: '<WYCIETE>'

});



process.on('uncaughtException', function (err) {

 logger.trace('Strange error');

 logger.debug(err);

});



/* */

var accept = 20;

var wait = 10;

var br = 3;

var chat = 2;

var chatb = 0;

var maxbet = 10000000000000;

var minbet = 1;

var q1 = 2;

var q2 = 14;

var timer = 30

var users = {};

var roll = 0;

var currentBets = [];

var historyRolls = [];

var usersBr = {};

var usersAmount = {};

var currentSums = {

    '0-0': 0,

    '1-7': 0,

    '8-14': 0

};

var currentRollid = 1;

var pause = false;

var hash = '';

var last_message = {};

/* */



load();



var prices;

request('http://backpack.tf/api/IGetMarketPrices/v1/?key=574a1798c4404507dd2ba1b8&compress=1&appid=730', function(error, response, body) {

    prices = JSON.parse(body);

    if(prices.response.success == 0) {

        logger.warn('It was not possible to load prices. Prices taken from the cache');

        if(fs.existsSync(__dirname + '/prices.txt')){

            prices = JSON.parse(fs.readFileSync(__dirname + '/var/www/prices.txt'));

            logger.warn('Prices have been retrieved from the cache');

        } else {

            logger.error('No prices in cache');

            process.exit(0);

        }

        if(fs.existsSync(__dirname + '/var/www/prices.txt')){

            prices = JSON.parse(fs.readFileSync(__dirname + '/var/www/prices.txt'));

            logger.warn('/var/www/prices.txt Loaded cached');

        } else {

            logger.error('No /var/www/prices.txt in cache');

            process.exit(0);

        }

    } else {

        fs.writeFileSync('/var/www/prices.txt', body);

        logger.trace('Prices loaded successfully');

    }

});



updateHash();

function updateHash() {

    query('SELECT * FROM `hash` ORDER BY `id` DESC LIMIT 1', function(err, row) {

        if(err) {

            logger.error('Cant get the hash, stopping');

            logger.debug(err);

            process.exit(0);

            return;

        }

        if(row.length == 0) {

            logger.error('Wrong hash found, stopping');

            process.exit(0);

        } else {

            if(hash != row[0].hash) logger.warn('Loaded hash'+row[0].hash);

            hash = row[0].hash;

        }

    });

}



io.on('connection', function(socket) {

    var user = false;

    socket.on('hash', function(hash) {

        query('SELECT * FROM `users` WHERE `hash` = '+pool.escape(hash), function(err, row) {

            if((err) || (!row.length)) return socket.disconnect();

            user = row[0];

            users[user.steamid] = {

                socket: socket.id,

                balance: parseInt(row[0].balance)

            }

            socket.emit('message', {

                accept: accept,

                balance: row[0].balance,

                br: br,

                chat: chat,

                chatb: chatb,

                count: timer-wait,

                icon: row[0].avatar,

                maxbet: maxbet,

                minbet: minbet,

                name: row[0].name,

                rank: row[0].rank,

                rolls: historyRolls,

                type: 'hello',

                user: row[0].steamid

            });

            socket.emit('message', {

                type: 'logins',

                count: Object.size(io.sockets.connected)

            });

            currentBets.forEach(function(itm) {

                socket.emit('message', {

                    type: 'bet',

                    bet: {

                        amount: itm.amount,

                        betid: itm.betid,

                        icon: itm.icon,

                        lower: itm.lower,

                        name: itm.name,

                        rollid: itm.rollid,

                        upper: itm.upper,

                        user: itm.user,

                        won: null

                    },

                    sums: {

                        0: currentSums['0-0'],

                        1: currentSums['1-7'],

                        2: currentSums['8-14'],

                    }

                });

            });

        });

    });

    socket.on('mes', function(m) {

        if(!user) return;

        logger.debug(m);

        if(m.type == "bet") return setBet(m, user, socket);

        if(m.type == "balance") return getBalance(user, socket);

        if(m.type == "chat") return ch(m, user, socket);

    });

    socket.on('disconnect', function() {

        io.sockets.emit('message', {

            type: 'logins',

            count: Object.size(io.sockets.connected)

        });

        delete users[user.steamid];

    })

});



function ch(m, user, socket) {

    if(m.msg) {

        var res = null;

        if (res = /^\/send ([0-9]*) ([0-9]*)/.exec(m.msg)) {

            logger.trace('problem with translating from russian'+res[2]+' user '+res[1]);

            query('SELECT `balance` FROM `users` WHERE `steamid` = '+pool.escape(user.steamid), function(err, row) {

                if((err) || (!row.length)) {

                    logger.error('Could not find user to send the coins');

                    logger.debug(err);

                    socket.emit('message', {

                        type: 'error',

                        enable: false,

                        error: 'Error: You are not DB.'

                    });

                    return;

                }

                if(row[0].balance < res[2]) {

                    socket.emit('message', {

                        type: 'error',

                        enable: false,

                        error: 'Error: Insufficient funds.'

                    });

                } else if(res[2] <= 0) {

                    socket.emit('message', {

                        type: 'error',

                        enable: false,

                        error: 'Error: Amount must be greater than 0.'

                    });

                } else {

                    query('SELECT `name` FROM `users` WHERE `steamid` = '+pool.escape(res[1]), function(err2, row2) {

                        if((err) || (!row.length)) {

                            logger.error('Could not get people to move');

                            logger.debug(err);

                            socket.emit('message', {

                                type: 'error',

                                enable: false,

                                error: 'Error: Unknown receiver.'

                            });

                            return;

                        }

                        query('UPDATE `users` SET `balance` = `balance` - '+res[2]+' WHERE `steamid` = '+pool.escape(user.steamid));

                        query('UPDATE `users` SET `balance` = `balance` + '+res[2]+' WHERE `steamid` = '+pool.escape(res[1]));

                        query('INSERT INTO `transfers` SET `from1` = '+pool.escape(user.steamid)+', `to1` = '+pool.escape(res[1])+', `amount` = '+pool.escape(res[2])+', `time` = '+pool.escape(time()));

                        socket.emit('message', {

                            type: 'alert',

                            alert: 'You sent '+res[2]+' coins to '+row2[0].name+'.'

                        });

                        getBalance(user, socket);

                    });

                }

            });

        }else {

            query('SELECT SUM(`amount`) AS castor FROM `bets` WHERE `user` = '+pool.escape(user.steamid), function(err, row) {

                if((err) || (!row.length)) {

                    logger.error('Failed to get the person to transfer');

                    logger.debug(err);

                    socket.emit('message', {

                        type: 'error',

                        enable: false,

                        error: 'Error: Unknown receiver.'

                    });

                    return;

                }

                if(row[0].castor <= chatb) {

                    socket.emit('message', {

                        type: 'error',

                        enable: false,

                        error: 'Chat unlocks after 200,000 coins have been played. You need: '+pool.escape(row[0].castor-chatb + ' coins')

                    });

        } else if (res = /^\/mute ([0-9]*) ([0-9]*)/.exec(m.msg)) {

            if(user.rank > 0) {

                var t = time();

                query('UPDATE `users` SET `mute` = '+pool.escape(parseInt(t)+parseInt(res[2]))+' WHERE `steamid` = '+pool.escape(res[1]));

                socket.emit('message', {

                    type: 'alert',

                    alert: 'You mute '+res[1]+' to '+res[2]

                });

            }

        } else {

                    query('SELECT `mute` FROM `users` WHERE `steamid` = '+pool.escape(user.steamid), function(err, row) {

                        if(err) return;

                        if(row[0].mute > time()) {

                            socket.emit('message', {

                                type: 'alert',

                                alert: 'You muted '+(row[0].mute-time() + 's.')

                            });

                            return;

                        } else if (res = /^\/ban ([0-9]*) ([0-9]*)/.exec(m.msg)) {

                            if(user.rank > 0) {

                            var t = time();

                            query('UPDATE `users` SET `ban` = 1 WHERE `steamid` = '+pool.escape(res[1]));

                            socket.emit('message', {

                            type: 'alert',

                            alert: 'You ban '+res[1]+' '+res[2]

                                });

                                return;

                            }

                        }

                        io.sockets.emit('message', {

                            type: 'chat',

                            msg: safe_tags_replace(m.msg),

                            name: user.name,

                            icon: user.avatar,

                            user: user.steamid,

                            rank: user.rank,

                            lang: m.lang,

                            hide: m.hide

                        });

                    });

                }

            });

        }

    }

}



function getBalance(user, socket) {

    query('SELECT `balance` FROM `users` WHERE `steamid` = '+pool.escape(user.steamid), function(err, row) {

        if((err) || (!row.length)) {

            logger.error('Could not get a person into balance');

            logger.debug(err);

            socket.emit('message', {

                type: 'error',

                enable: true,

                error: 'Error: You are not DB.'

            });

            return;

        }

        socket.emit('message', {

            type: 'balance',

            balance: row[0].balance

        });

        if(user.steamid) users[user.steamid].balance = parseInt(row[0].balance);

    })

}



function setBet(m, user, socket) {

    if((usersBr[user.steamid] !== undefined) && (usersBr[user.steamid] == br)) {

        socket.emit('message', {

            type: 'error',

            enable: true,

            error: 'You\'ve already placed '+usersBr[user.steamid]+'/'+br+' bets this roll.'

        });

        return;

    }

    if((m.amount < minbet) || (m.amount > maxbet)) {

        socket.emit('message', {

            type: 'error',

            enable: true,

            error: 'Min. bet: 50 coins!'

        });

        return;

    }

    if(pause) {

        socket.emit('message', {

            type: 'error',

            enable: false,

            error: 'Betting for this round is closed.'

        });

        return;

    }

    var start_time = new Date();

    query('SELECT `balance` FROM `users` WHERE `steamid` = '+pool.escape(user.steamid), function(err, row) {

        if((err) || (!row.length)) {

            logger.error('Could not get people to rate');

            logger.debug(err);

            socket.emit('message', {

                type: 'error',

                enable: true,

                error: 'You are not DB!'

            });

            return;

        }

        if(row[0].balance >= m.amount) {

            query('UPDATE `users` SET `balance` = `balance` - '+parseInt(m.amount)+' WHERE `steamid` = '+pool.escape(user.steamid), function(err2, row2) {

                if(err2) {

                    logger.error('There is not enough points.');

                    logger.debug(err);

                    socket.emit('message', {

                        type: 'error',

                        enable: true,

                        error: 'You dont have enough points!'

                    });

                    return;

                }

                query('INSERT INTO `bets` SET `user` = '+pool.escape(user.steamid)+', `amount` = '+pool.escape(m.amount)+', `lower` = '+pool.escape(m.lower)+', `upper` = '+pool.escape(m.upper), function(err3, row3) {

                    if(err3) {

                        logger.error('Add error rate in the database');

                        logger.debug(err);

                        return;

                    }

                    var end = new Date();

                    if(usersBr[user.steamid] === undefined) {

                        usersBr[user.steamid] = 1;

                    } else {

                        usersBr[user.steamid]++;

                    }

                    if(usersAmount[user.steamid] === undefined) {

                        usersAmount[user.steamid] = {

                            '0-0': 0,

                            '1-7': 0,

                            '8-14': 0

                        };

                    }

                    usersAmount[user.steamid][m.lower+'-'+m.upper] += parseInt(m.amount);

                    currentSums[m.lower+'-'+m.upper] += m.amount;

                    socket.emit('message', {

                        type: 'betconfirm',

                        bet: {

                            betid: row3.insertId,

                            lower: m.lower,

                            upper: m.upper,

                            amount: usersAmount[user.steamid][m.lower+'-'+m.upper]

                        },

                        balance: row[0].balance-m.amount,

                        mybr: usersBr[user.steamid],

                        br: br,

                        exec: (end.getTime()-start_time.getTime()).toFixed(3)

                    });

                    users[user.steamid].balance = row[0].balance-m.amount;

                    io.sockets.emit('message', {

                        type: 'bet',

                        bet: {

                            amount: usersAmount[user.steamid][m.lower+'-'+m.upper],

                            betid: row3.insertId,

                            icon: user.avatar,

                            lower: m.lower,

                            name: user.name,

                            rollid: currentRollid,

                            upper: m.upper,

                            user: user.steamid,

                            won: null

                        },

                        sums: {

                            0: currentSums['0-0'],

                            1: currentSums['1-7'],

                            2: currentSums['8-14'],

                        }

                    });

                    currentBets.push({

                        amount: m.amount,

                        betid: row3.insertId,

                        icon: user.avatar,

                        lower: m.lower,

                        name: user.name,

                        rollid: currentRollid,

                        upper: m.upper,

                        user: user.steamid,

                    });

                    logger.debug('Принял ставку #'+row3.insertId+' сумма '+m.amount);

                    checkTimer();

                })

            });

        } else {

            socket.emit('message', {

                type: 'error',

                enable: true,

                error: 'You dont any money'

            });

        }

    });

}



function checkTimer() {

    if((currentBets.length > 0) && (timer == -1) && (!pause)) {

        logger.trace('Starts timer');

        timer = accept+wait;

        timerID = setInterval(function() {

            logger.trace('Timer: '+timer+' Site timer: '+(timer-wait));

            if (timer == wait) {

                pause = true;

                logger.trace('Pause is on');

                var inprog = getRandomInt(0, (currentBets.length/4).toFixed(0));

                io.sockets.emit('message', {

                    type: 'preroll',

                    totalbets: currentBets.length-inprog,

                    inprog: inprog,

                    sums: {

                        0: currentSums['0-0'],

                        1: currentSums['1-7'],

                        2: currentSums['8-14'],

                    }

                });

            }

            if (timer == wait-2) {

                logger.trace('load timer');

                toWin(); // Choosing the winner

            }

            if(timer == 0) {

                logger.trace('Reset Tipo');

                timer = accept+wait;

                currentBets = [];

                historyRolls.push({id: currentRollid, roll: roll});

                if(historyRolls.length > 10) historyRolls.slice(1);

                usersBr = {}; // how many users have

                usersAmount = {}; // how many users have coins

                currentSums = {

                    '0-0': 0,

                    '1-7': 0,

                    '8-14': 0

                };

                currentRollid = currentRollid+1;

                pause = false;

            }

            timer--;

        }, 1000);

    }

}



function toWin() {

    var sh = sha256(hash+'-'+currentRollid);

    roll = sh.substr(0, 8);

    roll = parseInt(roll, 16);

    roll = math.abs(roll) % 15;

    logger.trace('Tipo dropped '+roll);

    var r = '';

    var s = q1;

    var wins = {

        '0-0': 0,

        '1-7': 0,

        '8-14': 0

    }

    if(roll == 0) { r = '0-0'; s = q2; wins['0-0'] = currentSums['0-0']*s; }

    if((roll > 0) && (roll < 8)) { r = '1-7'; wins['1-7'] = currentSums['1-7']*s; }

    if((roll > 7) && (roll < 15)) { r = '8-14'; wins['8-14'] = currentSums['8-14']*s; }

    logger.debug(currentBets);

    logger.debug(usersBr);

    logger.debug(usersAmount);

    logger.debug(currentSums);

    for(key in users) {

        if(usersAmount[key] === undefined) {

            var balance = null;

            var won = 0;

        } else {

            var balance = parseInt(users[key].balance)+usersAmount[key][r]*s;

            var won = usersAmount[key][r]*s;

        }

        if (io.sockets.connected[users[key].socket]) io.sockets.connected[users[key].socket].emit('message', {

            balance: balance,

            count: accept,

            nets: [{

                    lower: 0,

                    samount: currentSums['0-0'],

                    swon: wins['0-0'],

                    upper: 0

                }, {

                    lower: 1,

                    samount: currentSums['1-7'],

                    swon: wins['1-7'],

                    upper: 7

                }, {

                    lower: 8,

                    samount: currentSums['8-14'],

                    swon: wins['8-14'],

                    upper: 14

                }

            ],

            roll: roll,

            rollid: currentRollid+1,

            type: "roll",

            wait: wait-2,

            wobble: getRandomArbitary(0, 1),

            won: won

        });

    }

    currentBets.forEach(function(itm) {

        if((roll >= itm.lower) && (roll <= itm.upper)) {

            logger.debug('Rate #'+itm.betid+' sum '+itm.amount+' win '+(itm.amount*s));

            query('UPDATE `users` SET `balance` = `balance` + '+itm.amount*s+' WHERE `steamid` = '+pool.escape(itm.user));

        }

    });

    query('UPDATE `rolls` SET `roll` = '+pool.escape(roll)+', `hash` = '+pool.escape(hash)+', `time` = '+pool.escape(time())+' WHERE `id` = '+pool.escape(currentRollid));

    query('INSERT INTO `rolls` SET `roll` = -1');

    updateHash();

}



















/* */

var tagsToReplace = {

    '&': '&',

    '<': '<',

    '>': '>'

};



function replaceTag(tag) {

    return tagsToReplace[tag] || tag;

}



function safe_tags_replace(str) {

    return str.replace(/[&<>]/g, replaceTag);

}

Object.size = function(obj) {

    var size = 0,

        key;

    for (key in obj) {

        if (obj.hasOwnProperty(key)) size++;

    }

    return size;

};

function getRandomInt(min, max) {

    return Math.floor(Math.random() * (max - min + 1)) + min;

}

function getRandomArbitary(min, max) {

    return Math.random() * (max - min) + min;

}



function query(sql, callback) {

    if (typeof callback === 'undefined') {

        callback = function() {};

    }

    pool.getConnection(function(err, connection) {

        if(err) return callback(err);

        logger.info('Id connection with database: '+connection.threadId);

        connection.query(sql, function(err, rows) {

            if(err) return callback(err);

            connection.release();

            return callback(null, rows);

        });

    });

}

function load() {

    query('SET NAMES utf8');

    query('SELECT `id` FROM `rolls` ORDER BY `id` DESC LIMIT 1', function(err, row) {

        if((err) || (!row.length)) {

            logger.error('you could not get the number last game');

            logger.debug(err);

            process.exit(0);

            return;

        }

        currentRollid = row[0].id;

        logger.trace('the current number of rolling'+currentRollid);

    });

    loadHistory();

    setTimeout(function() { io.listen(8080); }, 3000);

}

function loadHistory() {

    query('SELECT * FROM `rolls` ORDER BY `id` LIMIT 10', function(err, row) {

        if(err) {

            logger.error('Failed to load the list of establishments');

            logger.debug(err);

            process.exit(0);

        }

        logger.trace('loaded the history of plants');

        row.forEach(function(itm) {

            if(itm.roll != -1) historyRolls.push(itm);

        });

    });

}



function time() {

    return parseInt(new Date().getTime()/1000)

} 

davivad.png

Opublikowano

Typie dlaczego ściema?

Ja się pytam jak naprawić bota...?

Wgrywałem z 20 darmowych silników z ruletek, w żadnej bot nie działa, więc pytam co jest nie tak...

Błąd leży w bocie, bo na filmikach działa a mi nie więc co jest nie tak w bocie?

davivad.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...