Files
ore/index.cgi
T
2026-06-22 21:09:26 +09:00

313 lines
8.6 KiB
Perl
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/local/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=shift_jis\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=Shift_JIS">
<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=Shift_JIS">
<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");
}
}