▼スレッド
│
└◇936:戦闘時アイテム消失 [織江] 02/11 14:53
└◇937:Re:戦闘時アイテム消失 [moon] 02/11 16:55
└◇938:Re[2]:戦闘時アイテム消失 [織江] 02/12 09:23<-last
たびたび申し訳ありません…。スレッド一覧
またも問題が発生致しまして、お力をお借りできればと思い書き込ませて頂きます。
症状:戦闘を挑むと、所持している『調理された食料』が消える
報告を受けたのは最近なのですが、どうも実際は相当前から起こっていたようで…
過去ログに似た症状を訴えている方はいらっしゃったのですが、その時は原因特定前で終わっていたようなので、書き込ませて頂きました。
過去ログにあった場合と違い、全員に同じ症状が出ています。
また、移動した時にはなくなりません。
勝敗や相手に関係なく、「自分から誰かに挑んだ時」に消えているようです。
原因はsub_fightの武器が壊れるあたりのようなのですが・・・。
以下の文をコメントアウトしたら消えなかったので。
特別このあたりに手を加えた記憶はないのですが。
>>>怪しいと思われる箇所
&splititem('i');
foreach (0 .. $#items) {
$break = 0;
($item,$sts,$price) = split(/△/,$items[$_]);
$iak = substr($sts,4,2); $idd = substr($sts,6,2);
$pc = substr($sts,0,4); $skill = substr($sts,8,1000);
if ($result == 1 && $sts =~ /Qw/ && $sts !~ /Ie/) {$break = 1; $pc -= 1}
if ($result == -1 && $sts =~ /Qs/ && $sts !~ /Qw/ && $sts !~ /Ie/){$break = 1; $pc -= 1}
elsif ($result == -1 && $sts =~ /Qa/ && $sts !~ /Ie/) {$break = 1; $pc -= 1}
if ($result == 0 && $sts =~ /Qt/ && $sts !~ /Ie/) {$break = 1; $pc -= 1}
if ($break == 1 && $pc == 0) {
$ab -= $iak; $db -= $idd;
$sp =~ s/Qb//g if $sts =~ /Bw/;
$sp =~ s/Qk//g if $sts =~ /Kt/;
$sp =~ s/Qx//g if $sts =~ /Ax/;
$sp =~ s/Qm//g if $sts =~ /Sw/;
push (@msg,"$itemが壊れました");
}
if ($pc > 0) {
$sts = sprintf("%04d%02d%02d",$pc,$iak,$idd) . "$skill";
$newitem = "$item△$sts";$newitem .= "△$price" if $price;
push(@bag,$newitem);
}
}
@items = @bag;&joinitem('i');
<<<ここまで。
ご助力願えれば幸いです・・・。
> たびたび申し訳ありません…。スレッド一覧
> またも問題が発生致しまして、お力をお借りできればと思い書き込ませて頂きます。
>
> 症状:戦闘を挑むと、所持している『調理された食料』が消える
>
> 報告を受けたのは最近なのですが、どうも実際は相当前から起こっていたようで…
> 過去ログに似た症状を訴えている方はいらっしゃったのですが、その時は原因特定前で終わっていたようなので、書き込ませて頂きました。
>
> 過去ログにあった場合と違い、全員に同じ症状が出ています。
> また、移動した時にはなくなりません。
> 勝敗や相手に関係なく、「自分から誰かに挑んだ時」に消えているようです。
>
> 原因はsub_fightの武器が壊れるあたりのようなのですが・・・。
> 以下の文をコメントアウトしたら消えなかったので。
> 特別このあたりに手を加えた記憶はないのですが。
>
> >>>怪しいと思われる箇所
〜 省略 〜
> if ($pc > 0) {
> $sts = sprintf("%04d%02d%02d",$pc,$iak,$idd) . "$skill";
> $newitem = "$item△$sts";$newitem .= "△$price" if $price;
> push(@bag,$newitem);
> }
〜 省略 〜
> <<<ここまで。
>
> ご助力願えれば幸いです・・・。
悩みましたがこの場合の原因は簡単なものでした。
調理品というとオリジナルでは下取り価格が0Gですよね。
そうするとif ($pc > 0) {〜}内の処理がされないので所持品から弾かれてしまいます。
対策としては調理品の下取り価格を0G以外にするか、if ($pc > 0) {〜}をif (!$break || $pc > 0) {〜}に変更すれば大丈夫だと思います。
なるほど!!スレッド一覧
調理品の下取り価格を変えたら、消えなくなりました。
ありがとうございます!!