私設SoS2オーナー応援BBS

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

スレッド

└◇1702:
アイテム消失 [rien] 05/04 01:21

 ├◇1703:Re:アイテム消失 [moon] 05/04 22:29
 │└◇1704:Re[2]:アイテム消失 [rien] 05/04 23:32
 │ └◇1705:Re[3]:アイテム消失 [moon] 05/05 00:07
 │  └◇1706:Re[4]:アイテム消失 [rien] 05/05 00:40
 │   └◇1707:Re[5]:アイテム消失 [moon] 05/05 00:52
 │    └◇1708:Re[6]:アイテム消失 [rien] 05/05 08:33
 │     └◇1709:Re[7]:アイテム消失 [moon] 05/05 14:22
 │      └◇1710:Re[8]:アイテム消失 [rien] 05/05 18:02
 │       └◇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
 └◇1717:Re[15]:アイテム消失 [moon] 05/06 00:27
  └◇1718:Re[16]:アイテム消失 [rien] 05/06 01:06
   └◇1719:Re[17]:アイテム消失 [moon] 05/06 01:14
    └◇1720:Re[18]:アイテム消失 [rien] 05/06 01:41
     └◇1721:Re[19]:アイテム消失 [moon] 05/06 15:08
      └◇1722:Re[20]:アイテム消失 [rien] 05/06 15:54
       └◇1723:Re[21]:アイテム消失 [moon] 05/06 16:18
        └◇1724:Re[22]:アイテム消失 [rien] 05/07 10:22
         └◇1725:Re[23]:アイテム消失 [moon] 05/07 22:58
          └◇1726:Re[24]:アイテム消失 [rien] 05/07 23:20
           └◇1727:Re[25]:アイテム消失 [moon] 05/07 23:53
            └◇1728:Re[26]:アイテム消失 [rien] 05/08 00:58
             └◇1729:Re[27]:アイテム消失 [moon] 05/08 08:15
              └◇1730:Re[28]:アイテム消失 [rien] 05/08 10:56<-last


1702● アイテム消失[ rien ] 2009 05/04 01:21
またまたお世話になります。
ここの過去ログでタイトルが同じようなものがあったのですが・・
どれも違うようで・・見ても分からなかったもので新しく書き込みさせていただきました。

対人戦闘によって武器が壊れた時に
仕掛けた側のアイテムが全て消失してしまったのですが・・
これは一体どこを直せばよいのでしょうか・・・。
普通の戦闘(そのほかの事象)では消失することはなかったと思います。
装備品も所持アイテムも全部消えてしまいました・・。

それともう1つ質問なのですが
スキルの1つとして体力を回復できる(白魔法のようなもの)のを取り入れています
これの利用を時間制限を設けるような事をしたいのですが・・
今の時点だと何度も繰り返し利用できてしまってるので
戦闘時間枠のように(〜時間後に利用できますみたいな)制限をつけるにはどうしたらよいのでしょうか・・・

いつも初歩的な質問ですみません・・よろしくお願いします。
スレッド一覧


1703● Re:アイテム消失[ moon ] 2009 05/04 22:29
> またまたお世話になります。
> ここの過去ログでタイトルが同じようなものがあったのですが・・
> どれも違うようで・・見ても分からなかったもので新しく書き込みさせていただきました。
>
> 対人戦闘によって武器が壊れた時に
> 仕掛けた側のアイテムが全て消失してしまったのですが・・
> これは一体どこを直せばよいのでしょうか・・・。
> 普通の戦闘(そのほかの事象)では消失することはなかったと思います。
> 装備品も所持アイテムも全部消えてしまいました・・。

原因となる動作がわかっているのですからその処理(「push (@msg,"$itemが壊れました");」周辺)を中心に修正する箇所を探せば良いです。
おそらくif文の条件か場所が原因で「push(@bag,$newitem);」が実行されていないのだと思います。

> それともう1つ質問なのですが
> スキルの1つとして体力を回復できる(白魔法のようなもの)のを取り入れています
> これの利用を時間制限を設けるような事をしたいのですが・・
> 今の時点だと何度も繰り返し利用できてしまってるので
> 戦闘時間枠のように(〜時間後に利用できますみたいな)制限をつけるにはどうしたらよいのでしょうか・・・
>
> いつも初歩的な質問ですみません・・よろしくお願いします。

最後に使用した時間を保持するための新しいパラメータを用意するのが単純だと思います。
例えばパラメータを$wmtmとした場合、該当スキルの発動判定に「&& $Wwmtm + 86400 <= time」(制限が1日の場合。$Wwmtmはsub fight_subへの引数名)を追加して発動後に「$wmtm = time;」を行うようにすれば良いです。(敗者の発動も同様。)
スレッド一覧


1704● Re[2]:アイテム消失[ rien ] 2009 05/04 23:32
> 原因となる動作がわかっているのですからその処理(「push (@msg,"$itemが壊れました");」周辺)を中心に修正する箇所を探せば良いです。
> おそらくif文の条件か場所が原因で「push(@bag,$newitem);」が実行されていないのだと思います。

お早いお返事いつもありがとうございます。
間違ってそうな箇所はなんとかわかったのですが・・
果たして直ってるのかどうか・・分からなく・・
>>
if ($pc > 0) {
$sts = sprintf("%04d%02d%02d",$pc,$iak,$idd) . "$skill";
$newitem = "$item△$sts";$newitem .= "△$price" if $price;
push(@bag,$newitem);
}
        
これではうまく実行されてないような気がして・・。
$newitem .= "△$price" if $price;この部分がおかしいのでしょうか・・。


> 最後に使用した時間を保持するための新しいパラメータを用意するのが単純だと思います。
> 例えばパラメータを$wmtmとした場合、該当スキルの発動判定に「&& $Wwmtm + 86400 <= time」(制限が1日の場合。$Wwmtmはsub fight_subへの引数名)を追加して発動後に「$wmtm = time;」を行うようにすれば良いです。(敗者の発動も同様。)

パラメーター追加ということはフラグ足しをしていけばいいということですよね。
ありがとうございます。
試してみます。
スレッド一覧


1705● Re[3]:アイテム消失[ moon ] 2009 05/05 00:07
> > 原因となる動作がわかっているのですからその処理(「push (@msg,"$itemが壊れました");」周辺)を中心に修正する箇所を探せば良いです。
> > おそらくif文の条件か場所が原因で「push(@bag,$newitem);」が実行されていないのだと思います。
>
> お早いお返事いつもありがとうございます。
> 間違ってそうな箇所はなんとかわかったのですが・・
> 果たして直ってるのかどうか・・分からなく・・
> >>
> if ($pc > 0) {
> $sts = sprintf("%04d%02d%02d",$pc,$iak,$idd) . "$skill";
> $newitem = "$item△$sts";$newitem .= "△$price" if $price;
> push(@bag,$newitem);
> }

このifブロックはマシマロさんのオリジナルそのままのようですが、変更を元に戻したということなのでしょうか?
それでしたらifブロックの場所もオリジナルと同一なら問題無いはずです。

> これではうまく実行されてないような気がして・・。
> $newitem .= "△$price" if $price;この部分がおかしいのでしょうか・・。

「newitem .= "△$price" if $price;」自体は問題無いです。
実行されていないかどうかは実際に動作(必要に応じてpush(@msg,〜)で変数を表示)させてみれば良いと思います。(確認しませんでしたが現象は必ず起こるのですよね?)
スレッド一覧


1706● Re[4]:アイテム消失[ rien ] 2009 05/05 00:40
> このifブロックはマシマロさんのオリジナルそのままのようですが、変更を元に戻したということなのでしょうか?
> それでしたらifブロックの場所もオリジナルと同一なら問題無いはずです。

> 「newitem .= "△$price" if $price;」自体は問題無いです。
> 実行されていないかどうかは実際に動作(必要に応じてpush(@msg,〜)で変数を表示)させてみれば良いと思います。(確認しませんでしたが現象は必ず起こるのですよね?)

えっと・・そうですね
いろいろ場所が悪いのかと直してみたりしたのですが
サーバーエラー(500)になったりして
貼り付けたのは元に戻した方でした・・すみません。
なので、この状態でアイテム消失が起こったということなのですが・・。
・・見間違えということではないと思いますが・・動作が起こる原因が他にはないか確認してみることにします。
スレッド一覧


1707● Re[5]:アイテム消失[ moon ] 2009 05/05 00:52
> > このifブロックはマシマロさんのオリジナルそのままのようですが、変更を元に戻したということなのでしょうか?
> > それでしたらifブロックの場所もオリジナルと同一なら問題無いはずです。
>
> > 「newitem .= "△$price" if $price;」自体は問題無いです。
> > 実行されていないかどうかは実際に動作(必要に応じてpush(@msg,〜)で変数を表示)させてみれば良いと思います。(確認しませんでしたが現象は必ず起こるのですよね?)
>
> えっと・・そうですね
> いろいろ場所が悪いのかと直してみたりしたのですが
> サーバーエラー(500)になったりして
> 貼り付けたのは元に戻した方でした・・すみません。
> なので、この状態でアイテム消失が起こったということなのですが・・。
> ・・見間違えということではないと思いますが・・動作が起こる原因が他にはないか確認してみることにします。

オリジナルの処理で現象が起こるということでしたらNo.1703に書いた
> おそらくif文の条件か場所が原因で「push(@bag,$newitem);」が実行されていないのだと思います。
の可能性が高くなりますので周辺箇所に「push(@msg,〜)」とif文の前に「push(@msg, "pc=$pc");」を追加して現象を再現させてみて、どこまで処理されているのかと$pcの値がどうなっているのかを確認したほうが良いと思います。
スレッド一覧


1708● Re[6]:アイテム消失[ rien ] 2009 05/05 08:33
> オリジナルの処理で現象が起こるということでしたらNo.1703に書いた
> > おそらくif文の条件か場所が原因で「push(@bag,$newitem);」が実行されていないのだと思います。
> の可能性が高くなりますので周辺箇所に「push(@msg,〜)」とif文の前に「push(@msg, "pc=$pc");」を追加して現象を再現させてみて、どこまで処理されているのかと$pcの値がどうなっているのかを確認したほうが良いと思います。

ありがとうございます。
if ($pc > 0) {

の部分の前に記述してみると
戦闘メッセージの後に
pc=0047

pc=0300

pc=0200

pc=0050

pc=0300

pc=0050

pc=0030

と表示されるのですが、記述する場所を間違えたでしょうか・・・。
スレッド一覧


1709● Re[7]:アイテム消失[ moon ] 2009 05/05 14:22
> > オリジナルの処理で現象が起こるということでしたらNo.1703に書いた
> > > おそらくif文の条件か場所が原因で「push(@bag,$newitem);」が実行されていないのだと思います。
> > の可能性が高くなりますので周辺箇所に「push(@msg,〜)」とif文の前に「push(@msg, "pc=$pc");」を追加して現象を再現させてみて、どこまで処理されているのかと$pcの値がどうなっているのかを確認したほうが良いと思います。
>
> ありがとうございます。
> if ($pc > 0) {
> 〜
> の部分の前に記述してみると
> 戦闘メッセージの後に
> pc=0047
>
> pc=0300
>
> pc=0200
>
> pc=0050
>
> pc=0300
>
> pc=0050
>
> pc=0030
>
> と表示されるのですが、記述する場所を間違えたでしょうか・・・。

場所はそこで合っています。
7回表示されたようなので7個のアイテムが残っていると考えられるのですがすべて消失したのですよね?
そうすると、このifブロックは問題無いと考えられますのでこの後の処理(サブルーチンの中も含む)で「@items=〜」や「$bg=〜」を行っている箇所がありましたらその周辺が怪しいです。
スレッド一覧


1710● Re[8]:アイテム消失[ rien ] 2009 05/05 18:02
> 7回表示されたようなので7個のアイテムが残っていると考えられるのですがすべて消失したのですよね?
> そうすると、このifブロックは問題無いと考えられますのでこの後の処理(サブルーチンの中も含む)で「@items=〜」や「$bg=〜」を行っている箇所がありましたらその周辺が怪しいです。

そうですね、1度アイテムが1つもなくなって
また増やして・・確認を取っていたので
現在は7個になっていました。
戦闘時であって強奪時には特に問題はないようでした。
武器が壊れるときに全て消えたということで・・(恐らく勝利時だったのでしょうか?)

fight.pl以外で直すべきところはありますか?
sos.cgiの方もチェックをしてはいるのですが・・どうもうまくいきません。
上の処理の下に@items〜があったのですが
マシマロさんのデフォルトと同じ記述のようでした・・
@items = @bag;&joinitem('i');
(こうなってました。)

設定を変え壊れる確率を多くしてやってはいるのですが
1/2や1/1にしてもなかなかうまくいかず・・。
確認が取れていない状態です。

それともSidiceの部分がおかしいのでしょうか?
スレッド一覧


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
スレッド一覧


1717● Re[15]:アイテム消失[ moon ] 2009 05/06 00:27
【No.1716の続き】

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

sub fightの最後でも同じでしょうか?
同じ場合は戦闘処理そのものには問題無いのでsub contact_actionとsub player_dataのget_user直後に「print "<hr>bg=$bg<hr>";」を追加して確認してみてください。(レイアウトは崩れると思いますが気にしなくて良いです。)
また、直後に該当ユーザーのデータファイルを開いてアイテム部分が空になっていることを確認しておいたほうが良さそうです。
スレッド一覧


1718● Re[16]:アイテム消失[ rien ] 2009 05/06 01:06
> 【No.1716の続き】
>
> > userout直前直後と
> > それ以降のSub Fight内に2つ追加しました。
> > 表示は全て同じになりました。
> > bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
> > bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
> > bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
>
> sub fightの最後でも同じでしょうか?
> 同じ場合は戦闘処理そのものには問題無いのでsub contact_actionとsub player_dataのget_user直後に「print "<hr>bg=$bg<hr>";」を追加して確認してみてください。(レイアウトは崩れると思いますが気にしなくて良いです。)
> また、直後に該当ユーザーのデータファイルを開いてアイテム部分が空になっていることを確認しておいたほうが良さそうです。

追加部分はSub Fightの最後の}の前に追加してありました。

get_user後に追加したところ
>>bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
このような表示が出ました。
今現在ではアイテムを3つ持っている状態ですが・・。

戦闘後に壊れる場合ですと
戦闘メッセージの後は
>>リュートが壊れました
bg=リュート△00010100MiQw,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
bg=
bg=

こうなり、先ほど追加した部分(枠外のものは)
>>bg=
bg=

このように表示されています。
スレッド一覧


1719● Re[17]:アイテム消失[ moon ] 2009 05/06 01:14
> 追加部分はSub Fightの最後の}の前に追加してありました。
>
> get_user後に追加したところ
> >>bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
> bg=リュート△00010100Mi,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
> このような表示が出ました。
> 今現在ではアイテムを3つ持っている状態ですが・・。
>
> 戦闘後に壊れる場合ですと
> 戦闘メッセージの後は
> >>リュートが壊れました
> bg=リュート△00010100MiQw,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
> bg=
> bg=
>
> こうなり、先ほど追加した部分(枠外のものは)
> >>bg=
> bg=
>
> このように表示されています。

先ほどのものは装備が壊れていない場合の表示だったのでしょうか?(現象が発生していない時の表示を見ても意味がないのですが・・・。)

> bg=リュート△00010100MiQw,アップルグミ△00100100Fd,ピーチグミ△00300200Fd
> bg=
> bg=

sub fightでこのようになったのでしたらsub fightに問題があります。
この部分のpush(@msg, 〜);をもっと細かく配置してどこの処理で$bgが空になっているのかを確認してみてください。
スレッド一覧


1720● Re[18]:アイテム消失[ rien ] 2009 05/06 01:41
> sub fightでこのようになったのでしたらsub fightに問題があります。
> この部分のpush(@msg, 〜);をもっと細かく配置してどこの処理で$bgが空になっているのかを確認してみてください。

すみません・・勘違いをしてました・・;
えぇと・・細かく貼り付けてみた結果
どうやら
user_outの直前ではアイテムが残っており
直後に消えているようでした。

お手数おかけしまして申し訳ありません。
スレッド一覧


1721● Re[19]:アイテム消失[ moon ] 2009 05/06 15:08
> > sub fightでこのようになったのでしたらsub fightに問題があります。
> > この部分のpush(@msg, 〜);をもっと細かく配置してどこの処理で$bgが空になっているのかを確認してみてください。
>
> すみません・・勘違いをしてました・・;
> えぇと・・細かく貼り付けてみた結果
> どうやら
> user_outの直前ではアイテムが残っており
> 直後に消えているようでした。
>
> お手数おかけしまして申し訳ありません。

今までの話の流れからすると、このように判断したものは「if(open(FILE, '<', "$usrdir$id.dat")){〜}」の表示だと思いますがこれではなくて「push(@msg, 'items=' . scalar(@items) . ', bg=' . $bg);」で確認してもらえますか。
スレッド一覧


1722● Re[20]:アイテム消失[ rien ] 2009 05/06 15:54
> 今までの話の流れからすると、このように判断したものは「if(open(FILE, '<', "$usrdir$id.dat")){〜}」の表示だと思いますがこれではなくて「push(@msg, 'items=' . scalar(@items) . ', bg=' . $bg);」で確認してもらえますか。

ありがとうございます。
追加を変えてみましたら表示が変わっていたので
いくつか追加してみたところ

>>if ($pc > 0) {
$sts = sprintf("%04d%02d%02d",$pc,$iak,$idd) . "$skill";
$newitem = "$item△$sts";$newitem .= "△$price" if $price;
push(@bag,$newitem);

}
の直後にはアイテムがあり
user_outの直前にはアイテムがなくなってる状態でした。
表示はこのようになりました。

リュートが壊れました
items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
items=0, bg=
スレッド一覧


1723● Re[21]:アイテム消失[ moon ] 2009 05/06 16:18
> >>if ($pc > 0) {
> $sts = sprintf("%04d%02d%02d",$pc,$iak,$idd) . "$skill";
> $newitem = "$item△$sts";$newitem .= "△$price" if $price;
> push(@bag,$newitem);
>
> }
> の直後にはアイテムがあり
> user_outの直前にはアイテムがなくなってる状態でした。

この間が重要なのですがどのようになりましたか?
スレッド一覧


1724● Re[22]:アイテム消失[ rien ] 2009 05/07 10:22
返事が遅れてすみません・・。
前回の範囲で細かく追加したところ
>>
if ($pc > 0) {
$sts = sprintf("%04d%02d%02d",$pc,$iak,$idd) . "$skill";
$newitem = "$item△$sts";$newitem .= "△$price" if $price;
push(@bag,$newitem);

}
        }
        push(@msg, 'items=' . scalar(@items) . ', bg=' . $bg);@
@items = @bag;&joinitem('i');

$itemchance = 0 if $#items + 1 >= $xi;
    &splititem('I');
    push(@msg, 'items=' . scalar(@items) . ', bg=' . $bg);A

で、Aの状態でアイテムがなくなっていることが分かりました。
何回も申し訳ありません。
スレッド一覧


1725● Re[23]:アイテム消失[ moon ] 2009 05/07 22:58
> 返事が遅れてすみません・・。
> 前回の範囲で細かく追加したところ
> >>
> if ($pc > 0) {
> $sts = sprintf("%04d%02d%02d",$pc,$iak,$idd) . "$skill";
> $newitem = "$item△$sts";$newitem .= "△$price" if $price;
> push(@bag,$newitem);
>
> }
>         }
>         push(@msg, 'items=' . scalar(@items) . ', bg=' . $bg);@
> @items = @bag;&joinitem('i');
>
> $itemchance = 0 if $#items + 1 >= $xi;
>     &splititem('I');
>     push(@msg, 'items=' . scalar(@items) . ', bg=' . $bg);A
>
> で、Aの状態でアイテムがなくなっていることが分かりました。
> 何回も申し訳ありません。

「push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);」でもっと細かく御願いします。(どこが原因なのかを特定するのが目的なのですから、極端ですがすべての「;」の直後にあっても良いくらいです。)
また、開始位置も最初のsplititem直前からで試してください。
スレッド一覧


1726● Re[24]:アイテム消失[ rien ] 2009 05/07 23:20
> 「push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);」でもっと細かく御願いします。(どこが原因なのかを特定するのが目的なのですから、極端ですがすべての「;」の直後にあっても良いくらいです。)
> また、開始位置も最初のsplititem直前からで試してください。

いつもありがとうございます。
最初のsplititem〜user_outの間で
;の直後に貼り付けてみると。
表示はこのようになりました。
>>
bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
リュートが壊れました
bag=0, items=0, bg=
bag=0, items=0, bg=
bag=0, items=0, bg=
bag=0, items=0, bg=
bag=0, items=0, bg=

○○が壊れました。というメッセの直後の処理で消えてるということなのでしょうか??
スレッド一覧


1727● Re[25]:アイテム消失[ moon ] 2009 05/07 23:53
> > 「push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);」でもっと細かく御願いします。(どこが原因なのかを特定するのが目的なのですから、極端ですがすべての「;」の直後にあっても良いくらいです。)
> > また、開始位置も最初のsplititem直前からで試してください。
>
> いつもありがとうございます。
> 最初のsplititem〜user_outの間で
> ;の直後に貼り付けてみると。
> 表示はこのようになりました。
> >>
> bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
> bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
> bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
> bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
> bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
> bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
> bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
> bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
> bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
> リュートが壊れました
> bag=0, items=0, bg=
> bag=0, items=0, bg=
> bag=0, items=0, bg=
> bag=0, items=0, bg=
> bag=0, items=0, bg=
>
> ○○が壊れました。というメッセの直後の処理で消えてるということなのでしょうか??

これではどの表示がどの場所に対応しているのかわからないので以前書いていたように「(番号)」などを付けて対応がわかるようにしてください。
「if ($pc > 0)」の条件を満たしていないような感じなので表示する情報を増やして(例えば「push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);」)試してみてください。
あと、「;」直後に加えて「}」直後にも御願いします。
スレッド一覧


1728● Re[26]:アイテム消失[ rien ] 2009 05/08 00:58
> 「if ($pc > 0)」の条件を満たしていないような感じなので表示する情報を増やして(例えば「push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);」)試してみてください。
> あと、「;」直後に加えて「}」直後にも御願いします。

以前の書き方だとかなり多くのスクリプトを表示しちゃうので
マズィかな・・と思ってました・・;
えっと・・;と}の直後に追加してみました。
表示がこちらで
>>
item=, sts=, pc=, bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
item=リュート, sts=00010100MiQw, pc=, bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
item=リュート, sts=00010100MiQw, pc=, bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
item=リュート, sts=00010100MiQw, pc=0001, bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
リュートが壊れました
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=3, bg=リュート△00010100MiQw,カスタムボウ△00500101BwDh,ハンドアックス△00500200AxDh
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=0, bg=
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=0, bg=
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=0, bg=
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=0, bg=
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=0, bg=
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=0, bg=
item=リュート, sts=00010100MiQw, pc=0, bag=0, items=0, bg=

fight.plの方がこちらです。
>>

    &splititem('i');
        foreach (0 .. $#items) {
$break = 0;
# push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);1
            ($item,$sts,$price) = split(/△/,$items[$_]);
            #push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
            push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);2
$iak = substr($sts,4,2); $idd = substr($sts,6,2);
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);3
$pc = substr($sts,0,4); $skill = substr($sts,8,1000);
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);4
        
            if ($result == 1 && $sts =~ /Qw/ && $sts !~ /Ie/) {$break = 1; $pc -= 1}
        push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);5
            if ($result == -1 && $sts =~ /Qs/ && $sts !~ /Qw/ && $sts !~ /Ie/){$break = 1; $pc -= 1}
         elsif ($result == -1 && $sts =~ /Qa/ && $sts !~ /Ie/) {$break = 1; $pc -= 1}
         push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);6
            if ($result == 0 && $sts =~ /Qt/ && $sts !~ /Ie/) {$break = 1; $pc -= 1}
            push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);7
            if ($break == 1 && $pc == 0) {
            
                $ab -= $iak; $db -= $idd;
                #push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
                push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);8
$sp =~ s/Qb//g if $sts =~ /Bw/;
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);9
$sp =~ s/Qk//g if $sts =~ /Kt/;
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);10
$sp =~ s/Qx//g if $sts =~ /Ax/;
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);11
$sp =~ s/Qm//g if $sts =~ /Sw/;
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);12

push (@msg,"$itemが壊れました"); &event("$nmの$itemが壊れました。"); last;
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);13
            }

if ($pc > 0) {
$sts = sprintf("%04d%02d%02d",$pc,$iak,$idd) . "$skill";
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);14
$newitem = "$item△$sts";$newitem .= "△$price" if $price;
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);15
push(@bag,$newitem);
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);16

}
        }
        push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);17
        
@items = @bag;&joinitem('i');
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);18
$itemchance = 0 if $#items + 1 >= $xi;
    &splititem('I');
    
    #push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
    push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);19
    if ($itemchance && $pitems[$Sidice]) {
        &splititem('i');
        #push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
        push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);20

        ($item,$sts,$price) = split(/△/,$pitems[$Sidice]);
        #push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
        push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);21
if ($sts !~ /Ns/) {
        if ($sts =~ s/Q[swat]//g) { $pab -= substr($sts,4,2); $pdb -= substr($sts,6,2) }
        push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);22
        splice(@pitems,$Sidice,1); push(@items,"$item△$sts");
        #push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
        push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);23
        &joinitem('iI'); &fmsg('奪');
        #push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
        push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);24
if ($nm eq $Wn) {&event("$Wnが$Lnの$itemを奪いました。")}
else        {&event("$Wnが$Lnの$itemを奪いました。")}
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);25

}
    }
    push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);26
# を
$bp = $bn = $pbp = $pbn = '';
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);27
#$plftm = time + $btllmt * 3600;
#push (@newplfs,"$id△$nm△$plftm");
$time_now = time; $plf = "$id△$time_now";#$plf = $id; #join(',',@newplfs);
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);28

if($sp =~ /Ts/ && $av eq 'dead'){$av='alive';$hp=5;
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);29
push (@msg,"$nmは、神の恵みにより生き返った。");$plf = $pid;}
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);30
$dap -=$Ap_fight;
#push(@msg, 'bag=' . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);
push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);31
    &userout;

多くのスクリプトを表示させるのが
ダメでしたら削除をお願いします。
いろいろ追加していて見づらくてすみません・・。
この表示方法でよかったのでしょうか・・。
スレッド一覧


1729● Re[27]:アイテム消失[ moon ] 2009 05/08 08:15
> > 「if ($pc > 0)」の条件を満たしていないような感じなので表示する情報を増やして(例えば「push(@msg, "item=$item, sts=$sts, pc=$pc, bag=" . scalar(@bag) . ', items=' . scalar(@items) . ', bg=' . $bg);」)試してみてください。
> > あと、「;」直後に加えて「}」直後にも御願いします。
>
> 以前の書き方だとかなり多くのスクリプトを表示しちゃうので
> マズィかな・・と思ってました・・;
> えっと・・;と}の直後に追加してみました。
> 表示がこちらで
> >>
省略...
> 多くのスクリプトを表示させるのが
> ダメでしたら削除をお願いします。
> いろいろ追加していて見づらくてすみません・・。
> この表示方法でよかったのでしょうか・・。

> これではどの表示がどの場所に対応しているのかわからないので以前書いていたように「(番号)」などを付けて対応がわかるようにしてください。
これなのですが、push(@msg, "(1) 〜");やpush(@msg, "(2) 〜");のように表示とコード位置の対応が付けられるようにして欲しかったのですが・・・。

ソースコードが載せられたので見てみたのですがlastが余計です。
このlastがあるために破壊したアイテム以降が所持品に戻らなくなっています。
スレッド一覧


1730● Re[28]:アイテム消失[ rien ] 2009 05/08 10:56
> これなのですが、push(@msg, "(1) 〜");やpush(@msg, "(2) 〜");のように表示とコード位置の対応が付けられるようにして欲しかったのですが・・・。

ぁぁ・・すみません・・。
そうすればよかったですね・・。
勉強になりました。
>
> ソースコードが載せられたので見てみたのですがlastが余計です。
> このlastがあるために破壊したアイテム以降が所持品に戻らなくなっています。

あれ・・気づいていませんでした・・。
いつ付け足したのだろう。
すみません、ありがとうございます!
アイテム表示が直りました。
いつもお手数おかけして申し訳ございません・・。
スレッド一覧

CGIROOM