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

Участник
Статус
Оффлайн
Регистрация
18 Апр 2016
Сообщения
433
Реакции[?]
257
Поинты[?]
5K
Мои старые темы:
Бот на NodeJS => https://yougame.biz/threads/23364/
Обычная рулетка => https://yougame.biz/threads/23535/

Нам нужен буит сорц из второй темы.
Old source =>
Пожалуйста, авторизуйтесь для просмотра ссылки.


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

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

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

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

Стало:

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

Как стало:

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

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

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

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

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

Дальше RGB рулетка:
Тут особо я хз че рассказать, похоже на обычную, но кое чо меняется:
Код:
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)

Пример работы:

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





SOURCE:
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Забаненный
Статус
Оффлайн
Регистрация
7 Мар 2017
Сообщения
753
Реакции[?]
364
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Оформление темы оч пиздатое, держи симпу. Жду еще гайдов
 
Сверху Снизу