$hidden = '#CCCCCC'; # この色は、背景色に近い色に設定して下さい。
# トラップシステム Ver 3.11 By SION 2003.08.11
# 原作/罠システム Ver 1.1 By 人形 2002.04.15
##########################################################################
# パーミッション(644|604)
##########################################################################
# 本体対応状況:
# SoS II Ver 1.10 (c)sho / MISSING LINK [ http://www.area-s.com/ ]
# SoS II dollEx 人形氏 / 月里影氏 [ http://www5.ocn.ne.jp/~mvillage/ ]
# ↓ 当改造のサポートは下記のサイトでのみ行っております。
# http://www.sionjam.net/
# MISSING LINK / 他サイトへのお問合せはご迷惑が掛かりますのでご遠慮下さい
push (@editor,"トラップ出現 Ver 3.11 by SION");
push (@editor,"原作:罠システム Ver 1.1 人形&月里影");
# Ver 1.1 >> Ver 2.0
# ・スクリプトの書き下ろし
# ・複数回探索におけるマイナーチェンジ
# 原作:トラップ発動後も探索続行
# →トラップ発動後は探索停止(回復トラップ除く)
# ・トラップ解除における罠解除スキルの扱いの変更
# 原作:罠スキル無し=解除不可 有り=ランダムに解除
# → 無し=ランダムに解除 有り=高確率で解除
# ・罠ダメージの不具合修正
# ・経験値システムの取り入れ
# Ver 2.0 >> Ver 3.0
# ・罠をアイテムの一種として扱う修正。
# これにより、個別の発生率・解除率・経験値の設定が可能となる。
# ・罠に複数種別設定可能(毒+ダメージなど)
# Ver 3.0 >> Ver 3.11
# ・AdvancedEditionへの対応 ⇒ 本家版への再移植
# 細かな機能追加/バージョンアップ
#=======《 Sub Trap 》===================================================#
sub trap {
$fg = 'trap';
$trapmsg = '';
$tp_clr = int(substr($idt,0,2)); $tp_sclr = int(substr($idt,2,2));
$tp_pow = int(substr($idt,4,2)); $tp_exp = int(substr($idt,6,2));
$trapmsg = "罠だ!!";
#-------- トラップ解除判定 -----------------------------------------------
$random = int(rand(100));
if ($tp_clr >= $random) {
$fg = '';
if ($tp_exp && $lv) {
$trapmsg .= ">> トラップ解除成功!! $tp_exp の経験地を入手した
";
$exp += $tp_exp; }
else { $trapmsg .= '>> トラップ解除成功!!
'; }
}
elsif (($sp =~ /Tp/) && ($tp_sclr >= $random)) { $trapmsg .= '>> トラップ解除成功!!
'; }
else {
$trapmsg .= ">> トラップ解除失敗!!
$inm \n";
$tp_type = substr($idt,8); }
#-------- トラップダメージ判定 -------------------------------------------
# ダメージ
if ($tp_type =~ /Di/) {
$trapmsg .= ">> $tp_pow ポイントのダメージを受けた
";
$hp -= $tp_pow; if ($hp < 0) { $hp = 0; }}
# 回復
elsif ($tp_type =~ /Fd/) {
$trapmsg .= ">> $tp_pow ポイント回復した
";
$hp += $tp_pow; $fg = ''; }
# トランスポート(※大和さん作の街移動システム対応)
elsif ($tp_type =~ /Tw/) {
$trapmsg .= " >> 別の場所にテレポートした
";
$tw = int($tp_pow); }
# トランスポート(※人形さん作のエリア移動システム対応)
elsif ($tp_type =~ /Ar/) {
$trapmsg .= " >> 別の場所にテレポートした
";
$area = 'a' . $tp_pow; }
# 治癒
if ($tp_type =~ /Rv/) {
if ($av ne 'alive') { $trapmsg .= ">> 状態が回復した
"; }
$av = 'alive'; $fg = ''; }
# 即死 (※HPは変化しません。)
elsif ($tp_type =~ /Dt/) { $av = 'dead'; }
# 即死 (※HPが0になります。)
elsif ($tp_type =~ /Dd/) { $hp = 0; $av = 'dead'; }
# 毒
elsif ($tp_type =~ /Pz/) {
$trapmsg .= " >> 毒にかかってしまった
";
$av = 'poison'; }
# 麻痺
elsif ($tp_type =~ /Pr/) {
$trapmsg .= " >> 体が麻痺してしまった
";
$av = 'paralysis'; }
# 呪い
elsif ($tp_type =~ /Cr/) {
$trapmsg .= " >> 呪いに掛かってしまった
";
$av = 'curse'; }
# 一時使用解除
if ($tp_type =~ /Im/) {
if ($bp) { $trapmsg .= " >> 一時使用中のアイテムを落としてしまった "; }
$bp = ''; $bn = ''; }
# アイテム発見の有無(※通常利用しません。利用時は要改造)
if ($idt !~ /Nf/) { $exist = 1; }
push (@msg, $trapmsg);
}
1;