⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 monster2.cgi

📁 挖矿游戏源代码 很好的哦 可以研究
💻 CGI
字号:
#!/usr/bin/perl

#------------------------------------------------------#
# FF ADVENTURE v0.21
# programed by CUMRO
# http://cgi.members.interq.or.jp/sun/cumro/mm/
# cumro@sun.interq.or.jp
#
#  FF ADVENTURE(改) v1.104
#  remodeling by GUN
#  http://www.gun-online.com/
#  webmaster@gun-online.com
#------------------------------------------------------#

# 日本语ライブラリの读み??み
require 'jcode.pl';

# 挑战者ライブラリの读み??み
require 'battle.pl';

# レジストライブラリの读み??み
require 'regist.pl';

# 初期设定ファイルの读み??み
require 'ffadventure.ini';

if($mente) { &error("现在バ—ジョンアップ中です。しばらくお待ちください。"); }
&decode;
if($mode eq 'monster2') { &monster2; }
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 = (
	monster2 => <<'__SUB__',
#----------------------#
#  幻影の城の战斗      #
#----------------------#
sub monster2 {
	if($battle_flag) { &error("现在战斗中です。少しお待ちになってから战斗してください。"); }

	$battle_flag=1;

	open(IN,"./charalog/$in{'id'}.cgi") or &error('ファイルを开けませんでした。');
	@battle = <IN>;
	close(IN);

	foreach(@battle){
		($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·パスワ—ドが正しくありません。");}

	if(!$kmons) { &error("一度キャラクタ—と斗ってください"); }
	if($klv%3 != 0){ &error("もう消えてしまって行けませんでした"); }

	$ztime = time();
	$ztime = $ztime - $kdate;
	$k_time = 3;
	if($ztime < $k_time) { &error("疲れています"); }

	if($kitem){
		open(IN,"$item_file");
		@battle_item = <IN>;
		close(IN);

		foreach(@battle_item){
			($ci_no,$ci_name,$ci_dmg) = split(/<>/);
			if($kitem eq $ci_no) { last; }
		}
	}

	if($kdef){
		open(IN,"$def_file");
		@battle_def = <IN>;
		close(IN);

		foreach(@battle_def){
			($cd_no,$cd_name,$cd_dmg) = split(/<>/);
			if($kdef eq $cd_no) { last; }
		}
	}

	open(IN,"$monster_file") or &error('ファイルを开けませんでした。');
	@MONSTER = <IN>;
	close(IN);

	$r_no = @MONSTER;

	$r_no = int(rand($r_no));

	($mname,$mex,$mhp,$msp,$mdmg) = split(/<>/,$MONSTER[$r_no]);

	if($in{'site'}) { $ksite = $in{'site'}; }
	if($in{'url'}) { $kurl = $in{'url'}; }
	if($in{'waza'}) { $kwaza = $in{'waza'}; }
	if($in{'c_name'}) { $kname = $in{'c_name'}; }
	$khp_flg = $khp;
	$mhp = int(rand($mhp)) + $msp + $msp;
	$mhp_flg = $mhp;

	$i=1;$j=0;@battle_date=();
	foreach(1..$turn) {
		if($klv > 150){
			$zaihou = int($kmaxhp / (int(rand(5)) + 1));
		}elsif($klv > 100){
			$zaihou = int($kmaxhp / (int(rand(10)) + 1));
		}else{
		$zaihou = int($kmaxhp / (int(rand(15)) + 1));
		}
		$dmg1 = $klv * (int(rand(5)) + 1);
		$dmg2 = (int(rand($mdmg)) + $zaihou);
		$clit1 = "";
		$clit2 = "";
		$com1 = "";
		$com2 = "$mnameが袭いかかった!!<p>";
		$kawasi1 = "";
		$kawasi2 = "";
		$m_sp = int(rand(40));

	&tyousensya;

			if(int(rand(20)) == 0) {
				$clit1 = "<b class=\"clit\">クリティカル!!</b><P>";
				$dmg1 = $dmg1 * 2;
			}

			if(int(rand(30)) == 0) {
				$clit2 = "<b class=\"clit\">クリティカル!!</b>";
				$dmg2 = int($dmg2 * 1.5);
			}

			if($dmg2 < 0){$dmg2 = $dmg2;}
			elsif($dmg2 < $cd_dmg){$dmg2 = 0;}
			else{$dmg2 = $dmg2 - $cd_dmg;}

		if($kgold < 10000000){
		if(int(rand($kn_5)) > int(rand(50))) {
			$dmg2 = 0;
			$kawasi1 = "<P><FONT SIZE=4 COLOR=\"#DD6699\">$knameは身をかわした!</FONT>";
		}
		}
		if($m_sp > int(rand(60))) {
			$dmg1 = 0;
			$kawasi2 = "<P><FONT SIZE=4 COLOR=\"#DD6699\">$mnameは身をかわした!</FONT>";
		}

		$battle_date[$j] = <<"EOM";
<TABLE BORDER=0>
<TR>
	<TD CLASS="b2" COLSPAN="3" ALIGN="center">
	$iタ—ン
	</TD>
</TR>
<TR>
<TD>
<TABLE BORDER=1>
<TR>
	<TD CLASS="b1">
	なまえ
	</TD>
	<TD CLASS="b1">
	HP
	</TD>
	<TD CLASS="b1">
	职业
	</TD>
	<TD CLASS="b1">
	LV
	</TD>
</TR>
<TR>
	<TD>
	$kname
	</TD>
	<TD>
	$khp_flg\/$kmaxhp
	</TD>
	<TD>
	$chara_syoku[$ksyoku]
	</TD>
	<TD>
	$klv
	</TD>
</TR>
</TABLE>
</TD>
<TD>
<FONT SIZE=5 COLOR="#9999DD">VS</FONT>
</TD>
<TD>
<TABLE BORDER=1>
<TR>
	<TD CLASS="b1">
	なまえ
	</TD>
	<TD CLASS="b1">
	HP
	</TD>
</TR>
<TR>
	<TD>
	$mname
	</TD>
	<TD>
	$mhp/$mhp_flg
	</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
<p>
$com1 $clit1 $kawasi2 $mname に <font class="dmg"><b>$dmg1</b></font> のダメ—ジを与えた。<p>
<BLOCKQUOTE>$com2 $clit2 $kawasi1 $kname に <font class="dmg"><b>$dmg2</b></font> のダメ—ジを与えた。</BLOCKQUOTE><p>
EOM

		$khp_flg = $khp_flg - $dmg2;
		$mhp = $mhp - $dmg1;

		if($mhp <= 0) { $win = 1; last; }
		elsif($khp_flg <= 0) { $win = 0; last; }

		$i++;
		$j++;
	}

	if($win) {
		$ktotal += 1;
		$kkati += 1;
		$kex = $kex + $mex;
		$kmons -= 1;
		if(int(rand(2)) == 1){
			if($klv > 100){
				$gold = 100000 + $klv * 3; $t8 = 1;
				}else{
				$gold = $klv * 3 + $klv * 1000; $t8 = 1;
				}
		}else{
		$gold = $klv * 2 + int(rand($klp));
		}
		$comment = "<b><font size=5>$knameは、战斗に胜利した!!</font></b><p>";
		if($t8) { $comment .= "<b><font size=5 color=red>财宝を发见した!!!!</font></b>"; }
		else{ $comment .= "<b><font size=5>边りに财宝は见つからなかった···。</font></b>"; }
		$kgold = $kgold + $gold;
	}else{
		$ktotal += 1;
		$mex = 1;
		$kex = $kex + $mex;
		$kmons -= 1;
		$kgold = int(($kgold / 2));
		$comment = "<b><font size=5>$knameは、战斗に负けた···。</font></b><p>";
	}

	if($kex >= ($klv * $lv_up)) {
		$comment .= "$knameは、レベルが上がった!!<p>";
		$hpup = int(rand($kn_3)) + 1;
		$kmaxhp = $kmaxhp + $hpup;
		$khp = $kmaxhp;
		$comment .= "HPが<b>$hpup</b>上がった!!<p>";
		$kex = 0;
		$klv += 1;
		if(int(rand(5)) == 0) { $kn_0 += 1; $t1 = 1;}
		if(int(rand(5)) == 0) { $kn_1 += 1; $t2 = 1;}
		if(int(rand(5)) == 0) { $kn_2 += 1; $t3 = 1;}
		if(int(rand(5)) == 0) { $kn_3 += 1; $t4 = 1;}
		if(int(rand(5)) == 0) { $kn_4 += 1; $t5 = 1;}
		if(int(rand(5)) == 0) { $kn_5 += 1; $t6 = 1;}
		if(int(rand(5)) == 0) { $kn_6 += 1; $t7 = 1;}
		if($t1) { $comment .= "力が上がった。"; }
		if($t2) { $comment .= "知\能\が上がった。"; }
		if($t3) { $comment .= "信仰心が上がった。"; }
		if($t4) { $comment .= "生命力が上がった。"; }
		if($t5) { $comment .= "器用さが上がった。"; }
		if($t6) { $comment .= "速さが上がった。"; }
		if($t7) { $comment .= "魅力が上がった。"; }
	}

	$khp = $khp_flg + int(rand($kn_3));
	if($khp > $kmaxhp) { $khp = $kmaxhp; }
	if($khp <= 0) { $khp = $kmaxhp; }

	&regist;

	&header;

	print <<"_BATTLE_";
<FONT SIZE="5" COLOR="#7777DD"><B>幻影の城</B></FONT>
<BR>
<HR SIZE=0 WIDTH="100%">
<BR>
<FONT SIZE=3>「幻影の城」·······。いつ现れるかわからない谜につつまれた城。<BR>
その昔、谁の城だったかは定かではないが、今は废墟となっているらしい···。<BR>
そして、一度足を踏み入れたものは、决して戾ってくることはないとまで言われていた。<BR>
そして、今日もまた财宝を求め「幻影の城」へと足を踏み入れたものがいた···。</FONT>
<P>
<B><CENTER><FONT SIZE="6">$mname</B>が现れた!</FONT></CENTER>
<BR>
<BR>
_BATTLE_

	$i=0;
	foreach(@battle_date){
		print "$battle_date[$i]";
		$i++;
	}
	
	if($win) { print "$comment<p>$knameは、$mexの经验值を手に入れた。<b>$gold</b>G手に入れた。<p>\n"; }
	else { print "$comment<p>$knameは、$mexの经验值を手に入れた。お金が半分になった···(泪)<p>\n"; }

	&footer;

	$battle_flag=0;

	exit;
}
__SUB__

	footer => <<'__SUB__',
#------------------#
# HTMLのフッタ— #
#------------------#
sub footer {
	if($refresh and !$win and $mode eq 'battle') {
		print "【<b><a href=\"http\:\/\/$wurl\">チャンプのホ—ムペ—ジへ</a></b>】\n";
	}else{
		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 "$vergg 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 "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 + -