「bar.cgi」の編集履歴(バックアップ)一覧はこちら
「bar.cgi」(2010/09/23 (木) 12:51:00) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
<p>酒場関連</p>
<p><br />
# Sub Bar #<br />
sub bar_meet {<br />
if ($F{'ad'}) { &ad_dis; return }<br />
&get_all_users;<br /><font color="#339966">全員のデータ読み込み</font><br />
&form_table('up','100%',1);<br />
&reload;<br />
print qq|酒場 |;<br />
&submit_button;<br />
print qq|</td></tr><tr><td align=left>\n|;<br />
$p_sail = int($pay * (100 - &level($pexp*(1 + $t_item*0.01))
)/100);<br /><font color="#339966">水夫の代金計算式</font><br />
print <<BAR;<br />
<input type=radio name=goods value="1" checked>水夫雇用(一人当たり$p_sail
G)<br><br />
<input type=radio name=goods value="2">水夫解雇<br><br />
<input type=radio name=goods value="3">食料購入:$f_price G<br><br />
<input type=radio name=goods value="4">食料破棄<br><br />
<div align=right>取り扱い数:<input type=text name=quan
size=10></div><br />
<input type=hidden name=mode value="bar_trade"><br />
BAR<br />
&id_ps;<br />
&form_table('down');<br />
&form_table('up','100%',1);<br />
&reload;<br />
print qq|冒険情報を聞く |;<br />
&submit_button;<br />
print qq|<input type=hidden name=mode value="play">\n|;<br />
print qq|<input type=hidden name=ad value="1">\n|;<br />
&id_ps;<br />
&form_table('down');<br />
print qq|<table width="100%" bgcolor=$t_bgcol border="1"
bordercolor=$bdcol cellspacing=0><tr><td align=center>\n|;<br />
print qq|来店者</td></tr><tr><td align=center>\n|;<br />
foreach (@alllines) {<br />
($uid,$uname,$usex,$uarea,$uport,$upoint,$ufriend_line) =
(split(/<>/))[0,1,3,15,16,17,22];<br />
if ($uport == $port && $upoint == 4 && $uid != $id)
{<br />
if ( $friend_line !~ /$uid/ ) {<br />
if (!$friend_line) { $friend_line = "$uid,$uname" }<br />
else { $friend_line .= "△$uid,$uname" }<br /><font color="#339966">宛先に対象IDが無かった場合、宛先が偽だったら対象ID,名前を格納。宛先が既にあったら△対象ID、名前を追加で格納。</font><br />
}<br />
if ( $ufriend_line !~ /$id/ ) {<br />
&get_u($uid);<br />
if (!$ufriend_line) { $ufriend_line = "$id,$name" }<br />
else { $ufriend_line .= "△$id,$name" }<br />
&set_u;<br /><font color="#339966">宛先が偽だったらID,名前を格納。宛先が既にあったら△ID、名前を追加で格納。<br />
</font> }<br />
$sex_img = $usex ? $wmn_img : $man_img;<br />
$on_click = qq|onClick="return
opWin('$listcgi?mode=uprofile&uid=$uid','win6')"|;<br />
print qq|<img src="$img/$sex_img"><a
href="$listcgi?mode=uprofile&uid=$uid" $on_click
target=_blank>$uname</a><br>\n|;<br />
}<br />
}<br />
if (!$sex_img) { print qq|誰もいません| }<br />
print qq|</td></tr></table>\n|;<br />
}<br /><br />
# Sub Adventure Display #<br />
sub ad_dis {<br />
my $AdFile = new Nfile("$datadir/$adfiles",'read');<br />
my @adfline = $AdFile->read;<br /><font color="#339966">冒険情報の読み込み</font><br />
&form_table('up','100%',1);<br />
&reload;<br />
print qq|冒険情報 |;<br />
&submit_button;<br />
print qq|</td></tr><tr><td align=left>\n|;<br />
foreach (0 .. $#adfline) {<br />
($harea,$hport,$price,$file)<br />
= split(/<>/,$adfline[$_]);<br />
if ($harea =~ /$area/ || $hport =~ /$port/) {<br /><font color="#339966">エリアか港が一致した場合</font><br />
$checked = !$first ? ' checked' : '';<br />
$first = 1;<br />
print qq|<input type=radio name=goods
value="$_"$checked>$price G<br>|;<br />
}<br />
}<br />
print qq|情報がありません| if !$first;<br />
print qq|<input type=hidden name=mode value="adven">\n|;<br />
print qq|<input type=hidden name=check value="$first">\n|;<br />
&id_ps;<br />
&form_table('down');<br />
}<br /><br /><br />
# Sub Bar Trade #<br />
sub bar_trade {<br />
&get_me($F{'id'});<br />
if ($action ne $F{'reload'}) { &play; exit }<br />
if ($F{'quan'} =~ /[^0-9]/) { &play("数の入力が不正です");exit }<br />
$F{'quan'} = int($F{'quan'});<br />
if ( $F{'goods'} == 1 ) {<br />
$price = int($pay * (100 - &level($pexp*(1 +
$t_item*0.01)))/100);<br />
&trade_check;<br />
$action = '';<br />
$sailor += $F{'quan'};<br />
$money -= $price * $F{'quan'};<br />
&msg("水夫を$F{'quan'}人 雇いました");<br />
&add_record("水夫を @$priceで $F{'quan'}人 雇用");<br />
&play; return;<br />
} elsif ( $F{'goods'} == 3 ) {<br />
$price = $f_price;<br />
&trade_check;<br />
$action = '';<br />
$food += $F{'quan'};<br />
$money -= $f_price * $F{'quan'};<br />
&msg("食料を$F{'quan'} 購入しました");<br />
&add_record("食料を @$priceで $F{'quan'}個 購入");<br />
&play; reurtn;<br />
} elsif ( $F{'goods'} == 2 ) {<br />
&sell_check;<br />
$action = '';<br />
$sailor -= $F{'quan'};<br />
if ($sailor < 0 ) { $sailor = 0; $F{'quan'} = '全員'; }<br />
&msg("水夫を$F{'quan'} 解雇しました");<br />
&add_record("水夫を $F{'quan'}人 解雇");<br />
&play; return;<br />
} elsif ( $F{'goods'} == 4 ) {<br />
&sell_check;<br />
$action = '';<br />
$food -= $F{'quan'};<br />
if ($food < 0 ) { $food = 0; $F{'quan'} = '全て'; }<br />
&msg("食料を$F{'quan'} 破棄しました");<br />
&add_record("食料を $F{'quan'}個 破棄");<br />
&play; return;<br />
}<br />
}<br /><font color="#339966">水夫と食料の処理</font><br /><br />
# Sub Adven #<br />
sub adven {<br />
&get_me($F{'id'});<br />
if (($action ne $F{'reload'}) || !$F{'check'}) { &play; exit }<br />
my $AdFile = new Nfile("$datadir/$adfiles",'read');<br />
my @adfline = $AdFile->read;<br />
($harea,$hport,$price,$file,$fguide) =
split(/<>/,$adfline[$F{'goods'}]);<br />
if ($money < $price) { &play("お金が足りません"); exit }<br />
$money -= $price;<br />
$quest_flag = $file;<br /><font color="#339966">ファイル名を$quest_flagに格納</font><br />
my $QFile = new Nfile("$datadir/$file",'read');<br />
($quest_line) = $QFile->read;<br />
chomp($quest_line);<br />
$quest_line .= ",0";<br /><font color="#339966">該当ファイルを読み込み格納し、末尾の改行文字を削除し、,0を追記</font><br />
&msg("冒険情報を買いました<br>$fguide");<br />
&add_record("$fguide");<br />
&play<br />
}<br /><br />
1;</p>