#!/usr/local/bin/perl #--- [注意事項] ------------------------------------------------# # 1. このスクリプトはフリーソフトです。このスクリプトを使用した # # いかなる損害に対して作者は一切の責任を負いません。 # # 2. 設置に関する質問はサポート掲示板にお願いいたします。 # # 直接メールによる質問は一切お受けいたしておりません。 # #---------------------------------------------------------------# # 日本語ライブラリの読み込み require 'data_ini/jcode.pl'; # 初期設定ファイルの読み込み require 'data_ini/msvs_ini.cgi'; # インフォファイルの読み込み require 'data_ini/msvs_info.cgi'; # ライブラリの読み込み require 'data_ini/msvslib.cgi'; #+++ AceCreek 2002.04.14 +++ # ユニット一覧 $unitinfo = "unitinfo_all.cgi"; #+++++++++++++++++++++++++++ #================================================================# #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓# #┃ これより下はCGIに自信のある方以外は扱わないほうが無難です ┃# #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛# #================================================================# #--------------# # メイン処理 # #--------------# if($mente) { &error("現在メンテナンス中です。しばらくお待ちください。"); } &decode; &deny_host; $mode eq $in{'mode'}; #--- AceCreek 2002.06.30 --- #if($mode eq 'unitinfo') { &unitinfo; } #&ranking; #--------------------------- #+++ AceCreek 2002.06.30 +++ &unitinfo; #+++++++++++++++++++++++++++ #┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ #┃ オートローダー #┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ sub AUTOLOAD { my $name = ($AUTOLOAD =~ /^main::(.+)$/)[0]; ($FLAG{'autoload'}++ > 50) && die $AUTOLOAD; # 念のため無限ループ防止 defined %SUB or &SUBS; if (!defined $SUB{$name}) { &error("定義されていない関数($AUTOLOAD)が呼ばれました。"); exit; } eval $SUB{$name}; length($@) && &error("EVAL ERROR: $@ ($AUTOLOAD)"); delete $SUB{$name}; goto &{'main::' . $name}; } sub SUBS { %SUB = ( unitinfo => <<'__SUB__', #------------------# # MS一覧画面 # #------------------# sub unitinfo { #ユニット読込み &unit_read; #ソート $i=0; foreach (0..@syoku -1) { ($unit_num,$unit_name,$unit_taikyu,$unit_soko,$unit_undo,$unit_sakuteki,$unit_engy,$unit_tyokan,$unit_sojyu,$unit_kin,$unit_tyu,$unit_en,$unit_nt,$unit_tijyo,$unit_suityu,$unit_utyu,$unit_kutyu,$unit_point,$unit_lv,$unit_jyuryo,$unit_gif,$unit_viewlv,$unit_viewpoint,$unit_tokusyu,$unit_kaizo,$unit_mesei ) = split(/<>/,$syoku[$i]); push(@tmp2, @syoku - $i); #なし if( !$in{'sort'} || $in{'sort'} eq 'no') { push(@tmp1, $i); $sorttyp = "条件なし"; } #機体名 if( $in{'sort'} eq 'kitai') { &jcode'convert(*unit_name, "euc"); push(@tmp1, $unit_name); $sorttyp = "機体名"; } #耐久 if( $in{'sort'} eq 'taikyu') { push(@tmp1, $unit_taikyu); $sorttyp = "耐久";} #装甲 if( $in{'sort'} eq 'soko') { push(@tmp1, $unit_soko); $sorttyp = "装甲";} #運動 if( $in{'sort'} eq 'undo') { push(@tmp1, $unit_undo); $sorttyp = "運動";} #索敵 if( $in{'sort'} eq 'sakuteki') { push(@tmp1, $unit_sakuteki); $sorttyp = "索敵";} #EN if( $in{'sort'} eq 'engy') { push(@tmp1, $unit_engy); $sorttyp = "EN";} #重量 if( $in{'sort'} eq 'jyuryo') { push(@tmp1, $unit_jyuryo); $sorttyp = "重量";} #直感 if( $in{'sort'} eq 'tyokan') { push(@tmp1, $unit_tyokan); $sorttyp = "必要直感\能\力";} #操縦 if( $in{'sort'} eq 'sojyu') { push(@tmp1, $unit_sojyu); $sorttyp = "必要操縦\能\力";} #近 if( $in{'sort'} eq 'kin') { push(@tmp1, $unit_kin); $sorttyp = "必要近距離\能\力";} #中 if( $in{'sort'} eq 'tyu') { push(@tmp1, $unit_tyu); $sorttyp = "必要中距離\能\力";} #遠 if( $in{'sort'} eq 'en') { push(@tmp1, $unit_en); $sorttyp = "必要遠距離\能\力";} #名声 if( $in{'sort'} eq 'mesei') { push(@tmp1, $unit_mesei); $sorttyp = "必要名声";} #POINT if( $in{'sort'} eq 'point') { push(@tmp1, $unit_point); $sorttyp = "必要POINT";} #地上 if( $in{'sort'} eq 'tijyo') { push(@tmp1, $unit_tijyo); $sorttyp = "地上適正";} #水中 if( $in{'sort'} eq 'suityu') { push(@tmp1, $unit_suityu); $sorttyp = "水中適正";} #宇宙 if( $in{'sort'} eq 'utyu') { push(@tmp1, $unit_utyu); $sorttyp = "宇宙適正";} #空中 if( $in{'sort'} eq 'kutyu') { push(@tmp1, $unit_kutyu); $sorttyp = "空中適正";} $i++; } if( !$in{'type'} || $in{'type'} eq 'syo') { @syoku = @syoku[sort {$tmp1[$a] <=> $tmp1[$b] or $tmp2[$b] <=> $tmp2[$a]} 0 .. $#tmp1]; $nowtype = "昇順"; $typemsg = "降順に変更"; $type = "kou"; } else { @syoku = @syoku[sort {$tmp1[$b] <=> $tmp1[$a] or $tmp2[$b] <=> $tmp2[$a]} 0 .. $#tmp1]; $nowtype = "降順"; $typemsg = "昇順に変更"; $type = "syo"; } #ヘッダ表示 &header; # 機体名 print <<"EOM";

MS一覧


MSの一覧を$sorttypの$nowtypeに表\示しています。($typemsg) EOM $i=$in{'page'};$j=0; foreach (0..@syoku ) { if($j >= 25 || $i >= @syoku) { last; } ($unit_num,$unit_name,$unit_taikyu,$unit_soko,$unit_undo,$unit_sakuteki,$unit_engy,$unit_tyokan,$unit_sojyu,$unit_kin,$unit_tyu,$unit_en,$unit_nt,$unit_tijyo,$unit_suityu,$unit_utyu,$unit_kutyu,$unit_point,$unit_lv,$unit_jyuryo,$unit_gif,$unit_viewlv,$unit_viewpoint,$unit_tokusyu,$unit_kaizo,$unit_mesei ) = split(/<>/,$syoku[$i]); @u_tokusyu = split(/##/,$unit_tokusyu); if($unit_nt == 0 ) { $nt = "−"; } #--- AceCreek 2002.04.14 --- # if($unit_nt > 0 ) { $nt = "必"; } # if($unit_nt < 0 ) { $nt = "強"; } #--------------------------- #+++ AceCreek 2002.04.14 +++ if ( $unit_nt > 0 ) { $nt = "NT+$unit_nt"; } if ( $unit_nt < 0 ) { $nt = "強+" . $unit_nt * -1; } #+++++++++++++++++++++++++++ #--- AceCreek 2002.04.14 --- # if($unit_mesei > $in{'mesei'} * 2 ) { $unit_name = "特殊条件機体"; } #--------------------------- #--- AceCreek 2002.04.14 --- # if( $unit_viewlv != 9999 && $unit_point != 0 ) #--------------------------- { print <<"EOM"; EOM $j++; } $i++; } if($i >= @syoku){ $i = 0; } print <<"EOM";
No 機体名 機体
Lv
ビュー
Lv
ビュー
Pt
特殊 改造 耐久 装甲 運動 索敵 EN 重量 直感 操縦 名声 NT POINT 地上 水中 宇宙 空中
$i $unit_name $unit_lv $unit_viewlv $unit_viewpoint $unit_tokusyu $unit_kaizo $unit_taikyu $unit_soko $unit_undo $unit_sakuteki $unit_engy $unit_jyuryo $unit_tyokan $unit_sojyu $unit_kin $unit_tyu $unit_en $unit_mesei $nt $unit_point $unit_tijyo $unit_suityu $unit_utyu $unit_kutyu
/ <<BACK / >>NEXT
EOM exit; } __SUB__ ); }