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.