2017-11-04 13 views
0
var Playe0; 
var loca = ['L0', 'R0', 'L1', 'R1', 'L2', 'R2', 'L3', 'R3']; 
var dead = [0, 0, 0, 0, 0, 0, 0, 0]; 

bot.on("message", function (msg) { 
    var alive = dead.map((v, i) => !v ? loca[i] : null).filter(v => v != null); 
    if (msg.content === "!p0") { Player0 = msg.author.id; msg.channel.send(`Registered`); } 
    if (msg.author.id === Player0) { 
     if (msg.content === "k") { 
      dead[0] = 1; 
      msg.channel.send(`Targets: ` + alive.join(", ")); } 
    } 

このコードは最終的には必要な処理を行いますが、その処理は正しくありません。
デッドアレイの最初のインデックスを1または0に変更してメッセージを送信することになっています。 現在、メッセージを送信してから値を変更します。専門用語の外には、出力から値を取り除かないといけません。Discord.js配列変数の変更後にテキスト出力を表示するための変数の操作方法

所望の出力用L0ユーザー入力:k

電流出力:Targets: L0, R0, L1, R1, L2, R2, L3, R3
所望の出力:Tagets: R0, L1, R1, L2, R2, L3, R3

私は変更を配布することができますように私は今のための余分なプレーヤーを削除しました。
R0に関連付けられたユーザーがkを入力した場合、出力はR0, L1, R1, L2, R2, L3, R3
です。これは、コードがインデックスを変更していることを示しています。変更が登録される前にメッセージを送信しています。これは、おそらくalive変数の配置または使用によるものです。

+0

今質問がありますか? – LW001

+0

dired出力を取得するにはどうすればよいですか? –

+0

[How to Ask](https://stackoverflow.com/help/how-to-ask)に従って正確に必要なものを明確にしてください – LW001

答えて

0

alive変数は、dead[0]を更新する前に発生するため、時間通りに更新されません。 var alive = dead.map((v, i) => !v ? loca[i] : null).filter(v => v != null);dead[0] = 1;に移動します。

+0

この結果、次のエラーが発生します。 'C:¥Users¥maver¥Documents¥TestBot¥test.js:67 if(msg.content.toLowerCase()===" k "){dead [0] = 1 ; msg.channel.send( 'Targets:' + alive.join( "、")); }; ^ TypeError:未定義の 'join'プロパティを読み取れません –

関連する問題