bar.cgi


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

酒場関連


# Sub Bar #
sub bar_meet {
    if ($F{'ad'}) { &ad_dis; return }
    &get_all_users;
全員のデータ読み込み
    &form_table('up','100%',1);
    &reload;
    print qq|酒場  |;
    &submit_button;
    print qq|</td></tr><tr><td align=left>\n|;
    $p_sail = int($pay * (100 - &level($pexp*(1 + $t_item*0.01)) )/100);
水夫の代金計算式
print <<BAR;
    <input type=radio name=goods value="1" checked>水夫雇用(一人当たり$p_sail G)<br>
    <input type=radio name=goods value="2">水夫解雇<br>
    <input type=radio name=goods value="3">食料購入:$f_price G<br>
    <input type=radio name=goods value="4">食料破棄<br>
    <div align=right>取り扱い数:<input type=text name=quan size=10></div>
    <input type=hidden name=mode value="bar_trade">
BAR
    &id_ps;
    &form_table('down');
    &form_table('up','100%',1);
    &reload;
    print qq|冒険情報を聞く  |;
    &submit_button;
    print qq|<input type=hidden name=mode value="play">\n|;
    print qq|<input type=hidden name=ad value="1">\n|;
    &id_ps;
    &form_table('down');
    print qq|<table width="100%" bgcolor=$t_bgcol border="1" bordercolor=$bdcol cellspacing=0><tr><td align=center>\n|;
    print qq|来店者</td></tr><tr><td align=center>\n|;
    foreach (@alllines) {
        ($uid,$uname,$usex,$uarea,$uport,$upoint,$ufriend_line) = (split(/<>/))[0,1,3,15,16,17,22];
        if ($uport == $port && $upoint == 4 && $uid != $id) {
            if ( $friend_line !~ /$uid/ ) {
                if (!$friend_line) { $friend_line = "$uid,$uname" }
                else { $friend_line .= "△$uid,$uname" }
宛先に対象IDが無かった場合、宛先が偽だったら対象ID,名前を格納。宛先が既にあったら△対象ID、名前を追加で格納。
            }
            if ( $ufriend_line !~ /$id/ ) {
                &get_u($uid);
                if (!$ufriend_line) { $ufriend_line = "$id,$name" }
                else { $ufriend_line .= "△$id,$name" }
                &set_u;
宛先が偽だったらID,名前を格納。宛先が既にあったら△ID、名前を追加で格納。
  
          }
            $sex_img = $usex ? $wmn_img : $man_img;
            $on_click = qq|onClick="return opWin('$listcgi?mode=uprofile&uid=$uid','win6')"|;
            print qq|<img src="$img/$sex_img"><a href="$listcgi?mode=uprofile&uid=$uid" $on_click target=_blank>$uname</a><br>\n|;
        }
    }
    if (!$sex_img) { print qq|誰もいません| }
    print qq|</td></tr></table>\n|;
}

# Sub Adventure Display #
sub ad_dis {
    my $AdFile = new Nfile("$datadir/$adfiles",'read');
    my @adfline = $AdFile->read;
冒険情報の読み込み
    &form_table('up','100%',1);
    &reload;
    print qq|冒険情報  |;
    &submit_button;
    print qq|</td></tr><tr><td align=left>\n|;
    foreach (0 .. $#adfline) {
        ($harea,$hport,$price,$file)
        = split(/<>/,$adfline[$_]);
        if ($harea =~ /$area/ || $hport =~ /$port/) {
エリアか港が一致した場合
            $checked = !$first ? ' checked' : '';
            $first = 1;
            print qq|<input type=radio name=goods value="$_"$checked>$price G<br>|;
        }
    }
    print qq|情報がありません| if !$first;
    print qq|<input type=hidden name=mode value="adven">\n|;
    print qq|<input type=hidden name=check value="$first">\n|;
    &id_ps;
    &form_table('down');
}


# Sub Bar Trade #
sub bar_trade {
    &get_me($F{'id'});
    if ($action ne $F{'reload'}) { &play; exit }
    if ($F{'quan'} =~ /[^0-9]/) { &play("数の入力が不正です");exit }
    $F{'quan'} = int($F{'quan'});
    if ( $F{'goods'} == 1 ) {
        $price = int($pay * (100 - &level($pexp*(1 + $t_item*0.01)))/100);
        &trade_check;
        $action = '';
        $sailor += $F{'quan'};
        $money -= $price * $F{'quan'};
        &msg("水夫を$F{'quan'}人 雇いました");
        &add_record("水夫を @$priceで $F{'quan'}人 雇用");
        &play; return;
    } elsif ( $F{'goods'} == 3 ) {
        $price = $f_price;
        &trade_check;
        $action = '';
        $food += $F{'quan'};
        $money -= $f_price * $F{'quan'};
        &msg("食料を$F{'quan'} 購入しました");
        &add_record("食料を @$priceで $F{'quan'}個 購入");
        &play; reurtn;
    } elsif ( $F{'goods'} == 2 ) {
        &sell_check;
        $action = '';
        $sailor -= $F{'quan'};
        if ($sailor < 0 ) { $sailor = 0; $F{'quan'} = '全員'; }
        &msg("水夫を$F{'quan'} 解雇しました");
        &add_record("水夫を $F{'quan'}人 解雇");
        &play; return;
    } elsif ( $F{'goods'} == 4 ) {
        &sell_check;
        $action = '';
        $food -= $F{'quan'};
        if ($food < 0 ) { $food = 0; $F{'quan'} = '全て'; }
        &msg("食料を$F{'quan'} 破棄しました");
        &add_record("食料を $F{'quan'}個 破棄");
        &play; return;
    }
}
水夫と食料の処理

# Sub Adven #
sub adven {
    &get_me($F{'id'});
    if (($action ne $F{'reload'}) || !$F{'check'}) { &play; exit }
    my $AdFile = new Nfile("$datadir/$adfiles",'read');
    my @adfline = $AdFile->read;
    ($harea,$hport,$price,$file,$fguide) = split(/<>/,$adfline[$F{'goods'}]);
    if ($money < $price) { &play("お金が足りません"); exit }
    $money -= $price;
    $quest_flag = $file;
ファイル名を$quest_flagに格納
    my $QFile = new Nfile("$datadir/$file",'read');
    ($quest_line) = $QFile->read;
    chomp($quest_line);
    $quest_line .= ",0";
該当ファイルを読み込み格納し、末尾の改行文字を削除し、,0を追記
    &msg("冒険情報を買いました<br>$fguide");
    &add_record("$fguide");
    &play
}

1;

ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。