次に、表示の切り替えを考えます。
占い設定の入力フォームや、襲撃設定の入力フォームなどは、ログインしたキャラクターが占い師や人狼の時だけ表示されれば問題ありません。
ということで、ログインしたときに表示する、入力フォームを役職ごとに切り替えるように書き換えてみます。
if($Login_Index > -1){ if($Day_Count == $Day_Count_Max){ if($Char_Life[$Login_Index] != 1){ &STDOUT_VOTE_FORM; if($Char_Cast[$Login_Index] eq "fortune"){ &STDOUT_FORTUNE_FORM; }elsif($Char_Cast[$Login_Index] eq "guard"){ &STDOUT_GUARD_FORM; }elsif($Char_Cast[$Login_Index] eq "medium"){ &STDOUT_MEDIUM_FORM; } } if($Char_Cast[$Login_Index] eq "wolf"){ if($Char_Life[$Login_Index] != 1){ &STDOUT_ATTACK_FORM; &STDOUT_MSG_FORM( "01" ); &STDOUT_MSG_FORM( "11" ); &STDOUT_MSG_FORM( "50" ); }else{ &STDOUT_MSG_FORM( "15" ); } }elsif($Char_Cast[$Login_Index] eq "fairy"){ &STDOUT_MSG_FORM( "40" ); }else{ if($Char_Life[$Login_Index] != 1){ &STDOUT_MSG_FORM( "01" ); &STDOUT_MSG_FORM( "50" ); }else{ &STDOUT_MSG_FORM( "05" ); } } }
だいたい、ざっと上記のようになると思います。
生きているかどうかのチェックや、人狼かどうか、役職は何かなどのチェックを組み合わせて、表示させるフォームを切り替えます。
あと表示するメッセージにも、人狼同士でしか読めない囁きメッセージや、占い師本人にしか読めないものなどありますから、それも表示のする・しないを切り替える必要がありますね。
}elsif($Line_Type == 53){ if($Char_Cast[$Login_Index] eq "fortune"){ &STDOUT_FORTUNE( $line ); } }
上記は占い設定のメッセージを表示するかどうかのチェックになっています。ログインしているキャラクターが占い師なら、表示するという感じですね。