一言。
俺はシロートです。

・よくわからないバトルロワイアルネタ。
最終版（01/11/7）を使用。
→しょーとかっとみたいなの。
→負け犬の遠吠え。

### しょーとかっとみたいなの。

んまぁ…フォームが与える内容ってだけなんだが…

15行目の&Header;の下の処理の振り分けてるところを変える。 1つ目の修正をしなきゃ移動以外はタイトルに行くようになるんで注意です。 別にその下は変えなくても、日本語にせずにsubmitボタンを等にすればいいんですが。 ($FM{'action'} || $FM{'move'} && $FM{'password'}) || &Title; $i = $FM{'action'}; if($status[2] < 1){&Youdead;&Display;&Footer; }elsif($status[5] =~ m/<>/){($i eq 'restend') ? &Restend : Out('休憩中です。'); }elsif($status[5] > time){Out('まだ行動できません。'); }elsif($FM{'move'}){&Move; }elsif($i eq '攻撃'){&Attack; }elsif($i eq '捜索'){&Readmap($status[3]);&Search; }elsif($i eq '廃棄'){&Throwaway; }elsif($i eq '使用'){&Useitem; }elsif($i eq '譲渡'){&Give; }elsif($i eq '休憩'){&Rest; }elsif($i eq '会話'){&Talk; }elsif($i eq '対応'){&Counter; } 次にコレに対応する情報を与えるようにする。sub Actionを入れ替え。 submitのvalueで与えるように。それにあたって不使用となるJavaScript部分の削除。それだけ。 # ----------行動画面 sub Action { my($i,$j,$restok); $j = 0; # 行動不可 if($status[5] =~ m/<>/){ print <<END; 現在、休憩中です <form action="$cgia" method=POST> <input type=hidden name=action value=restend> <input type=hidden name=name value="$FM{'name'}"> <input type=hidden name=password value="$FM{'password'}"> <input type=submit value="休憩を終了する"> </form> END return 1; } $i = $status[5] - time; if($i > 0){ print <<END; <script language="JAVAscript"><!-- var tm;var counts=$i; window.setTimeout("run()",1000); function run(){counts--; document.form1.disp.value = counts; if(counts>0){tm = setTimeout("run()",1000); }else{location.href="./$cgia?action=start&name=$FM{'name'}&password=$FM{'password'}&$time";} } //--></script> <form name="form1">次に行動できるまで、あと<input type=text name="disp" value="$i" size=5>秒です</form> <form action="$cgia" method=POST> <input type=hidden name=action value=start> <input type=hidden name=name value="$FM{'name'}"> <input type=hidden name=password value="$FM{'password'}"> <input type=submit value="更新"> </form> END return; } # コマンド print <<END; <form action="$cgia" method=POST> <input type=hidden name=name value="$FM{'name'}"> <input type=hidden name=password value="$FM{'password'}"> <h2>行動</h2> <table border=1 width=95% cellspacing=0 cellpadding=3 class=stat> <tr><td align=right> 使用するアイテム：<select name=items> END foreach(@items){print "<option value=$_>$weapons[$_ % 100]\n";} print <<END; <option value="no">素手(殴る) </select> </td></tr> <tr><td align=right> 対象となる人物：<select name=victim> END $i = 0; for($j=1;$j<=42;$j++){ if($pos[$j] == $status[3] && $num != $j){ $i++;print "<option value=$j>$victims[$j]\n"; } } $i || print "<option value=0>いません\n"; $j = 0; print '</select></td></tr>'; # 休憩判定 (($restok = $killtorest - $status[6]) > 0) && print "<tr><td align=right>あと<b>$restok</b>人殺さないと休憩できません</td></tr>\n"; # 移動 print <<END; <tr><td> <table border=0> <tr><td rowspan=4>移動する：</td></tr> <tr><td align=center><input type=submit name=move value="北"></td></tr> <tr><td><input type=submit name=move value="西"> <input type=submit name=move value="東"></td></tr> <tr><td align=center><input type=submit name=move value="南"></td></tr> </table> </td></tr> END if($i){ print <<END; <tr><td> <input type=submit name=action value='攻撃'> <input type=submit name=action value='譲渡'> <input type=submit name=action value='会話'> <input type=text name=comment size=20> </td></tr> END } print <<END; <tr><td> <input type=submit name=action value='捜索'> END if(@items){ print <<END; <input type=submit name=action value='使用'> <input type=submit name=action value='廃棄'> END } # 対応 my @nums; foreach(0..4){$nums[$_] = ($status[7] == $_) ? ' selected' : '';} print <<END; </td></tr> <tr><td> <input type=submit name=action value='対応'> <select name=counter> <option value=1$nums[0]>反撃 <option value=2$nums[1]>逃げる <option value=3$nums[2]>反撃して逃げる <option value=4$nums[3]>説得する <option value=5$nums[4]>耐える </select> </td></tr> END # 休息 if($restok <= 0){ print <<END; <tr><td> <input type=submit name=action value='休憩'> </td></tr> END } # 実行 print <<END; </table> </form></div> END } なお、[攻撃]等の文字は好きなのに置き換えてもかまいません。 ただし、3バイト文字など化けるものには注意です。 おそらく望まれるアイテム毎のショートカットに関しては… かなり不細工になりますがコレの応用で出来ます。 希望が多そうならまたそのうち。

### 負け犬の遠吠え。

死に際に一言言い残すようにする。それだけ。

[btlryl.cgi] 1200行目付近に追記。 サブルーチンで言うとDeath。 push @log, join(',',$deaddata[2],$deaddata[4],'death',$death,$status[3]); っていうのがあるんでその直前に以下を挿入。 $text='ぎゃぁ'; push @log, join(',',$deaddata[2],'','lastmoments',$text,$status[3]); [bltryllg.cgi] 200行目ぐらいの　# その他　って奴の直前に以下を挿入。 # 断末魔 }elsif($i eq 'lastmoments'){ $m = '死に際に「<b>'.$j.'</b>」と言い残しました'; ん、物足りない？ やっぱそうか…たんに「ぎゃぁ」っていうだけだもんね。 ってことでキャラ別にする方法。 [btlryl.cgi] さっきのとこの [ $text='ぎゃぁ'; ] コレを以下のに入れ替えてください。 open(COM,"./$datdir/battleco.txt") || &Error(1,'コメント'); my $text; while(<COM>){ $text++; $deaddata[2] eq $text and $text=$_ and last; } chomp $text; close(COM); そして次にコメントファイル[battleco.txt]を作成してデータディレクトリに入れてください。 作るの面倒な方はコレどうぞ。 そのまま使う人いたら尊敬します。 とりあえずココまででキャラ毎に死に際のコメントを変える事は可能ですが、 変えれるのは設置している方、管理人のみです。 そこでコレを参加者で変えれるようにしようでは無いか、と。 続きはまた来週にでも（ぉぃ