私設SoS2オーナー応援BBS

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

スレッド

└◇1711:
Re[9]:アイテム消失 [moon] 05/05 19:09

 └◇1712:Re[10]:アイテム消失 [rien] 05/05 22:04
  └◇1713:Re[11]:アイテム消失 [moon] 05/05 22:53
   └◇1714:Re[12]:アイテム消失 [rien] 05/05 23:21
    └◇1715:Re[13]:アイテム消失 [moon] 05/05 23:43
     └◇1716:Re[14]:アイテム消失 [rien] 05/06 00:04


1711● Re[9]:アイテム消失[ moon ] 2009 05/05 19:09
> > 7回表示されたようなので7個のアイテムが残っていると考えられるのですがすべて消失したのですよね?
> > そうすると、このifブロックは問題無いと考えられますのでこの後の処理(サブルーチンの中も含む)で「@items=〜」や「$bg=〜」を行っている箇所がありましたらその周辺が怪しいです。
>
> そうですね、1度アイテムが1つもなくなって
> また増やして・・確認を取っていたので
> 現在は7個になっていました。
> 戦闘時であって強奪時には特に問題はないようでした。
> 武器が壊れるときに全て消えたということで・・(恐らく勝利時だったのでしょうか?)
>
> fight.pl以外で直すべきところはありますか?
> sos.cgiの方もチェックをしてはいるのですが・・どうもうまくいきません。
> 上の処理の下に@items〜があったのですが
> マシマロさんのデフォルトと同じ記述のようでした・・
> @items = @bag;&joinitem('i');
> (こうなってました。)
>
> 設定を変え壊れる確率を多くしてやってはいるのですが
> 1/2や1/1にしてもなかなかうまくいかず・・。
> 確認が取れていない状態です。
>
> それともSidiceの部分がおかしいのでしょうか?

破壊時に現象が再現するということが確認できていないのでしょうか?
マシマロさんの場合は確率で壊れるわけではないですので装備品の下取り価格部分のステータスを0001にすれば1度の勝利で壊れます。

所々に「push(@msg, '(1) items=' . scalar(@items) . ', bg=' . ($bg ne '' ? 'あり' : 'なし'));」を追加してみてどこで@itemsの個数が0もしくは$bgが空になっているかどうかを突き止めてみてください。
スレッド一覧


1712● Re[10]:アイテム消失[ rien ] 2009 05/05 22:04
> マシマロさんの場合は確率で壊れるわけではないですので装備品の下取り価格部分のステータスを0001にすれば1度の勝利で壊れます。

ありがとうございます。
確認できました。
やはり壊れるとアイテムが全てなくなりました。
設定部分に戦闘中に装備品が壊れる確率というのがあったので
そこを直しておりました・・;

> 所々に「push(@msg, '(1) items=' . scalar(@items) . ', bg=' . ($bg ne '' ? 'あり' : 'なし'));」を追加してみてどこで@itemsの個数が0もしくは$bgが空になっているかどうかを突き止めてみてください。


fight.pl内で調べてみると
Sub fight
のすぐ下に追加したものが
(1) items=0, bg=なし
>>srand(time | $$);
if ($sp =~ /Qb/) { $uw = (-2,-1,0,1,2) [int(rand(5))] }
この直後に追加したものが
(1) items=0, bg=あり
>>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);
これ以降が
(1) items=3, bg=あり(所持3だった場合)

となっておりました。

どちらかでも0又はなしである範囲で探したほうがよいのでしょうか・・。
それとも両方0である箇所がおかしいのでしょうか・・。
スレッド一覧


1713● Re[11]:アイテム消失[ moon ] 2009 05/05 22:53
「(1)」の部分は場所がわかりやすいように連番でも付けていただければ、と思って一応書いていたのですが、まあ場所がわかったのでしたら構いません。

> fight.pl内で調べてみると
> Sub fight
> のすぐ下に追加したものが
> (1) items=0, bg=なし

get_userが実行されていないのでこの表示で問題無いです。

> >>srand(time | $$);
> if ($sp =~ /Qb/) { $uw = (-2,-1,0,1,2) [int(rand(5))] }
> この直後に追加したものが
> (1) items=0, bg=あり

splititemが実行されていないのでこの表示で問題無いです。

> >>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);
> これ以降が
> (1) items=3, bg=あり(所持3だった場合)
>
> となっておりました。

useroutの直前までこの表示なのでしたら問題無い(消失していない)はずです。

> どちらかでも0又はなしである範囲で探したほうがよいのでしょうか・・。
> それとも両方0である箇所がおかしいのでしょうか・・。

表示内容としては動作に問題があるようには見えませんので、今度は「push(@msg, '(1) items=' . scalar(@items) . ', bg=' . $bg);」で試してみてください。
見方としてはsplititemからuseroutの間で表示に変化がある部分に注目してください。
スレッド一覧


1714● Re[12]:アイテム消失[ rien ] 2009 05/05 23:21

> 表示内容としては動作に問題があるようには見えませんので、今度は「push(@msg, '(1) items=' . scalar(@items) . ', bg=' . $bg);」で試してみてください。
> 見方としてはsplititemからuseroutの間で表示に変化がある部分に注目してください。

splititemからuseroutの間で
4つくらい追加してみたのですが
どれも同じ表示でした。
>>(1) items=3, bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
(1) items=3, bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
(1) items=3, bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
(1) items=3, bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
(1) items=3, bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
(1) items=3, bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd

異常はないということでしょうか・・・?
何度もすみません・・。
スレッド一覧


1715● Re[13]:アイテム消失[ moon ] 2009 05/05 23:43
>
> > 表示内容としては動作に問題があるようには見えませんので、今度は「push(@msg, '(1) items=' . scalar(@items) . ', bg=' . $bg);」で試してみてください。
> > 見方としてはsplititemからuseroutの間で表示に変化がある部分に注目してください。
>
> splititemからuseroutの間で
> 4つくらい追加してみたのですが
> どれも同じ表示でした。
> >>(1) items=3, bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
> (1) items=3, bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
> (1) items=3, bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
> (1) items=3, bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
> (1) items=3, bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
> (1) items=3, bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
>
> 異常はないということでしょうか・・・?
> 何度もすみません・・。

少なくともuseroutの直前までは問題ないようです。
ですので、useroutの中および以降に原因があるのだと思います。
今度は以下の処理をuseroutの直前に1回と直後以降にいくつか追加して試してみてください。
  if(open(FILE, '<', "$usrdir$id.dat")){my @data = <FILE>; close(FILE); push(@msg, 'bg=' . (split(/<>/, $data[0]))[19]);}else{push(@msg, 'error');}
スレッド一覧


1716● Re[14]:アイテム消失[ rien ] 2009 05/06 00:04

> 少なくともuseroutの直前までは問題ないようです。
> ですので、useroutの中および以降に原因があるのだと思います。
> 今度は以下の処理をuseroutの直前に1回と直後以降にいくつか追加して試してみてください。
>   if(open(FILE, '<', "$usrdir$id.dat")){my @data = <FILE>; close(FILE); push(@msg, 'bg=' . (split(/<>/, $data[0]))[19]);}else{push(@msg, 'error');}

userout直前直後と
それ以降のSub Fight内に2つ追加しました。
表示は全て同じになりました。
bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
スレッド一覧

CGIROOM