私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

スレッド

└◇936:
戦闘時アイテム消失 [織江] 02/11 14:53

 └◇937:Re:戦闘時アイテム消失 [moon] 02/11 16:55
  └◇938:Re[2]:戦闘時アイテム消失 [織江] 02/12 09:23<-last


936● 戦闘時アイテム消失[ 織江 ] 2004 02/11 14:53
たびたび申し訳ありません…。
またも問題が発生致しまして、お力をお借りできればと思い書き込ませて頂きます。

症状:戦闘を挑むと、所持している『調理された食料』が消える

報告を受けたのは最近なのですが、どうも実際は相当前から起こっていたようで…
過去ログに似た症状を訴えている方はいらっしゃったのですが、その時は原因特定前で終わっていたようなので、書き込ませて頂きました。

過去ログにあった場合と違い、全員に同じ症状が出ています。
また、移動した時にはなくなりません。
勝敗や相手に関係なく、「自分から誰かに挑んだ時」に消えているようです。

原因は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');

<<<ここまで。

ご助力願えれば幸いです・・・。
スレッド一覧


937● Re:戦闘時アイテム消失[ moon ] 2004 02/11 16:55
> たびたび申し訳ありません…。
> またも問題が発生致しまして、お力をお借りできればと思い書き込ませて頂きます。
>
> 症状:戦闘を挑むと、所持している『調理された食料』が消える
>
> 報告を受けたのは最近なのですが、どうも実際は相当前から起こっていたようで…
> 過去ログに似た症状を訴えている方はいらっしゃったのですが、その時は原因特定前で終わっていたようなので、書き込ませて頂きました。
>
> 過去ログにあった場合と違い、全員に同じ症状が出ています。
> また、移動した時にはなくなりません。
> 勝敗や相手に関係なく、「自分から誰かに挑んだ時」に消えているようです。
>
> 原因は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) {〜}に変更すれば大丈夫だと思います。
スレッド一覧


938● Re[2]:戦闘時アイテム消失[ 織江 ] 2004 02/12 09:23
なるほど!!

調理品の下取り価格を変えたら、消えなくなりました。
ありがとうございます!!
スレッド一覧

CGIROOM