!!!{{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{$_}; $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秒)