私設SoS2オーナー応援BBS

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

スレッド

└◇333:
Re[5]:ランダム [ナム〜ン] 02/04 09:32

 └◇334:原因解明! [ナム〜ン] 02/04 14:30
  └◇335:Re:原因解明! [moon] 02/04 19:33<-last


333● Re[5]:ランダム[ ナム〜ン ] 2003 02/04 09:32
一番上にも書いていますがまず
    elsif ($wana <= $def_npc) {
        require 'trap.pl'; &creatnpcs;
   ・
   ・
   ・Aへ
によりtrap.pl内の&creatnpcsが呼び出されます。

そして
sub creatnpcs {
    &get_file; &list_in;
    foreach $line (@lstlines) {
        ($vid,・・・,$others) = split(/<>/,$line);
        push(@npclines,$line);
    }
ここでまずキャラデータを一通り認識して実際はnextを使っているので
該当しないキャラデータは飛ばします。

次に
    if (@npclines) {
        $npccount = $#npclines + 1;
        foreach (0 .. $#npclines) {
        ($vid[$_],$others) = split(/<>/,$npclines[$_]);
        }
    }
    return($npccount)
}
$vid[$_]とはキャラクターのIDです。
これが$Fm{'pd'}の変わりです。

    ・A
   ・
   ・
 if (@npclines) {
  $npcrand = int(rand($npccount));
  @prclines = &get_partner("$vid[$npcrand]");
   push (@msg,"『$pnm』が現れた!!");
   $NPCFlag = 1; &userout; last; return;
 }
}

となりキャラクターが呼び出されます。
ここまでは問題なくID0000だろうが、0005だろうがNNNNだろうが
呼び出されます。
問題はこのあとのbuy_beforeとbuy_afterの
@prclines = &get_partner("$vid[$npcrand]");という
呼び出し方がいまいち・・・。
("この中")を$Fm{'pd'}にしようが$vid[$npcrand]しようが
呼び出してくれないのです。
ここがどうにかなればできると思うのですが・・・。

あとpartneroutの意味わかりました・・・。たしかに意味が・・・。
スレッド一覧


334● 原因解明![ ナム〜ン ] 2003 02/04 14:30
まず初めに# Sub Contact Check #の流れを一度見直して
データを一から作り直しました。
ちなみに$vid[$npcrand]の$npcrandは途中から
数字さえ呼び込まなくなってたみたいです。

そして極めつけが・・・。
スイマセン・・・。テスト用キャラデータがバグってました・・・。
エラーが出るはずだ・・・。お手数をおかけしました。
またなにかあった際はよろしくお願いします。
スレッド一覧


335● Re:原因解明![ moon ] 2003 02/04 19:33
> まず初めに# Sub Contact Check #の流れを一度見直して
> データを一から作り直しました。
> ちなみに$vid[$npcrand]の$npcrandは途中から
> 数字さえ呼び込まなくなってたみたいです。
>
> そして極めつけが・・・。
> スイマセン・・・。テスト用キャラデータがバグってました・・・。
> エラーが出るはずだ・・・。お手数をおかけしました。
> またなにかあった際はよろしくお願いします。

まさに、思わぬところに落とし穴ですね。(笑)
スレッド一覧

CGIROOM