2016-10-13 6 views
0

私はIRCチャットボットのコマンドを書き、毎日の視聴者をチェックしようとしています。誰かがタイプしたら!チャット私はボットに、1)チェックインしたユーザー名と日付を追加する、2)既にリストに入っていればチェックインを追加する、3)もしあれば何もしないその日に既にチェックされています。私が取り組んでいる問題は、2番目のif文です。それは真実だと思っているように見え、そうしてはならないときに進みます。/echo行は厳密にはデバッグ用です。あなたがこの質問をした前の質問にも苦しんでいるよう

on *:TEXT:!chirp:#: { 
    ;INITIALIZE VARIABLES 
    set %i 1 
    set %lines $lines(chirp.txt) 
    set %line NULL 
    set %lineafter NULL 
    set %date $adate 
    set %temp NULL 

while (%i <= %lines) { 
    set %line $read(chirp.txt, n, %i) 
    set %lineafter $calc($readn +1) 
    set %temp $calc(%i + 1) 

    ;/echo -a %i $char(32) %line $char(32) %lineafter $char(32) %temp 
    ;/echo -a $read(chirp.txt, n, %temp) 

    if (%line == $nick) { 
     if($read(chirp.txt, nw, *%temp*) === %date) { 
      msg $chan /w $nick You've already checked in today! 
      /halt 

     } else { 
      /write -il $+ %lineafter chirp.txt $adate 
      msg $chan /w $nick Welcome back! Thanks for checking in! 
      /halt 
     } 
    } 
/inc %i 
} 

/write chirp.txt $nick 
/write chirp.txt $adate 
} 
;END OF CODE 

答えて

0

:ここ

username 
username 
date 
date 
username 
date 
username 
etc. 

は(リモート関数として書かれた)コードです:

テキストファイル形式は、(1行につき1つの値)であります問題のカップルと一緒に。

これは

if ($read(chirp.txt, nw, *%temp*) === %date) { 

備考場合MSL

スペースがありません
} else { 

使用

} 
else { 

には受け入れられない:

  1. /プレフィックスがリモートモードで無用である、テキスト及びユーザ入力のコマンドを区別するためにのみコマンドで使用されています。あなたはエイリアスまたはリモートが終了した後にクリーンアップすることを宣言変数をしたい場合は
  2. は、後半の応答のためのvar %variable-name = value
+0

は申し訳ありませんが使用していますが、どうもありがとうございました。 ircコーディング言語については、私はまだ非常に緑色です。私は空白がとてもかわいかったとは気付かなかった。 – MrJerkBird