#!/usr/local/bin/perl

# 行動結果ログ
# ver 2.30
# 2001/9/12
# 那司

$title = '行動結果ログ';
$form = 50;	# == 投稿フォームの長さ

require './btlrylcm.cgi';
undef $island;
require './jcode.pl';
&Getform;
&Cookieget;
&Write if ($FM{'write'} && $FM{'name'} && $FM{'message'} && $chat_on);
$wait = $FM{'wait'} || OFF;
$log = $FM{'log'} || 45;
$meta = "\n<meta http-equiv='Refresh' content='$wait;URL=$cgid?'>" if $wait > 0;
&Header;
&Form if $chat_on;
&Read;
print <<END;
<hr><p class=head align=right>
<i>よくわからない BATTLE ROYALE Script by <a href="http://www.coara.or.jp/~wakaran/">zibun</a><br>
行動結果ログ by <a href="http://www2.to/yu-sin/">那司</a></i>
</p></body></html>
END


# --------投稿フォーム
sub Form {
my $name = $FM{'name'} || (($CK{'number'}) ? $victims[$CK{'number'}] : $CK{'name'});
my @i = (45,60,90,120,0);
my @log = (30,45,60,90,120,500);
foreach(@i){
if($_ == $wait){$_ = "<option selected value=$_>$_秒";}
else{$_ = "<option value=$_>$_秒";}
}
foreach(@log){
if($_ == $log){$_ = "<option selected value=$_>$_行";}
else{$_ = "<option value=$_>$_行";}
}
print <<END;
<!-- http://www2.to/yu-sin/ -->
<form action="$cgid" method=GET style="margin-left:2em;">
<input type=hidden name=write value=1>
<table><tr><Td>
<input type=text name=name value="$name" size=10 maxlength=12>
</td><td>
<input type=text name=message size=$form maxlength=255>
</td></tr><tr><td></td><td>
<select name=wait>
<option value=0>リロード
$i[0]
$i[1]
$i[2]
$i[3]
$i[4]
</select>
<select name=log>
<option value=45>ログ行数
$log[0]
$log[1]
$log[2]
$log[3]
$log[4]
$log[5]
</select>
<input type=submit value="発言/更新">
</td></tr></table>
</form>
<!-- http://www2.to/yu-sin/ --><hr>
END
}

# --------読み込み
sub Read {
my($count,$message,$i,$j,$jan,$feb,$pre,$pre2,@log);

if($FM{'name'} eq $master){&Readitem;$check = 1;}
print '<p style="margin-left:2em;">';
open (LOG,"$filelog") || &Error(1,'行動記録');
eval {flock(LOG,2)};
while(<LOG>){
last if ++$count > $log;
chomp;
$pre = $log[0];
$pre2 = $log[5];
@log = split(/\,/);
$log[0] = Gettime($log[0],1);
if($pre ne $log[0]){print '</p><h3 class=time>'.$log[0].'</h3><p class=result>';}
$i = $log[3];$j = $log[4];
$jan = '<b>'.$victims[$log[1]].'</b>';
$feb = '<b>'.$victims[$log[2]].'</b>';

	#コメント
	if($i eq 'mo'){
          $j = '<span style="color:#aaffcc;">管理者</span>' if $j eq $master;
	print "<span class=plane><b>$j</b>が「<b>$log[5]</b>」と言った。</span><br>\n" if $pre2 ne $log[5];
	next;
	#残り人数
	}elsif($i eq 'left'){
          if($j > 1){
            print '</p><h1 style="color:#000;background-color:#f00;" align=center>【残り '.$j.' 人】</h1><p style="margin:2em;">'."\n";
          }else{
            print '</p><h1 style="color:#000;background-color:#f00;" align=center>【残り '.$j.' 人／ゲーム終了】</h1><p style="margin:2em;">'."\n";
          }
	next;
	}
	# 移動
	if($i eq 'go'){
	$m = $check ? '<b>'.substr('東南西北',($log[4]*2),2).'</b>に向かいました' : 'エリアを移動しました';
	# 攻撃
	}elsif($i eq 'attack'){
	$j = $check ? "<b>$weapons[$j]</b>で" : '';
	$m = "$j$febを攻撃しました";
	# 反撃
	}elsif($i eq 'c_attack'){
	$j = $check ? "<b>$weapons[$j]</b>で" : '';
	$m = "$j$febに反撃しました";
	# 弾切れ
	}elsif($i eq 'nobullet'){
	$j = $check ? "<b>$weapons[$j]</b>" : '武器';
	$m = "持っていた$jの弾がなくなりました";
	# 武器使用限界
	}elsif($i eq 'broken'){
	$j = $check ? "<b>$weapons[$j]</b>" : '武器';
	$m = "持っていた$jが壊れました";
	# 逃亡
	}elsif($i eq 'run'){
	$m = '攻撃を避けて逃げました';
	# 釣り
	}elsif($i eq 'fish'){
	$m = "<b>$feb</b>から";
	$m .= $check ? "<b>$weapons[$j]</b>" : '道具';
	$m .= 'を盗みました';
	if($j==57){
	$m = $check ? "<b>$feb</b>から<b>毒食料</b>を釣りました" : '<b>$feb</b>から道具を盗みました';
	}
	# バードコール
	}elsif($i eq 'birdcall'){
	$i = int($j / 10);
	$j = $j % 10;
	if($j == 0){$j = 10;$i--;};
	$m =  substr('ABCDEFGHIJ',$i,1) ." - $j";
	$m = '<b>'.$m.'</b>でバードコールを吹き鳴らしました';
	$jan = $check ? '<b>'.$victims[$log[1]].'</b>' : '<b>誰か</b>';
	# メガホン
	}elsif($i eq 'shout'){
	$m = 'メガホンで「<b style="font-size:200%">'.$j.'</b>」と叫びました';
	# ハッキング
	}elsif($i eq 'hack'){
	$m = 'プログラム実施本部のコンピューターをハッキングしようと試みました';
	# 捜索
	}elsif($i eq 'search'){
	$m = '付近を捜索し、';
	$m .= $check ? "<b>$weapons[$j]</b>" : '道具';
	$m .= 'を発見しました';
	if($j==16){
	$m = $check ? "<b>ワイヤロープの罠</b>にかかりました" : '付近を捜索し、道具を発見しました';
	}elsif($j==57){
	$m = $check ? "<b>毒食料</b>を見つけてにやけています" : '付近を捜索し、道具を発見しました';
	}
	# 使用
	}elsif($i eq 'use'){
		if(!$check){$m = '道具を使いました';}
		elsif($j == 16){$m = 'ワイアロープの罠を仕掛けました';}
		elsif($j == 30){$m = '食料に毒を仕込みました';}
		elsif($j == 56){$m = '食料を食べました';}
		elsif($j == 57){$m = '誤って毒入り食料を食べました';}
		elsif($j == 58){$m = '首輪のロックを解除しました';}
		elsif($j == 59){$m = '大声で叫びました';}
		elsif($j == 64){$m = '薬で体力を回復しました';}
		elsif($j == 65){$m = "デイパックを開けて<b>$weapons[$log[5]]</b>をとりだしました";}
		else{$m = $weapons[$j].'を使いました'}
	# 譲渡
	}elsif($i eq 'give'){
	$m = $check ? "<b>$weapons[$j]</b>" : '道具';
	$m = "$febに$mを渡しました";
	if($j==57){
	$m = $check ? "$febに<b>毒食料</b>を押し付けました" : '$febに道具を渡しました';
	}
	# 廃棄
	}elsif($i eq 'throwout'){
	$m = $check ? "<b>$weapons[$j]</b>" : '道具';
	$m = $m.'を捨てました';
	if($j==57){
	$m = $check ? "<b>毒食料</b>に気付いたのか捨てました" : '道具を捨てました';
	}
	# 会話
	}elsif($i eq 'talk'){
	$j = '....' unless $check;
	$m = "「<b>$j</b>」と$febに話しかけました";
	# 休憩
	}elsif($i eq 'rest'){
	$m = "<b class=mountain>休憩をとりました</b>";
	# 休憩終わり
	}elsif($i eq 'restend'){
	$m = '<b style="color:#f0f;">休憩を中断しました</b>';
	# 新規
	}elsif($i eq 'entry'){$m = '<b style="color:#ccf;">新たに参加しました</b>';
	# 死亡
	}elsif($i eq 'death'){
		if($j eq 'explosion'){$m = '爆発して身体が四散しました';
		}elsif($j eq 'dangerarea'){$m = '禁止エリアに立ち入りました';
		}elsif($j eq 'drown'){$m = '海に身を投げました';
		}elsif($j eq 'gun'){$m = '射殺されました';
		}elsif($j eq 'poison'){$m = '誤って服毒し、悶え苦しみながら死にました';
		}elsif($j eq 'choked'){$m = '首を絞められて殺されました';
		}elsif($j eq 'burning'){$m = '体中が燃え上がり、黒こげになりました';
		}elsif($j eq 'strike'){$m = '鈍器で殴られて殺されました';
		}elsif($j eq 'bleeding'){$m = '刃物で刺され、出血多量で死にました';
		}elsif($j eq 'electric'){$m = '強烈な電気ショックを受け、呼吸が止まりました';
		}elsif($j eq 'car'){$m = '車に轢かれて即死しました';
		}elsif($j eq 'starvation'){$m = '餓死しました';
		}elsif($j eq 'cutting'){$m = '首と胴が別れ別れになりました';
		}elsif($j eq 'hang'){$m = '管理室からの電波で首輪を爆発させられました';
		}elsif($j eq 'alive'){$m = '生きてこの戦場から離脱しました';
		}else{$m = 'なんか知らんけど死にました';}
	$m = '<b class=kinsi>'.$m.'</b>';
	# その他
	}else{$m = '?';}
if($log[5] && (($i eq death)||($i eq attack))){
$ichi[0]=$log[5]/100;
$ichi[1]=int(($log[5] % 100 )/10);
$hougaku=$log[5] % 10;
$hougaku=('東','南','西','北')[$hougaku];
if ($ichi[1]==0){
$ichi[1]=10;
$ichi[0]--;
}
$ichi[0]=('A','B','C','D','E','F','G','H','I','J')[$ichi[0]];
$ichi="<font size=2>[$ichi[0]$ichi[1] $hougaku]</font>";
}
$mes = $check ? "$janが$m。$ichi<br>\n" : "$janが$m。<br>\n";
print "$mes" if $m;
#print "$janが$m。<br>\n" if $m;
$ichi='';
}

eval {flock(LOG,8)};
close(LOG);
print '</p>';
}

# ---------書き込み
sub Write {
$time = time;
push @log,"\,\,mo\,$FM{'name'}\,$FM{'message'}";
&Writelog;
}
