私設SoS2オーナー応援BBS

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

スレッド

└◇263:
Re:バグ [moon] 01/13 19:15

 └◇264:Re[2]:バグ [masaki] 01/13 21:37
  └◇265:Re[3]:バグ [moon] 01/13 22:46
   └◇266:Re[4]:バグ [masaki] 01/14 18:33
    └◇267:Re[5]:バグ [moon] 01/14 21:16
     └◇268:Re[6]:バグ [masaki] 01/15 21:22
      └◇269:Re[7]:バグ [moon] 01/15 22:25
       └◇270:Re[8]:バグ [masaki] 01/17 20:06
        └◇271:Re[9]:バグ [moon] 01/18 15:09
         └◇272:さらに以前の修正 [moon] 01/18 16:34<-last


263● Re:バグ[ moon ] 2003 01/13 19:15
> バグについて質問です。
> 僕のsosで、殺害しても殺害数が増えないというバグが起こったのですが、どこが原因でしょうか?
> まったく見当もつきません(;;
> すみません。教えて頂けないでしょうか?

確認箇所
・($php,$pav,$pdt,$prw,$hp,$av,$dt) = &fight_sub(〜);
・($hp,$av,$dt,$rw,$php,$pav,$pdt) = &fight_sub(〜);
・($Wn,$Wh,$Ws,$Ww,$Wb,$Wa,$Wv,$Wt,$Wm,$Ln,$Lh,$Ls,$Lb,$Lv,$Lt,$Lr,$Lm) = @_;
・if ($Lh <= 0){〜}
・if ($DIE) { $Lv = 'dead'; $Lt++; $Lh = 0 }
・if ($DIE && !$Dtdice && $Ls =~ /Dt/){〜}
・return ($Lh,$Lv,$Lt,$Lr,$Wh,$Wv,$Wt);
とりあえず、これをオリジナル(出来るだけ最新版)と比べてください。
スレッド一覧


264● Re[2]:バグ[ masaki ] 2003 01/13 21:37
全部比べて、修正しましたがやはり殺害数が増えません(;;
スレッド一覧


265● Re[3]:バグ[ moon ] 2003 01/13 22:46
> 全部比べて、修正しましたがやはり殺害数が増えません(;;

問題箇所の特定のために、以下の事をしてみてください。
・if ($DIE) { $Lv = 'dead'; $Lt++; $Lh = 0 }の前後両方に、push(@msg,"\$Lt : $Lt");を追加。
これが正常に動作(1番目の数字が敗者の元の死亡数であり、2番目の数字が1番目の数字+1)するのであればその後の処理のどこかにバグがあるということで、これが正常に動作しないのであればこのあたりもしくはこれ以前にバグがあるということです。
あと、挑戦者側なのか挑戦された側、あるいは両方のときに死亡数が増えないということも書いてもらえると問題の切り分け材料になるかもしれません。
スレッド一覧


266● Re[4]:バグ[ masaki ] 2003 01/14 18:33
殺害すると
「体力が0になり、○○は死亡しました
$Lt : 0
$Lt : 1
[0000] 相手にメッセージを残すことができます」
と表示されますが、殺害数は増えませんでした。
返り討ちにしたときも殺害したときも殺害数はふえません。
(死亡数は変わりますが)
となるとこの辺がおかしいのでしょうか?
push(@msg,"\$Lt : $Lt");
if ($DIE) { $Lv = 'dead'; $Lt++; $Lh = 0 }
push(@msg,"\$Lt : $Lt");
if ($DIE && !$Dtdice && $Ls =~ /Dt/)
{ &fmsg('道'); $Wv = 'dead'; $Wt++; $Wh = 0 }
    if ($DIE && $Lr >= $def_rp) { &fmsg('褒'); $Wm = $Lr; $Lr = 0 }
    return ($Lh,$Lv,$Lt,$Lr,$Wh,$Wv,$Wt);
宜しくお願いします。。
スレッド一覧


267● Re[5]:バグ[ moon ] 2003 01/14 21:16
> 殺害すると
> 「体力が0になり、○○は死亡しました
> $Lt : 0
> $Lt : 1

いや、殺害されたほうの元の死亡数が0でテストされても困るのですが・・・。(元が0でない場合に0、1となれば変だと分かるので)
まあ、それでもこのあたりは正常に動作しているようなので次は、
・($php,$pav,$pdt,$prw,$hp,$av,$dt) = &fight_sub(〜);の前後に、push(@msg,"\$pdt : $pdt<br>");
・($hp,$av,$dt,$rw,$php,$pav,$pdt) = &fight_sub(〜);の前後に、push(@msg,"\$dt : $dt<br>");
・($Wn,$Wh,$Ws,$Ww,$Wb,$Wa,$Wv,$Wt,$Wm,$Ln,$Lh,$Ls,$Lb,$Lv,$Lt,$Lr,$Lm) = @_;の下に、push(@msg,"\$Lt : $Lt<br>");
・return ($Lh,$Lv,$Lt,$Lr,$Wh,$Wv,$Wt);の上に、push(@msg,"\$Lt : $Lt<br>");
として、初期値が5なら、5、5、6、6の順で表示されるか確かめてみてください。(これも初期値が0以外のほうが良い)
スレッド一覧


268● Re[6]:バグ[ masaki ] 2003 01/15 21:22
やってみました。
$Lt : 2
$Lt : 3
$Lt : 3
$pdt : 3
と表示されました。初期値は2です。
ちょっと違いますね(^^;
スレッド一覧


269● Re[7]:バグ[ moon ] 2003 01/15 22:25
> やってみました。
> $Lt : 2
> $Lt : 3
> $Lt : 3
> $pdt : 3
> と表示されました。初期値は2です。
> ちょっと違いますね(^^;

たぶん「前後」と書いた部分の「前」部分が追加されていないのだろうと思いますがこれでも良いです。
これまでで&fight_subまでの正常さが確認されたことになります。
今度は、その後から&userout;までのところどころにpush(@msg,"〜:\$dt:$dt \$pdt:$pdt<br>");を追加してみてテスト。('〜'にはどこのpushなのかが分かるような文章)

# 確認ばかりしていますがどこが間違っているか自体が分からない場合のデバッグとはこういうものです。
# コツが分かってもらえたかな?
スレッド一覧


270● Re[8]:バグ[ masaki ] 2003 01/17 20:06
わかりました〜。
ありがとうございました〜(^^
お騒がせしましたm(。。)m
スレッド一覧


271● Re[9]:バグ[ moon ] 2003 01/18 15:09
> わかりました〜。
> ありがとうございました〜(^^
> お騒がせしましたm(。。)m

あ、今更ながら根本的な勘違いに気付いてしまいしました・・・。
今まで確認してきたのは全て死亡数についてです。
殺害数は$klまたは$pklで、増加処理は一行にまとまっています。

申し訳ない。
スレッド一覧


272● さらに以前の修正[ moon ] 2003 01/18 16:34
以前、command.comに読み取り専用属性などがないと書きましたが、実際は読み取り専用、隠しファイル、システム属性が付いていました。
なので、ファイルがないというのはたぶん違うと思います。(表示されていないだけの可能性大)

# 風邪で寝込んでいると無駄っぽいことに気が回るな・・・。(笑)
スレッド一覧

CGIROOM