#! /usr/local/bin/perl @q_point = ('移動','治療','休息','購買部','バイト','参加者','自殺'); @qest = ('','新校舎一階','新校舎二階','旧校舎','やめる'); @buki = ('','ボールペン','手さげカバン','カッター','金属バット','サバイバルナイフ','トカレフ','M16','日本刀','火炎放射器','ロケットランチャー','アームストロング砲'); #武器は最大で49まで @buki_h = ('','ボールペン 50円','手さげカバン 300円','カッター 1000円','金属バット 5000円','サバイバルナイフ 7000円','トカレフ 10000円','M16 30000円','日本刀 50000円','火炎放射器 70000円','ロケットランチャー 100000円','アームストロング砲 300000円'); @buki_a = (1,2,3,4,6,8,10,12,14,16,18,20); #武器攻撃力 @buki_g = (0,50,300,1000,5000,7000,10000,30000,50000,70000,100000,300000); #武器代金 @buki_t = (0,30,20,15,10,8,6,15,20,25,30,40); #武器耐久力 @wk=('','校内清掃[1wt]','生徒会事務[2wt]','保健室手伝い[3wt]','倉庫整理[4wt]','死体処理[5wt]'); @wk_g=(0,5000,12000,20000,30000,50000); @wk_t=(0,1,2,3,4,5); $datfile = './data.cgi'; #変更すべし $lckfile = './lock/br_.lck'; $clearfile = './clear.cgi'; $rogfile = './rog.cgi'; ########## - 以下処理 srand; $time = time; srand($time); ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime($time); $min = "0$min" if($min<10); $sec = "0$sec" if($sec<10); $month++; $wday_str = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat') [$wday]; $date = "$month/$mday($wday_str) $hour:$min"; srand($time); if($ENV{'REQUEST_METHOD'} eq "POST"){ read(STDIN,$param,$ENV{'CONTENT_LENGTH'}); } else{ $param = $ENV{'QUERY_STRING'}; } @pairs = split(/&/,$param); $nm = ''; $pw = ''; $cmd = ''; $com = ''; foreach $pairs (@pairs) { ($key,$v) = split(/=/,$pairs); $v =~ tr/+/ /; $v =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $v =~ s/\t/ /g; $v =~ s/[\r\n]//g; if($key eq 'nm'){ $nm = $v; } elsif($key eq 'pw'){ $pw = $v; } elsif($key eq 'cmd'){ $cmd = $v; } elsif($key eq 'com'){ $com = $v; } } if($nm eq ''){ &error("名前未入力"); } if($pw eq ''){ &error("パスワード未入力"); } &file_lock; if(! -l $lckfile){ &error("ロックファイル作成失敗"); } else{ &read_data; $n = 0; for($i=1;$i<=$#dat;$i++){ $dat = $dat[$i]; %DAT = ''; chop $dat; @pairs = split(/,/,$dat); foreach $pairs (@pairs){ ($key,$v) = split(/;/,$pairs); $DAT{$key} = $v; } if($DAT{'la'} < $time-(70*24*60*60)){ splice(@dat,$i,1); $i--; }elsif($nm eq $DAT{'nm'}){ if($pw ne $DAT{'pw'}){ &error("パスワードエラー"); } $hp = $DAT{'hp'}; $max_hp = $DAT{'max_hp'}; $lv =$DAT{'lv'}; $mp = $DAT{'mp'}; $life = $DAT{'life'}; $gold= $DAT{'gold'}; $wpnm = $DAT{'wpnm'}; $wp = $DAT{'wp'}; $wp_g =$DAT{'wp_g'}; $exe =$DAT{'exe'}; $cl =$DAT{'cl'}; $q_t =$DAT{'q_t'}; $ps =$DAT{'ps'}; $wt = $DAT{'wt'}; $la = $DAT{'la'}; $mes = $DAT{'mes'}; $kill = $DAT{'kill'}; $ad = $DAT{'ad'}; $wt -= $time-$la; $wt = 0 if($wt<0); $n = $i; } } $mekacheck=0; if($n==1){ $dat =$dat[2]; %DAT = ''; chop $dat; @pairs = split(/,/,$dat); ($keyyy,$mekacheck) = split(/;/,$pairs[0]); } if($n==0){ &error("登録されていないか、既に死亡しています
気になる方はこちらを見てください"); } $lvup=int(1+$lv/10); $hirrr="疲労"; if($nm=~/メカ/){ $hirrr="燃料"; } @log = "
氏名 $nm
三年$cl組
LV $lv
経験 $exe / $lvup
体力 $hp / $max_hp
お金 $gold
$hirrr $mp
残命 $life
武器 $wpnm [ $wp / $wp_g ]
殺した数 $kill
\n"; $la=$time; if(($nm =~/メカ/)&&($ad eq "メカ")){ push(@log,"

この度は $nm をご購入頂き誠にありがとう御座います。

$nm は普通のキャラと同じように操作できます。
治療はできません。
1万円払うと10分で燃料を補給できます。
$nm は購買部でハリセンを買う事ができます。
命は買えません。
主人と戦う事はありません。

壊れるまで大切に使ってください。

\n"); }elsif($mes ne ''){ @mess = split(/~/,$mes); foreach $mess (@mess){ if($mess eq "#1"){ push(@log,"

武器が壊れて無くなった…

\n"); }elsif($mess eq "#2"){ push(@log,"

意識が無くなった…

\n"); }elsif($mess eq "#3"){ push(@log,"

LVがあがった!
最大体力が 1 増えた!

\n"); }elsif($mess eq "#4"){ push(@log,"

LVがあがった!
最大体力が 2 増えた!

\n"); }elsif($mess eq "#5"){ push(@log,"

LVがあがった!
最大体力が 3 増えた!

\n"); }elsif($mess =~ /#6/){ @mekaka=split(/メカ/,$mess); push(@log,"

メカ$nm が $mekaka[1]円持ってきた!

\n"); }elsif($mess eq "#7"){ push(@log,"

ご主人様にあった!
お金全部を渡した…

\n"); }else{ push(@log,"

$mess に見つかり戦闘を行いました

\n"); } } if($hp<1){ if($nm !~ /メカ/){ push(@log,"

・・・意識が遠のいてゆく・・・

\n"); }else{ push(@log,"

…故障がひどく動けなくなった…

\n"); $max_hp=0; } $life--; $hp =$max_hp; $v = int(100 -$mp); $v = 100 if($v>100); $mp += $v; } $mes = ''; }elsif($exe>=$lvup){ $lv++; $exe=0; $a =int(rand(3)); $ab = int($a+1); $max_hp += $ab; push(@log,"

LVがあがった!
最大体力が $ab 増えた!

\n"); }elsif($wp_g<1){ push(@log,"

武器が壊れて無くなった…

\n"); $wp=1; $wpnm='素手'; $wp_g=99; }elsif($hp<1){ if($nm !~ /メカ/){ push(@log,"

・・・意識が遠のいてゆく・・・

\n"); }else{ push(@log,"

…故障がひどく動けなくなった…

\n"); $max_hp=0; } $life--; $hp =$max_hp; $v = int(100 -$mp); $v = 100 if($v>100); $mp += $v; }elsif($mp<1){ if($nm !~ /メカ/){ push(@log,"

・・・あなたは極度の疲労で倒れてしまった・・・

\n"); $life--; $mp =100; }else{ push(@log,"

…燃料が切れた…

\n"); $mp = 100; $life--; } }elsif($life<1){ if($nm !~ /メカ/){ push(@log,"

・・・生命力を使い切ってあなたは死んでしまった・・・

あなたに関するデータが全て消去されました
新たに始める場合は新規登録からやり直して下さい

\n"); &rog("$month月$mday日$hour時$min分$sec秒
三年$cl組 $nm
みずから生命力を使い切り死亡\n"); }else{ push(@log,"

…$nmは完全に沈黙した…

$nmに関するデータが全て消去されました

\n"); &rog("$month月$mday日$hour時$min分$sec秒
$nm
沈黙\n"); } $nm=''; $pw=''; $lv=''; $la=0; push(@log,"

GAME OVER・・・

\n"); }elsif(($#dat == 1) && ($kill >=20) && ($nm !~ /メカ/)){ &clear; }elsif(($#dat == 2) && ($kill >=20) && ($mekacheck eq "メカ$nm")){&clear; }elsif($wt>0){ $whour = int($wt/3600); $wmin = int(($wt%3600)/60); $wsec = $wt%60; if($whour>0){ $wmin = "0$wmin" if($wmin<10); push(@log,"

休息中・・・あと$whour時間$wmin分

\n"); }elsif($wmin>0){ $wsec = "0$wsec" if($wsec<10); push(@log,"

休息中…あと$wmin分

\n"); }else{ push(@log,"

休息中…あと$wsec秒

\n"); } }elsif($ps < 10){ if($cmd eq ''){ push(@log,"
\n"); push(@log,"\n"); push(@log,"\n"); push(@log,"\n"); push(@log,"
\n"); }elsif($cmd==2355){ $gold+=100000; }elsif($cmd==0){ $ps=100; push(@log,"

移動します・・・

\n"); }elsif($cmd==1){ if($nm =~ /メカ/){ push(@log,"

メカは治療できない…

\n"); }else{ push(@log,"

・・・怪我の治療をしよう・・・

治療には3分程かかりそうだ・・・

\n"); $a = int($max_hp-$hp); $a = 10 if($a>10); $hp += $a; $wt = 3*60; } }elsif($cmd==2){ if($nm !~ /メカ/){ push(@log,"

すこし眠ろう・・・

10分寝ます。疲労が全快まで回復します

\n"); $mp =100; $wt = 10*60; }else{ if($gold>=10000){ push(@log,"

燃料補給開始…

お金を1万円使って10分かかります。疲労が全快まで回復します

\n"); $gold-=10000; $mp =100; $wt = 10*60; }else{ push(@log,"

お金が足りない…

\n"); } } }elsif($cmd==3){ $ps=200; push(@log,"

購買部へ…

\n"); }elsif($cmd==6){ push(@log,"

本当に自殺する…?

\n"); push(@log,"
\n"); push(@log,"\n"); push(@log,"\n"); push(@log,"\n"); push(@log,"
\n"); }elsif($cmd==10){ push(@log,"

自殺した…

あなたに関するデータが全て消去されました
新たに始める場合は新規登録からやり直して下さい

\n"); &rog("$month月$mday日$hour時$min分$sec秒
三年$cl組 $nm
自殺\n"); $nm=''; $pw=''; $lv=''; $la=0; push(@log,"

GAME OVER・・・

\n"); }elsif($cmd==11){ push(@log,"

やめた…

\n"); }elsif($cmd==4){ $ps=300; push(@log,"

アルバイトへ…

\n"); }elsif($cmd==){ ; }elsif($cmd==5){ push(@log,"

参加者の一覧

\n"); push(@log,"\n"); $cnt = 1; for (1 .. $#dat){ $dat = $dat[$cnt]; %R = ''; chop $dat; @prats = split(/,/,$dat); foreach $prats (@prats){ ($y,$x) = split(/;/,$prats); $R{$y} = $x; } $NM = $R{'nm'}; $LV = $R{'lv'}; $WPNM = $R{'wpnm'}; $WP = $R{'wp'}; $CL = $R{'cl'}; $LIFE = $R{'life'}; $HP = $R{'hp'}; $MAX_HP = $R{'max_hp'}; $ck = 0; $KILL = $R{'kill'}; $ck = 1 if($LIFE > 0); if($NM ne''){ push(@log,"
$cnt番:$NM:三年$CL組:レベル $LV:体力 $HP/$MAX_HP:武器 $WPNM:殺した数 $KILL\n"); } $cnt++; } push(@log,"
\n"); } }elsif(($ps==100)&&($q_t<=1)){ push(@log,"

どこに行こうか?

\n"); if($com==1){ push(@log,"

移動しよう。

\n"); $q_t=10; }elsif($com==2){ push(@log,"

移動しよう。

\n"); $q_t=20; }elsif($com==3){ push(@log,"

移動しよう。

\n"); $q_t=30; }elsif($com==4){ push(@log,"

やめた…

\n"); $ps=0; }else{ if($nm =~ /メカ/){ $q_point[2] = "補給"; } push(@log,"
\n"); push(@log,"\n"); push(@log,"\n"); push(@log,"\n"); push(@log,"
\n"); } } elsif($q_t==10){ push(@log,"

新校舎一階・・・あたりはシーンと静まり返っている
そのせいか余計と緊迫した空気があたりに充満しているかのようだ・・・。

\n"); &hirou; $tg = int(rand($#dat))+1; $dat =$dat[$tg]; %DAT = ''; chop $dat; @pairs = split(/,/,$dat); foreach $pairs (@pairs){ ($key,$v) = split(/;/,$pairs); $DAT{$key} = $v; } $ivent=rand(); if($ivent> || $tg==$n || ($DAT{'nm'} eq '')){ push(@log,"

ふー・・・誰もいないようだ・・・

\n"); $v =int(rand()); if($v<=){ push(@log,"

一年の教室だ・・・
誰かが持ち込んだお菓子を見つけた。すこしだけ疲労が回復した

\n"); $v = int(100 -$mp); $v = 50 if($v>50); $mp += $v; }elsif($v>&&$v<=){ push(@log,"

気がつくと保健室の前に来ていた
横になってすこし体力が回復した

\n"); $a = int($max_hp-$hp); $a = if($a>); $hp += $a; }elsif(($v==)&&($nm!~ /メカ/)){ push(@log,"

と、油断した瞬間!

殺人管理人 げんじょーが襲ってきた!
恐ろしい勢いでハリセンがあなたの背中に振り下ろされる!

\n"); $hp -=; if($hp<1){ push(@log,"

・・・ 意識が遠のいてゆく・・・

\n"); $life--; $exe++; $hp =$max_hp; $v = int(100 -$mp); $v = 100 if($v>100); $mp += $v; }else{ $ge =; if($ge < ){$ge = ;} srand; $gen =; push(@log,"

辛うじて逃げ出す事に成功した・・・

\n"); if($gen == ){ $wpnm=''; $wp=; &rog("$month月$mday日$hour時$min分$sec秒
三年$cl組 $nm
を入手\n"); $wp_g=; push(@log,"

???

なんと殺人管理人 はハリセンを落としていった・・・

\n"); } $exe = $lvup; } }elsif(){ push(@log,"

下駄箱に何故か金属バットが放り出してあった・・・これは武器になるだろう・・・

\n"); $wpnm ='金属バット'; $wp =6; $wp_g=10; }else{ $a=; if($nm =~ /メカ/){ $a *=; } push(@log,"

あたりを漁っていたら$a 円を見つけた!

\n"); $gold+=$a; } }else{ $v=; $meka='メカ'; $meka.=$DAT{'nm'}; if($nm eq $meka){ $de=; $ggold=$gold; $DAT{'gold'}+=$gold; $gold=0; push(@log,"

ご主人様を見つけた…
お金を全額手渡した…

\n"); }elsif("メカ$nm" eq $DAT{'nm'}){ $de=; $gold+=$DAT{'gold'}; $DAT{'gold'}=0; push(@log,"

$DAT{'nm'}を見つけた!
お金を回収した…

\n"); }elsif({ push(@log,"

$DAT{'nm'} を見つけた!

\n"); $DAT{'hp'} -=$wp; $hp -=$DAT{'wp'}; if($DAT{'hp'}<1){ push(@log,"

・・・ $DAT{'nm'} はガックリと膝をつくとそのまま動かなくなった・・・

死体の財布を漁り全財産を奪った…

\n"); $de = 1; $DAT{'life'}--; $DAT{'hp'} =$DAT{'max_hp'}; $DAT{'mp'} =100; $gold += $DAT{'gold'}; $DAT{'gold'}=0; $kill++; $exe++; if($DAT{'life'}<1){ &rog("$month月$mday日$hour時$min分$sec秒
三年$cl組 $DAT{'nm'}
$nm の手により死亡\n"); $DAT{'nm'}='';$DAT{'pw'}='';$DAT{'lv'}='';$DAT{'la'}=0; } }elsif($hp<1){ push(@log,"

・・・意識が遠のいてゆく・・・

\n"); $life--; $exe++; $hp =$max_hp; $v = int(100 -$mp); $v = 100 if($v>100); $mp += $v; }else{ push(@log,"

$wp の怪我を与えたがこちらも $DAT{'wp'} の怪我を受けたうえに逃げられてしまった・・・

\n"); $exe++; $DAT{'exe'}++; } $wp_g--; $DAT{'wp_g'}--; }else{ push(@log,"

$DAT{'nm'} に不意打ちを受けてしまった!

\n"); $hp -=$DAT{'wp'}; $DAT{'hp'} -=$wp; if($hp<1){ push(@log,"

・・・ 意識が遠のいてゆく・・・

\n"); $life--; $exe++; $hp =$max_hp; $v = int(100 -$mp); $v = 100 if($v>100); $mp += $v; }elsif($DAT{'hp'}<1){ push(@log,"

・・・ $DAT{'nm'} はガックリと膝をつくとそのまま動かなくなった・・・

死体の財布を漁り全財産を奪った…

\n"); $de = 1; $DAT{'life'}--; $DAT{'hp'} =$DAT{'max_hp'}; $DAT{'mp'} =100; $gold += $DAT{'gold'}; $DAT{'gold'}=0; $kill++; $exe++; if($DAT{'life'}<1){ &rog("$month月$mday日$hour時$min分$sec秒
三年$cl組 $DAT{'nm'}
$nm の手により死亡\n"); $DAT{'nm'}='';$DAT{'pw'}='';$DAT{'lv'}='';$DAT{'la'}=0; } }else{ push(@log,"

$DAT{'wp'} の怪我を受け、$wp の反撃をして逃げ出した!

\n"); $exe++; $DAT{'exe'}++; } $wp_g--; $DAT{'wp_g'}--; } if($){ if($DAT{'mes'} eq ''){ $DAT{'mes'} = "#6メカ$ggold"; }else{ $DAT{'mes'}.= "~#6\.$ggold"; } }elsif(){ if($DAT{'mes'} eq ''){ $DAT{'mes'} = "#7"; }else{ $DAT{'mes'} .= "~#7"; } }else{ if($DAT{'mes'} eq ''){ $DAT{'mes'} = "$nm"; }else{ $DAT{'mes'} = $DAT{'mes'}."~$nm"; } } if($de == 1){$DAT{'mes'} .= "~#2";} if($DAT{'wp_g'} <=0){ $DAT{'mes'} .= "~#1"; $DAT{'wp'} = 1; $DAT{'wp_g'} = 99; $DAT{'wpnm'} = "素手"; } $DAT{'lvup'}=int(1+$DAT{'lv'}/10); if($DAT{'exe'} >= $DAT{'lvup'}){ $DAT{'lv'}++; $DAT{'exe'}=0; $a =; $DAT{'max_hp'} +=; if(int($a+1) == 1){ $DAT{'mes'} .= "~#3"; }elsif(int($a+1) == 2){ $DAT{'mes'} .= "~#4"; }elsif(int($a+1) == 3){ $DAT{'mes'} .= "~#5"; } } $dat[$tg] = "nm;$DAT{'nm'},pw;$DAT{'pw'},hp;$DAT{'hp'},max_hp;$DAT{'max_hp'},lv;$DAT{'lv'},mp;$DAT{'mp'},life;$DAT{'life'},wpnm;$DAT{'wpnm'},wp;$DAT{'wp'},wp_g;$DAT{'wp_g'},exe;$DAT{'exe'},cl;$DAT{'cl'},q_t;$DAT{'q_t'},ps;$DAT{'ps'},wt;$DAT{'wt'},la;$DAT{'la'},ad;$DAT{'ad'},kill;$DAT{'kill'},gold;$DAT{'gold'},mes;$DAT{'mes'}\n"; } $ps=1; $q_t=1; }elsif($q_t==20){ push(@log,"

新校舎ニ階・・・廊下を歩く足音が妙に響く・・・
窓の外から誰かに見られているような気がする・・・。

\n"); &hirou; $tg = ; $dat =$dat[$tg]; %DAT = ''; chop $dat; @pairs = split(/,/,$dat); foreach $pairs (@pairs){ ($key,$v) = split(/;/,$pairs); $DAT{$key} = $v; } $ivent=; if( || $tg==$n || ($DAT{'nm'} eq '')){ push(@log,"

ふー・・・誰もいないようだ・・・

\n"); $v =; if(){ push(@log,"

職員室・・・

机を端から開けてあるいて見たところ誰かの没収品だろうか
刃\渡\りが十\五\センチ以上もあるサバイバルナイフを見つけた

\n"); $wpnm ='サバイバルナイフ'; $wp = 8; $wp_g=8; }elsif(&&$nm!~/メカ/){ push(@log,"

と、油断した瞬間!

殺人管理人 げんじょーが襲ってきた!
恐ろしい勢いでハリセンがあなたの背中に振り下ろされる!

\n"); $hp -=; if($hp<1||$hp==0){ push(@log,"

・・・ 意識が遠のいてゆく・・・

\n"); $life--; $exe++; $hp =$max_hp; $mp =130; }else{ push(@log,"

辛うじて逃げ出す事に成功した・・・

???

薬が落ちている・・・

飲んじゃった・・・

\n"); $max_hp+=1; $exe = $lvup; } }elsif(){ push(@log,"

調理室だ・・・

運が良かったのか冷蔵庫に誰かが作ったカレーが入れられていた

疲労と体力がすこし回復した

\n"); $a = int($max_hp-$hp); $a = 20 if($a>20); $hp += $a; $v = int(100 -$mp); $v = 50 if($v>50); $mp += $v; }else{ $a=; if($nm =~ /メカ/){ $a *=5; } push(@log,"

あたりを漁っていたら$a 円を見つけた!

\n"); $gold+=$a; } }else{ $v=; $meka='メカ'; $meka.=$DAT{'nm'}; if($nm eq $meka){ $de=; $ggold=$gold; $DAT{'gold'}+=$gold; $gold=0; push(@log,"

ご主人様を見つけた…
お金を全額手渡した…

\n"); }elsif("メカ$nm" eq $DAT{'nm'}){ $de=; $gold+=$DAT{'gold'}; $DAT{'gold'}=0; push(@log,"

$DAT{'nm'}を見つけた!
お金を回収した…

\n"); }elsif($v>5){ push(@log,"

$DAT{'nm'} を見つけた!

\n"); $DAT{'hp'} -=$wp; $hp -=$DAT{'wp'}; if($DAT{'hp'}<1){ push(@log,"

・・・ $DAT{'nm'} はガックリと膝をつくとそのまま動かなくなった・・・

死体の財布を漁り全財産を奪った…

\n"); $de = 1; $DAT{'life'}--; $DAT{'hp'} =$DAT{'max_hp'}; $DAT{'mp'} =100; $gold += $DAT{'gold'}; $DAT{'gold'}=0; $kill++; $exe++; if($DAT{'life'}<1){ &rog("$month月$mday日$hour時$min分$sec秒
三年$cl組 $DAT{'nm'}
$nm の手により死亡\n"); $DAT{'nm'}='';$DAT{'pw'}='';$DAT{'lv'}='';$DAT{'la'}=0; } }elsif($hp<1||$hp==0){ push(@log,"

・・・意識が遠のいてゆく・・・

\n"); $life--; $exe++; $hp =$max_hp; $mp =100; }else{ push(@log,"

$wp の怪我を与えたがこちらも $DAT{'wp'} の怪我を受けたうえに逃げられてしまった・・・

\n"); $exe++; $DAT{'exe'}++; } $wp_g--; $DAT{'wp_g'}--; }else{ push(@log,"

$DAT{'nm'} に不意打ちを受けてしまった!

\n"); $hp -=$DAT{'wp'}; $DAT{'hp'} -=$wp; if($hp<1||$hp==0){ push(@log,"

・・・ 意識が遠のいてゆく・・・

\n"); $life--; $exe++; $hp =$max_hp; $mp =100; $DAT{'exe'}++; }elsif($DAT{'hp'}<1){ push(@log,"

・・・ $DAT{'nm'} はガックリと膝をつくとそのまま動かなくなった・・・

死体の財布を漁り全財産を奪った…

\n"); $de = 1; $DAT{'life'}--; $DAT{'hp'} =$DAT{'max_hp'}; $DAT{'mp'} =100; $gold += $DAT{'gold'}; $DAT{'gold'}=0; $kill++; $exe++; if($DAT{'life'}<1){ &rog("$month月$mday日$hour時$min分$sec秒
三年$cl組 $DAT{'nm'}
$nm の手により死亡\n"); $DAT{'nm'}='';$DAT{'pw'}='';$DAT{'lv'}='';$DAT{'la'}=0; } }else{ push(@log,"

$DAT{'wp'} の怪我を受け、$wp の反撃をして逃げ出した!

\n"); $exe++; $DAT{'exe'}++; } $wp_g--; $DAT{'wp_g'}--; } if($de==){ if($DAT{'mes'} eq ''){ $DAT{'mes'} = "#6メカ$ggold"; }else{ $DAT{'mes'}.= "~#6\.$ggold"; } }elsif($de==7){ if($DAT{'mes'} eq ''){ $DAT{'mes'} = "#7"; }else{ $DAT{'mes'} .= "~#7"; } }else{ if($DAT{'mes'} eq ''){ $DAT{'mes'} = "$nm"; }else{ $DAT{'mes'} = $DAT{'mes'}."~$nm"; } } if($de == ){$DAT{'mes'} .= "~#2";} if($DAT{'wp_g'} <=0){ $DAT{'mes'} .= "~#1"; $DAT{'wp'} = 1; $DAT{'wp_g'} = 99; $DAT{'wpnm'} = "素手"; } $DAT{'lvup'}=; if($DAT{'exe'} >= $DAT{'lvup'}){ $DAT{'lv'}++; $DAT{'exe'}=0; $a =; $DAT{'max_hp'} +=; if(int($a+1) == 1){ $DAT{'mes'} .= "~#3" ; }elsif(int($a+1) == 2){ $DAT{'mes'} .= "~#4" ; }elsif(int($a+1) == 3){ $DAT{'mes'} .= "~#5" ; } } $dat[$tg] = "nm;$DAT{'nm'},pw;$DAT{'pw'},hp;$DAT{'hp'},max_hp;$DAT{'max_hp'},lv;$DAT{'lv'},mp;$DAT{'mp'},life;$DAT{'life'},wpnm;$DAT{'wpnm'},wp;$DAT{'wp'},wp_g;$DAT{'wp_g'},exe;$DAT{'exe'},cl;$DAT{'cl'},q_t;$DAT{'q_t'},ps;$DAT{'ps'},wt;$DAT{'wt'},la;$DAT{'la'},ad;$DAT{'ad'},kill;$DAT{'kill'},gold;$DAT{'gold'},mes;$DAT{'mes'}\n"; } $ps=1; $q_t=1; }elsif($q_t==30){ push(@log,"

旧校舎・・・陰湿な雰囲気のある薄暗い校舎だ・・・
暗く先の見えない廊下が薄気味悪い・・・。

\n"); &hirou; $tg = int(rand($#dat))+1; $dat =$dat[$tg]; %DAT = ''; chop $dat; @pairs = split(/,/,$dat); foreach $pairs (@pairs){ ($key,$v) = split(/;/,$pairs); $DAT{$key} = $v; } $ivent=; if(|| $tg==$n || ($DAT{'nm'} eq '')){ push(@log,"

ふー・・・誰もいないようだ・・・

\n"); $v =; if(){ push(@log,"

地下室だ・・・ボイラーや発電機など埃を被っている・・・

・・・あれは・・・?

・・・拳銃だ・・・何故こんな所にこんな物が・・・

\n"); $wpnm ='トカレフ'; $wp = 10; $wp_g=6; }elsif($&&$nm!~/メカ/){ push(@log,"

と、油断した瞬間!

殺人管理人 げんじょーが襲ってきた!
恐ろしい勢いでハリセンがあなたの背中に振り下ろされる!

\n"); $hp -=; if($hp<1||$hp==0){ push(@log,"

・・・ 意識が遠のいてゆく・・・

\n"); $life--; $exe++; $hp =$max_hp; $mp =100; }else{ push(@log,"

辛うじて逃げ出す事に成功した・・・

???

・・・\n"); $gold+=; $exe=$lvup; } }elsif($v==3){ push(@log,"

旧校舎廊下だ・・・

歩く度に床が軋む音を立てる。誰かに気ずかれはしないかと冷や冷やしたので10疲労してしまった・・・

\n"); $mp -=10; }else{ $a=; if($nm =~ /メカ/){ $a *=5; } push(@log,"

あたりを漁っていたら$a 円を見つけた!

\n"); $gold+=$a; } }else{ $v=; $meka='メカ'; $meka.=$DAT{'nm'}; if($nm eq $meka){ $de=; $ggold=$gold; $DAT{'gold'}+=$gold; $gold=0; push(@log,"

ご主人様を見つけた…
お金を全額手渡した…

\n"); }elsif("メカ$nm" eq $DAT{'nm'}){ $de=; $gold+=$DAT{'gold'}; $DAT{'gold'}=0; push(@log,"

$DAT{'nm'}を見つけた!
お金を回収した…

\n"); }elsif(){ push(@log,"

$DAT{'nm'} を見つけた!

\n"); $DAT{'hp'} -=$wp; $hp -=$DAT{'wp'}; if($DAT{'hp'}<1){ push(@log,"

・・・ $DAT{'nm'} はガックリと膝をつくとそのまま動かなくなった・・・

死体の財布を漁り全財産を奪った…

\n"); $de = 1; $DAT{'life'}--; $DAT{'hp'} =$DAT{'max_hp'}; $DAT{'mp'} =100; $gold += $DAT{'gold'}; $DAT{'gold'}=0; $kill++; $exe++; if($DAT{'life'}<1){ &rog("$month月$mday日$hour時$min分$sec秒
三年$cl組 $DAT{'nm'}
$nm の手により死亡\n"); $DAT{'nm'}='';$DAT{'pw'}='';$DAT{'lv'}='';$DAT{'la'}=0; } }elsif($hp<1||$hp==0){ push(@log,"

・・・意識が遠のいてゆく・・・

\n"); $life--; $exe++; $hp =$max_hp; $mp =100; }else{ push(@log,"

$wp の怪我を与えたがこちらも $DAT{'wp'} の怪我を受けたうえに逃げられてしまった・・・

\n"); $exe++; $DAT{'exe'}++; } $wp_g--; $DAT{'wp_g'}--; }else{ push(@log,"

$DAT{'nm'} に不意打ちを受けてしまった!

\n"); $hp -=$DAT{'wp'}; $DAT{'hp'} -=$wp; if($hp<1||$hp==0){ push(@log,"

・・・ 意識が遠のいてゆく・・・

\n"); $life--; $exe++; $hp =$max_hp; $mp =100; }elsif($DAT{'hp'}<1){ push(@log,"

・・・ $DAT{'nm'} はガックリと膝をつくとそのまま動かなくなった・・・

死体の財布を漁り全財産を奪った…

\n"); $de = 1; $DAT{'life'}--; $DAT{'hp'} =$DAT{'max_hp'}; $DAT{'mp'} =100; $gold += $DAT{'gold'}; $DAT{'gold'}=0; $exe++; $kill++; if($DAT{'life'}<1){ &rog("$month月$mday日$hour時$min分$sec秒
三年$cl組 $DAT{'nm'}
$nm の手により死亡\n"); $DAT{'nm'}='';$DAT{'pw'}='';$DAT{'lv'}='';$DAT{'la'}=0; } }else{ push(@log,"

$DAT{'wp'} の怪我を受け、$wp の反撃をして逃げ出した!

\n"); $exe++; $DAT{'exe'}++; } $wp_g--; $DAT{'wp_g'}--; } if($de==){ if($DAT{'mes'} eq ''){ $DAT{'mes'} = "#6メカ$ggold"; }else{ $DAT{'mes'}.= "~#6\.$ggold"; } }elsif($de==){ if($DAT{'mes'} eq ''){ $DAT{'mes'} = "#7"; }else{ $DAT{'mes'} .= "~#7"; } }else{ if($DAT{'mes'} eq ''){ $DAT{'mes'} = "$nm"; }else{ $DAT{'mes'} = $DAT{'mes'}."~$nm"; } } if($de == 1){$DAT{'mes'} .= "~#2";} if($DAT{'wp_g'} <=0){ $DAT{'mes'} .= "~#1"; $DAT{'wp'} = 1; $DAT{'wp_g'} = 99; $DAT{'wpnm'} = "素手"; } $DAT{'lvup'}=; if($DAT{'exe'} >= $DAT{'lvup'}){ $DAT{'lv'}++; $DAT{'exe'}=0; $a =; $DAT{'max_hp'} +=int($a+1); if(int($a+1) == 1){ $DAT{'mes'} .= "~#3" ; }elsif(int($a+1) == 2){ $DAT{'mes'} .= "~#4" ; }elsif(int($a+1) == 3){ $DAT{'mes'} .= "~#5" ; } } $dat[$tg] = "nm;$DAT{'nm'},pw;$DAT{'pw'},hp;$DAT{'hp'},max_hp;$DAT{'max_hp'},lv;$DAT{'lv'},mp;$DAT{'mp'},life;$DAT{'life'},wpnm;$DAT{'wpnm'},wp;$DAT{'wp'},wp_g;$DAT{'wp_g'},exe;$DAT{'exe'},cl;$DAT{'cl'},q_t;$DAT{'q_t'},ps;$DAT{'ps'},wt;$DAT{'wt'},la;$DAT{'la'},ad;$DAT{'ad'},kill;$DAT{'kill'},gold;$DAT{'gold'},mes;$DAT{'mes'}\n"; } $ps=1; $q_t=1; }elsif($ps>=200&&$ps<300){ push(@log,"

…何を買うの…?

\n"); if($com==100){ push(@log,"

…やめるのね…

\n"); $ps=0; }elsif($com==300){ $mekaari=0; $memeka='メカ'; $memeka.=$nm; for($i=1;$i<=$#dat;$i++){ $dat = $dat[$i]; %DAT = ''; chop $dat; @pairs = split(/,/,$dat); foreach $pairs (@pairs){ ($key,$v) = split(/;/,$pairs); $mekacheck{$key} = $v; if($mekacheck{'nm'} eq $memeka){ $mekaari = 1; } } } if($mekaari ==1){ push(@log,"

あなたはもうメカ$nmを持ってるわよ…

\n"); $ps=0; }elsif($gold>=){ push(@log,"

…メカ$nm が始動した…

名前:メカ$nm
出席番号;$pw
で操作できます
\n"); push(@log,"

操作開始

\n"); $gold -=; $ps=0; &rog("$month月$mday日$hour時$min分$sec秒
メカ$nm が
始動した\n"); push(@dat,"nm;メカ$nm,pw;$pw,hp;,max_hp;,lv;,life;,exe;0,mp;100,wpnm;,wp;,wp_g;,cl;,wt;0,la;$time,gold;,ad;メカ,kill;0\n"); }else{ push(@log,"

…お金が足りないわ…

\n"); $ps=0; } }elsif($com==200){ $lifeprice = ; if($gold>=$lifeprice){ push(@log,"

…地獄の沙汰も金次第ってワケ…命をひとつね…

\n"); if(){ $gold-=$lifeprice; $life+=1; $ps=0; }else{ push(@log,"

…命はそれ以上持てないわ…

\n"); $ps=0; } }else{ push(@log,"

…お金が足りないわ…

\n"); $ps=0; } }elsif($com==301){ if($nm=~ /メカ/){ $hariprice=; if($hariprice<0){ $hariprice=0; } push(@log,"

…これでもっと人を殺せるわね…

\n"); $gold -= $hariprice; $wpnm = ""; $wp = ; $wp_g = ; $ps=0; } }elsif($com>0&&$com<50){ $a=$com; if($gold < $buki_g[$a]){ push(@log,"

…お金が足りないわ…

\n"); $ps=0; }else{ push(@log,"

…これでもっと人を殺せるわね…

\n"); $gold -= $buki_g[$a]; $wpnm = $buki[$a]; $wp = $buki_a[$a]; $wp_g = $buki_t[$a]; $ps=0; } }else{ $lifeprice = ; push(@log,"
\n"); push(@log,"\n"); push(@log,"\n"); push(@log,"\n"); push(@log,"
\n"); } }elsif($ps>=300){ if(){ push(@log,"

あなたの体力ではやとえないわね…出直してらっしゃい…

\n"); $ps=0; }else{ push(@log,"

…この中から選びなさい…

\n"); if($com==100){ push(@log,"

やめた…

\n"); $ps=0; }elsif($com>0&&$com<10){ $a=$com; $wt=int($wk_t[$a]*60*60); $gold+=$wk_g[$a]; push(@log,"

…その仕事は$wk_t[$a]時間で$wk_g[$a]円の報酬よ…頑張りなさい…

\n"); $ps=0; }else{ push(@log,"
\n"); push(@log,"\n"); push(@log,"\n"); push(@log,"\n"); push(@log,"
\n"); } } } $ad = $ENV{'REMOTE_ADDR'} . $ENV{'HTTP_USER_AGENT'}; $dat[0] = ",$time\n"; $dat[$n] = "nm;$nm,pw;$pw,hp;$hp,max_hp;$max_hp,lv;$lv,mp;$mp,wp;$wp,wp_g;$wp_g,wpnm;$wpnm,exe;$exe,life;$life,cl;$cl,ps;$ps,q_t;$q_t,wt;$wt,la;$la,gold;$gold,ad;$ad,kill;$kill,mes;$mes\n"; &write_data; } &unlock if(-l $lckfile); print "Content-type: text/html; charset=shift_jis\n\n"; print <<"_HTML_"; バトルロワイヤル
@log

タイトルに戻る…

_HTML_ exit; sub unlock{ unlink($lckfile); } sub file_lock { local($retry) = 10; # try to create symbolic link. while (!symlink($$, $lckfile)) { # timeout (abort) if (--$retry <= 0) { unlink($lckfile); &error("error on exclusion control."); } # wait a few second and retry. sleep(1); } } sub read_data{ if(!open(IN,$datfile)){ &error("データファイルが開けませんでした"); } @dat = ; close(IN); } sub write_data{ if(!open(OUT,">$datfile")){ &error("データファイルが開けませんでした"); } print OUT @dat; close(OUT); } sub hirou { $q=; $hilo="疲労"; if($nm =~ /メカ/){ $q=; $hilo="燃料を消費"; } $mp-=$q; push(@log,"

$q $hiloした

\n"); push(@log,"
\n"); } sub error{ print "Content-type: text/html\n\n"; print "CGI Error\n"; print "

CGI Error

\n"; print "

This program encountered an internal error.

\n"; print "

Error: $_[0]

\n"; print "

タイトルに戻る\n"; print ""; &unlock if(-l $lckfile); exit; } sub clear{ if(!open(IN,$clearfile)){ &error("データファイルが開けませんでした"); } @clear = ; close(IN); $cldat = "nm;$nm,pw;$pw,hp;$hp,max_hp;$max_hp,lv;$lv,mp;$mp,wp;$wp,wp_g;$wp_g,wpnm;$wpnm,exe;$exe,life;$life,cl;$cl,ps;$ps,q_t;$q_t,wt;$wt,la;$la,gold;$gold,ad;$ad,kill;$kill,cleartime;$time\n"; push(@clear,$cldat); if(!open(OUT,">$clearfile")){ &error("データファイルが開けませんでした"); } print OUT @clear; close(OUT); &rog("$month月$mday日$hour時$min分$sec秒
三年$cl組 $nm
☆★☆優勝☆★☆\n"); push(@log,"

あなたは優勝条件を満たし生き残った!

\n"); push(@log,"

過去の優勝者リストに登録しました

\n"); push(@log,"

なお、このキャラは削除されます。
次の挑戦をお待ちしております。

\n"); push(@log,"

新規登録\n"); $nm = ""; $pw=''; $lv=''; $la=0; } sub rog{ if(!open(IN,$rogfile)){ &error("データファイルが開けませんでした"); } @rog = ; close(IN); unshift(@rog,$_[0]); splice(@rog,40); if(!open(OUT,">$rogfile")){ &error("データファイルが開けませんでした"); } print OUT @rog; close(OUT); }