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

📄 ebs_sub4.cgi

📁 WEBGAME 机器人大战EBS(无尽的战争) 架設方法 WIN2K系列主機
💻 CGI
📖 第 1 页 / 共 3 页
字号:
sub BATTLE1{
	&DBM_INPORT(P);
	@PL_VALUES = split(/\s/,$P{"$FORM{'pname'}"});
	&REPAIR(PL);
	&ERROR('流浪者机师不能内乱') if $FORM{'b_mode'} eq '内乱' && !$PL_VALUES[5];
	&ERROR('队长或者总帅不允许内乱') if $FORM{'b_mode'} eq '内乱' && $PL_VALUES[6]!=0;
	&ERROR('在修理中') if $PL_VALUES[25]==1;
### 内乱组织费
	&ERROR('内乱组织费不够') if ($FORM{'b_mode'} eq '内乱') && ($PL_VALUES[8] <= $NAIRAN_MONEY);###内乱限制费
### end
	&HEADER;
require "./$LOG_FOLDER/$HASH_DATA";
require "./$LOG_FOLDER/_ex.data";
local($WN_A,$WLV_A,$WEX_A) = split(/!/,$PL_VALUES[9]);
@WN_sA=split(/\,/,$WEAPON_LIST{"$WN_A"});
@PEX_A=split(/\,/,$WEAPONEX_LIST{"$WEX_A"});
if ($PEX_A[1] eq "e"){$WN_sA[4]=int($WN_sA[4]*1.2);}
if ($PEX_A[1] eq "f"){$WN_sA[4]=int($WN_sA[4]*0.8);}
$PL_VALUES[17] < $WN_sA[4] && do{print "EN不足。";exit;};

	&DBM_INPORT(C);

	@pair = split(/;/, $ENV{'HTTP_COOKIE'});
		foreach (@pair) {my($key, $value) = split(/=/, $_);$DUMMY{$key} = $value;}
	@MISSION=('普通攻击,0','突击,5','防御,18','防守反击,25',
				'狙击,30','闪身,40','见切,50','全弹放出,70','乱射,120','心眼,200','齐射叁连,300','一点集中,500');
	$Sakusen="作战指令 <select size=1 name=\"mode\" $STYLE_L>\n";
	foreach (@MISSION){$c++;
		my($M,$R)=split(/\,/,$_);
		if($PL_VALUES[29] >= $R){
			$Sakusen .= "<option value=\"$c\"";
			$Sakusen .= "selected"if $c ==  $DUMMY{' EBMISSON'};
			$Sakusen .= ">$M \n";
		}
	}
	$Sakusen .= "</select>";

	print "<span style=\"font-size:35px;\">$FORM{'b_mode'}</span>" if $FORM{'b_mode'} ne '战斗';

	if ($FORM{'b_mode'} eq '战斗' ||!$FORM{'b_mode'}){
		print << "		-----END-----";
			<form action=$MAIN_SCRIPT method=POST target=Sub>
			<input type=hidden name="cmd" value="BATTLE_1">
			<input type=hidden name="pname" value="$FORM{'pname'}">
			<input type=hidden name="pass" value="$FORM{'pass'}">
		-----END-----
		while (($C_Name,$C_Value) =each %C) {
			@C_VALUES = split(/\s/,$C_Value);
			if ($PL_VALUES[5] ne "$C_Name"){
				print "<input type=submit name=CNTRY value=\"$C_Name\"";
				print " style=\" background:$C_VALUES[0];color:black\">\n";
			}
		}
		print "<input type=submit name=CNTRY value=\"流浪者\"";
		print " style=\" background:#808080;color:black\"></form>\n";
	}
	if ($FORM{'b_mode'} eq '亡命'){
		$boumeiTag="&nbsp;亡命去<select name=\"boumeiC\" $STYLE_L>";
		while (($C_Name,$C_Value) =each %C) {
		@C_VALUES = split(/\s/,$C_Value);
		if ($PL_VALUES[5] ne "$C_Name"){$boumeiTag.="<option value=\"$C_Name\">$C_Name\n";$bf=1;}
		}
		$boumeiTag.="<option value=\"\">流浪者\n"if $PL_VALUES[5];
		$boumeiTag.="</select>";
		$boumeiTag='' if !$bf;
	}
	$VS_COUNTRY="$FORM{'CNTRY'}" if $FORM{'CNTRY'};
	$VS_COUNTRY="$PL_VALUES[5]" if !$FORM{'CNTRY'};
	@CL_VALUE = split(/\s/,$C{"$VS_COUNTRY"});
	@CL_VALUE2 = split(/\s/,$C{"$PL_VALUES[5]"}) if $PL_VALUES[5];

	print << "	-----END-----" if $FORM{'b_mode'} ne '战斗';
		<center><table><tr><td style=\"background-color:$CL_VALUE[0];font-size:40px;color:#000000;\" colspan=4>
			$VS_COUNTRY</td><form action=$MAIN_SCRIPT method=POST target=Sub></tr>
	-----END-----

	$FORM{'CNTRY'}='' if $FORM{'CNTRY'} eq '流浪者';
	while (($Key,$Value) = each %P){
		@VS_VALUES = split(/\s/,$Value);
		&REPAIR(VS);
		if ($Key ne "$FORM{'pname'}"){
			&FILTING if $VS_VALUES[5] eq "$FORM{'CNTRY'}" && !$FORM{'b_mode'} && !$VS_VALUES[25];
			&FILTING if $VS_VALUES[5] eq "$PL_VALUES[5]" && $PL_VALUES[5] && $FORM{'b_mode'} eq'亡命' && $VS_VALUES[0] >$PL_VALUES[0];
			(&FILTING,$sousuiCh++) if $VS_VALUES[5] eq "$PL_VALUES[5]" && $FORM{'b_mode'} eq '内乱' && $VS_VALUES[6] ==1 && $PL_VALUES[0] >=170;
			if ($VS_VALUES[5] eq "$PL_VALUES[5]" && $FORM{'b_mode'} eq '内乱' && $PL_VALUES[6] ==0 && $VS_VALUES[6] ==-1 && $CL_VALUE2[2] && $CL_VALUE2[2] eq "$VS_VALUES[28]" && $PL_VALUES[0] >=100){&FILTING;$flagta=1;}
			if ($VS_VALUES[5] eq "$PL_VALUES[5]" && $FORM{'b_mode'} eq '内乱' && $PL_VALUES[6] ==0 && $VS_VALUES[6] ==-1 && $CL_VALUE2[3] && $CL_VALUE2[3] eq "$VS_VALUES[28]" && $PL_VALUES[0] >=100){&FILTING;$flagtb=1;}
			if ($VS_VALUES[5] eq "$PL_VALUES[5]" && $FORM{'b_mode'} eq '内乱' && $PL_VALUES[6] ==0 && $VS_VALUES[6] ==-1 && $CL_VALUE2[4] && $CL_VALUE2[4] eq "$VS_VALUES[28]" && $PL_VALUES[0] >=100){&FILTING;$flagtc=1;}
		}
	}
	if($PL_VALUES[5] && !$PL_VALUES[28]){$M_AITE="$CL_VALUE2[6]";}
	elsif($PL_VALUES[5] && $PL_VALUES[28] eq "$CL_VALUE2[2]" && $CL_VALUE2[2]){$M_AITE="$CL_VALUE2[8]";}
	elsif($PL_VALUES[5] && $PL_VALUES[28] eq "$CL_VALUE2[3]" && $CL_VALUE2[3]){$M_AITE="$CL_VALUE2[9]";}
	elsif($PL_VALUES[5] && $PL_VALUES[28] eq "$CL_VALUE2[4]" && $CL_VALUE2[4]){$M_AITE="$CL_VALUE2[10]";}

	if ($FORM{'b_mode'} eq '' && !$PlMs){
		print "<tr><td bgcolor=\"$CL_VALUE[0]\">&nbsp;</td><td bgcolor=#000000 colspan=3>No-PLAYER</td></tr>"
		if $CL_VALUE2[7] < time || $M_AITE ne "$VS_COUNTRY";
		print << "		-----END-----"if $CL_VALUE2[7] > time && $M_AITE eq "$VS_COUNTRY";
			<tr><td bgcolor=$CL_VALUE[0] align=center>&nbsp;&nbsp;</td>
			<td bgcolor=#000000><input type=radio name=vsname checked value=\"$VS_COUNTRY\">
			<input type=hidden name=yousai value="true">
			$VS_COUNTRY防卫要塞<br>&nbsp;&nbsp;现在可以直接攻击敌军要塞本部了。</td>
			<td bgcolor=#000000><img src=$IMG_FOLDER2/1000.gif></td><td bgcolor=#000000>亅</td></tr>
		-----END-----
		$PlMs++ if $CL_VALUE2[7] > time && $M_AITE eq "$VS_COUNTRY";
	}
	$HiddenTag="<form action=$MAIN_SCRIPT method=POST target=Main><input type=hidden name=\"cmd\" value=\"CUSTOM\"><input type=hidden name=\"pname\" value=\"$FORM{'pname'}\"><input type=hidden name=\"pass\" value=\"$FORM{'pass'}\">";

	sub HiddenTAG{"
			<tr></form><td bgcolor=\"$CL_VALUE[0]\">&nbsp;</td>
				$HiddenTag<td bgcolor=#000000 colspan=3>
				第$_[0]部队  $_[1]目前没有队长,有实力的话值得争取。
				<input type=hidden name=\"team\" value=\"$_[1]\">
				<input type=submit name=\"Cmode\" value=\"司令就任\" $STYLE_B1
				onClick=\"location.replace('$MAIN_SCRIPT?LOGO');\">
			</td></tr>
		";
	}

	if ($FORM{'b_mode'} eq '亡命' && !$PlMs && $boumeiTag){
		print << "		-----END-----";
			<tr></form><td bgcolor=\"$CL_VALUE[0]\">&nbsp;</td>
				$HiddenTag<td bgcolor=#000000 colspan=3>$boumeiTag
				亡命很苦的哦,确定吗?
				<input type=submit name="Cmode" value="亡命" $STYLE_B1
				onClick="location.replace('$MAIN_SCRIPT?LOGO');">
			</td></tr>
		-----END-----
	}elsif($FORM{'b_mode'} eq '亡命' && !$boumeiTag){
		print "<tr></form><td bgcolor=\"$CL_VALUE[0]\">&nbsp;</td><td bgcolor=#000000 colspan=3>开始亡命生涯。</td></tr>";}
	if ($FORM{'b_mode'} eq '内乱' && !$sousuiCh && $PL_VALUES[0] >=170 && $PL_VALUES[6] ==0){$PlMs2=1;
		$hanran.= << "		-----END-----";
			<tr></form><td bgcolor=\"$CL_VALUE[0]\">&nbsp;</td>
				$HiddenTag<td bgcolor=#000000 colspan=3>
				目前国家没有皇帝了,议会决定委任你全权指挥权利,你接受吗?
				<input type=submit name="Cmode" value="总帅就任" $STYLE_B1
				onClick="location.replace('$MAIN_SCRIPT?LOGO');">
			</td></tr>
		-----END-----
	}
	if ($FORM{'b_mode'} eq '内乱' && !$flagta && $PL_VALUES[0] >=100 && $PL_VALUES[6] ==0 && $CL_VALUE2[2]){$PlMs2=1;
		$hanran.= &HiddenTAG('一',$CL_VALUE2[2]);
	}
	if ($FORM{'b_mode'} eq '内乱' && !$flagtb && $PL_VALUES[0] >=100 && $PL_VALUES[6] ==0 && $CL_VALUE2[3]){$PlMs2=1;
		$hanran.= &HiddenTAG('二',$CL_VALUE2[3]);
	}
	if ($FORM{'b_mode'} eq '内乱' && !$flagtc && $PL_VALUES[0] >=100 && $PL_VALUES[6] ==0 && $CL_VALUE2[4]){$PlMs2=1;
		$hanran.= &HiddenTAG('叁',$CL_VALUE2[4]);
	}
	print << "	-----END-----" if $FORM{'b_mode'} ne '战斗' && $PlMs;
		<tr><td bgcolor=\"$CL_VALUE[0]\"><a name=sbm>&nbsp;</td>
			<td colspan=4 bgcolor=\"#000000\">
			$Sakusen$boumeiTag
			<input type=hidden name="cmd" value="BATTLE_2">
			<input type=hidden name="pname" value="$FORM{'pname'}">
			<input type=hidden name="pass" value="$FORM{'pass'}">
			<input type=hidden name="b_mode" value="$FORM{'b_mode'}">
			<input type=hidden name="check" value="$DATE">
			<input type=submit value="开始战斗" $STYLE_B1 onClick="location.replace('$MAIN_SCRIPT?LOGO');">
		</td></tr>
	-----END-----
	print $hanran if $FORM{'b_mode'} ne '战斗' && $PlMs2;
	print << "	-----END-----" if $FORM{'b_mode'} eq '内乱' && !$PlMs2;
			<tr></form><td bgcolor=\"$CL_VALUE[0]\">&nbsp;</td><td bgcolor=#000000 colspan=3>
				目前没有和你等级相当的对手,无法进行战斗
			</td></tr>
	-----END-----

	print "</table></form><br><br>";
	&FOOTER;
exit;
}
sub FILTING {
			$PlMs++;
	$IconTag=$Guarder='';
	if ($PlMs==1){$rc='checked';}else{$rc='';}
	print "<tr><td bgcolor=\"$CL_VALUE[0]\" align=center>&nbsp;&nbsp;</td>";
	print "<td bgcolor=\"$VS_VALUES[13]\"><input type=radio name=vsname value=\"$Key\" $rc onClick=\"location.replace('#sbm')\">";
	print "<span style=\"font-size:18px;color:#000000;\">$Key</span>";
	print "<span style=\"font-size:15px;\"><b>".&RANK($VS_VALUES[0],$VS_VALUES[5],$VS_VALUES[6])."</b></font></td>";
	print "<td bgcolor=\"$VS_VALUES[13]\">$IconTag<font color=\"#000000\">$VS_VALUES[3]</font></td>";
	print "<td bgcolor=\"$VS_VALUES[13]\" style=\"FONT-SIZE: 20px\">".&STATUS_CONVERT("$VS_VALUES[24]",'j');
	print "<td bgcolor=\"$VS_VALUES[13]\" style=\"FONT-SIZE: 20px\">";
	if(LOGIN_CHECK($Key)){ print "<font color=#000080>参战中</font>"; }
	else{ print "<font color=#ff0000>休战中</font>"; }
	print "</font></b></td></tr>";
	print "</font></b></td>";

	print "</td></tr>";
}

sub BATTLE2{
		SET_COOKIE:{
		my @gmt = gmtime(time + $COOKIE_KEEP*24*60*60);
		$gmt[0] = sprintf("%02d", $gmt[0]);$gmt[1] = sprintf("%02d", $gmt[1]);$gmt[2] = sprintf("%02d", $gmt[2]);
		$gmt[3] = sprintf("%02d", $gmt[3]);$gmt[5] += 1900;
		$gmt[4] = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')[$gmt[4]];
		$gmt[6] = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')[$gmt[6]];
		my $date_gmt = "$gmt[6], $gmt[3]\-$gmt[4]\-$gmt[5] $gmt[2]:$gmt[1]:$gmt[0] GMT";
		print "Set-Cookie:EBMISSON=$FORM{'mode'}; expires=$date_gmt\n";
	}
	&LOCK;
		&DBM_CONVERT('P',"$FORM{pname}") if $FORM{'yousai'};
		&DBM_CONVERT('P',"$FORM{pname}",'VS',"$FORM{vsname}") if !$FORM{'yousai'};
		&DBM_CONVERT('C',"$PL_VALUES[5]",'VC',"$VS_VALUES[5]") if !$FORM{'yousai'};
		&DBM_CONVERT('C',"$PL_VALUES[5]",'VC',"$FORM{'vsname'}") if $FORM{'yousai'};
	&UNLOCK;

	if ($FORM{'yousai'}){
			if(!$PL_VALUES[28]){$M_AITE="$CL_VALUE2[6]";}
			elsif($PL_VALUES[28] eq "$CL_VALUE2[2]" && $CL_VALUE2[2]){$M_AITE="$CL_VALUE2[8]";}
			elsif($PL_VALUES[28] eq "$CL_VALUE2[3]" && $CL_VALUE2[3]){$M_AITE="$CL_VALUE2[9]";}
			elsif($PL_VALUES[28] eq "$CL_VALUE2[4]" && $CL_VALUE2[4]){$M_AITE="$CL_VALUE2[10]";}
			&ERROR('已经被别国进行攻略') if $M_AITE ne "$VS_Country";
			&ERROR('超过作战期限') if time > $CL_VALUES[7];
			&ERROR('这个国家已经灭亡了') if !@VC_VALUES;

		@Y_HP=split(/!/,$VC_VALUES[11]);
		@Y_ST=split(/!/,$VC_VALUES[12]);$Y_ST[0]+=50;$Y_ST[1]+=50;$Y_ST[2]+=50;
	@VS_VALUES=("300","$Y_HP[2]!0","","$Y_ST[3]","AL","$FORM{'vsname'}","99","","0","zzzz","zzzz","zzzz","6","$VC_VALUES[0]","0","$Y_HP[0]","$Y_HP[1]","9999","9999","$Y_ST[0]","$Y_ST[1]","0","$Y_ST[2]","99","999","0","$DATE","1000","0","99","0");
	}

	&REPAIR(PL);&REPAIR(VS);
	if (@CL_VALUES){$PL_Country="$PL_VALUES[5]";}else{$PL_Country='流浪者';$CL_VALUES[0]='#808080';}
	if (@VC_VALUES){$VS_Country="$VS_VALUES[5]";}else{$VS_Country='流浪者';$VC_VALUES[0]='#808080';}

	&ERROR('SystemError','系统时间发生问题') if $FORM{'check'} < $PL_VALUES[26];
	&ERROR('Repair','之前的战斗还在计算之中,你不能同时进行两次战斗') if $PL_VALUES[25] || $VS_VALUES[25];
require "./$LOG_FOLDER/_ex.data";
local($PL_WN,$PL_WLV,$PL_WEX) = split(/!/,$PL_VALUES[9]);
local($VS_WN,$VS_WLV,$VS_WEX) = split(/!/,$VS_VALUES[9]);
require "./$LOG_FOLDER/$HASH_DATA";
@PEX_sA=split(/\,/,$WEAPONEX_LIST{"$PL_WEX"});
@VEX_sA=split(/\,/,$WEAPONEX_LIST{"$VS_WEX"});
if (!$PL_WEX){$PEX_sA[1]="a";}
@Pl_W=split(/\,/,$WEAPON_LIST{"$PL_WN"});
@Vs_W=split(/\,/,$WEAPON_LIST{"$VS_WN"});
$plbs=int ($PL_VALUES[20]+4) if $Pl_W[7] =~ m/4/;
$vsbs=int ($VS_VALUES[20]+4) if $Vs_W[7] =~ m/4/;
$Pl_AttPoint=int($Pl_W[1]*(($PL_WLV*0.0001)+1)*(($PL_VALUES[29]/1000)+1));
if ($PEX_sA[1] eq "b"){$Pl_AttPoint=int($Pl_AttPoint*0.7);}
if ($PEX_sA[1] eq "c"){$Pl_AttPoint=int($Pl_AttPoint*1.3);}
if ($PEX_sA[1] eq "d"){$Pl_AttPoint=int($Pl_AttPoint*1.5);}
if ($PEX_sA[1] eq "e"){$Pl_AttPoint=int($Pl_AttPoint*1.2);}
	&ERROR('NeiLuanError','内乱必须在国内展开') if (($FORM{'b_mode'} eq '内乱') && ($PL_VALUES[5] != $VS_VALUES[5]));
	local($PL_WN,$PL_WLV) = split(/!/,$PL_VALUES[9]);
	local($VS_WN,$VS_WLV) = split(/!/,$VS_VALUES[9]);
	require "$LOG_FOLDER/$HASH_DATA";
	@Pl_W=split(/\,/,$WEAPON_LIST{"$PL_WN"});
	@Vs_W=split(/\,/,$WEAPON_LIST{"$VS_WN"});
local($PL_BG,$PL_BGT) = split(/!/,$PL_VALUES[41]);
local($VS_BG,$VS_BGT) = split(/!/,$VS_VALUES[41]);
require "./$LOG_FOLDER/_bougu.data"; 
@Pl_B=split(/\,/,$BOUGU_LIST{"$PL_BG"});
@Vs_B=split(/\,/,$BOUGU_LIST{"$VS_BG"});
	$Pl_W[3] = int (rand ($Pl_W[3]))+1 if $Pl_W[7] =~ m/9/;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -