発言者: ミル
発言日: 2004 03/01 15:28
強化アイテムは平常時に使用すると別の効果もあるようにしたので……。
Use Afterで強化アイテムのスキルフラグが付いていたら、優先的に一時使用にするようにして分岐を捻じ曲げ、sub armを通ってアイテムを強化するルーチンを通させました。
1、プレイヤーが強化アイテムを使用(特定のスキルフラグの付いている武具を消費していない場合は別の効果)
↓
2、sub armへ移動。一時使用に入る
↓
3、アイテム強化ルーチンのitm upを通り、特定武具のアイテム修正処理
と行くようにしたのですが……。ローカルで試しても全くアイテムに反映されないのです。
一応、分岐の通し方に問題はないのです。一番最後の『武具を強化しました!』は表示されるので、(アイテムは修正されず)修正処理に問題があると思うのですが。
# Sub Item Up #
sub itm up {
if ($av eq 'dead') { &umsg('死') }
&splititem('i');
foreach(@items){
($item, $sts, $price) = split(/△/, $_);
if(index($sts, 'CbNsPeQp') != -1){ # 剣(Sw)の場合
$pcc = substr($sts, 0, 4); # 下取り価格の取得
$atkk = substr($sts, 4, 2); # 攻撃力値の取得
$dfdd = substr($sts, 6, 2); # 防御力値の取得
$otherr = substr($sts, 8); # アイテム属性の取得
$atkk += 5;#ここに変更処理
if($pcc < -999){$pcc = -999;}elsif($pcc > 9999){$pcc = 9999;} # 値の制限
if($atkk < -9){$atkk = -9;}elsif($atkk > 99){$atkk = 99;} # 値の制限
if($dfdd < -9){$dfdd = -9;}elsif($dfdd > 99){$dfdd = 99;} # 値の制限
$sts = sprintf("%04d%02d%02d%s", $pcc, $atkk, $dfdd, $otherr); # $stsの再構築
$_ = "$item△$sts"; # アイテムデータの反映
$_ .= "△$price" if($price > 0); # 価格の追加
}
}
&joinitem('i');
push (@msg,"武具を強化しました!"); $bp = $bn = '';
}
1;
何がいけないのか……。分かりませんか? 見た限りでは全く問題はないと思うのですが。
▼関連発言
│
└◆965:置換 [ミル] 02/29 05:33
└◆966:Re:置換 [ミル] 02/29 05:35
└◆967:Re[2]:置換 [moon] 02/29 13:04
└◆968:Re[3]:置換 [ミル] 02/29 21:56
└◆969:Re[4]:置換 [ミル] 02/29 22:07
└◆970:Re[5]:置換 [moon] 02/29 23:29
└◆971:Re[6]:置換 [ミル] 03/01 13:21
└◆972:Re[7]:置換 [ミル] 03/01 15:28
└◆973:Re[8]:置換 [ミル] 03/01 15:33
└◆974:Re[9]:置換 [moon] 03/01 19:14
└◆975:Re[10]:置換 [moon] 03/01 22:25
└◆976:Re[11]:置換 [ミル] 03/06 19:30
└◆977:Re[12]:置換 [ミル] 03/06 19:39
└◆978:Re[13]:置換 [moon] 03/06 20:26
└◆993:うおおう [ミル] 03/20 20:29<-last