#---------------------------------------------------------------------- # 箱庭諸島 ver2.30改 怪獣大作戦 ver1.0.0 # 殿堂スクリプト(ver1.00) # 使用条件、使用方法等は、hako-readme.txtファイルを参照 # # 箱庭諸島(おじー)のページ: http://t.pos.to/ozzy/ #---------------------------------------------------------------------- # 全殿堂データの読み込み sub readHofFile { open(HOF, "${HEnvDirName}/hof.log"); $HnumOfHof = int(); for ($i = 0; $i < $HnumOfHof; $i ++) { $HhofIslands[$i] = readHofIsland( ); } close(HOF); } # 島ひとつ読み込み sub readHofIsland { my($id, $name, $turn, $comment); $id = int(); $name = ; chomp($name); $turn = int(); $comment = ; chomp($comment); return { 'id' => $id, 'name' => $name, 'turn' => $turn, 'comment' => $comment, }; } # 全殿堂ファイルの書き込み sub writeHofFile { hofSort(); # ソート if ($HnumOfHof > 50) { $HnumOfHof = 50; # 切り捨て } open(HOF, ">${HEnvDirName}/hof.log"); print HOF "$HnumOfHof\n"; my($i); for ($i = 0; $i < $HnumOfHof; $i++) { writeHofIsland($HhofIslands[$i]); } close(HOF); writeHofHtml(); } sub writeHofIsland { my($island) = @_; print HOF $island->{'id'}. "\n"; print HOF $island->{'name'}. "\n"; print HOF $island->{'turn'}. "\n"; print HOF $island->{'comment'}. "\n"; } # ソート sub hofSort { # 同じ記録の場合、直前のターンの順番のまま my @idx = (0..$#HhofIslands); @idx = sort { $HhofIslands[$a]->{'turn'} <=> $HhofIslands[$b]->{'turn'} || $HhofIslands[$a]->{'id'} <=> $HhofIslands[$b]->{'id'} } @idx; @HhofIslands = @HhofIslands[@idx]; } # 追加 sub pushHofIsland { my($island) = @_; $HhofIslands[$HnumOfHof++] = { 'id' => $island->{'id'}, 'name' => $island->{'name'}, 'turn' => $HislandTurn - $island->{'ext'}[0], 'comment' => $island->{'comment'}, }; } # HTMLファイルの作成 sub writeHofHtml { open(HOFHTML, ">hof.cgi"); my($htmlBody) = 'BGCOLOR="#EEFFFF"'; # ここはかなりいんちき print HOFHTML "#!$HEnvPerl\n"; print HOFHTML "print <$Htitle\n"; print HOFHTML "箱庭諸島スクリプト配布元
\n"; print HOFHTML "

${HtagHeader_}偉大なる怪獣ハンター達の記録${H_tagHeader}

$HtempBack

\n"; print HOFHTML "\n"; print HOFHTML "\n"; print HOFHTML "\n"; print HOFHTML "\n"; print HOFHTML "\n"; my($i, $j, $island); my($tmpTurn) = 0; for ($i = 0; $i < $HnumOfHof; $i++) { $island = $HhofIslands[$i]; if ($tmpTurn < $island->{'turn'}) { $tmpTurn = $island->{'turn'}; $j = $i + 1; } print HOFHTML "\n"; print HOFHTML "\n"; print HOFHTML "\n"; print HOFHTML "\n"; } print HOFHTML "
${HtagTH_}順位${H_tagTH}${HtagTH_}島の名前${H_tagTH}${HtagTH_}記録${H_tagTH}${HtagTH_}コメント${H_tagTH}
${HtagNumber_}$j${H_tagNumber}${HtagName_}$island->{'name'}島${_HtagName}$island->{'turn'}ターン$island->{'comment'}
\n"; print HOFHTML "

\n"; print HOFHTML "END\n"; close(HOFHTML); } 1;