0
votes

Discord Bot Réponse aléatoire

Je travaille actuellement sur un bot de discorde avec un simple jeu mini. Vous écrivez "gamestart" et le bot vous envoie 1 de 4 réponses possibles. Mais mon bot n'envoie rien. Quel est le problème?

bot.on('message', msg) => {
    if(msg.content === "gamestart"){
        var random = Math.random() * (4 - 1) + 1;
        Math.round(random);
        if(random === 1){
            message.channel.send('doggos, axes, chalice');
            
        }
        else
        if(random === 2){
            message.channel.send('sun, axes, doggos');
            
        }
        else
        if(random === 3){
            message.channel.send('axes, sun, chalice');
            
        }
        else
        if(random === 4){
            message.channel.send('chalice, doggos, sun');
            
        }   
    }
    
})


5 commentaires

Math.Round (aléatoire); Cela renvoie une nouvelle valeur et ne mute pas l'ancien. Notez également que votre aléatoire a une propagation de trois, tandis que vous essayez de différencier quatre valeurs. aléatoire === 4 n'arrivera jamais.


Peut-être essayer aléatoire = math.round (aléatoire);


Merci beaucoup maintenant ça marche


@Asdfgerte j'ai défini le max à 5 pour que je devrais travailler. Je vous remercie beaucoup pour votre aide


Comme souvent, le MDN est bon de lire comme un début. J'ai manqué, que vous utilisez rond au lieu de étage . Cela signifie que la deuxième partie de mon commentaire précédent est légèrement fausse. Cependant, il échange simplement un problème pour un autre: tout en frappant toutes les valeurs, votre distribution ne sera plus uniforme.


3 Réponses :


1
votes
const Responses = ["doggos, axes, chalice", "sun, axes, doggos", "axes, sun, chalice", "chalice, doggogs, sun"]; // Storing the responses.
message.channel.send(Responses[Math.floor(Math.random() * Responses.length)]); // Sending a random response.

0 commentaires

0
votes

Le problème pourrait également être avec pertinence avec la manipulation des messages et non défini ID de canal.

Tout d'abord, assurez-vous que BOT est en réalité en réalité un événement de message, via ce code: < / p> xxx

Le second c'est, tous les messages (même s'ils sont des chiffres) sont des chaînes réelles, assurez-vous que la valeur "code> msg est égale à votre phrase. "gamestart".

Quant au troisième, par défaut, BOT répond à un utilisateur dans le canal qu'il a écouté, mais si vous voulez écouter un événement message , mais N'ayez pas la permission d'écrire dans le canal actuel pour répondre, alors vous êtes vissé.

Assurez-vous que BOT a la permission dans certains canaux ou invitez-la avec autorisation = 8 ( administrateur)


0 commentaires

1
votes

Une solution vraiment simple et mon opinion - plus organisée consiste à créer un tableau, puis à choisir le bot choisir un aléatoire et d'envoyer: xxx

aussi (important), changer " message 'à' msg '!!


0 commentaires