#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# 迷宮 Version 1.0
# Arranged by あくあ
# HPタイトル [http://aqure.zive.net/]
#--- [注意事項] --------------------------------------------#
# ・このスクリプトは以下の利用規程に従って配布しています。 #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
# 迷宮スクリプト
# キャラデータに追加する変数
# $dung_xx , $dung_yy, $dung_dir
#
# エンカウンター
sub dung_enc{
$log .= "突然、不気味な気配が行く手をはばんだ!!
\n";
$tm = 0;
# 国技を使わない
$nation = 8;
$type = '遭遇';
$cmd = 4;
}
sub dung{
if(!$type){
if($hp<4){
$log .= "体力が少なすぎます";
$type='';
$tm=$cmd=0;
&call_main_st;
} else {
$tm=0;
$type='迷宮';
$log .= "$nmは、ぽっかりと口をあけた迷宮の入り口へと足を踏み入れた
\n";
# 位置を初期化
$dung_fl = 1;
$dung_dir = 2;
$dung_xx = 1;
$dung_yy = 1;
&dung_view;
$log .= "
";
&dung_pos;
if($m == 9){
&dung_menu_exit;
}else{
&dung_menu;
}
}
}
&dat_write;
}
# 現在の位置
sub dung_pos{
@dung_dstr = ('北','東','南','西');
$log .= "現在は、地下$dung_fl階の位置($dung_xx,$dung_yy)で、$dung_dstr[$dung_dir]を向いています。
\n";
}
# 右を向く
sub dung_turn_right{
if($dung_dir>2){
$dung_dir = 0;
} else {
$dung_dir++;
}
}
# 左を向く
sub dung_turn_left{
if($dung_dir<1){
$dung_dir = 3;
} else {
$dung_dir--;
}
}
sub dung_map_data{
# マップ
# マイナス座標に到達できる場所は、壁で塞ぐこと
# 0:壁
# 1:通路
# 7:上階段
# 8:下階段
# 9:出口
if ($dung_fl == 1){
# Floor 1
$dung_map = [
[0,0,0,0,0]
,[0,9,1,1,1]
,[0,1,1,0,1]
,[0,1,0,8,1]
,[0,1,1,1,1]
];
} elsif ($dung_fl == 2){
# Floor 2
$dung_map = [
[0,0,0,0,0,0,0,0,0]
,[0,1,1,1,1,1,1,1,1]
,[0,1,0,0,1,0,1,1,1]
,[0,1,0,7,1,0,1,1,1]
,[0,1,1,1,1,0,1,1,1]
];
}
}
sub dung_dirxy{
# $dung_dirxy->[北東南西]->[上下左右]
$dung_dirx = [
[0,0,-1,1] # N
,[1,-1,0,0] # E
,[0,0,1,-1] # S
,[-1,1,0,0] # W
];
$dung_diry = [
[-1,1,0,0] # N
,[0,0,-1,1] # E
,[1,-1,0,0] # S
,[0,0,1,-1] # W
];
}
#
sub dung_view{
&dung_map_data;
# 地形
@map_parts = (
'壁です'
,'真っ暗です'
,'','','','',''
,'上への階段です'
,'下への階段です'
,'出口です'
);
&dung_dirxy;
# 前
$xx = $dung_xx+$dung_dirx->[$dung_dir]->[0];
$yy = $dung_yy+$dung_diry->[$dung_dir]->[0];
$m = $dung_map->[$yy]->[$xx];
#
$log .= "前は".$map_parts[$m].".\n";
# 座標を表示(DEBUG)
#$log .= "座標($xx,$yy)$m:".$map_parts[$m]."\n";
# 左
$xx = $dung_xx+$dung_dirx->[$dung_dir]->[2];
$yy = $dung_yy+$dung_diry->[$dung_dir]->[2];
$m = $dung_map->[$yy]->[$xx];
#
$log .= "左は".$map_parts[$m].".\n";
#$log .= "($xx,$yy,$m)";
# 右
$xx = $dung_xx+$dung_dirx->[$dung_dir]->[3];
$yy = $dung_yy+$dung_diry->[$dung_dir]->[3];
$m = $dung_map->[$yy]->[$xx];
#
$log .= "右は".$map_parts[$m].".
\n";
#$log .= "($xx,$yy,$m)";
}
sub dung_menu{
$log2 .=qq|