装備関連強化
[SOS2改造]装備関連強化
注意!
バグはちゃっちゃと報告しましょう、ご利用は計画的に:)
- 09/01/2007
致命的なバグがありましたので修正しました。
ご報告ありがとうございます*bow*
概要
装備関連の強化です。
スキル「二刀流」、スキル「限定解除二刀流」、「呪われたアイテム」の概念を追加できます。
- 二刀流
片手武器を両手に装備可能になります、メジャーなスキルのリプライズです。
- 限定解除二刀流
二刀流の強化スキル、両手武器を二刀流できます。
- 呪われたアイテム
装備すると外せなくなります:p
- 解呪の方法はご自分で工夫します、導入する際はご注意ください。
- WIZやDQ風に寺院(教会)で呪い装備を破壊する場合、戦闘での破壊or被盗が参考になると思います。
- 二刀流で戦闘の際、デフォルトのままでは所持位置が上位の武器から破壊されます。
改造
1. スキルと略字の設定をします
表記 | 説明 |
---|---|
○○ | 二刀流のスキル |
×× | 限定解除二刀流のスキル |
□□ | 呪われたアイテムの略字 |
△△ | 呪われたアイテムが装備された状態と判断するための略字 |
2. # Sub Use After # の修正
呪われたアイテムが装備が解除できないようにします。
step1.
&splititem('i');
の下に
## Pre-CHK $c_w = $c_s = $c_a = $c_j = 0; foreach (0 .. $#items) { ($item,$sts,$price) = split(/△/,$items[$_]); if ($sts =~ /(Cd)/) { if ($sts =~ /(Sw|Kn|Kt|Ax|Gv|Bw|Mi|Wd|Yw)/) { $c_w = 1 } elsif ($sts =~ /(Sh|Ys)/) { $c_s = 1 } elsif ($sts =~ /(Ar|Ya)/) { $c_a = 1 } elsif ($sts =~ /(Jw|Yt)/) { $c_j = 1 } } }
を追加します。
step2.
foreach (0 .. $#items) { ($item,$sts,$price) = split(/△/,$items[$_]); $iak = substr($sts,4,2); $idd = substr($sts,6,2); if ($sts =~ /Q[swat]/) { $nomsg = 1 } else { $nomsg = 0 } $sts =~ s/Q[swat]//g;
if ($Fm{$_}) {
に4行追加します↓
foreach (0 .. $#items) { ($item,$sts,$price) = split(/△/,$items[$_]); $iak = substr($sts,4,2); $idd = substr($sts,6,2); if ($sts =~ /Q[swat]/) { $nomsg = 1 } else { $nomsg = 0 } $sts =~ s/Q[swat]//g;
## ここから $curse = 0; if ($sts =~ /(△△)/) { &umsg('外') if !$Fm{$_}; $sts =~ s/$1//g; $Fm{$_} = 'on'; $curse = 1; } else { if ($Fm{$_}) { if ($c_w && $sts =~ /(Sw|Kn|Kt|Ax|Gv|Bw|Mi|Wd|Yw)/) { &umsg('非'); $Fm{$_} = '' } elsif ($c_s && $sts =~ /(Sh|Ys)/) { &umsg('非'); $Fm{$_} = '' } elsif ($c_a && $sts =~ /(Ar|Ya)/) { &umsg('非'); $Fm{$_} = '' } elsif ($c_j && $sts =~ /(Jw|Yt)/) { &umsg('非'); $Fm{$_} = '' } } } ## ここまで
if ($Fm{$_}) {
3. # Sub Use Message # の修正
メッセージを3つ追加します。
'呪',"おおっと! $itemは呪われていました", '外',"$itemは呪われているため外せません", '非',"既に呪われているため$itemは装備できません",
4. # Sub Arm # の修正
すこし大掛かりです。
STEP1.
if ($sts =~ /Dh/ && $sp !~ /Oh/) { if ($ch !~ /Q[sw]/) { $ab += $iak; $db += $idd; &umsg('装') if !$nomsg; if ($a1 eq 'Bw') { $sp .= 'Qb' } if ($a1 eq 'Kt') { $sp .= 'Qk' } if ($a1 eq 'Ax') { $sp .= 'Qx' } if ($a1 eq 'Sw' && $sts =~ /Li/) { $sp .= 'Qm' } $ch .= 'QwQs'; $sts .= 'QwQs';
} else { &umsg('両') }
に追記、条件分岐を足します↓
if ($sts =~ /Dh/ && $sp !~ /Oh/) { if ($ch !~ /Q[sw]/) { $ab += $iak; $db += $idd; &umsg('装') if !$nomsg; if ($a1 eq 'Bw') { $sp .= 'Qb' } if ($a1 eq 'Kt') { $sp .= 'Qk' } if ($a1 eq 'Ax') { $sp .= 'Qx' } if ($a1 eq 'Sw' && $sts =~ /Li/) { $sp .= 'Qm' } $ch .= 'QwQs'; $sts .= 'QwQs'; ## 追記 if ($sts =~ /□□/) { $sts .= '△△'; &umsg('呪') if !$curse }
## ここから } elsif ($ch !~ /××/ && $sp =~ /××/) { $ab += $iak; $db += $idd; &umsg('装') if !$nomsg; if ($a1 eq 'Bw') { $sp .= 'Qb' } if ($a1 eq 'Kt') { $sp .= 'Qk' } if ($a1 eq 'Ax') { $sp .= 'Qx' } if ($a1 eq 'Sw' && $sts =~ /Li/) { $sp .= 'Qm' } $ch .= 'QwQs' . '××'; $sts .= 'QwQs'; if ($sts =~ /□□/) { $sts .= '△△'; &umsg('呪') if !$curse } ## ここまで
} else { &umsg('両') }
STEP2.
} elsif ($ch !~ /$a2/) { $ab += $iak; $db += $idd; &umsg('装') if !$nomsg; if ($a1 eq 'Bw') { $sp .= 'Qb' } if ($a1 eq 'Kt') { $sp .= 'Qk' } if ($a1 eq 'Ax') { $sp .= 'Qx' } if ($a1 eq 'Sw' && $sts =~ /Li/) { $sp .= 'Qm' } $ch .= $a2; $sts .= $a2;
} else { &umsg('別') }
に追記、条件分岐を足します↓
} elsif ($ch !~ /$a2/) { $ab += $iak; $db += $idd; &umsg('装') if !$nomsg; if ($a1 eq 'Bw') { $sp .= 'Qb' } if ($a1 eq 'Kt') { $sp .= 'Qk' } if ($a1 eq 'Ax') { $sp .= 'Qx' } if ($a1 eq 'Sw' && $sts =~ /Li/) { $sp .= 'Qm' } $ch .= $a2; $sts .= $a2; ## 追記 $ch .= '××' if $a1 =~ /Sh|Ys/; ## 追記 if ($sts =~ /□□/) { $sts .= '△△'; &umsg('呪') if !$curse }
## ここから } elsif ($ch !~ /Qs/ && $sp =~ /○○/ || $ch !~ /××/ && $sp =~ /××/) { $ab += $iak; $db += $idd; &umsg('装') if !$nomsg; if ($a1 eq 'Bw') { $sp .= 'Qb' } if ($a1 eq 'Kt') { $sp .= 'Qk' } if ($a1 eq 'Ax') { $sp .= 'Qx' } if ($a1 eq 'Sw' && $sts =~ /Li/) { $sp .= 'Qm' } $ch .= "$a2" . 'Qs' . '××'; $sts .= $a2; if ($sts =~ /□□/) { $sts .= '△△'; &umsg('呪') if !$curse } ## ここまで
} else { &umsg('別') }
以上で修正完了です。
- 作ってみたナリよ、キテレツ - Pse (2007年04月06日 14時40分02秒)