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

📄 index.cgi

📁 三国网页游戏原码 增加了亡命也就是判国 还修进了管理工具
💻 CGI
📖 第 1 页 / 共 3 页
字号:
												}else{
													push(@NEW_DEF_LIST3,"$_");
												}
											}

											if(!$pphit){
													unshift(@NEW_DEF_LIST3,"$kid<>$kname<>$kpos<>0<>$kcon<>\n");
											}
											open(OUT,">$DEF_LIST");
											print OUT @NEW_DEF_LIST3;
											close(OUT);

												&MAP_LOG2("<font color=red>【支配】</font>\[$old_date\]$cou_name[$kcon]国家$kname的$zname支配.");
												&MAP_LOG("<font color=red>【支配】</font>\[$old_date\]$cou_name[$kcon]国家$kname的$zname支配.");
										}else{
											@NEW_DEF_LIST3=();
											foreach(@DEF_LIST3){
												($did,$dname,$dtown_id,$dtown_flg,$dcon) = split(/<>/);
												if("$mdid" ne "$did"){
													push(@NEW_DEF_LIST3,"$_");
												}
											}
											open(OUT,">$DEF_LIST");
											print OUT @NEW_DEF_LIST3;
											close(OUT);
											$kcex += 30;
											&K_LOG2("$kname和$ename战斗中胜利.");
											&E_LOG2("$ename败给$kname");
											&MAP_LOG("<font color=red>【胜利】</font>$kname打倒$ename");
										}
									}else{
										$ecex += 30;
										&K_LOG2("$kname败给$ename");
										&E_LOG2("$ename打倒$kname");
									}

									if(!$last_battle){
										if($eid ne ""){
											&ENEMY_INPUT;
										}
									}else{
										$zshiro = $esol;
										if("$zname" ne ""){
											splice(@TOWN_DATA,$cnum,1,"$zname<>$zcon<>$znum<>$znou<>$zsyo<>$zshiro<>$znou_max<>$zsyo_max<>$zshiro_max<>$zpri<>$zx<>$zy<>$zsouba<>$z[0]<>$z[1]<>$z[2]<>$z[3]<>\n");
										}
									}

									$kstr_ex++;
									$ksub1 = "$kstr_ex,$kint_ex,$klea_ex,$kcha_ex,$ksub1_ex,$ksub2_ex,";
								}
							}
						}
					}elsif($cid eq "19"){
						$ksub2=0;
						if($csub){
							if($cnum > 3000){
								$cnum = 3000;
							}
							if($cno){
								if($kgold > int($cnum / $csub)){
									$kadd = int($cnum / $csub);
									$kgold -= $kadd;
									$krice += $cnum;
									&K_LOG("$mmonth月:【商人】付钱$kadd给$cnum买米.");
								$kint_ex++;
								$ksub1 = "$kstr_ex,$kint_ex,$klea_ex,$kcha_ex,$ksub1_ex,$ksub2_ex,";
								}else{
									&K_LOG("$mmonth月:【商人】所持的金钱不够.");
								}
							}else{
								if($krice > $cnum * $csub){
									$kadd = int($cnum * $csub);
									$krice -= $kadd;
									$kgold += $cnum;
									&K_LOG("$mmonth月:【商人】:$kadd用米和$cnum换钱.");
								$kint_ex++;
								$ksub1 = "$kstr_ex,$kint_ex,$klea_ex,$kcha_ex,$ksub1_ex,$ksub2_ex,";
								}else{
									&K_LOG("$mmonth月:【商人】米不够!!!");
								}
							}
						}
					}elsif($cid eq "20"){
						$ksub2=0;
						$zhit=0;
						foreach(@z){
							if($_ eq $cnum){
								$zhit=1;
							}
						}
						if($zhit){
							$kpos = $cnum;
							$klea_ex++;
							$ksub1 = "$kstr_ex,$kint_ex,$klea_ex,$kcha_ex,$ksub1_ex,$ksub2_ex,";
							&K_LOG("$mmonth月:$town_name[$cnum]移动.");
						}else{
							&K_LOG("$mmonth月:$town_name[$cnum]不能移动,现在位置!$zname");
						}
					}elsif($cid eq "21"){
						$ksub2=0;
						&COUNTRY_DATA_OPEN($kcon);
						if($xcid eq 0){
							if($cou_name[$cnum] eq ""){
							&K_LOG("$mmonth月:那国家的官不能.");
							}else{
							$kcon = $cnum;
							&K_LOG("$mmonth月:$cou_name[$cnum]做官.");
							&MAP_LOG("$mmonth月:$kname在$cou_name[$cnum]国家做官.");
							}
						}else{
							&K_LOG("$mmonth月:无国家不能做.");
						}
					}elsif($cid eq "22"){
						$ksub2=0;
						open(IN,"$ARM_LIST");
						@ARM_DATA = <IN>;
						close(IN);
						($armname,$armval,$armdmg,$armwei,$armele,$armsta,$armclass,$armtownid) = split(/<>/,$ARM_DATA[$cnum]);
						if($armval > $kgold){
							&K_LOG("$mmonth月:所持的金钱不够.$armname 钱:$armval");
						}else{
							$kgold -= $armval;
							$karm = $cnum;
							&K_LOG("$mmonth月:武器:$armname买武器.");
						}
					}elsif($cid eq "23"){
						$ksub2=0;
						open(IN,"$PRO_LIST");
						@PRO_DATA = <IN>;
						close(IN);
						($proname,$proval,$prodmg,$prowei,$proele,$prosta,$proclass,$protownid) = split(/<>/,$PRO_DATA[$cnum]);
						if($proval > $kgold){
							&K_LOG("$mmonth月:所持的金钱不够.$proname 钱:$proval");
						}else{
							$kgold -= $proval;
							$kbook = $cnum;
							&K_LOG("$mmonth月:书:$proname买书.");
						}
					}elsif($cid eq "25"){
						$ksub2=0;
						if($kgold < 100){
							&K_LOG("$mmonth月:钱不够.");
						}else{
							$kgold-=100;
							open(IN,"$MESSAGE_LIST2");
							@MES_REG2 = <IN>;
							close(IN);
							$mes_num = @MES_REG2;
							if($mes_num > $MES_MAX) { pop(@MES_REG2); }
							unshift(@MES_REG2,"$cnum<>$kid<>$kpos<>$kname<>$csub<>$cno<>$ctime<>$kchara<>$cend<>\n");
							open(OUT,">$MESSAGE_LIST2");
							print OUT @MES_REG2;
							close(OUT);
							&K_LOG("$mmonth月:$cno寄信给.");
							$kcha_ex++;
							$ksub1 = "$kstr_ex,$kint_ex,$klea_ex,$kcha_ex,$ksub1_ex,$ksub2_ex,";
						}
					}elsif($cid eq "27"){
						$ksub2=0;
						if($kgold < 50){
							&K_LOG("$mmonth月:钱不够.");
						}else{
							if($cnum eq "1"){
								$kstr_ex +=2;
								$a_mes = "武力";
							}elsif($cnum eq "2"){
								$kint_ex +=2;
								$a_mes = "智力";
							}else{
								$klea_ex +=2;
								$a_mes = "统率力";
							}
							$ksub1 = "$kstr_ex,$kint_ex,$klea_ex,$kcha_ex,$ksub1_ex,$ksub2_ex,";
							&K_LOG("$mmonth月:$a_mes强化.");
						}
					}else{
						$ksub2++;
						if($ksub2 > $DEL_TURN){
							unlink("./charalog/main/$kid\.cgi");
							unlink("./charalog/log/$kid\.cgi");
							unlink("./charalog/command/$kid\.cgi");
							&MAP_LOG("[放置]:$kname被删掉.");
							next;
						}
						&K_LOG("$mmonth月:什么都没有做");
					}

				}else{
					&K_LOG("$mmonth月:不是本国.");
				}

				$krice -= $ksol;
				if($krice < 0){
					&K_LOG("$mmonth月:<font color=red>【逃脱】</font>:运米兵逃脱!");
					$ksol = 0;
					$krice = 0;
				}

				$uhit=0;
				if($kstr_ex >= 20){
					$kstr++;
					$kstr_ex-=20;
					$uhit=1;
					&K_LOG("$mmonth月:<font color=red>【逃脱】</font>:$kname武力上升一点!");
				}
				if($kint_ex >= 20){
					$kint++;
					$kint_ex-=20;
					$uhit=1;
					&K_LOG("$mmonth月:<font color=red>【逃脱】</font>:$kname智力上升一点!");
				}
				if($klea_ex >= 20){
					$klea++;
					$klea_ex-=20;
					$uhit=1;
					&K_LOG("$mmonth月:<font color=red>【逃脱】</font>:$kname统率力上升一点!");
				}
				if($kcha_ex >= 20){
					$kcha++;
					$kcha_ex-=20;
					$uhit=1;
					&K_LOG("$mmonth月:<font color=red>【逃脱】</font>:$kname声望上升一点!");
				}
				if($uhit){
					$ksub1 = "$kstr_ex,$kint_ex,$klea_ex,$kcha_ex,$ksub1_ex,$ksub2_ex,";
				}

				&CHARA_MAIN_INPUT;

				if($ACT_LOG){
					($qsec,$qmin,$qhour,$qday) = localtime($kdate);
					unshift(@ACT_DATA,"$kname更新 \($qday日 $qhour:$qmin:$qsec\)\n");
				}
#				$kup_date++;
#				if($kup_date > 2){last;}
			}
		}
	}
	if($thit){
		open(OUT,">$TOWN_LIST");
		print OUT @TOWN_DATA;
		close(OUT);
	}

	closedir(dirlist);
	&D_UNLOCK_FILE;
}

#_/_/_/_/_/_/_/_/_/#
#_/   曇廤夋柺   _/#
#_/_/_/_/_/_/_/_/_/#

sub ALL_RESET {

	if($REFREE){
		$r_str = length("$SANGOKU_URL");
		$r_url = substr("$ENV{'HTTP_REFERER'}", 0, $r_str);
		if($r_url ne $SANGOKU_URL){ &ERR2("ERR No.002<BR>人物不对请向管理员联系.<BR>P1:$ROSER_URL <BR>P2:$r_url"); }
	}

	open(IN,"$COUNTRY_LIST");
	@COU_DATA = <IN>;
	close(IN);
	foreach(@COU_DATA){
		($xcid,$xname,$xele,$xmark,$xking,$xmes,$xsub,$xpri)=split(/<>/);
		if("$in{'seiha'}" eq "$xcid"){$hit=1;last;}
	}

	open(IN,"./charalog/main/$xking\.cgi");
	@E_DATA = <IN>;
	close(IN);
	($eid,$epass,$ename,$echara,$estr,$eint,$elea,$echa,$esol,$egat,$econ,$egold,$erice,$ecex,$eclass,$earm,$ebook,$ebank,$esub1,$esub2,$epos,$emes,$ehost,$edate,$email,$eos) = split(/<>/,$E_DATA[0]);

	require "reset.pl";
	&RESET_MODE;

	&MAP_LOG2("$in{'e_date'}:$xname国家$ename统一天下.");
	
	&HEADER;
	print <<"EOM";
<CENTER><h2><font color=blue>初期化</h2></font>
<br>
<br>
<form method="post" action="./index.cgi">
<input type=submit value='TOP'>
</form>
<br>
EOM

	&FOOTER;
	exit;
}

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/#
#_/       LOG偺彂偒崬傒      _/#
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/#

sub E_LOG2 {

	if($eid ne ""){
		open(IN,"./charalog/log/$eid\.cgi");
		@E_LOG2 = <IN>;
		close(IN);
		unshift(@E_LOG2,"$_[0]($mday日$hour时$min分)\n");
		splice(@E_LOG2,20);

		open(OUT,">./charalog/log/$eid\.cgi");
		print OUT @E_LOG2;
		close(OUT);
	}
}

sub K_LOG2 {

	open(IN,"./charalog/log/$kid\.cgi");
	@K_LOG2 = <IN>;
	close(IN);
	unshift(@K_LOG2,"$_[0]($mday日$hour时$min分)\n");
	splice(@K_LOG2,20);
	open(OUT,">./charalog/log/$kid\.cgi");
	print OUT @K_LOG2;
	close(OUT);
}

#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/#
#_/       媼椏寁嶼           _/#
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/#

sub SALARY {

	$ksal=0;
	foreach(@TOWN_DATA){
		($z2name,$z2con,$z2num,$z2nou,$z2syo,$z2shiro)=split(/<>/);
		if($z2con eq $kcon){
			if($mmonth eq "1"){
				$ksal += int($z2syo * 8 * $z2num / 10000);
			}elsif($mmonth eq "7"){
				$ksal += int($z2nou * 8 * $z2num / 10000);
			}
		}
	}

}

#_/_/_/_/_/_/_/_/_/_/_/_/#
#       FILE LOCK        #
#_/_/_/_/_/_/_/_/_/_/_/_/#

sub D_F_LOCK {

	local($retry)=1;
	if (-e $lockfile2) {
		local($mtime) = (stat($lockfile2))[9];
		if ($mtime && $mtime < time - 60) { &D_UNLOCK_FILE; }
	}

	while (!mkdir($lockfile2, 0755)) {
		if (--$retry <= 0) { &ERR2("File lock error!<BR>资料更新中,请暂时等待!");
}
		sleep(1);
	}
}

#_/_/_/_/_/_/_/_/_/_/_/_/#
#     FILE UNLOCK        #
#_/_/_/_/_/_/_/_/_/_/_/_/#

sub D_UNLOCK_FILE
{
  rmdir("$lockfile2");
}

⌨️ 快捷键说明

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