- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!{{category SOS2改造}}装備関連強化
{{font color=red,注意!}}
バグはちゃっちゃと報告しましょう、ご利用は計画的に:)
: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{$_};
&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秒)