さて、次は襲撃/占い/護衛のデータの読み込みを考えてみます。
まず、以下のようにデータを格納する変数を用意しておきます。
@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のままなんですが、その場合はどうしようかという問題が残ります。まあ、ランダムで良いかなぁと思ってますけども。