300 lines
6.4 KiB
Perl
300 lines
6.4 KiB
Perl
#-----------------------------------------------------------#
|
|
# 罪と罰++ 二律背反 #
|
|
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
|
|
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
|
|
# BLANK BOARD [ http://pom.to/ ] #
|
|
#-----------------------------------------------------------#
|
|
# 内政 Version 1.0
|
|
#--- [注意事項] --------------------------------------------#
|
|
# 1.このスクリプトは以下の利用規程に従って配布しています。 #
|
|
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
|
|
#-----------------------------------------------------------#
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# 内政メニュー
|
|
sub politics{
|
|
|
|
if(!$type){
|
|
|
|
if($camp<1){
|
|
$log .= "放浪の身では内政は行えない<br>\n";
|
|
$tm = $cmd = 0;
|
|
&call_main_st;
|
|
|
|
}else{
|
|
|
|
$log .= "内政を行います。実行するものを選んで下さい<br>\n";
|
|
$tm=0;
|
|
$type='内政';
|
|
|
|
&politics_menu;
|
|
|
|
&dat_write;
|
|
}
|
|
}
|
|
}
|
|
|
|
sub politics_menu{
|
|
# 内政コマンド
|
|
my @hm = ('やめる','農業','商業','徴兵','兵を訓練する');
|
|
|
|
$log2 .=qq|<form action="$script" method="$method" name="ore_">\n|;
|
|
$log2 .=qq|<td align="center" valign="middle">\n| if($mv_mode eq 'pc');
|
|
$log2 .=qq|<input type="hidden" name="id" value="$id">\n<input type="hidden" name="pw" value="$pw">\n|;
|
|
|
|
$log2 .=qq|<select name="cmd" size="1">\n|;
|
|
foreach(0 .. $#hm){ $log2 .= "<option value=$_>$hm[$_]</option>\n";}
|
|
$log2 .=qq|</select><br>\n|;
|
|
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
|
|
}
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# 内政処理
|
|
sub politics_exe{
|
|
|
|
if(!$tm){
|
|
|
|
if($cmd<=0){
|
|
$log .= "あとで行うことにした。<br>\n";
|
|
$tm = $cmd = 0;
|
|
$type='';
|
|
&call_main_st;
|
|
|
|
# 農業
|
|
}elsif($cmd==1){
|
|
|
|
# 行動カウントのリセット(無条件)
|
|
$act_cnt=0;
|
|
|
|
$log .= "農業を行います。結果は$GMW時間後。<br>\n";
|
|
$v=int(((rand(10)+1)*100)*$lr);
|
|
$v=9999 if($v>9999);
|
|
$tm=25;
|
|
$rank_exe++;
|
|
$pr=$GMT;
|
|
|
|
if($camp==1){
|
|
$cf1 += $v;
|
|
}elsif($camp==2){
|
|
$cf2 += $v;
|
|
}elsif($camp==3){
|
|
$cf3 += $v;
|
|
}elsif($camp==4){
|
|
$cf4 += $v;
|
|
}elsif($camp==5){
|
|
$cf5 += $v;
|
|
}
|
|
$mes = "$v の兵糧を得た";
|
|
|
|
$tm=50;
|
|
|
|
# 商業
|
|
}elsif($cmd==2){
|
|
|
|
# 行動カウントのリセット(無条件)
|
|
$act_cnt=0;
|
|
|
|
$log .= "商業を行います。結果は$GMW時間後。<br>\n";
|
|
$v=int(((rand(10)+1)*15)*$lr);#最初は$v=int(((rand(10)+1)*10)*$lr);
|
|
$v=999 if($v>999);
|
|
$tm=25;
|
|
$rank_exe++;
|
|
$pr=$GMT;
|
|
|
|
if($camp==1){
|
|
$cg1 += $v;
|
|
}elsif($camp==2){
|
|
$cg2 += $v;
|
|
}elsif($camp==3){
|
|
$cg3 += $v;
|
|
}elsif($camp==4){
|
|
$cg4 += $v;
|
|
}elsif($camp==5){
|
|
$cg5 += $v;
|
|
}
|
|
$mes = "$v G 国家予\算が増えた";
|
|
|
|
$tm=50;
|
|
|
|
# 徴兵-1
|
|
}elsif($cmd==3){
|
|
$log .= "徴兵を実行しますか?兵 1 人につき 1 G必要です<br>\n";
|
|
$tm=15;
|
|
|
|
$log2 .=qq|<form action="$script" method="$method" name="ore_">\n|;
|
|
$log2 .=qq|<td align="center" valign="middle">\n| if($mv_mode eq 'pc');
|
|
$log2 .=qq|<input type="hidden" name="id" value="$id">\n<input type="hidden" name="pw" value="$pw">\n|;
|
|
$log2 .=qq|<select name="cmd" size="1">\n|;
|
|
$log2 .=qq|<option value="0">やめる</option>\n|;
|
|
$log2 .=qq|<option value="1">千人</option>\n|;
|
|
$log2 .=qq|<option value="2">五千人</option>\n|;
|
|
$log2 .=qq|<option value="3">一万人</option>\n|;
|
|
$log2 .=qq|</select><br>\n|;
|
|
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
|
|
|
|
# 兵を訓練する
|
|
}elsif($cmd==4){
|
|
|
|
if($my_cs<1){
|
|
$log .= "兵がいません<br>\n";
|
|
$tm = $cmd = 0;
|
|
&politics_menu;
|
|
}elsif($sol_lv>99){
|
|
$log .= "訓練度はこれ以上あがりません<br>\n";
|
|
$tm = $cmd = 0;
|
|
&politics_menu;
|
|
}else{
|
|
|
|
# 行動カウントのリセット(限界時のみ)
|
|
$act_cnt=0 if($act_cnt>$act_cnt_limit);
|
|
|
|
$log .= "兵の訓練を行ないます<br>\n";
|
|
$pr=int($GMT/2);
|
|
$x = int($lr/2);
|
|
if($x<1){
|
|
$x=1;
|
|
}
|
|
$v = int((rand(20))+$x);
|
|
$sol_lv += $v;
|
|
if($sol_lv>100){
|
|
$sol_lv=100;
|
|
}
|
|
$mes = "訓練度が $v 上昇した";
|
|
$tm=50;
|
|
}
|
|
}
|
|
|
|
# 徴兵-2
|
|
}elsif($tm==15){
|
|
|
|
$z=$g_p[$rank]-$sol;
|
|
if($cmd<=0){
|
|
$log .= "あとで行うことにした。<br>\n";
|
|
$tm = $cmd = 0;
|
|
&politics_menu;
|
|
}elsif($cmd==1){
|
|
|
|
# 行動カウントのリセット(無条件)
|
|
$act_cnt=0;
|
|
|
|
$log .= "最大千人規模の徴兵を実行します。結果は$GMW時間後に<br>\n";
|
|
$S = int(((rand(50))+100)*$lr);
|
|
$S = 1000 if($S>1000);
|
|
$rank_exe++;
|
|
|
|
if($S<$gold){
|
|
$gold-=$S;
|
|
}elsif($gold<$S){
|
|
$S=$gold;
|
|
$gold=0;
|
|
}
|
|
|
|
if($camp==1){
|
|
$cs1+=$S;
|
|
}elsif($camp==2){
|
|
$cs2+=$S;
|
|
}elsif($camp==3){
|
|
$cs3+=$S;
|
|
}elsif($camp==4){
|
|
$cs4+=$S;
|
|
}elsif($camp==5){
|
|
$cs5+=$S;
|
|
}
|
|
|
|
$mes = "$S 人の兵が集まった";
|
|
$pr=$GMT;
|
|
$tm=50;
|
|
}elsif($cmd==2){
|
|
|
|
# 行動カウントのリセット(無条件)
|
|
$act_cnt=0;
|
|
|
|
$log .= "最大五千人規模の徴兵を実行します。結果は$GMW時間後に<br>\n";
|
|
$S = int(((rand(50))+100)*$lr);
|
|
$S = 5000 if($S>5000);
|
|
$rank_exe+=int(rand(2)+1);
|
|
|
|
if($S<$gold){
|
|
$gold-=$S;
|
|
}elsif($gold<$S){
|
|
$S=$gold;
|
|
$gold=0;
|
|
}
|
|
|
|
if($camp==1){
|
|
$cs1+=$S;
|
|
}elsif($camp==2){
|
|
$cs2+=$S;
|
|
}elsif($camp==3){
|
|
$cs3+=$S;
|
|
}elsif($camp==4){
|
|
$cs4+=$S;
|
|
}elsif($camp==5){
|
|
$cs5+=$S;
|
|
}
|
|
|
|
$mes = "$S 人の兵が集まった";
|
|
$pr=$GMT;
|
|
$tm=50;
|
|
}elsif($cmd==3){
|
|
|
|
# 行動カウントのリセット(無条件)
|
|
$act_cnt=0;
|
|
|
|
$log .= "最大一万人規模の徴兵を実行します。結果は$GMW時間後に<br>\n";
|
|
$S = int(((rand(50))+100)*$lr);
|
|
$S = 10000 if($S>10000);
|
|
$rank_exe+=int(rand(3)+1);
|
|
|
|
if($S<$gold){
|
|
$gold-=$S;
|
|
}elsif($gold<$S){
|
|
$S=$gold;
|
|
$gold=0;
|
|
}
|
|
|
|
if($camp==1){
|
|
$cs1+=$S;
|
|
}elsif($camp==2){
|
|
$cs2+=$S;
|
|
}elsif($camp==3){
|
|
$cs3+=$S;
|
|
}elsif($camp==4){
|
|
$cs4+=$S;
|
|
}elsif($camp==5){
|
|
$cs5+=$S;
|
|
}
|
|
|
|
$mes = "$S 人の兵が集まった";
|
|
$pr=$GMT;
|
|
$tm=50;
|
|
}
|
|
}
|
|
|
|
# 内政の終了(功労金授与)
|
|
elsif($tm==50){
|
|
if($rank > 7 && $sogo!=3 && $sogo!=4){#烙印は無効化
|
|
$gold += $v = $rank * 200;
|
|
$log .= "今までの功績が認められ国より $v Gの功労金をもらった。<br>\n";
|
|
}
|
|
$tm = $cmd = 0;
|
|
$type="";
|
|
&call_main_st;
|
|
}
|
|
# 内政の終了(功労金なし)
|
|
elsif($tm==55){
|
|
$tm = $cmd = 0;
|
|
$type="";
|
|
&call_main_st;
|
|
}
|
|
|
|
&write_data;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
1;
|