Files
ore/index.cgi
T

311 lines
9.0 KiB
Perl
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/perl
# サーバーの環境に合わせて変更して下さい。
require './ore_config.cgi'; # ore_config.cgi의 패스
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://www17.big.or.jp/~obochan/chat/ ] #
#-----------------------------------------------------------#
# トップページ Version 1.0
#--- [注意事項] --------------------------------------------#
# 1.このスクリプトは以下の利用規程に従って配布しています。 #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
#===============================================================================
# 設定項目
$help = "./html/Help.html"; # 사용설명서[PC]
$help_i = "./html/Help_i.html"; # 사용설명서[MV]
#===============================================================================
# 以下処理 基本的にこれ以下はいじらないように。
&get_time; # 日時取得
&axs_check; # アクセスチェック
&read_data_index; # ログデータ読み込み
print "Content-type: text/html; charset=UTF-8\n\n" ;
# メニュー表示
($mv_mode eq 'mv') ? &html_top_mv : &html_top_pc ;
# 削除・移動・変更不可
&copyright;
exit;
#-------------------------------------------------------------------------------
# html生成(PC)
sub html_top_pc{
print <<"EOM";
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>$titleh</title>
<style type="text/css">
<!--
.button1{
font-family: "MS Pゴシック", "Osaka"; font-size: 12px; font-weight: 400; color: #bbbbcc;
border: 2px #666699 ridge; cursor: hand; background-color: #222244;
width:100px;
}
body,td { font-size: 10px; color: #aaaab9; background-color: #000000; cursor: crosshair}
.bar {
scrollbar-face-color: #333333;
scrollbar-highlight-color: #333333;
scrollbar-shadow-color: #000000;
scrollbar-arrow-color: #ffffff;
scrollbar-base-color: #000000;
scrollbar-3d-light-color: #ffffff;
scrollbar-dark-shadow-color: #000000
}
-->
</style>
</head>
<body bgcolor="#000000" text="#aaaaaa" link="#b5a7cF" vlink="#b5a7cF" alink="#b5a7cF" class="bar">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%" align="center">
<tr>
<td align="center" valign="middle">
<table border="0" cellspacing="0" cellpadding="0" width="200">
<tr>
<td align="center" valign="top"><img src="$imgs/title_text.png" width="166" height="56"></td>
<td rowspan="2"><img src="$imgs/fairy2_la.jpg" width="110" height="160"></td>
</tr>
<tr>
<td align="center" valign="top"><img src="$imgs/title_game.png" width="220" height="52"></td>
</tr>
</table>
<br><br><br><br><br><br><br><br><br><br>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<form method="$method" action="$script" name="ore_">
<td align="left" valign="top">
<tt>
<span style="font-size:12px">유구한 대지로</span><br>
EOM
if($now_nm_cnt>=$play_limit){
print qq|<br><span style="color:#dddd00;font-size:12px">현재 로그인 제한 중</span><br><br>|;
}
else{
print <<"EOM";
유저 ID:<input type="text" name="id" value="" class="button1" style="width:95px">
<br>
비밀번호:<input type="password" name="pw" value="" class="button1" style="width:60px" maxlength="8">
<input type="submit" value="IN" class="button1" style="width:30px">
<input type="hidden" name="mode" value="1">
EOM
}
print <<"EOM";
</tt>
</td>
</form>
<td rowspan=4>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
<td rowspan=2 align="left" valign="top" nowrap style="font-size:12px;">
&gt;&gt; 플레이 중인 참가자 [ $now_nm_cnt 명]
<hr size=1 style="color:bbbbcc">
<div style="height:140px; overflow-y:auto; padding:2; background-color:#292929" class="bar">
$now_nm
</div>
<td>
</tr>
<tr>
<td align="left" valign="top">
<tt>
<br>
<br>
<span style="font-size:12px"><a href="$ore_reg">신규 등록</a></span><br>
등록하기 전에 반드시 ↓ 내용을 읽어주세요.
</tt>
</td>
</tr>
<tr>
<td align="left" valign="top">
<tt>
<br>
<br>
<span style="font-size:12px"><a href="$help">사용 설명서</a></span><br>
안 읽으면 도통 이해하기 힘들걸요?
</tt>
</td>
<td align="left">
<tt>
<br>
<br>
<span style="font-size:12px"><a href="$hist?mode=guest">과거의 영광</a></span><br>
유구한 대지의 역사를 돌아보다
</tt>
</td>
</tr>
<tr>
<td align="left" valign="top">
<tt>
<br>
<br>
<span style="font-size:12px"><a href="$home">본관으로 돌아가기</a></span><br>
</tt>
</td>
<td align="left">
<tt>
<br>
<br>
<span style="font-size:12px"><a href="$hist_hasya">죄와 벌++의 석비</a></span><br>
유구한 대지에서 패권을 쥔 자의 이름
</tt>
</td>
</tr>
<tt>
<td align="left" valign="top" colspan="3">
<tt>
<br>
<br>
<span style="font-size:12px"><br>
  &gt;&gt; 현재 등록 인원 [ $now_sanka 명] 최대 등록 인원 [ $sanka 명]<br>
    삭제 방치 기간 [ $del_limit 일] 플레이 제한 시간대 [ $safe_time ]
</span>
<br><br>
<span style="font-size:12px"><br>
  모바일(i-mode, J-Sky) 완벽 대응, ezweb 대응. PC가 필요 없습니다.<br>
  모바일에서 PC와 동일한 URL로 접속하시면 됩니다.
</span>
</tt>
</td>
</tr>
</table>
</td>
</tr>
</table>
EOM
}
#-------------------------------------------------------------------------------
# html生成(モバイル)
sub html_top_mv{
print <<"EOM";
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>$titleh</title>
</head>
<body bgcolor="#000000" text="#aaaaaa" link="#c597ff" vlink="#c597ff" alink="#c597ff">
$title_i
<hr color="white">
   그대가 바라는 영원 그것은 유구한 대지에
<hr color="white">
<form method="$method" action="$script" name="ore_">
이어하기<br>
EOM
if($now_nm_cnt>=$play_limit){
print qq|현재 로그인 제한 중|;
}
else{
print <<"EOM";
I D:<input type="text" name="id" value="" size="8"><br>
비밀번호:<input type="text" name="pw" value="" size="2" maxlength="8">
<input type="hidden" name="mode" value="1">
<input type="submit" value="IN">
EOM
}
print <<"EOM";
</form>
<hr color="white">
<a href="$ore_reg" ACCESKEY="1">1.신규 등록</a><br>등록하기 전에 반드시 ↓ 내용을 읽어주세요<hr color="white">
<a href="$help_i" ACCESKEY="2">2.설 명 서</a><br>안 읽으면 도통 이해하기 힘들걸요?<hr color="white">
<a href="$hist?mode=guest" ACCESKEY="3">3.과거의 영광</a><br>유구한 대지의 역사를 돌아보다<hr color="white">
<a href="$hist_hasya" ACCESKEY="4">4.죄와 벌++ 석비</a><br>유구한 대지에서 패권을 쥔 자의 이름<hr color="white">
<a href="$home_i" ACCESKEY="9">9.본관으로 돌아가기</a><hr color="white">
플레이 중인 캐릭터 $now_nm_cnt명<br>
$now_nm
<hr color="white">
현재 등록 인원[$now_sanka명]<br>
최대 등록 인원[$sanka 명]<br>
삭제 방치 기간[$del_limit일]<br>
플레이 제한 시간대[$safe_time]<br>
<hr color="white">
<br>
EOM
}
#-------------------------------------------------------------------------------
# データ読み込み
# 参加者データ一括読み込み
sub read_data_index{
local @tdat;
# 参加者データファイル一覧取得/一括読み込み
&usrdata_read;
&usrdata_open;
$now_sanka=$#tdat+1;
$now_nm_cnt=0;
foreach(0 .. $#tdat){
%DAT = '';
my @prats = split(/,/,$tdat[$_]);
foreach $prats (@prats){
my($key,$v) = split(/;/,$prats);
$DAT{$key} = $v;
}
# 現在のプレイヤー抽出
if($player_now>=$time-$DAT{'la'}){
if($mv_mode eq 'pc'){
$now_nm .= ($DAT{'sogo'}) ? qq|<div style="color:$color[$DAT{'camp'}]">$DAT{'nm'} [$sogo_p[$DAT{'sogo'}]] [$cmp[$DAT{'camp'}]]</div>| : qq|<div style="color:$color[$DAT{'camp'}]">$DAT{'nm'} [$cmp[$DAT{'camp'}]]</div>| ;
}else{
$now_nm .= ($DAT{'sogo'}) ? "$DAT{'nm'} [$sogo_p[$DAT{'sogo'}]]/" : "$DAT{'nm'}/" ;
}
$now_nm_cnt++;
}
}
foreach (0 .. $#safetime){
$safe_time .= ($safetime[$_]<0) ? "--" : "$safetime[$_],";
}
# 自動バックアップ
&auto_backup if($backdata);
return ($now_nm,$now_sanka,$now_nm_cnt,$safe_time);
}
#-------------------------------------------------------------------------------
# 自動バップアップ
sub auto_backup{
my $backup_flag1 = "backup_flag1";
my $backup_flag2 = "backup_flag2";
# フラグ消失は作成
if(!-e "$backdata$backup_flag1" && !-e "$backdata$backup_flag2"){
open (OUT,">$backdata$backup_flag1");
print OUT "이 파일은 삭제하거나 이름을 변경하지 마십시오.";
close(OUT) or die "Can't close : $!";
chmod($chmod,"$backdata$backup_flag1");
}
# 0時にバックアップ
if(!$hour){
if(-e "$backdata$backup_flag1"){
open (OUT,">$backdata$week[$wday]\.cgi");
print OUT @tdat;
close(OUT) or die "Can't close : $!";
chmod($chmod,"$backdata$week[$wday]\.cgi");
rename("$backdata$backup_flag1","$backdata$backup_flag2");
}
}else{
rename("$backdata$backup_flag2","$backdata$backup_flag1");
}
}