📄 ffadventube.cgi
字号:
#!/usr/bin/perl
#--- [注意事项] ------------------------------------------------#
# 1. このスクリプトはフリ—ソフトです。このスクリプトを使用した #
# いかなる损害に对して作者は一切の责任を负いません。 #
# 2. 设置に关する质问はサポ—ト揭示板にお愿いいたします。 #
# 直接メ—ルによる质问は一切お受けいたしておりません。 #
#---------------------------------------------------------------#
# 日本语ライブラリの读み??み
require 'jcode.pl';
# レジストライブラリの读み??み
require 'regist.pl';
# 参加者ライブラリの读み??み
require 'sankasya.pl';
# 初期设定ファイルの读み??み
require 'ffadventure.ini';
#================================================================#
#┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓#
#┃ これより下はCGIに自信のある方以外は??わないほうが无难です ┃#
#┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛#
#================================================================#
#--------------#
# メイン处理 #
#--------------#
if($mente) { &error("バ—ジョンアップ中です。2、30秒ほどお待ち下さい。m(_ _)m"); }
&decode;
if($mode eq 'log_in') { &log_in; }
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 = (
log_in => <<'__SUB__',
#----------------#
# ログイン画面 #
#----------------#
sub log_in {
$chara_flag=1;
open(IN,"./charalog/$in{'id'}.cgi") or &error('ファイルを开けませんでした。');
@log_in = <IN>;
close(IN);
$hit=0;
foreach(@log_in){
($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") {
$hit=1; last;
}
}
open (IN,"$winner_file") || &error('オ—プンエラ—','指定された书??みファイルが开けません。');
$LINE = <IN>;
close (IN);
($wid,$wpass,$wsite,$wurl,$wname,$wsex,$wchara,$wn_0,$wn_1,$wn_2,$wn_3,$wn_4,$wn_5,$wn_6,$wsyoku,$whp,$wmaxhp,$wex,$wlv,$wgold,$wlp,$wtotal,$wkati,$wwaza,$witem,$wmons,$whost,$wdate,$wcount,$lsite,$lurl,$lname,$wmori,$wdef,$wtac,$lid,$wkumite)=split(/<>/,$LINE);
open(IN,"$taikai_file");
@TAIKAI = <IN>;
close(IN);
$ltime = time();
$ltime = $ltime - $kdate;
$vtime = $b_time - $ltime;
$xtime = $vtime + 1;
$ztime = $vtime - 1;
$mtime = $m_time - $ltime;
if($in{'id'} ne "$kid" or $in{'pass'} ne $kpass) {&error("オ—プンエラ—、ID·パスワ—ドが正しくありません。");}
$yado_daix = int($klv * $yado_dai);
if($kkati) { $syouritu = int(($kkati / $ktotal) * 100); }
else { $syouritu = 0; }
if(!$hit) { &error("入力されたIDは登录されていません。又はパスワ—ドが违います。"); }
if($kmori < $boss) { $kmori = 0; }
&class;
if($ksex) { $esex = "男"; } else { $esex = "女"; }
$next_ex = $klv * $lv_up;
open(IN,"$item_file");
@log_item = <IN>;
close(IN);
$hit=0;
foreach(@log_item){
($i_no,$i_name,$i_dmg,$i_gold) = split(/<>/);
if($kitem eq "$i_no"){ $hit=1;last; }
}
if(!$hit) { $i_name="-"; }
if(!$hit) { $i_dmg="-"; }
open(IN,"$def_file");
@log_def = <IN>;
close(IN);
$hit=0;
foreach(@log_def){
($d_no,$d_name,$d_dmg,$d_gold) = split(/<>/);
if($kdef eq "$d_no"){ $hit=1;last; }
}
if(!$hit) { $d_name="-"; }
if(!$hit) { $d_dmg="-"; }
open(IN,"$tac_file");
@log_tac = <IN>;
close(IN);
$hit=0;
foreach(@log_tac){
($ktac_no,$ktac_name) = split(/<>/);
if($ktac eq "$ktac_no"){ $hit=1;last; }
}
if(!$hit) { $ktac_name="普通に战う"; }
&guest_list;
&header;
&guest_view;
print <<"EOM";
<h1>$knameさん用ステ—タス画面</h1>
<hr size=0>
<a href="$scripto?mode=ranking" target="_blank">登录者一览</a>/ <a href="$ranking" target="_blank">\能\力别ランキングへ</a> / <a href="$syoku_html" target="_blank">各职业に必要な特性值</a> / <a href="$bbs" target="_blank">$bbs_title</a> / <a href="$sbbs" target="_blank">$sbbs_title</a> / <a href="$vote" target="_blank">$vote_title</a>/ <a href="$svote" target="_blank">$svote_title</a>/
EOM
if($ltime < $b_time or !$ktotal and $vtime > 0){
print <<"EOM";
<FORM NAME="form1">
チャンプと斗えるまで残り<INPUT TYPE="text" NAME="clock" SIZE="3" VALUE="$xtime">秒です。0になると、自动的に更新しますのでブラウザの更新は押さないで下さい。(キャラ消失の原因になります)
</FORM>
EOM
}else{
print <<"EOM";
<form action="$script" method="post">
<input type=hidden name=id value=$kid>
<input type=hidden name=pass value=$kpass>
<input type=hidden name=mode value=log_in>
<input type=submit value="更新">
</form>
EOM
}
print <<"EOM";
<table align="center" border=0><tr><td>
<table bgcolor="#000000" align="center" border=2>
<TR><TD>
<table border=1 bgcolor="#fffff0" align="center">
<TR><TD align="center" colspan="2" bgcolor="#000000"><font color="#ffffff">现在のチャンピオン</FONT></TD>
<TD rowspan="3" bgcolor="777777" align="center"><font color="#ffff00"><b><i>$wcount</i></b></FONT><br><font color="#eaffaa"><i>连胜中</i></font></TD></TR>
<TR><TD align="center"><FONT color="#f23e66"><B>$wname</B></font>さん</TD>
<TD><B>$whp\/$wmaxhp</B></TD></TR>
<TR><TD align="right" colspan="2">最後に<font color="#f23e66">$lname</font>さんに胜利しています。</TD></TR></table>
</TD></TR></table></td><td align="center">
<table border=1 bgcolor="#fffff0">
<tr>
<td colspan="4" bgcolor="#000000" align="center"><font color="#ffffff">大会レコ—ドベスト3</FONT></td>
</tr>
EOM
$i=1;
foreach(@TAIKAI){
($rnumb,$pname,$pid,$ename) = split(/<>/);
if($i == 4){ last; }
$kiroku = $rnumb - 1;
print "<tr>\n";
print "<td align=center>$i位</td><td>$pnameさん</td><td>$kiroku人拔き!</td><td>$enameさんに败北</td>\n";
print "</tr>\n";
$i++;
}
print "</table></td></tr></table><p>\n";
print <<"EOM";
<form action="$scriptb" method="post">
<table border=0 align="center" width='100%'>
<tr>
<td valign=top width='50%'>
<table border=1 width='100%'>
<tr><td colspan="5" class="b2" align="center">ホ—ムペ—ジデ—タ</td></tr>
<tr><td class="b1">ホ—ムペ—ジ名</td><td colspan="4"><input type="text" name=site value="$ksite" size=50></td></tr>
<tr><td class="b1">ホ—ムペ—ジのURL</td><td colspan="4"><input type="text" name=url value="http\:\/\/$kurl" size=50></td></tr>
<tr><td colspan="5" class="b2" align="center">キャラクタ—デ—タ</td></tr>
<tr><td rowspan="8" align="center" valign=bottom><img src="$img_path/$chara_img[$kchara]"><p>胜率:$syouritu\%<br>
<br>
<table width="100%" border=1>
<tr><td class="b2">武器</td><td bgcolor="#fffff0" align="right">$i_name</td></tr>
<tr><td class="b1">攻击力</td><td bgcolor="#fffff0" align="right">$i_dmg</td></tr>
<tr><td class="b2">防具</td><td bgcolor="#fffff0" align="right">$d_name</td></tr>
<tr><td class="b1">防御力</td><td bgcolor="#fffff0" align="right">$d_dmg</td></tr>
</table></td>
<td class="b1">なまえ</td><td><input type="text" name=c_name value="$kname"></td><td class="b1">性别</td><td>$esex</td></tr>
<tr><td class="b1">职业</td><td>$chara_syoku[$ksyoku]</td><td class="b1">クラス</td><td>$class</td></tr>
<tr><td class="b1">レベル</td><td>$klv</td><td class="b1">经验值</td><td>$kex/$next_ex</td></tr>
<tr><td class="b1">お金</td><td>$kgold</td><td class="b1">HP</td><td>$khp\/$kmaxhp</td></tr>
<tr><td class="b1">力</td><td>$kn_0</td><td class="b1">知能\</td><td>$kn_1</td></tr>
<tr><td class="b1">信仰心</td><td>$kn_2</td><td class="b1">生命力</td><td>$kn_3</td></tr>
<tr><td class="b1">器用さ</td><td>$kn_4</td><td class="b1">速さ</td><td>$kn_5</td></tr>
<tr><td class="b1">魅力</td><td>$kn_6</td><td class="b1">运</td><td>$klp</td></tr>
<tr><td class="b1">技发动时コメント</td><td colspan="4" align="center" bgcolor="#fffff0"><input type="text" name=waza value="$kwaza" size=50></td></tr>
<tr><td class="b1">チャンピオンを目指す</td><td colspan="4" align="center" bgcolor=#fffff0>
<input type="hidden" name=mode value=battle>
<input type="hidden" name=id value="$kid">
<input type="hidden" name=pass value="$kpass">
EOM
if($wid eq $kid) { print "现在チャンプなので斗えません\n";
}elsif($kid eq $lid and $chanp_milit == 1) { print "チャンプと战った直後なので疲れて斗えません\n";
}elsif($ltime > $b_time or !$ktotal) {
print "<input type=\"submit\" value=\"チャンプに挑战\">\n";
}else{
print "$ztime秒後斗えるようになります。\n";
}
print <<"EOM";
</td>
</tr></form><tr><td class="b1">
<form action="$scriptsent" method="post">
好きなキャラと对战</td><td align="center" bgcolor=#fffff0 colspan="4">
EOM
if($wid eq $kid){ print "现在チャンプなので斗えません\n";
}elsif($kmons < $sentou_limit){ print "一度チャンプと战わないと战斗できません\n";
}elsif($kid eq $lid and $chanp_milit == 1){ print "チャンプと战った直後なので疲れて斗えません\n";
}else{
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=sentak>\n";
print "<input type=submit value=\"对战相手を选ぶ\">\n";
}
print <<"EOM";
</td><tr></form>
<form action="./tac.cgi" method="post">
<td class="b1">作战</td>
<td colspan="3" align="center" bgcolor=#fffff0><B>$ktac_name</B></td><td align="center" bgcolor=#fffff0>
<input type=hidden name=id value=$kid>
<input type=hidden name=pass value=$kpass>
<input type=hidden name=mode value=tac_eqq$ksyoku>
<input type=submit value="战术を变更する"></td>
</tr>
</table></form>
<td valign="top">
<table border=1 width="100%">
<tr><td colspan="4" class="b2" align="center">町の施设</td></tr>
<tr><td bgcolor="#cbfffe" align="center">【旅の宿】(<b>$yado_daix</b>G)</td>
<td bgcolor="#cbfffe" align="center">【武器屋】</td>
<td bgcolor="#cbfffe" align="center">【防具屋】</td>
<td bgcolor="#cbfffe" align="center">【训练所】</td></tr>
<tr><td align="center" bgcolor="#fffff0">
<form action="$scripty" method="post">
<input type=hidden name=id value=$kid>
<input type=hidden name=pass value=$kpass>
<input type=hidden name=mode value=yado>
<input type=submit value="宿泊する"></td>
<td align="center" bgcolor="#fffff0"></form>
<form action="$scripts" method="post">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -