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'); } } })
3 Réponses :
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.
Le problème pourrait également être avec pertinence avec la manipulation des messages et Tout d'abord, assurez-vous que BOT est en réalité en réalité un événement de message, via ce code: < / p> 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 code> est égale à votre phrase. "gamestart". p> 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 code> message code>, mais N'ayez pas la permission d'écrire dans le canal actuel pour répondre, alors vous êtes vissé. p> Assurez-vous que BOT a la permission dans certains canaux ou invitez-la avec non défini code> ID de canal.
autorisation = 8 code> ( administrateur) p> p>
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: aussi (important), changer " message 'à' msg '!! p> p>
Math.Round (aléatoire); code> 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 code> n'arrivera jamais.
Peut-être essayer
aléatoire = math.round (aléatoire); code>
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 A> est bon de lire comme un début. J'ai manqué, que vous utilisez
rond code> au lieu de
étage code>. 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.