Бот возвращает строку в числа, которые я не указал

1

Создание божества раздора. Получение "вы выиграли" не только по 6 броскам, но и по 2 и 4. Я знаю, что это не лучший способ сделать это. Кажется, что неважно, будет ли random == 'insert string here' или random == 'insert int here'.

//Dice Roll Game
bot.on('message', (message) =>{  

    let diceNum = ['1','2','3','4','5','6'];
    let random = diceNum[Math.floor(Math.random() * diceNum.length)];

    if(message.content == '!roll') {
        message.reply('You rolled a' + ' ' + random + '!');
    }

    if(random == 6){
        message.reply('You win!');
    }
});
  • 0
    Для вопроса равенства, вы можете взглянуть на этот ответ
  • 0
    Оказывается, это когда бы я! катите, это катило бы число для меня и бот разногласия. Иногда я бросал 4, а бот - 6, создавая иллюзию, что я выиграл, когда в действительности это сделал бот. Я просто должен указать, что только ролл для пользователя, вводящего! Roll.
Показать ещё 2 комментария
Теги:
discord

1 ответ

2

Я вижу основные проблемы с вашим кодом:

  1. Вы не поместили весь свой код, связанный с костями, в if -block проверяет, является ли сообщение командой roll.

    • Это заставляет бота отвечать, когда число "проката" равно 6, даже если команда не вызывается.
  2. Вы не проверяли, появилось ли сообщение от бота.

    • Он ответил бы несколько раз, так как вы не проверяли, появилось ли сообщение от вашего бота.

Ваш код будет выглядеть так, как только вы исправили все свои ошибки:

//Dice Roll Game
bot.on('message', message => { // If theres only one parameter, you can omit brackets
    // Bot Check
    if(message.author.bot)return;

    // Even with useless parameters to the command, it will still run
    if(message.content.startsWith('!roll')) { 

        // Arrays are not needed

        // Gives a random int from 1 - 6, (~~) floors an integer 
        let random = ~~(Math.random() * 6) + 1; 

       message.reply('You rolled a ${ random }!'); // ES6 Template Strings 

        // Please use strict equality signs to prevent bugs from appearing in your code
        if(random === 6){
            message.reply('You win!');
        }
    }

});

Сторона Примечание. Если вы не хотите упоминать, добавленное к вашему бот-сообщению, используйте message.channel.send вместо message.reply.

Документы Discord.js

Ещё вопросы

Сообщество Overcoder
Наверх
Меню