酒場関連
# 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;