Апгрейд бота на NodeJS

Уникальная группа
Уникальная группа
Статус
Оффлайн
Регистрация
18 Апр 2016
Сообщения
452
Реакции
256
Мои старые темы:
Бот на NodeJS => https://yougame.biz/threads/23364/
Обычная рулетка => https://yougame.biz/threads/23535/

Нам нужен буит сорц из второй темы.
Old source => https://pastebin.com/R4fzfAjh

// Так же я перешел с Notepad++ на VS Code, поскольку она мне зашла.

Начнем с системы прав:

Находим var users = {}, там должен быть ваш айди
oJTEg1y.png
после balance допишем tag: 'User' и level: 0, представим следующее:
level: -1 = Banned
level: 0 = User
level: 1 = Moder
level: 2 = Admin
Сообсна выставляем себе 2й лвл и идем дальше
YncYbKb.png

Дальше находим строку:
Код:
Expand Collapse Copy
if(!users[message.user])
        users[message.user] = {balance: 1000};
и заменяем на:
Код:
Expand Collapse Copy
if(!users[message.user])
        users[message.user] = {balance: 1000, tag: 'User', level: 0};

Было:
olw0gia.png

Стало:
At68m1c.png

Далее улучшим нашу функцию command(), дописав в аргументы _level, а в push, l: _lvl
Как было:
HzGBGFe.png

Как стало:
yCuvtlC.png

Терь допишим ко всех коммандам лвл доступа
LMI8ECf.png

Возвращаемся обрато в листенер сообщений и перед cmd.f(message, params) добавляем (или заменяем):
Код:
Expand Collapse Copy
if(users[message.user].level >= cmd.l)
fqwjsdi.png

Терь сделаем такую штуку, шоб работали тэги, в листенер пишем:
Код:
Expand Collapse Copy
var bot = {
send: function( obj, params = {}) {
return message.send(users[message.user].tag + ', ' + obj, params);
}
};
а в cmd.f дописываем bot
Код:
Expand Collapse Copy
cmd.f(message, params, bot);
nUN7ptj.png

После чего в каждую команду, после params добавляем bot и все message заменяем на bot;
4T08X1W.png

На этом мы закончили систему прав и сообщения с тегами.

Дальше RGB рулетка:
Тут особо я хз че рассказать, похоже на обычную, но кое чо меняется:
Код:
Expand Collapse Copy
command(/^\/double (r|g|b)\s([0-9]+)/i, '/double <r|g|b> [points] -- top ruletka', function(message, params, bot) {
    if(users[message.user].balance <= 0) return bot.send('мало денег');
    if(params[2] <= 0) return bot.send('нельзя ставить меньше 0');
    if(params[1] == 'r' || params[1] == 'b') {
        if(getRandomInt(1, 100) > 80) {
            users[message.user].balance += Number(params[2]); 
            return bot.send(`И выпало [${params[1] == 'r' ? 'RED' : 'BLACK'}]\nВы выиграли: ${params[2]} поинтов`);
        }else{
            users[message.user].balance -= Number(params[2]);
            return bot.send(`И выпало [${params[1] == 'r' ? 'BLACK' : 'RED'}]\nВы проиграли: ${params[2]} поинтов`)
        }
    }else if(params[1] == 'g') {
        if(getRandomInt(1, 100) > 95) {
            users[message.user].balance += Number(params[2]*14); 
            return bot.send(`И выпало [GREEN]\nВы выиграли: ${params[2]*14} поинтов`);
        }else{
            users[message.user].balance -= Number(params[2]);
            return bot.send(`И выпало [${['BLACK', 'RED'].random()}]\nВы проиграли: ${params[2]} поинтов`)
        }
    }
}, 0)
nold8hE.png

Пример работы:
FmqdWh6.png

// Опять же, если тема вам зайдет, в след гайде сделаем пару команд для онли админов (eval например, или если у вас linux, то полное управление сервером прямо из лс бота)
// Насчет канваса, я хз нужен ли он вам, если вы не линуксоид, то скорее всего у вас ничо не выйдет

LKyaJQ9.png

anozrtu.png

kRMerfD.png

w9l6deB.png

SOURCE: https://pastebin.com/kkTPu03C
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Оформление темы оч пиздатое, держи симпу. Жду еще гайдов
 
Назад
Сверху Снизу