トップ 新規 編集 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

装備関連強化

[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秒)
お名前: コメント: