yard.cgi

「yard.cgi」の編集履歴(バックアップ)一覧はこちら

yard.cgi」(2010/09/20 (月) 23:30:53) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

<p>造船所関連</p> <p> </p> <p># Sub Shipyard #<br /> sub shipyard {<br />     if ($F{'yard'} == 1) { &amp;yard_buy; return }<br />     if ($F{'yard'} == 2) { &amp;yard_sell; return }<br />     if ($F{'yard'} == 3) { &amp;yard_rep; return }<br /> print &lt;&lt;YARD;<br /> 造船所&lt;br&gt;&lt;form method=$method action=$seacgi&gt;<br /> &lt;input type=hidden name=id value="$F{'id'}"&gt;<br /> &lt;input type=hidden name=ps value="$F{'ps'}"&gt;<br /> &lt;input type=hidden name=mode value="play"&gt;<br /> &lt;input type=hidden name=yard value="1"&gt;<br /> &lt;input type=submit value="購入" class=button&gt;<br /> &lt;/form&gt;&lt;form method=$method action=$seacgi&gt;<br /> &lt;input type=hidden name=id value="$F{'id'}"&gt;<br /> &lt;input type=hidden name=ps value="$F{'ps'}"&gt;<br /> &lt;input type=hidden name=mode value="play"&gt;<br /> &lt;input type=hidden name=yard value="2"&gt;<br /> &lt;input type=submit value="売却" class=button&gt;<br /> &lt;/form&gt;&lt;form method=$method action=$seacgi&gt;<br /> &lt;input type=hidden name=id value="$F{'id'}"&gt;<br /> &lt;input type=hidden name=ps value="$F{'ps'}"&gt;<br /> &lt;input type=hidden name=mode value="play"&gt;<br /> &lt;input type=hidden name=yard value="3"&gt;<br /> &lt;input type=submit value="修理" class=button&gt;&lt;/form&gt;<br /> YARD<br /> }<br /><br /><font color="#339966">valueが1なら購入へ。valueが2なら売却へ。valueが3なら修理へ。<br /> 船の改造を追加したいなら改造のsubを作りココにvalueが4なら改造へという様にすればOKです。</font><br /><br /> # Sub Buy Yard #<br /> sub yard_buy {<br />     my $YardFile = new Nfile("$datadir/$yarddat",'read');<br />     my @yardline = $YardFile-&gt;read;<br /><font color="#339966">造船所のファイルを読み込み、@yardlineに格納。</font><br />     &amp;form_table('up','100%',1);<br />     &amp;reload;<br />     print qq|造船所:購入  |;<br />     &amp;submit_button;<br />     print qq|&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=left&gt;\n|;<br />     foreach (0 .. $#yardline) {<br /><font color="#339966">@yardlineの最初から最後までforeachで処理。</font><br />         ($goods,$kind,$goods_img,$sale_area,$sale_port,$volume,$ship_hp,$knot,$price)<br />         = split(/&lt;&gt;/,$yardline[$_]);<font color="#339966"><br /> $yardline[N番目]の値を&lt;&gt;ごとに分割し各変数に格納。<br /> $goods「名前」,$kind「種類」,$goods_img「画像名」,$sale_area「販売エリア」,$sale_port「販売港」,$volume「積載」,$ship_hp「HP」,$knot「速度」,$price「価格」</font><br />             if ($sale_area =~ /$area/ || $sale_port =~ /$port/) {<br />             $checked = !$first ? ' checked' : '';<br />             $first = 1;<br />             &amp;price_up;<br /><font color="#339966">能力の価格の処理</font><br />             print qq|&lt;input type=radio name=goods value="$_"$checked&gt;|;<br />             print qq|&lt;img src="$img/$goods_img" height=15&gt;$goods:$price G&lt;br&gt;|;<br />             if ($kind == 1) {<br />                 print qq|[積載:$volume 耐久:$ship_hp 速度:$knot]&lt;br&gt;\n|;<br />             }<br />             elsif ($kind == 2) {<br />                 print qq|戦闘力+$volume&lt;br&gt;\n|;<br />             }<br />             elsif ($kind == 3) {<br />                 print qq|指揮力+$volume&lt;br&gt;\n|;<br />             }<br />             elsif ($kind == 4) {<br />                 print qq|航海力+$volume&lt;br&gt;\n|;<br />             }<br />         }<br />     }<br />     print qq|&lt;input type=hidden name=yard value="1"&gt;&lt;input type=hidden name=mode value="buy_ship"&gt;\n|;<br />     &amp;id_ps;<br />     &amp;form_table('down');<br /> }<br /><br /><br /><br /><br /> # Sub Price Up #<br /> sub price_up {<br />     if ($kind == 2 || $kind == 3 || $kind ==4) {<br />         my $rate = $atk + $cmd + $nav;<br />         $price = int($price * exp($rate * 0.03 - 3))<br />     }<br /> }<br /><font color="#339966">能力の価格処理。価格 * ((攻撃力+指揮力+航海力)*0.03-3)のべき乗</font><br /><br /> # Sub Buy Ship #<br /> sub buy_ship {<br />     &amp;get_me($F{'id'});<br />     if ($action ne $F{'reload'}) { &amp;play; exit }<br />     &amp;get_port($area,$port);<br />     &amp;ship_data;<br />     my $YardFile = new Nfile("$datadir/$yarddat",'read');<br />     my @yardline = $YardFile-&gt;read;<br />     ($goods,$kind,$goods_img,$sale_area,$sale_port,$volume,$ship_hp,$knot,$price)<br />      = split(/&lt;&gt;/, $yardline[$F{'goods'}] );<br />     if ( $sale_area !~ /$area/ &amp;&amp; $sale_port !~ /$port/ ) { &amp;play("不正です"); exit }<br />     &amp;price_up;<br />     if ( $money &lt; $price ) { &amp;play("資金が足りません"); exit }<br />     if ( $#ship_ind == 16 &amp;&amp; $kind == 1 ) { &amp;play("これ以上船は買えません"); exit}<br />     if ( $kind == 1 &amp;&amp; $#ship_ind &lt; 16 ) {<br />         push(@ship_ind , "$goods_img,$volume,$ship_hp,$knot,$goods");<br />         &amp;msg("$goodsを買いました");<br />         &amp;add_record("$goodsを $priceで 購入")<br />     }<br />     elsif ( $kind == 2 ) {<br />         if ($atk &gt;= $atk_limit) { &amp;play("これ以上は無理です"); exit }<br />         $atk += $volume;<br />         &amp;msg("武装しました");<br />         &amp;add_record("戦闘力 + $volume")<br />     }<br />     elsif ( $kind == 3 ) {<br />         if ($cmd &gt;= $cmd_limit) { &amp;play("これ以上は無理です"); exit }<br />         $cmd += $volume;<br />         &amp;msg("指揮力が高まりました");<br />         &amp;add_record("指揮力 + $volume")<br />     }<br />     elsif ( $kind == 4 ) {<br />         if ($nav &gt;= $nav_limit) { &amp;play("これ以上は無理です"); exit }<br />         $nav += $volume;<br />         &amp;msg("航海力が高まりました");<br />         &amp;add_record("航海力 + $volume")<br />     }<br />     $action = '';<br />     $money -= $price;<br />     &amp;play;<br /> }<br /><font color="#339966">購入処理</font><br /><br /> # Sub Yard Sell #<br /> sub yard_sell {<br />     if ( $#ship_ind &lt; 0) { print qq|船がありません|; &amp;return_button; return }<br />     my $YardFile = new Nfile("$datadir/$yarddat",'read');<br />     my @yardline = $YardFile-&gt;read;<br />     &amp;form_table('up','100%',1);<br />     &amp;reload;<br />     print qq|造船所:売却  |;<br />     &amp;submit_button;<br />     print qq|&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=left&gt;\n|;<br />     for ($i = 0; $i &lt;= $#ship_ind; $i++) {<br />         ($price) = map{ (split(/&lt;&gt;/))[8] } grep {$ship[$i][4] eq (split(/&lt;&gt;/,$_))[0]} @yardline;<font color="#339966"><br /> @yardlineのN番目の9番目の値「価格」を分割抽出し、プレーヤーのN番目の船の名前と一致した船の名前の価格を$priceに格納。</font><br />         $price = int($price / 2);<br />         $checked = $i == 0 ? ' checked' : '';<br />         print qq|&lt;input type=radio name=goods value="$i"$checked&gt;|;<br />         print qq|$ship[$i][4]:$price G&lt;br&gt;\n|;<br />         print qq|[積載:$ship[$i][1] 耐久:$ship[$i][2] 速度:$ship[$i][3]]&lt;br&gt;|;<br />     }<br />     print qq|&lt;input type=hidden name=yard value="2"&gt;&lt;input type=hidden name=mode value="sell_ship"&gt;\n|;<br />     &amp;id_ps;<br />     &amp;form_table('down');<br /> }<br /><br /> # Sub Sell Ship #<br /> sub sell_ship {<br />     &amp;get_me($F{'id'});<br />     if ($action ne $F{'reload'}) { &amp;play; exit }<br />     &amp;ship_data;<br />     &amp;fleet;<br />     &amp;load_data;<br />     if ( ($total - $total_load - $food - $sailor - $ship[$F{'goods'}][1]) &lt; 0 ) {<br />         &amp;play("残積荷が足りません");<br />         return<br />     }<br />     $action = '';<br />     my $YardFile = new Nfile("$datadir/$yarddat",'read');<br />     my @yardline = $YardFile-&gt;read;<br />     ($price) = map{ (split(/&lt;&gt;/))[8] } grep {$ship[$F{'goods'}][4] eq (split(/&lt;&gt;/,$_))[0]} @yardline;<br />     splice(@ship_ind , $F{'goods'} ,1);<br />     my $upmoney = int($price / 2);<br />     $money += $upmoney;<br />     &amp;msg("$ship[$F{'goods'}][4]を売却しました");<br />     &amp;add_record("$ship[$F{'goods'}][4]を $upmoneyで 売却");<br />     &amp;play;<br /> }<br /> 売却処理<br /><br /> # Sub Yard Repair #<br /> sub yard_rep {<br />     if ( $#ship_ind &lt; 0) { print qq|船がありません|; &amp;return_button; return }<br />     my $YardFile = new Nfile("$datadir/$yarddat",'read');<br />     my @yardline = $YardFile-&gt;read;<br />     &amp;form_table('up','100%',1);<br />     &amp;reload;<br />     print qq|造船所:修理  |;<br />     &amp;submit_button;<br />     print qq|&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=left&gt;\n|;<br />     for ($i = 0; $i &lt;= $#ship_ind; $i++) {<br />         ($max_hp,$price) = map{ (split(/&lt;&gt;/))[6,8] } grep {$ship[$i][4] eq (split(/&lt;&gt;/,$_))[0]} @yardline;<br />         if (!$max_hp) { $max_hp = $ship[$F{'goods'}][1] * 0.2; $price = $ship[$F{'goods'}][1] * 10000; }<br /><font color="#339966">$max_hpが偽ならば、$max_hpは積載*0.2、価格は積載*10000。</font><br />         if ($max_hp &lt;= $ship[$i][2]) { next }<br />         $price = $max_hp ? int($price * 0.03 / ($ship[$i][2] / $max_hp)) : 0;<br /><font color="#339966">A ? B : C は、Aが真であればBを、偽であればCを値とする。</font><br /><font color="#339966">つまり、$priceに $max_hpが真であれば、($price*0.03/(船のHP/$max_hp))を格納し、偽ならば0を格納する。</font><br />         if ($ship[$i][1] &gt; 500) { $down = $ship[$i][1] - 20 }<br />         elsif ($ship[$i][1] &gt; 100) { $down = $ship[$i][1] - 10 }<br />         else { $down = $ship[$i][1] }<font color="#339966"><br /> 修理後の積載減少の処理</font><br />         $checked = !$f ? ' checked' : '';<br />         $f = 1;<br />         print qq|&lt;input type=radio name=goods value="$i"$checked&gt;|;<br />         print qq|$ship[$i][4]:$price G&lt;br&gt;\n|;<br />         print qq|[積載:$ship[$i][1] 耐久:$ship[$i][2] 速度:$ship[$i][3]]&lt;br&gt;|;<br />         print qq|修理後 [積載:$down 耐久:$max_hp]&lt;br&gt;|;<br />     }<br />     print qq|修理できる船はありません&lt;input type=hidden name=mode value="play"&gt;\n| if !$f;<br />     print qq|&lt;input type=hidden name=yard value="3"&gt;&lt;input type=hidden name=mode value="rep_ship"&gt;\n| if $f;<br />     &amp;id_ps;<br />     &amp;form_table('down');<br /> }<br /><br /> # Sub Repair Ship #<br /> sub rep_ship {<br />     &amp;get_me($F{'id'});<br />     if ($action ne $F{'reload'}) { &amp;play; exit }<br />     &amp;ship_data;<br />     &amp;fleet;<br />     &amp;load_data;<br />     my $YardFile = new Nfile("$datadir/$yarddat",'read');<br />     my @yardline = $YardFile-&gt;read;<br />     ($max_hp,$price) = map{ (split(/&lt;&gt;/))[6,8] } grep {$ship[$F{'goods'}][4] eq (split(/&lt;&gt;/,$_))[0]} @yardline;<br />     if (!$max_hp) { $max_hp = $ship[$F{'goods'}][1] * 0.2; $price = $ship[$F{'goods'}][1] * 10000; }<br />     $price = $max_hp ? int($price * 0.03 / ($ship[$F{'goods'}][2] / $max_hp)) : 0;<br />     if ( $money &lt; $price ) { &amp;play("資金が足りません"); exit }<br />     if ($ship[$F{'goods'}][1] &gt; 500) { $down = 20 }<br />     elsif ($ship[$F{'goods'}][1] &gt; 100) { $down = 10 }<br />     if ( ($total - $total_load - $food - $sailor - $down) &lt; 0 ) {<br />         &amp;play("残積荷が足りません");<br />         return<br />     }<br />     $action = '';<br />     $ship[$F{'goods'}][1] = $ship[$F{'goods'}][1] - $down;<br />     splice(@ship_ind , $F{'goods'} ,1 ,"$ship[$F{'goods'}][0],$ship[$F{'goods'}][1],$max_hp,$ship[$F{'goods'}][3],$ship[$F{'goods'}][4]");<br />     $money -= $price;<br />     &amp;msg("$ship[$F{'goods'}][4]を修理しました");<br />     &amp;add_record("$ship[$F{'goods'}][4]を $priceで 修理");<br />     &amp;play;<br /> }<font color="#339966"><br /> 修理処理</font><br /> 1;</p>
<p>造船所関連</p> <p> </p> <p># Sub Shipyard #<br /> sub shipyard {<br />     if ($F{'yard'} == 1) { &amp;yard_buy; return }<br />     if ($F{'yard'} == 2) { &amp;yard_sell; return }<br />     if ($F{'yard'} == 3) { &amp;yard_rep; return }<br /> print &lt;&lt;YARD;<br /> 造船所&lt;br&gt;&lt;form method=$method action=$seacgi&gt;<br /> &lt;input type=hidden name=id value="$F{'id'}"&gt;<br /> &lt;input type=hidden name=ps value="$F{'ps'}"&gt;<br /> &lt;input type=hidden name=mode value="play"&gt;<br /> &lt;input type=hidden name=yard value="1"&gt;<br /> &lt;input type=submit value="購入" class=button&gt;<br /> &lt;/form&gt;&lt;form method=$method action=$seacgi&gt;<br /> &lt;input type=hidden name=id value="$F{'id'}"&gt;<br /> &lt;input type=hidden name=ps value="$F{'ps'}"&gt;<br /> &lt;input type=hidden name=mode value="play"&gt;<br /> &lt;input type=hidden name=yard value="2"&gt;<br /> &lt;input type=submit value="売却" class=button&gt;<br /> &lt;/form&gt;&lt;form method=$method action=$seacgi&gt;<br /> &lt;input type=hidden name=id value="$F{'id'}"&gt;<br /> &lt;input type=hidden name=ps value="$F{'ps'}"&gt;<br /> &lt;input type=hidden name=mode value="play"&gt;<br /> &lt;input type=hidden name=yard value="3"&gt;<br /> &lt;input type=submit value="修理" class=button&gt;&lt;/form&gt;<br /> YARD<br /> }<br /><br /><font color="#339966">valueが1なら購入へ。valueが2なら売却へ。valueが3なら修理へ。<br /> 船の改造を追加したいなら改造のsubを作りココにvalueが4なら改造へという様にすればOKです。</font><br /><br /> # Sub Buy Yard #<br /> sub yard_buy {<br />     my $YardFile = new Nfile("$datadir/$yarddat",'read');<br />     my @yardline = $YardFile-&gt;read;<br /><font color="#339966">造船所のファイルを読み込み、@yardlineに格納。</font><br />     &amp;form_table('up','100%',1);<br />     &amp;reload;<br />     print qq|造船所:購入  |;<br />     &amp;submit_button;<br />     print qq|&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=left&gt;\n|;<br />     foreach (0 .. $#yardline) {<br /><font color="#339966">@yardlineの最初から最後までforeachで処理。</font><br />         ($goods,$kind,$goods_img,$sale_area,$sale_port,$volume,$ship_hp,$knot,$price)<br />         = split(/&lt;&gt;/,$yardline[$_]);<font color="#339966"><br /> $yardline[N番目]の値を&lt;&gt;ごとに分割し各変数に格納。<br /> $goods「名前」,$kind「種類」,$goods_img「画像名」,$sale_area「販売エリア」,$sale_port「販売港」,$volume「積載」,$ship_hp「HP」,$knot「速度」,$price「価格」</font><br />             if ($sale_area =~ /$area/ || $sale_port =~ /$port/) {<br />             $checked = !$first ? ' checked' : '';<br />             $first = 1;<br />             &amp;price_up;<br /><font color="#339966">能力の価格の処理</font><br />             print qq|&lt;input type=radio name=goods value="$_"$checked&gt;|;<br />             print qq|&lt;img src="$img/$goods_img" height=15&gt;$goods:$price G&lt;br&gt;|;<br />             if ($kind == 1) {<br />                 print qq|[積載:$volume 耐久:$ship_hp 速度:$knot]&lt;br&gt;\n|;<br />             }<br />             elsif ($kind == 2) {<br />                 print qq|戦闘力+$volume&lt;br&gt;\n|;<br />             }<br />             elsif ($kind == 3) {<br />                 print qq|指揮力+$volume&lt;br&gt;\n|;<br />             }<br />             elsif ($kind == 4) {<br />                 print qq|航海力+$volume&lt;br&gt;\n|;<br />             }<br />         }<br />     }<br />     print qq|&lt;input type=hidden name=yard value="1"&gt;&lt;input type=hidden name=mode value="buy_ship"&gt;\n|;<br />     &amp;id_ps;<br />     &amp;form_table('down');<br /> }<br /><br /><br /><br /><br /> # Sub Price Up #<br /> sub price_up {<br />     if ($kind == 2 || $kind == 3 || $kind ==4) {<br />         my $rate = $atk + $cmd + $nav;<br />         $price = int($price * exp($rate * 0.03 - 3))<br />     }<br /> }<br /><font color="#339966">能力の価格処理。価格 * ((攻撃力+指揮力+航海力)*0.03-3)のべき乗</font><br /><br /> # Sub Buy Ship #<br /> sub buy_ship {<br />     &amp;get_me($F{'id'});<br />     if ($action ne $F{'reload'}) { &amp;play; exit }<br />     &amp;get_port($area,$port);<br />     &amp;ship_data;<br />     my $YardFile = new Nfile("$datadir/$yarddat",'read');<br />     my @yardline = $YardFile-&gt;read;<br />     ($goods,$kind,$goods_img,$sale_area,$sale_port,$volume,$ship_hp,$knot,$price)<br />      = split(/&lt;&gt;/, $yardline[$F{'goods'}] );<br />     if ( $sale_area !~ /$area/ &amp;&amp; $sale_port !~ /$port/ ) { &amp;play("不正です"); exit }<br />     &amp;price_up;<br />     if ( $money &lt; $price ) { &amp;play("資金が足りません"); exit }<br />     if ( $#ship_ind == 16 &amp;&amp; $kind == 1 ) { &amp;play("これ以上船は買えません"); exit}<br />     if ( $kind == 1 &amp;&amp; $#ship_ind &lt; 16 ) {<br />         push(@ship_ind , "$goods_img,$volume,$ship_hp,$knot,$goods");<br />         &amp;msg("$goodsを買いました");<br />         &amp;add_record("$goodsを $priceで 購入")<br />     }<br />     elsif ( $kind == 2 ) {<br />         if ($atk &gt;= $atk_limit) { &amp;play("これ以上は無理です"); exit }<br />         $atk += $volume;<br />         &amp;msg("武装しました");<br />         &amp;add_record("戦闘力 + $volume")<br />     }<br />     elsif ( $kind == 3 ) {<br />         if ($cmd &gt;= $cmd_limit) { &amp;play("これ以上は無理です"); exit }<br />         $cmd += $volume;<br />         &amp;msg("指揮力が高まりました");<br />         &amp;add_record("指揮力 + $volume")<br />     }<br />     elsif ( $kind == 4 ) {<br />         if ($nav &gt;= $nav_limit) { &amp;play("これ以上は無理です"); exit }<br />         $nav += $volume;<br />         &amp;msg("航海力が高まりました");<br />         &amp;add_record("航海力 + $volume")<br />     }<br />     $action = '';<br />     $money -= $price;<br />     &amp;play;<br /> }<br /><font color="#339966">購入処理</font><br /><br /> # Sub Yard Sell #<br /> sub yard_sell {<br />     if ( $#ship_ind &lt; 0) { print qq|船がありません|; &amp;return_button; return }<br />     my $YardFile = new Nfile("$datadir/$yarddat",'read');<br />     my @yardline = $YardFile-&gt;read;<br />     &amp;form_table('up','100%',1);<br />     &amp;reload;<br />     print qq|造船所:売却  |;<br />     &amp;submit_button;<br />     print qq|&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=left&gt;\n|;<br />     for ($i = 0; $i &lt;= $#ship_ind; $i++) {<br />         ($price) = map{ (split(/&lt;&gt;/))[8] } grep {$ship[$i][4] eq (split(/&lt;&gt;/,$_))[0]} @yardline;<font color="#339966"><br /> @yardlineのN番目の9番目の値「価格」を分割抽出し、プレーヤーのN番目の船の名前と一致した船の名前の価格を$priceに格納。</font><br />         $price = int($price / 2);<br />         $checked = $i == 0 ? ' checked' : '';<br />         print qq|&lt;input type=radio name=goods value="$i"$checked&gt;|;<br />         print qq|$ship[$i][4]:$price G&lt;br&gt;\n|;<br />         print qq|[積載:$ship[$i][1] 耐久:$ship[$i][2] 速度:$ship[$i][3]]&lt;br&gt;|;<br />     }<br />     print qq|&lt;input type=hidden name=yard value="2"&gt;&lt;input type=hidden name=mode value="sell_ship"&gt;\n|;<br />     &amp;id_ps;<br />     &amp;form_table('down');<br /> }<br /><br /> # Sub Sell Ship #<br /> sub sell_ship {<br />     &amp;get_me($F{'id'});<br />     if ($action ne $F{'reload'}) { &amp;play; exit }<br />     &amp;ship_data;<br />     &amp;fleet;<br />     &amp;load_data;<br />     if ( ($total - $total_load - $food - $sailor - $ship[$F{'goods'}][1]) &lt; 0 ) {<br />         &amp;play("残積荷が足りません");<br />         return<br />     }<br />     $action = '';<br />     my $YardFile = new Nfile("$datadir/$yarddat",'read');<br />     my @yardline = $YardFile-&gt;read;<br />     ($price) = map{ (split(/&lt;&gt;/))[8] } grep {$ship[$F{'goods'}][4] eq (split(/&lt;&gt;/,$_))[0]} @yardline;<br />     splice(@ship_ind , $F{'goods'} ,1);<br />     my $upmoney = int($price / 2);<br />     $money += $upmoney;<br />     &amp;msg("$ship[$F{'goods'}][4]を売却しました");<br />     &amp;add_record("$ship[$F{'goods'}][4]を $upmoneyで 売却");<br />     &amp;play;<br /> }<br /><font color="#339966">売却処理</font><br /><br /> # Sub Yard Repair #<br /> sub yard_rep {<br />     if ( $#ship_ind &lt; 0) { print qq|船がありません|; &amp;return_button; return }<br />     my $YardFile = new Nfile("$datadir/$yarddat",'read');<br />     my @yardline = $YardFile-&gt;read;<br />     &amp;form_table('up','100%',1);<br />     &amp;reload;<br />     print qq|造船所:修理  |;<br />     &amp;submit_button;<br />     print qq|&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=left&gt;\n|;<br />     for ($i = 0; $i &lt;= $#ship_ind; $i++) {<br />         ($max_hp,$price) = map{ (split(/&lt;&gt;/))[6,8] } grep {$ship[$i][4] eq (split(/&lt;&gt;/,$_))[0]} @yardline;<br />         if (!$max_hp) { $max_hp = $ship[$F{'goods'}][1] * 0.2; $price = $ship[$F{'goods'}][1] * 10000; }<br /><font color="#339966">$max_hpが偽ならば、$max_hpは積載*0.2、価格は積載*10000。</font><br />         if ($max_hp &lt;= $ship[$i][2]) { next }<br />         $price = $max_hp ? int($price * 0.03 / ($ship[$i][2] / $max_hp)) : 0;<br /><font color="#339966">A ? B : C は、Aが真であればBを、偽であればCを値とする。</font><br /><font color="#339966">つまり、$priceに $max_hpが真であれば、($price*0.03/(船のHP/$max_hp))を格納し、偽ならば0を格納する。</font><br />         if ($ship[$i][1] &gt; 500) { $down = $ship[$i][1] - 20 }<br />         elsif ($ship[$i][1] &gt; 100) { $down = $ship[$i][1] - 10 }<br />         else { $down = $ship[$i][1] }<font color="#339966"><br /> 修理後の積載減少の処理</font><br />         $checked = !$f ? ' checked' : '';<br />         $f = 1;<br />         print qq|&lt;input type=radio name=goods value="$i"$checked&gt;|;<br />         print qq|$ship[$i][4]:$price G&lt;br&gt;\n|;<br />         print qq|[積載:$ship[$i][1] 耐久:$ship[$i][2] 速度:$ship[$i][3]]&lt;br&gt;|;<br />         print qq|修理後 [積載:$down 耐久:$max_hp]&lt;br&gt;|;<br />     }<br />     print qq|修理できる船はありません&lt;input type=hidden name=mode value="play"&gt;\n| if !$f;<br />     print qq|&lt;input type=hidden name=yard value="3"&gt;&lt;input type=hidden name=mode value="rep_ship"&gt;\n| if $f;<br />     &amp;id_ps;<br />     &amp;form_table('down');<br /> }<br /><br /> # Sub Repair Ship #<br /> sub rep_ship {<br />     &amp;get_me($F{'id'});<br />     if ($action ne $F{'reload'}) { &amp;play; exit }<br />     &amp;ship_data;<br />     &amp;fleet;<br />     &amp;load_data;<br />     my $YardFile = new Nfile("$datadir/$yarddat",'read');<br />     my @yardline = $YardFile-&gt;read;<br />     ($max_hp,$price) = map{ (split(/&lt;&gt;/))[6,8] } grep {$ship[$F{'goods'}][4] eq (split(/&lt;&gt;/,$_))[0]} @yardline;<br />     if (!$max_hp) { $max_hp = $ship[$F{'goods'}][1] * 0.2; $price = $ship[$F{'goods'}][1] * 10000; }<br />     $price = $max_hp ? int($price * 0.03 / ($ship[$F{'goods'}][2] / $max_hp)) : 0;<br />     if ( $money &lt; $price ) { &amp;play("資金が足りません"); exit }<br />     if ($ship[$F{'goods'}][1] &gt; 500) { $down = 20 }<br />     elsif ($ship[$F{'goods'}][1] &gt; 100) { $down = 10 }<br />     if ( ($total - $total_load - $food - $sailor - $down) &lt; 0 ) {<br />         &amp;play("残積荷が足りません");<br />         return<br />     }<br />     $action = '';<br />     $ship[$F{'goods'}][1] = $ship[$F{'goods'}][1] - $down;<br />     splice(@ship_ind , $F{'goods'} ,1 ,"$ship[$F{'goods'}][0],$ship[$F{'goods'}][1],$max_hp,$ship[$F{'goods'}][3],$ship[$F{'goods'}][4]");<br />     $money -= $price;<br />     &amp;msg("$ship[$F{'goods'}][4]を修理しました");<br />     &amp;add_record("$ship[$F{'goods'}][4]を $priceで 修理");<br />     &amp;play;<br /> }<font color="#339966"><br /> 修理処理</font><br /> 1;</p>

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

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