📄 tac.cgi
字号:
#!/usr/bin/perl
#--- [注意事项] ------------------------------------------------#
# 1. このスクリプトはフリ—ソフトです。このスクリプトを使用した #
# いかなる损害に对して作者は一切の责任を负いません。 #
# 2. 设置に关する质问はサポ—ト揭示板にお愿いいたします。 #
# 直接メ—ルによる质问は一切お受けいたしておりません。 #
#---------------------------------------------------------------#
# 日本语ライブラリの读み??み
require 'jcode.pl';
# レジストライブラリの读み??み
require 'regist.pl';
# 初期设定ファイルの读み??み
require 'ffadventure.ini';
require 'shop.ini';
#================================================================#
#┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓#
#┃ これより下はCGIに自信のある方以外は??わないほうが无难です ┃#
#┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛#
#================================================================#
#--------------#
# メイン处理 #
#--------------#
if($mente) { &error("バ—ジョンアップ中です。2、30秒ほどお待ち下さい。m(_ _)m"); }
&decode;
if($mode eq 'senjutu') { &senjutu; }
elsif($mode eq 'senjutu_henkou') { &senjutu_henkou; }
elsif($mode eq 'tac_eqq0') { $tac_file = $tac_file0; &senjutu; }
elsif($mode eq 'tac_eqq1') { $tac_file = $tac_file1; &senjutu; }
elsif($mode eq 'tac_eqq2') { $tac_file = $tac_file2; &senjutu; }
elsif($mode eq 'tac_eqq3') { $tac_file = $tac_file3; &senjutu; }
elsif($mode eq 'tac_eqq4') { $tac_file = $tac_file4; &senjutu; }
elsif($mode eq 'tac_eqq5') { $tac_file = $tac_file5; &senjutu; }
elsif($mode eq 'tac_eqq6') { $tac_file = $tac_file6; &senjutu; }
elsif($mode eq 'tac_eqq7') { $tac_file = $tac_file7; &senjutu; }
elsif($mode eq 'tac_eqq8') { $tac_file = $tac_file8; &senjutu; }
elsif($mode eq 'tac_eqq9') { $tac_file = $tac_file9; &senjutu; }
elsif($mode eq 'tac_eqq10') { $tac_file = $tac_file10; &senjutu; }
elsif($mode eq 'tac_eqq11') { $tac_file = $tac_file11; &senjutu; }
elsif($mode eq 'tac_eqq12') { $tac_file = $tac_file12; &senjutu; }
elsif($mode eq 'tac_eqq13') { $tac_file = $tac_file13; &senjutu; }
elsif($mode eq 'tac_eqq14') { $tac_file = $tac_file14; &senjutu; }
elsif($mode eq 'tac_eqq15') { $tac_file = $tac_file15; &senjutu; }
elsif($mode eq 'tac_eqq16') { $tac_file = $tac_file16; &senjutu; }
elsif($mode eq 'tac_eqq17') { $tac_file = $tac_file17; &senjutu; }
elsif($mode eq 'tac_eqq18') { $tac_file = $tac_file18; &senjutu; }
elsif($mode eq 'tac_eqq19') { $tac_file = $tac_file19; &senjutu; }
elsif($mode eq 'tac_eqq20') { $tac_file = $tac_file20; &senjutu; }
elsif($mode eq 'tac_eqq21') { $tac_file = $tac_file21; &senjutu; }
elsif($mode eq 'tac_eqq22') { $tac_file = $tac_file22; &senjutu; }
else { &error("アクセスできません"); }
#┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
#┃ オ—トロ—ダ—
#┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
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 = (
senjutu => <<'__SUB__',
#----------------#
# 战术表示 #
#----------------#
sub senjutu {
open(IN,"./charalog/$in{'id'}.cgi") or &error('ファイルを开けませんでした。');
@senjutu = <IN>;
close(IN);
foreach(@senjutu){
($kid,$kpass,$ksite,$kurl,$kname,$ksex,$kchara,$kn_0,$kn_1,$kn_2,$kn_3,$kn_4,$kn_5,$kn_6,$ksyoku,$khp,$kmaxhp,$kex,$klv,$kgold,$klp,$ktotal,$kkati,$kwaza,$kitem,$kmons,$khost,$kdate,$kmori,$kdef,$ktac,$kkumite) = split(/<>/);
if($in{'id'} eq "$kid" and $in{'pass'} eq "$kpass") { last; }
}
if($in{'id'} ne "$kid" or $in{'pass'} ne "$kpass"){&error("オ—プンエラ—、ID·パスワ—ドが正しくありません。");}
open(IN,"$tac_file");
@log_senjutu = <IN>;
close(IN);
$hit=0;
foreach(@log_senjutu){
($ks_no,$ks_name) = split(/<>/);
if($ktac eq "$ks_no"){ $hit=1;last; }
}
if(!$hit) { $ks_name="普通に战う"; }
open(IN,"$tac_file");
@senjutu_array = <IN>;
close(IN);
&header;
print <<"EOM";
<h1>作战会议室</h1>
<hr size=0>
<p>
<BR>
<table border=1>
<tr>
<th></th><th>战术</th>
<tr><th>现在の战术</th><th>$ks_name</th>
EOM
print "<form action=\"$scripttac\" method=\"post\">\n";
foreach(@senjutu_array){
($s_no,$s_name) = split(/<>/);
print "<tr>\n";
print "<td><input type=radio name=senjutu_no value=\"$s_no\"></td><td>$s_name</td>\n";
print "</tr>\n";
}
print "</tr>\n";
print "</table>\n";
print "<input type=hidden name=id value=$kid>\n";
print "<input type=hidden name=pass value=$kpass>\n";
print "<input type=hidden name=mode value=senjutu_henkou>\n";
print "<input type=submit value=\"变更する\">\n";
print "</form>\n";
&footer;
exit;
}
__SUB__
senjutu_henkou => <<'__SUB__',
#----------------#
# 战术变更 #
#----------------#
sub senjutu_henkou {
# ファイルロック
if ($lockkey == 1) { &lock1; }
elsif ($lockkey == 2) { &lock2; }
open(IN,"./charalog/$in{'id'}.cgi") or &error('ファイルを开けませんでした。');
@senjutu = <IN>;
close(IN);
foreach(@senjutu){
($kid,$kpass,$ksite,$kurl,$kname,$ksex,$kchara,$kn_0,$kn_1,$kn_2,$kn_3,$kn_4,$kn_5,$kn_6,$ksyoku,$khp,$kmaxhp,$kex,$klv,$kgold,$klp,$ktotal,$kkati,$kwaza,$kitem,$kmons,$khost,$kdate,$kmori,$kdef,$ktac,$kkumite) = split(/<>/);
if($in{'id'} eq "$kid") { last; }
}
if($in{'id'} ne "$kid" or $in{'pass'} ne "$kpass"){&error("オ—プンエラ—、ID·パスワ—ドが正しくありません。");}
open(IN,"$tac_file");
@senjutu_array = <IN>;
close(IN);
$hit=0;
foreach(@senjutu_array){
($s_no,$s_name) = split(/<>/);
if($in{'senjutu_no'} eq "$s_no") { $hit=1;last; }
}
if(!$hit) { &error("そんな战术はありません"); }
&get_host;
$date = time();
open(IN,"./charalog/$in{'id'}.cgi") or &error('ファイルを开けませんでした。');
@senjutu_chara = <IN>;
close(IN);
$hit=0;@senjutu_new=();
foreach(@senjutu_chara){
($iid,$ipass,$isite,$iurl,$iname,$isex,$ichara,$in_0,$in_1,$in_2,$in_3,$in_4,$in_5,$in_6,$isyoku,$ihp,$imaxhp,$iex,$ilv,$igold,$ilp,$itotal,$ikati,$iwaza,$iitem,$imons,$ihost,$idate,$imori,$idef,$itac,$ikumite) = split(/<>/);
if($iid eq "$kid") {
unshift(@senjutu_new,"$iid<>$ipass<>$isite<>$iurl<>$iname<>$isex<>$ichara<>$in_0<>$in_1<>$in_2<>$in_3<>$in_4<>$in_5<>$in_6<>$isyoku<>$ihp<>$imaxhp<>$iex<>$ilv<>$igold<>$ilp<>$itotal<>$ikati<>$iwaza<>$iitem<>$imons<>$host<>$idate<>$imori<>$idef<>$s_no<>$ikumite<>\n");
$hit=1;
}else{
push(@senjutu_new,"$_");
}
}
open(OUT,">./charalog/$in{'id'}.cgi") or &error('ファイルを开けませんでした。');
print OUT @senjutu_new;
close(OUT);
# ロック解除
if (-e $lockfile) { unlink($lockfile); }
&header;
print <<"EOM";
<h1>变更しました</h1>
<hr size=0>
<p>
EOM
&footer;
exit;
}
__SUB__
footer => <<'__SUB__',
#------------------#
# HTMLのフッタ— #
#------------------#
sub footer {
print "<form action=\"$script\" method=\"post\">\n";
print "<A HREF=\"$scripto\">TOPペ—ジへ</A>\n";
print "<input type=hidden name=id value=$kid>\n";
print "<input type=hidden name=pass value=$kpass>\n";
print "<input type=hidden name=mode value=log_in>\n";
print "<input type=submit value=\"ステ—タス画面へ\">\n";
print "</form>\n";
print "<HR SIZE=0 WIDTH=\"100%\"><DIV align=right class=small>\n";
print "$vertacg edit by <a href=\"http://www.gun-online.com/\" target=\"_top\">GUN</a><br>\n";
print "$verg remodeling by <a href=\"http://www.gun-online.com/\" target=\"_top\">GUN</a><br>\n";
print "$ver by <a href=\"http://www.interq.or.jp/sun/cumro/\">D.Takamiya(CUMRO)</a><br>\n";
print "</DIV></body></html>\n";
}
__SUB__
header => <<'__SUB__',
#------------------#
# HTMLのヘッダ— #
#------------------#
sub header {
print "Cache-Control: no-cache\n";
print "Pragma: no-cache\n";
print "Content-type: text/html\n\n";
print <<"EOM";
<html>
<head>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
<STYLE type="text/css">
<!--
body,tr,td,th { font-size: $b_size }
a:hover { color: $alink }
.small { font-size: 10pt }
.b1 {background: #9ac;border-color: #ccf #669 #669 #ccf;color:#fff; border-style: solid; border-width: 1px;}
.b2 {background: #669;border-color: #99c #336 #336 #99c;color:#fff; border-style: solid; border-width: 1px; text-align: center}
.b3 {background: #fff;border-color: #ccf #669 #669 #ccf;}
.dmg { color: #FF0000; font-size: 18pt }
.clit { color: #0000FF; font-size: 18pt }
-->
</STYLE>
EOM
print "<title>$main_title</title></head>\n";
print "<body background=\"$backgif\" bgcolor=\"$bgcolor\" text=\"$text\" link=\"$link\" vlink=\"$vlink\" alink=\"$alink\">\n";
}
__SUB__
);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -