私設SoS2オーナー応援BBS

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

No.325  ランダム
発言者: ナム〜ン
発言日: 2003 01/31 16:45
キャラクターのデータをランダムに呼び出し、
戦う、物を買うということを今、やってるのですが
物を買うというところでどうしても躓いてしまいます。

今現在、頭がこんがらかってて何をかいていいかわからないので
とりあえず命令文を書いてみます。

まず
    elsif ($wana <= $def_npc) {
        require 'trap.pl'; &creatnpcs;
   ・
   ・
   ・Aへ


sub creatnpcs {
    &get_file; &list_in;
    foreach $line (@lstlines) {
        ($vid,・・・,$others) = split(/<>/,$line);
        push(@npclines,$line);
    }
    if (@npclines) {
        $npccount = $#npclines + 1;
        foreach (0 .. $#npclines) {
        ($vid[$_],$others) = split(/<>/,$npclines[$_]);
        }
    }
    return($npccount)
}
というのがでてきて上の実行文の続きが行われます。
   ・A
   ・
   ・
        if (@npclines) {
            $npcrand = int(rand($npccount));
            @prclines = &get_partner("$vid[$npcrand]");
            push (@msg,"『$pnm』が現れた!!"); &partnerout;
            $NPCFlag = 1; &userout; return;
        }
    }
そして$NPCFlag = 1;であるとパートナーがでてきます。内容は
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>|;
}
となります。
ちなみに&NOKbuttoninformとは&OKbuttoninformの
sub NOKbuttoninform {
    print qq|<input type=hidden name=pd value="$Fm{'pd'}">\n|;

    print qq|<input type=hidden name=pd value="$_[0]">\n|;
となっています。

そしてここから問題なのですが
物を買うという動作に
# Sub Buy Before #と# Sub Buy After #とありますが
# Sub Buy Before #まではきちんとキャラデータが呼び出されているのですが
# Sub Buy After #を実行するとキャラデータがIDの一番若いデータに
入れ代わってしまいます。
どうしたらいいのでしょうか?

かなり長くなりましたがご教授の方よろしくお願いします。

▼関連発言

325:ランダム [ナム〜ン] 01/31 16:45
 └327:Re:ランダム [moon] 01/31 20:02
  └328:Re[2]:ランダム [ナム〜ン] 02/03 16:57
   └330:Re[3]:ランダム [ナム〜ン] 02/03 17:06
    └331:Re[4]:ランダム [moon] 02/03 19:07
     ├332:追加 [moon] 02/04 09:06
     └333:Re[5]:ランダム [ナム〜ン] 02/04 09:32
      └334:原因解明! [ナム〜ン] 02/04 14:30
       └335:Re:原因解明! [moon] 02/04 19:33<-last

Pass 保存


CGIROOM