特に説明することもないところ
# Sub City Admin #
sub cadmin_dis {
&form_table('up','100%',1);
&reload;
print <<ADUP;
町管理</td></tr><tr><td align=left>
資金を引き出す:<br><div align=right><input type=text name=cmoney
class=text size=10>G<br>
町資金:$cmoney G<br>
<input type=hidden name=id value="$F{'id'}">
<input type=hidden name=ps value="$F{'ps'}">
<input type=hidden name=mode value="cadmin_money">
<input type=submit value="$sub_lbl"
class=button></div><br>
</form>
<form method=$method action=$seacgi>
<input type=hidden name=reload value="$action">
町を修復:<br><div align=right><input type=text name=repair
class=text size=10>pt<br>
($r_fee Gで1pt回復)<br>現在HP:$chp(MAX:$poten)<br>
<input type=hidden name=id value="$F{'id'}">
<input type=hidden name=ps value="$F{'ps'}">
<input type=hidden name=mode value="cadmin_repair">
<input type=submit value="$sub_lbl"
class=button></div></form><br>
<form method=$method action=$seacgi>
積荷搬入:<br>
ADUP
&reload;
my @city_goods = split(/△/,$load);
foreach (0 .. $#city_goods) {
($goods) = split(/,/,$city_goods[$_]);
$checked = $_ == 0 ? ' checked' : '';
print qq|<input type=radio name=cgoods value="$_"$checked>|;
print qq|$goods<br>\n|;
}
&id_ps;
print <<ADMD;
<div align=right>搬入量:<input type=text name=quan class=text
size=10><br>
価格設定:<input type=text name=gprice class=text size=10><br>
<input type=hidden name=mode value="cadmin_intrade">
<input type=submit value="$sub_lbl"
class=button></div></form><br>
<form method=$method action=$seacgi>
船搬入:<br>
ADMD
&reload;
foreach (0 .. $#ship_ind) {
$checked = $_ == 0 ? ' checked' : '';
print qq|<input type=radio name=cship value="$_"$checked>|;
print qq|$ship[$_][4]<br>\n|;
print qq|[積載:$ship[$_][1] 耐久:$ship[$_][2]
速度:$ship[$_][3]]<br>|;
}
&id_ps;
print <<ADDN;
<div align=right>価格設定:<input type=text name=sprice class=text
size=10><br>
<input type=hidden name=mode value="cadmin_inyard">
<input type=submit value="$sub_lbl"
class=button></div></form><br>
<form method=$method action=$seacgi>
財宝搬入:<br>
ADDN
&reload;
my @item_ind = split(/,/,$item_line);
foreach (0 .. $#item_ind) {
$checked = $_ == 0 ? ' checked' : '';
print qq|<input type=radio name=citem value="$_"$checked>|;
print qq|$item_ind[$_]<br>\n|;
}
&id_ps;
print <<ADBM;
<div align=right>価格設定:<input type=text name=iprice class=text
size=10><br>
<input type=hidden name=mode value="cadmin_initem">
<input type=submit value="$sub_lbl"
class=button></div></form><br>
<form method=$method action=$seacgi>
町売却:<br>
ADBM
&reload;
print qq|<input type=checkbox name=csell value="1">|;
print qq|町を売却する<br>\n|;
&id_ps;
print <<ADSL;
<div align=right>価格設定:<input type=text name=cprice class=text
size=10><br>
(買取人指定<IDで指定>:<input type=text name=buyer class=text
size=10>)<br>
<input type=hidden name=mode value="cadmin_csell">
<input type=submit value="$sub_lbl" class=button></div>
ADSL
&form_table('down');
}
# Sub Cadmin Money #
sub cadmin_money {
&get_me($F{'id'});
if ($action ne $F{'reload'}) { &play; exit }
require 'csys.cgi';
&get_city;
if ( $id != $owner ) { &error("不正です") }
if ($F{'cmoney'} =~ /[^0-9]/) { &play("数の入力が不正です");exit }
my $outmoney = int($F{'cmoney'});
$outmoney = 0 if $outmoney < 0;
# if ( ($money + $outmoney) < 0 ) { &play("資金が足りません"); exit }
↑製作者の消し忘れだろうか?
$outmoney = $cmoney if $outmoney > $cmoney;
$money += $outmoney;
$cmoney -= $outmoney;
$F{'cmode'} = 4;
&msg("$cnameから$outmoney G引き出しました");
&add_record("$cnameから $outmoney G 出金");
&set_city;
&play;
}
# Sub Cadmin Repair #
sub cadmin_repair {
&get_me($F{'id'});
if ($action ne $F{'reload'}) { &play; exit }
require 'csys.cgi';
&get_city;
if ($id != $owner) { &error("不正です") }
if ($F{'repair'} =~ /[^0-9]/) { &play("数の入力が不正です");exit }
my $hpup = int($F{'repair'});
$hpup = (-1) * $hpup if $hpup < 0;
if ( $hpup * $r_fee > $money ) { &play("資金が足りません"); exit }
if ( $hpup + $chp > $poten ) {
$money -= ($poten - $chp) * $r_fee;
$chp = $poten;
} else {
$money -= $hpup * $r_fee;
$chp += $hpup;
}
&msg("町を修復しました");
&set_city;
$F{'cmode'} = 4;
&play;
}
# Sub Cadmin In Trade #
sub cadmin_intrade {
&get_me($F{'id'});
if ($action ne $F{'reload'}) { &play; exit }
require 'csys.cgi';
&get_city;
if ($id != $owner) { &error("不正です") }
if ($F{'quan'} =~ /[^0-9]/) { &play("数の入力が不正です");exit }
if ($F{'gprice'} =~ /[^0-9]/) { &play("数の入力が不正です");exit }
$F{'gprice'} = int($F{'gprice'});
if ($F{'gprice'} < 0 ) { &play("マイナスの価格は付けられません"); exit }
my @cload_ind = split(/△/,$cload);
if (@cload_ind > $cl_limit) { &play("これ以上積荷を搬入できません"); exit }
my @city_goods = split(/△/,$load);
($goods,$load_quan) = split(/,/,$city_goods[$F{'cgoods'}]);
if (!$goods) { &play; exit }
$added = $load_quan - $F{'quan'};
if ($added > 0) {
splice(@city_goods , $F{'cgoods'} , 1 , "$goods,$added");
}
elsif ($added <= 0) {
splice(@city_goods , $F{'cgoods'} , 1 );
$F{'quan'} = $load_quan;
}
$load = join('△',@city_goods);
$cload = join('△',@cload_ind,"$goods,$F{'quan'},$F{'gprice'}");
&msg("$goodsを$F{'quan'}個 搬入しました");
&add_record("$cnameに $goodsを @$F{'gprice'}で $F{'quan'}個 搬入");
&set_city;
$F{'cmode'} = 4;
&play;
}
# Sub Cadmin In Yard #
sub cadmin_inyard {
&get_me($F{'id'});
if ($action ne $F{'reload'}) { &play; exit }
require 'csys.cgi';
&get_city;
if ($id != $owner) { &error("不正です") }
if ($F{'sprice'} =~ /[^0-9]/) { &play("数の入力が不正です");exit }
$F{'sprice'} = int($F{'sprice'});
if ($F{'sprice'} < 0) { &play("マイナスの価格は付けられません"); exit }
my @cship_ind = split(/△/,$cship);
if (@cship_ind > $cs_limit) { &play("これ以上船を搬入できません"); exit }
&ship_data;
&fleet;
&load_data;
if (!$ship[$F{'cship'}][4]) { &play; exit }
if ( ($total - $total_load - $food - $sailor - $ship[$F{'cship'}][1]) <
0 ) {
&play("残積荷が足りません");
return;
}
$cship = join('△',@cship_ind,"$ship_ind[$F{'cship'}],$F{'sprice'}");
&msg("$ship[$F{'cship'}][4]を搬入しました");
&add_record("$cnameに $ship[$F{'cship'}][4]を 搬入");
splice(@ship_ind , $F{'cship'} ,1);
&set_city;
$F{'cmode'} = 4;
&play;
}
# Sub Cadmin In Item #
sub cadmin_initem {
&get_me($F{'id'});
if ($action ne $F{'reload'}) { &play; exit }
require 'csys.cgi';
&get_city;
if ($id != $owner) { &error("不正です") }
if ($F{'iprice'} =~ /[^0-9]/) { &play("数の入力が不正です");exit }
$F{'iprice'} = int($F{'iprice'});
if ($F{'iprice'} < 0) { &play("マイナスの価格は付けられません"); exit }
my @item_ind = split(/,/,$item_line);
my @citem_ind = split(/△/,$citem);
if (!$item_ind[$F{'citem'}]) { &play; exit }
$citem = join('△',@citem_ind,"$item_ind[$F{'citem'}],$F{'iprice'}");
&msg("$item_ind[$F{'citem'}]を搬入しました");
&add_record("$cnameに $item_ind[$F{'citem'}]を 搬入");
splice(@item_ind , $F{'citem'} , 1);
$item_line = join(',',@item_ind);
&set_city;
$F{'cmode'} = 4;
&play;
}
# Sub Cadmin Bank #
sub cadmin_bank {
&form_table('up','100%',1);
&reload;
print qq|銀行・手数料設定 |;
&submit_button;
print <<CBNK;
</td></tr><tr><td>
引出額 × <input type=text name=rate value="$crate" class=text
size=5>%<br>
<input type=hidden name=mode value="cadmin_setbk">
CBNK
&id_ps;
&form_table('down');
}
# Sub Cadmin Set Bank #
sub cadmin_setbk {
&get_me($F{'id'});
if ($action ne $F{'reload'}) { &play; exit }
require 'csys.cgi';
&get_city;
if ($id != $owner) { &error("不正です") }
if ($F{"rate"} =~ /[^0-9]/) { &play("値が不正です"); exit }
if ($F{'rate'} >= 99) { &play("無茶です"); exit }
$crate = int($F{'rate'});
$action = '';
&set_city;
&play;
}
# Sub Cadmin Intro #
sub cadmin_intro {
&form_table('up','100%',1);
&reload;
print qq|宣伝文編集 |;
&submit_button;
print <<CIN;
</td></tr><tr><td>
<textarea name=cin cols=30 rows=4
class=text>$cintro</textarea><br>
<input type=hidden name=mode value="cadmin_setin">
CIN
&id_ps;
&form_table('down');
}
# Sub Cadmin Set Intro #
sub cadmin_setin {
&get_me($F{'id'});
if ($action ne $F{'reload'}) { &play; exit }
require 'csys.cgi';
&get_city;
if ($id != $owner) { &error("不正です") }
if (length($F{'cin'}) > $def_ib) { &play("宣伝文の長さは半角$def_ib文字まで");
exit }
$cintro = $F{'cin'};
$action = '';
&set_city;
&play;
}
# Sub Cadmin City Sell #
sub cadmin_csell {
&get_me($F{'id'});
if ($action ne $F{'reload'}) { &play; exit }
if (!$F{'csell'}) { &play; exit }
require 'csys.cgi';
&get_city;
if ($id != $owner) { &error("不正です") }
if ($F{'cprice'} =~ /[^0-9]/) { &play("価格が不正です"); exit }
if ($F{'buyer'} && $F{'buyer'} =~ /[^0-9]/) {
&play("指定IDが不正です"); exit }
$csell = $F{'cprice'} + 1000000;
$buyer = $F{'buyer'};
$action = '';
&set_city;
&play;
}
# Sub Cadmin Name #
sub cadmin_name {
&form_table('up','100%',1);
&reload;
print qq|名前変更 |;
&submit_button;
print <<CNM;
</td></tr><tr><td>
<input type=text name=cnm class=text size=$stx_wth><br>
<input type=hidden name=mode value="cadmin_setnm">
CNM
&id_ps;
&form_table('down');
}
# Sub Cadmin Set Name #
sub cadmin_setnm {
&get_me($F{'id'});
if ($action ne $F{'reload'}) { &play; exit }
require 'csys.cgi';
&get_city;
if ($id != $owner) { &error("不正です") }
if (!$F{'cnm'}) { &play("名前を付けてください"); exit }
if (length($F{'cnm'}) > $def_nb) { &play("名前は半角$def_nb文字まで"); exit
}
$cname = $F{'cnm'};
$action = '';
&set_city;
&play;
}
1;