▼スレッド
│
└◇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
> 今までの話の流れからすると、このように判断したものは「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=
> >>if ($pc > 0) {スレッド一覧
> $sts = sprintf("%04d%02d%02d",$pc,$iak,$idd) . "$skill";
> $newitem = "$item△$sts";$newitem .= "△$price" if $price;
> push(@bag,$newitem);
>
> }
> の直後にはアイテムがあり
> user_outの直前にはアイテムがなくなってる状態でした。
この間が重要なのですがどのようになりましたか?
返事が遅れてすみません・・。スレッド一覧
前回の範囲で細かく追加したところ
>>
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の状態でアイテムがなくなっていることが分かりました。
何回も申し訳ありません。
> 返事が遅れてすみません・・。スレッド一覧
> 前回の範囲で細かく追加したところ
> >>
> 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直前からで試してください。
> 「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=
○○が壊れました。というメッセの直後の処理で消えてるということなのでしょうか??
> > 「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);」)試してみてください。
あと、「;」直後に加えて「}」直後にも御願いします。
> 「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;
多くのスクリプトを表示させるのが
ダメでしたら削除をお願いします。
いろいろ追加していて見づらくてすみません・・。
この表示方法でよかったのでしょうか・・。
> > 「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があるために破壊したアイテム以降が所持品に戻らなくなっています。
> これなのですが、push(@msg, "(1) 〜");やpush(@msg, "(2) 〜");のように表示とコード位置の対応が付けられるようにして欲しかったのですが・・・。スレッド一覧
ぁぁ・・すみません・・。
そうすればよかったですね・・。
勉強になりました。
>
> ソースコードが載せられたので見てみたのですがlastが余計です。
> このlastがあるために破壊したアイテム以降が所持品に戻らなくなっています。
あれ・・気づいていませんでした・・。
いつ付け足したのだろう。
すみません、ありがとうございます!
アイテム表示が直りました。
いつもお手数おかけして申し訳ございません・・。