📄 kunren.cgi
字号:
#!/usr/bin/perl
#--- [注意事项] ------------------------------------------------#
# 1. このスクリプトはフリ—ソフトです。このスクリプトを使用した #
# いかなる损害に对して作者は一切の责任を负いません。 #
# 2. 设置に关する质问はサポ—ト揭示板にお愿いいたします。 #
# 直接メ—ルによる质问は一切お受けいたしておりません。 #
#---------------------------------------------------------------#
# 日本语ライブラリの读み??み
require 'jcode.pl';
# レジストライブラリの读み??み
require 'regist.pl';
# 初期设定ファイルの读み??み
require 'ffadventure.ini';
#================================================================#
#┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓#
#┃ これより下はCGIに自信のある方以外は??わないほうが无难です ┃#
#┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛#
#================================================================#
#--------------#
# メイン处理 #
#--------------#
if($mente) { &error("バ—ジョンアップ中です。2、30秒ほどお待ち下さい。m(_ _)m"); }
&decode;
if($mode eq 'kunren') { &kunren; }
elsif($mode eq 'kunrenok') { &kunrenok; }
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 = (
kunren => <<'__SUB__',
#----------------#
# 训练所 #
#----------------#
sub kunren {
open(IN,"./charalog/$in{'id'}.cgi") or &error('ファイルを开けませんでした。');
@kunren = <IN>;
close(IN);
foreach(@kunren){
($pid,$ppass,$psite,$purl,$pname,$psex,$pchara,$pn_0,$pn_1,$pn_2,$pn_3,$pn_4,$pn_5,$pn_6,$psyoku,$php,$pmaxhp,$pex,$plv,$pgold,$plp,$ptotal,$pkati,$pwaza,$pitem,$pmons,$phost,$pdate,$pmori,$pdef,$ptac) = split(/<>/);
if($in{'id'} eq "$pid" and $in{'pass'} eq "$ppass") { last; }
}
if($in{'id'} ne "$pid" or $in{'pass'} ne "$ppass"){&error("オ—プンエラ—、ID·パスワ—ドが正しくありません。");}
if($plv < 10){$pdai = 10000;
}else{$pdai = $plv * 1000;
}
$saikou = int($pgold / $pdai);
if($saikou > 10){ $saikou = 10; }
&header;
print <<"EOM";
<h1>训练所</h1>
<hr size=0>
<p>
<form action="$scriptk" method="post">
<FONT SIZE=3>
<B>训练所の先生</B><BR>
「よく来たな!<BR>
私が见たところ<B>$pname</B>の力はまだそんなもんではない!
<BR>1回 <B>$pdai</B>Gでお前の潜在\能\力を引き出す手传いをしてやろうか?。
<BR>タダではできんが····どうする?
<BR>まあ、じっくり考えてくれ。」
</FONT>
EOM
print <<"EOM";
<p>
<select name=kaisuu>
<option value=1>1回
<option value=$saikou>できるだけ训练する(最高10回)
</select>
<input type=hidden name=id value=$pid>
<input type=hidden name=pass value=$ppass>
<input type=hidden name=mode value=kunrenok>
<input type=submit value="训练する">
</form>
EOM
&footer;
exit;
}
__SUB__
kunrenok => <<'__SUB__',
#----------------#
# 训练する #
#----------------#
sub kunrenok {
# ファイルロック
if ($lockkey == 1) { &lock1; }
elsif ($lockkey == 2) { &lock2; }
open(IN,"./charalog/$in{'id'}.cgi") or &error('ファイルを开けませんでした。');
@kunren = <IN>;
close(IN);
foreach(@kunren){
($pid,$ppass,$psite,$purl,$pname,$psex,$pchara,$pn_0,$pn_1,$pn_2,$pn_3,$pn_4,$pn_5,$pn_6,$psyoku,$php,$pmaxhp,$pex,$plv,$pgold,$plp,$ptotal,$pkati,$pwaza,$pitem,$pmons,$phost,$pdate,$pmori,$pdef,$ptac,$pkumite) = split(/<>/);
if($in{'id'} eq "$pid") { last; }
}
if($in{'id'} ne "$pid" or $in{'pass'} ne "$ppass"){&error("オ—プンエラ—、ID·パスワ—ドが正しくありません。");}
if($plv < 10){$pdai = 10000;
}else{$pdai = $plv * 1000;
}
&get_host;
$date = time();
$ztime = time();
$ztime = $ztime - $pdate;
$k_time = 10;
if($ztime < $k_time) { &error("疲れています。"); }
$t1 = 0;
$t2 = 0;
$t3 = 0;
$t4 = 0;
$t5 = 0;
$t6 = 0;
$t7 = 0;
$t8 = 0;
$t9 = 0;
open(IN,"./charalog/$in{'id'}.cgi") or &error('ファイルを开けませんでした。');
@kunren_chara = <IN>;
close(IN);
$hit=0;@kunren_new=();
foreach(@kunren_chara){
($poid,$popass,$posite,$pourl,$poname,$posex,$pochara,$pon_0,$pon_1,$pon_2,$pon_3,$pon_4,$pon_5,$pon_6,$posyoku,$pohp,$pomaxhp,$poex,$polv,$pogold,$polp,$pototal,$pokati,$powaza,$poitem,$pomons,$pohost,$podate,$pomori,$podef,$potac,$pkumite) = split(/<>/);
if($poid eq "$pid") {
if($pogold < ($pdai * $in{'kaisuu'})) { &error("お金が足りません"); }
else { $pogold = $pogold - ($pdai * $in{'kaisuu'}); }
for($i = 1; $i <= $in{'kaisuu'}; $i++){
$status = int(rand(8));
if($status == 0) { $t1 += 1;}
elsif($status == 1) { $t2 += 1;}
elsif($status == 2) { $t3 += 1;}
elsif($status == 3) { $t4 += 1;}
elsif($status == 4) { $t5 += 1;}
elsif($status == 5) { $t6 += 1;}
elsif($status == 6) { $t7 += 1;}
elsif($status == 7) { $t8 += 1;}
else { $t9 += $polv;}
}
if($t1) { $comment .= "力が<font color = red>$t1</font>上がった。<p>"; }
if($t2) { $comment .= "知\能\が<font color = red>$t2</font>上がった。<p>"; }
if($t3) { $comment .= "信仰心が<font color = red>$t3</font>上がった。<p>"; }
if($t4) { $comment .= "生命力が<font color = red>$t4</font>上がった。<p>"; }
if($t5) { $comment .= "器用さが<font color = red>$t5</font>上がった。<p>"; }
if($t6) { $comment .= "速さが<font color = red>$t6</font>上がった。<p>"; }
if($t7) { $comment .= "魅力が<font color = red>$t7</font>上がった。<p>"; }
if($t8) { $comment .= "运が<font color = red>$t8</font>上がった。<p>"; }
if($t9) { $comment .= "HPが<font color = red>$t9</font>上がった。<p>"; }
$pon_0 = $pon_0 + $t1;
$pon_1 = $pon_1 + $t2;
$pon_2 = $pon_2 + $t3;
$pon_3 = $pon_3 + $t4;
$pon_4 = $pon_4 + $t5;
$pon_5 = $pon_5 + $t6;
$pon_6 = $pon_6 + $t7;
$polp = $polp + $t8;
$pomaxhp = $pomaxhp + $t9;
unshift(@kunren_new,"$poid<>$popass<>$posite<>$pourl<>$poname<>$posex<>$pochara<>$pon_0<>$pon_1<>$pon_2<>$pon_3<>$pon_4<>$pon_5<>$pon_6<>$posyoku<>$pohp<>$pomaxhp<>$poex<>$polv<>$pogold<>$polp<>$pototal<>$pokati<>$powaza<>$poitem<>$pomons<>$host<>$podate<>$pomori<>$podef<>$potac<>$pkumite<>\n");
$hit=1;
}else{
push(@kunren_new,"$_");
}
}
open(OUT,">./charalog/$in{'id'}.cgi") or &error('ファイルを开けませんでした。');
print OUT @kunren_new;
close(OUT);
# ロック解除
if (-e $lockfile) { unlink($lockfile); }
&header;
print <<"EOM";
<h1>$comment</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=$pid>\n";
print "<input type=hidden name=pass value=$ppass>\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 "$verkg 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 + -