📄 index.cgi
字号:
#!/usr/bin/perl
#################################################################
# 亂柶愑帠崁亃 #
# 偙偺僗僋儕僾僩偼僼儕乕僜僼僩偱偡丅偙偺僗僋儕僾僩傪巊梡偟偨 #
# 偄偐側傞懝奞偵懳偟偰嶌幰偼堦愗偺愑擟傪晧偄傑偣傫丅 #
# 傑偨愝抲偵娭偡傞幙栤偼僒億乕僩宖帵斅偵偍婅偄偄偨偟傑偡丅 #
# 捈愙儊乕儖偵傛傞幙栤偼堦愗偍庴偗偄偨偟偰偍傝傑偣傫丅 #
#################################################################
require 'jcode.pl';
require './ini_file/index.ini';
require 'suport.pl';
if($MENTE) { &ERR2("维护中."); }
&DECODE;
if($mode eq 'ALL_RESET') { &ALL_RESET; }
else{⊤}
#_/_/_/_/_/_/_/_/_/#
#_/ TOP夋柺 _/#
#_/_/_/_/_/_/_/_/_/#
sub TOP {
$date = time();
$month_read = "./log_file/date_count.cgi";
open(IN,"$month_read") or &ERR2('打不开文件.');
@MONTH_DATA = <IN>;
close(IN);
&TIME_DATA;
open(IN,"$MAP_LOG_LIST");
@S_MOVE = <IN>;
close(IN);
$p=0;
while($p<5){$S_MES .= "<font color=008800>●</font>$S_MOVE[$p]<BR>";$p++;}
open(IN,"$MAP_LOG_LIST2");
@S_MOVE = <IN>;
close(IN);
$p=0;
while($p<5){$D_MES .= "<font color=000088>●</font>$S_MOVE[$p]<BR>";$p++;}
$hit = 0;
@month_new=();
($myear,$mmonth,$mtime) = split(/<>/,$MONTH_DATA[0]);
$old_date = sprintf("%02d\年%02d\月", $F_YEAR+$myear, $mmonth);
if($ACT_LOG){
$actfile = "./log_file/act_log.cgi";
open(IN,"$actfile");
@ACT_DATA = <IN>;
close(IN);
($qsec,$qmin,$qhour,$qday) = localtime($date);
$p=0;
while($p<5){$A_MES .= "<font color=880000>●</font>$ACT_DATA[$p]<BR>";$p++;}
$ACT_MES = "<TR><TD bgcolor=#EFE0C0 colspan=\"2\" width=80% height=20><font color=#8E4C28 size=2>$A_MES</font></TD></TR>";
}
open(IN,"$TOWN_LIST") or &ERR("找不开指定的文件.");
@TOWN_DATA = <IN>;
close(IN);
($zwname,$wzc)=split(/<>/,$TOWN_DATA[0]);
$zzhit=0;
foreach(@TOWN_DATA){
($zwname,$zwcon)=split(/<>/);
if($wzc ne $zwcon){$zzhit=1;}
$wzc = $zwcon;
}
&CHEACK_COM;
if($mtime + $TIME_REMAKE < $date){
if($mtime eq ""){
$mtime = $date;
&MAP_LOG("开始游戏计划.");
}else{
$mtime += $TIME_REMAKE;
}
$mmonth++;
if($mmonth > 12){
$myear++;
$mmonth=1;
}
unshift(@month_new,"$myear<>$mmonth<>$mtime<>\n");
if($ACT_LOG){
($qsec,$qmin,$qhour,$qday) = localtime($mtime);
unshift(@ACT_DATA,"===============\[$myear年$mmonth月\]=================\n");
}
open(IN,"$COUNTRY_LIST") or &ERR2('打不开文件.err no :country');
@COU_DATA = <IN>;
close(IN);
@NEW_COU_DATA=();
foreach(@COU_DATA){
($xvcid,$xvname,$xvele,$xvmark,$xvking,$xvmes,$xvsub,$xvpri)=split(/<>/);
$xvmark++;
push(@NEW_COU_DATA,"$xvcid<>$xvname<>$xvele<>$xvmark<>$xvking<>$xvmes<>$xvsub<>$xvpri<>\n");
}
open(OUT,">$COUNTRY_LIST") or &ERR('不被写入COUNTRY的资料.');
print OUT @NEW_COU_DATA;
close(OUT);
$b_hit = 0;
if($mmonth eq "1"){
&MAP_LOG("$mmonth月:<font color=orange>税捐</font>武将的工资.");
$b_hit = 1;
}elsif($mmonth eq "7"){
&MAP_LOG("$mmonth月:<font color=orange>收获</font>武将的米.");
$b_hit = 1;
}
$eve_date = sprintf("%02d\年%02d\月", $F_YEAR+$myear, $mmonth);
$ihit=0;
if(!int(rand(40))){
$ihit=1;
$ino = int(rand(6));
if($ino eq 0){
&MAP_LOG2("<font color=red>【事件】</font>\[$eve_date\]造一大群黄虫袭击!");
}elsif($ino eq 1){
&MAP_LOG2("<font color=red>【事件】</font>\[$eve_date\]发洪水,各地人民受害!");
}elsif($ino eq 2){
&MAP_LOG2("<font color=red>【事件】</font>\[$eve_date\]发生瘟疫,老百姓受害!");
}elsif($ino eq 3){
&MAP_LOG2("<font color=red>【事件】</font>\[$eve_date\]令年大丰收!");
}elsif($ino eq 4){
&MAP_LOG2("<font color=red>【事件】</font>\[$eve_date\]发生大地震!");
}elsif($ino eq 5){
&MAP_LOG2("<font color=red>【事件】</font>\[$eve_date\]各地的商店在分!");
}
}
if($b_hit){
# 憡応曄摦
@NEW_TOWN_DATA=();
foreach(@TOWN_DATA){
($zname,$zcon,$znum,$znou,$zsyo,$zshiro,$znou_max,$zsyo_max,$zshiro_max,$zpri,$zx,$zy,$zsouba,$z[0],$z[1],$z[2],$z[3])=split(/<>/);
if(!int(rand(2.0))){
$zsouba += int(rand(0.5)*100)/100;
if($zsouba > 1.2){
$zsouba = 1.2;
}
}else{
$zsouba -= int(rand(0.5)*100)/100;
if($zsouba < 0.8){
$zsouba = 0.8;
}
}
if($zpri >= 50){
$znum_add = int(80 * ($zpri - 50));
if($znum_add < 500){$znum_add=500;}
$znum += $znum_add;
if($znum > $NOU_MAX){$znum=$NOU_MAX;}
}else{
$znum -= int(80 * (50 - $zpri));
if($znum < 0){$znum=0;}
}
if($ihit){
if($ino eq 0){
$znou = int($znou * 0.8);
}elsif($ino eq 1){
$znou = int($znou * 0.9);
$zsyo = int($zsyo * 0.9);
$zshiro = int($zshiro * 0.9);
}elsif($ino eq 2){
$znum = int($znum * 0.8);
}elsif($ino eq 3){
$znou = int($znou * 1.2);
if($znou > $znou_max){$znou=$znou_max;}
}elsif($ino eq 4){
$znou = int($znou * 0.8);
$zsyo = int($zsyo * 0.8);
$zshiro = int($zshiro * 0.8);
$znum = int($znum * 0.9);
}elsif($ino eq 5){
$zsyo = int($zsyo * 1.1);
if($zsyo > $zsyo_max){$zsyo=$zsyo_max;}
$znum = int($znum * 1.1);
if($znum > $NOU_MAX){$znum=$NOU_MAX;}
}
}
push(@NEW_TOWN_DATA,"$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");
}
open(OUT,">$TOWN_LIST");
print OUT @NEW_TOWN_DATA;
close(OUT);
}
open(OUT,">$month_read");
print OUT @month_new;
close(OUT);
}
if($ACT_LOG){
if(@ACT_DATA > 800) { splice(@ACT_DATA,800); }
open(OUT,">$actfile");
print OUT @ACT_DATA;
close(OUT);
}
$MESS1 = "<A href=\"$FILE_CONTNUE\">【CONTNUE】</a>";
$MESS2 = "<A href=\"$FILE_ENTRY\">【NEW GAME】</a>";
&roses_counter;
$new_date = sprintf("%02d\年%02d\月", $F_YEAR+$myear, $mmonth);
$next_time = int(($mtime + $TIME_REMAKE - $date) / 60);
$reset_button="";
if(!$zzhit && $wzc ne ""){
$reset_button = "<form method=post action=./index.cgi>
<input type=hidden name=mode value=ALL_RESET>
<input type=hidden name=seiha value=$zwc>
<input type=hidden name=e_date value=$new_date>
<input type=submit value=重订>
</form>
";
}
&HEADER;
print <<"EOM";
<CENTER>
<TABLE WIDTH="100%" height=100% cellpadding="0" cellspacing="0" border=0>
<tr>
<td width="13%" align=center><img src="image/zhao1.jpg" width="150" height="100%">
<td width="66%" align=center> <TABLE border=0 width=100% height=100% cellspacing=1><TBODY>
<TR>
<TD align=center><p>
<TABLE width=80% height=140 bgcolor=#DECCA8>
<TR>
<TD align=center bgcolor=EFE0C0><font size=5 color=#AE8C68><B>【
$GAME_TITLE 】</font></B> <p> <font size=2 color=#AE8C68> <p><B>[$new_date]</b><BR>
更新时间 <font color=aa6644>$next_time</font> 分<BR></font>
$reset_button<br>
</TD>
</TR>
</TABLE>
<p align="center">
<table bgcolor=$TABLE_C align=center border=0><form action="$FILE_STATUS" method="POST">
<input type="hidden" name="mode" value="STATUS">
<TR>
<TH bgcolor=$TD_C2 height=5>USER ID</TH>
<td><input type="text" size="10" name="id" value="$_id"></td>
</TR>
<TR>
<TH bgcolor=$TD_C2 height=5>PASS WORD</tH>
<td><input type="password" size="10" name="pass" value="$_pass"></TD>
</TR>
<TR>
<td bgcolor=$TD_C1 align=center colspan=2><input type="submit" value="登录"></td>
</tr>
</table></form>
<A href="$FILE_ENTRY"><img border="0" src=\"./image/2.jpg\"></A> <A href="$FILE_RANK"><img border="0" src=\"./image/4.jpg\"></A>
<A href="./manual.html"><img border="0" src=\"./image/1.jpg\"></A>
<A href="./map.cgi"><img border="0" src=\"./image/3.jpg\"></A> <TABLE width=100% BGCOLOR=$TABLE_C cellspacing=1>
<TBODY>
$mess</TBODY>
</TABLE><CENTER>
<HR size=0> <p align=right>[<font color=8E6C68>TOTAL ACCESS<font color=red><B>
$total_count </font></B>HIT</font>]<BR>
</TD>
</TR>
<TR>
<TD bgcolor=#EFE0C0 colspan="2" width=80% height=20><font color=#8E4C28 size=2>$S_MES</font></TD>
</TR>
<TR>
<TD bgcolor=#EFE0C0 colspan="2" width=80% height=20><font color=#8E4C28 size=2>$D_MES</font></TD>
</TR>
$ACT_MES </TBODY> </TABLE>
<td width="21%" align=center><img src="image/zhao2.jpg" width="150" height="100%"></TR>
</TABLE>
<hr size=0><font size=1>
|<a href="$HOME_URL" TARGET="_top">$HOME</a>|<a href="$BBS1_URL" TARGET="main">$BBS1</a>|<a href="$BBS2_URL" TARGET="main">$BBS2</a>|<a href="$LINK1_URL" TARGET="main">$LINK1</a>|<a href="$LINK2_URL" TARGET="main">$LINK2</a>|<a href="$LINK3_URL" TARGET="main">$LINK3</a>|<a href="$LINK4_URL" TARGET="main">$LINK4</a>|<a href="$LINK5_URL" TARGET="main">$LINK5</a>|<a href="$LINK6_URL" TARGET="main">$LINK6</a>|<a href="$LINK7_URL" TARGET="main">$LINK7</a>|<a href="$LINK8_URL" TARGET="main">$LINK8</a>|<a href="$LINK9_URL" TARGET="main">$LINK9</a>|<a href="$LINK10_URL" TARGET="main">$LINK10</a>|<BR>
|<a href="$FILE_TOP" TARGET="main">$GAME_TITLE</a> | $MESS1 | $MESS2 |<a href="$FILE_RANK" TARGET="main">RANKING</a> 最大登录数($ENTRY_MAX人)</font><br>
<form method=post action=./admin.cgi>
ID:<input type=text name=id size=7>
PASS:<input type=pass name=pass size=7>
<input type=submit value=管理人员>
</form>
EOM
&FOOTER;
exit;
}
sub roses_counter {
$file_read = "./log_file/counter.cgi";
open(IN,"$file_read") or &ERR2('打不开文件');
@reading = <IN>;
close(IN);
($total_count) = split(/<>/,$reading[0]);
$total_count++;
open(OUT,">$file_read");
print OUT "$total_count\n";
close(OUT);
}
sub CHEACK_COM{
&D_F_LOCK;
if (!-e $lockfile2) {&ERR2("文件夹没有被锁上");}
open(IN,"$TOWN_LIST");
@TOWN_DATA = <IN>;
close(IN);
$zc=0;
foreach(@TOWN_DATA){
($z2name,$z2con,$z2num,$z2nou,$z2syo,$z2shiro)=split(/<>/);
$town_name[$zc] = "$z2name";
$town_cou[$zc] = "$z2con";
$town_get[$z2con] += 1;
$town_num[$z2con] += $z2num;
$town_nou[$z2con] += $z2nou;
$town_syo[$z2con] += $z2syo;
$zc++;
}
$w_lock = 0;
if($w_lock){
open(LOCK,"> ./lock/sangoku") or &ERR2("Can't open lockfile: $!");
flock(LOCK, 2) or &ERR2("Can't flock : $!");
}
$dir="./charalog/main";
if($mmonth eq "1" || $mmonth eq "7"){
opendir(dirlist,"$dir");
while($file = readdir(dirlist)){
if($file =~ /\.cgi/i){
if(!open(page,"$dir/$file")){
&ERR2("文件打开错误");
}
@page = <page>;
close(page);
($kid,$kpass,$kname,$kchara,$kstr,$kint,$klea,$kcha,$ksol,$kgat,$kcon,$kgold,$krice,$kcex) = split(/<>/,$page[0]);
$cou_num[$kcon]++;
$cex_total[$kcon]+=$kcex;
push(@CL_DATA,"@page<br>");
}
}
closedir(dirlist);
}
opendir(dirlist,"$dir");
$kup_date=0;
$thit=0;
while($file = readdir(dirlist)){
if($file =~ /\.cgi/i){
if(!open(page,"$dir/$file")){
&ERR2("文件打开错误");
}
@page = <page>;
close(page);
($kid,$kpass,$kname,$kchara,$kstr,$kint,$klea,$kcha,$ksol,$kgat,$kcon,$kgold,$krice,$kcex,$kclass,$karm,$kbook,$kbank,$ksub1,$ksub2,$kpos,$kmes,$khost,$kdate,$kmail,$kos) = split(/<>/,$page[0]);
if($kdate + $TIME_REMAKE < $date){
$thit=1;
($kstr_ex,$kint_ex,$klea_ex,$kcha_ex,$ksub1_ex,$ksub2_ex) = split(/,/,$ksub1);
if($mmonth eq "1"){
&SALARY;
if($cou_num[$kcon] eq "0" || $cou_num[$kcon] eq ""){
$cou_num[$kcon] = 1;
}
$kadd = 0;
if($cex_total[$kcon] ne 0){
$kadd = int(($ksal * $kcex / $cex_total[$kcon]) + $kcex * 1.3);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -