私設SoS2オーナー応援BBS

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

スレッド

└◇332:
追加 [moon] 02/04 09:06


332● 追加[ moon ] 2003 02/04 09:06
(1)
        if (@npclines) {
            $npcrand = int(rand($npccount));
            @prclines = &get_partner("$vid[$npcrand]");
            push (@msg,"『$pnm』が現れた!!"); &partnerout;
            $NPCFlag = 1; &userout; return;
        }
    }

(2)
sub contact_npc {
    @rcdlines = &get_user("$Fm{'id'}");
    print qq|<tr><td valign=top>\n|;
    &partner_data;
    &form('start');
    if ($psp =~ /Tv/) {
        &input('radio','mode','npcbuy',' checked',"買う<br>\n");
        &input('radio','mode','goodbye','',"別れる\n");
    }
    &NOKbuttoninform("$vid[$npcrand]");
    &form('end');
    print qq|</td>|;
}

思い当たることがあるのですが、(1)と(2)の$npcrandは同一ですか?
つまり、(1)と(2)が別サブルーチンであり、(1)の$npcrandがmyとかlocalになっていて、(2)との繋がりがないのではないか?ということです。
この場合、(1)では正常にget_partnerされているので正しい相手が表示されますが、(2)では&NOKbuttoninform("$vid[$npcrand]");の$nccrandが0と判定され先頭のIDが入ることになります。
ただし、この場合はbuy_beforeの実行後も相手が違うということになりますが。

症状とは一致しないので違うかな?
スレッド一覧

CGIROOM