さて、次は襲撃/占い/護衛のデータの読み込みを考えてみます。
まず、以下のようにデータを格納する変数を用意しておきます。
@Exec_Attack = (-1, -1); @Exec_Fortune = (-1, -1); @Exec_Guard = (-1, -1);
これらは第二候補まで設定できないといけないので、配列にします。
で、読み込み部分を昨日のヤツに追加します。関連する部分だけを抜き出すと以下のようになるでしょう。
if($Line_Type == 51){ $Char_Vote[$Line_Char_Index] = $data[0]; }elsif($Line_Type == 52){ $Exec_Attack[0] = $data[0]; $Exec_Attack[1] = $data[1]; }elsif($Line_Type == 53){ $Exec_Fortune[0] = $data[0]; $Exec_Fortune[1] = $data[1]; }elsif($Line_Type == 54){ $Exec_Guard[0] = $data[0]; $Exec_Guard[1] = $data[1]; }elsif($Line_Type == 81){ push(@Char_Name, $data[0]); push(@Char_Icon, $data[1]); push(@Char_Vote, -1); } if($Day_Count_Max < $Line_Day){ $Day_Count_Max = $Line_Day; foreach $vote (@Char_Vote) { $vote = -1; } @Exec_Attack = (-1, -1); @Exec_Fortune = (-1, -1); @Exec_Guard = (-1, -1); }
それぞれのコードだった場合に、それを該当する配列にセットしていきます。
また、日付が変わればそれをまた-1にクリアします。
これで、その日にセットされた襲撃先/占い先/護衛先を変数に格納することになります。
ところで、その日に何もセットされなかった場合は変数の値が-1のままなんですが、その場合はどうしようかという問題が残ります。まあ、ランダムで良いかなぁと思ってますけども。