437 lines
10 KiB
Perl
437 lines
10 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.1
|
|
#--- [注意事項] --------------------------------------------#
|
|
# 1.このスクリプトは以下の利用規程に従って配布しています。 #
|
|
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
|
|
#-----------------------------------------------------------#
|
|
|
|
#-------------------------------------------------------------------------------
|
|
#軍事メニュー
|
|
sub mission{
|
|
|
|
if(!$type){
|
|
|
|
$log .= "軍事を行います。実行するものを選んで下さい。<br>\n";
|
|
$tm=0;
|
|
$type='軍事';
|
|
|
|
&mission_menu;
|
|
|
|
}
|
|
|
|
&dat_write;
|
|
}
|
|
|
|
sub mission_menu{
|
|
|
|
# 軍事コマンド
|
|
my @gu = ('やめる','諜報','強奪','洗脳');
|
|
|
|
$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 .. $#gu){ $log2 .=qq|<option value="$_">$gu[$_]</option>\n|;}
|
|
$log2 .=qq|</select><br>\n|;
|
|
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
|
|
}
|
|
|
|
|
|
sub misson_menu2{
|
|
$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|;
|
|
foreach(1 .. $#cmp){ $log2 .=qq|<option value="$_">$cmp[$_]</option>\n|;}
|
|
$log2 .=qq|</select><br>\n|;
|
|
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
|
|
}
|
|
|
|
#-------------------------------------------------------------------------------
|
|
#軍事処理
|
|
sub mission_exe{
|
|
|
|
if(!$tm){
|
|
|
|
if($camp<1){
|
|
$log .= "放浪の身でこの軍事は行なえません。<br>\n";
|
|
$tm = $cmd = 0;
|
|
$type='';
|
|
&call_main_st;
|
|
}elsif($sogo==3||$sogo==4){
|
|
$log .= "まずは借金を返済して$sogo_p[$sogo] の烙印を消してください。<br>\n";
|
|
$tm = $cmd = 0;
|
|
$type='';
|
|
&call_main_st;
|
|
}elsif($cmd<=0 || $cmd>$#cmp){
|
|
$log .= "軍事を中止します<br>\n";
|
|
$tm = $cmd = 0;
|
|
$type='';
|
|
&call_main_st;
|
|
}elsif($cmd==1){
|
|
$log .= "敵国に諜報員を送り込み、資金調達ルートをかく乱させます。<br>標的国を選んで下さい<br>\n";
|
|
&call_mapdata if($mv_mode eq 'pc');
|
|
&misson_menu2;
|
|
$tm=31;
|
|
}elsif($cmd==2){
|
|
$log .= "敵国の兵糧を強奪します。標的国を選んで下さい(クリッカブルマップ対応)<br>\n";
|
|
&call_mapdata if($mv_mode eq 'pc');
|
|
&misson_menu2;
|
|
$tm=32;
|
|
}elsif($cmd==3){
|
|
$log .= "敵国の兵士を洗脳し、自国へ引き入れます。<br>標的国を選んで下さい<br>\n";
|
|
&call_mapdata if($mv_mode eq 'pc');
|
|
&misson_menu2;
|
|
$tm=33;
|
|
}
|
|
}elsif($tm==31){#諜報内容1
|
|
&gun_tm31;
|
|
}elsif($tm==32){#略奪内容1
|
|
&gun_tm32;
|
|
}elsif($tm==33){#洗脳内容1
|
|
&gun_tm33;
|
|
}elsif($tm==34){#諜報内容2
|
|
&gun_tm34;
|
|
}elsif($tm==35){#強奪内容2
|
|
&gun_tm35;
|
|
}elsif($tm==36){#洗脳内容2
|
|
&gun_tm36;
|
|
}
|
|
|
|
&write_data;
|
|
}
|
|
|
|
#洗脳内容
|
|
sub gun_tm33{
|
|
|
|
if($cmd<=0){
|
|
$log .= "洗脳を中止します<br>\n";
|
|
$tm = $cmd = 0;
|
|
&mission_menu;
|
|
}elsif($cmd>0){
|
|
$v=$cmd;
|
|
if($v==$camp){
|
|
$log .= "自国は洗脳できません。<br>\n";
|
|
$tm = $cmd = 0;
|
|
&mission_menu;
|
|
}elsif( (($cmd==1&&$cs1<2500) || ($cmd==1&&$ce1==1))||
|
|
(($cmd==2&&$cs2<2500) || ($cmd==2&&$ce2==1))||
|
|
(($cmd==3&&$cs3<2500) || ($cmd==3&&$ce3==1))||
|
|
(($cmd==4&&$cs4<2500) || ($cmd==4&&$ce4==1))||
|
|
(($cmd==5&&$cs5<2500) || ($cmd==5&&$ce5==1))){
|
|
$log .= "亡国または、総兵士数2500未満の国を洗脳することはできません。<br>\n";
|
|
$tm = $cmd = 0;
|
|
&misson_menu2;
|
|
}elsif($v==0){
|
|
$log .= "<br>\n";
|
|
$tm = $cmd = 0;
|
|
&mission_menu;
|
|
}else{
|
|
$log .= "$cmp[$v]の兵士陣を洗脳します。<br>\n";
|
|
$log .= "催眠術師を送り込みます。敵国国境まで$GMW時間です<br>\n";
|
|
|
|
$nation=$v;
|
|
$pr=$GMT;
|
|
$tm=36;
|
|
}
|
|
}
|
|
}
|
|
|
|
#洗脳内容2
|
|
sub gun_tm36{
|
|
|
|
&syogo;
|
|
|
|
$vv=int(rand(3));
|
|
if($vv > 0){#成功確率
|
|
|
|
$mes = "$cmp[$nation] の 兵士陣の洗脳に成功しました!<br>$cmp[$nation] から";
|
|
|
|
$wr_mes ="$date $cmp[$camp] の $syogo が $cmp[$nation] の兵士";
|
|
|
|
$v=int(((rand(10)+1)*5)*$lr);
|
|
$v=2300 + int(rand(300)) if($v>2300);
|
|
$rank_exe++;
|
|
$mes .= "$v 人の兵士を洗脳し、$cmp[$camp]の兵として取り込みました。";
|
|
|
|
$wr_mes .="$v 人を洗脳することに成功! $cmp[$camp]の兵として取り込みました";
|
|
|
|
if($camp==1){
|
|
$cs1 += $v;
|
|
}elsif($camp==2){
|
|
$cs2 += $v;
|
|
}elsif($camp==3){
|
|
$cs3 += $v;
|
|
}elsif($camp==4){
|
|
$cs4 += $v;
|
|
}elsif($camp==5){
|
|
$cs5 += $v;
|
|
}
|
|
if($nation==1 && $cs1>=$v){
|
|
$cs1 -= $v;
|
|
}elsif($nation==2 && $cs2>=$v){
|
|
$cs2 -= $v;
|
|
}elsif($nation==3 && $cs3>=$v){
|
|
$cs3 -= $v;
|
|
}elsif($nation==4 && $cs4>=$v){
|
|
$cs4 -= $v;
|
|
}elsif($nation==5 && $cs5>=$v){
|
|
$cs5 -= $v;
|
|
}
|
|
$nation=0;
|
|
$tm = $cmd = 0;
|
|
$type='';
|
|
&call_main_st;
|
|
|
|
&hist_write;#国ログ
|
|
}else{
|
|
$mes = "$cmp[$nation] の兵士陣の洗脳に失敗した・・・。";
|
|
|
|
$wr_mes ="$date $cmp[$camp] の $syogo が $cmp[$nation] の兵士陣を洗脳を企てたが、失敗したようだ";
|
|
|
|
&gun_no;
|
|
|
|
&hist_write;#国ログ
|
|
}
|
|
}
|
|
#強奪内容1
|
|
sub gun_tm32{
|
|
|
|
&syogo;
|
|
|
|
if($cmd<=0){
|
|
$log .= "強奪を中止します<br>\n";
|
|
$tm = $cmd = 0;
|
|
&mission_menu;
|
|
}elsif($cmd>0){
|
|
$v=$cmd;
|
|
if($v==$camp){
|
|
$log .= "自国は強奪できません。<br>\n";
|
|
$tm = $cmd = 0;
|
|
&mission_menu;
|
|
}elsif( (($cmd==1&&$cf1<5000) || ($cmd==1&&$ce1==1))||
|
|
(($cmd==2&&$cf2<5000) || ($cmd==2&&$ce2==1))||
|
|
(($cmd==3&&$cf3<5000) || ($cmd==3&&$ce3==1))||
|
|
(($cmd==4&&$cf4<5000) || ($cmd==4&&$ce4==1))||
|
|
(($cmd==5&&$cf5<5000) || ($cmd==5&&$ce5==1))){
|
|
$log .= "亡国または、総兵糧5000未満の国を強奪することはできません。\n";
|
|
$tm = $cmd = 0;
|
|
&mission_menu;
|
|
}elsif($v==0){
|
|
$log .= "<br>\n";
|
|
$tm = $cmd = 0;
|
|
&mission_menu;
|
|
}else{
|
|
$log .= "$cmp[$v]から兵糧を強奪します。<br>\n";
|
|
$log .= "奇襲部隊を送り込みます。敵国国境まで$GMW時間です<br>\n";
|
|
|
|
$nation=$v;
|
|
$pr=$GMT;
|
|
$tm=35;
|
|
}
|
|
}
|
|
}
|
|
#強奪内容2
|
|
sub gun_tm35{
|
|
|
|
&syogo;
|
|
|
|
$vv=int(rand(3));
|
|
if($vv > 0){#成功確率
|
|
|
|
$mes = "$cmp[$nation] に奇襲攻撃をかけ、強奪に成功しました!<br>$cmp[$nation] から";
|
|
|
|
$wr_mes ="$date $cmp[$camp] の $syogo が $cmp[$nation] に奇襲攻撃を実施。";
|
|
|
|
$v=int(((rand(10)+1)*10)*$lr);
|
|
$v=4500 + int(rand(1000)) if($v>4500);
|
|
$rank_exe++;
|
|
$vv=int($v/3*2);
|
|
$mes .= "$v の兵糧を強奪し、<br>そのうち $vv を持ち帰り$cmp[$camp]の兵糧に割り当てた。<br>";
|
|
|
|
$wr_mes .="$v の兵糧を強奪することに成功した";
|
|
|
|
if($camp==1){
|
|
$cf1 += $vv;
|
|
}elsif($camp==2){
|
|
$cf2 += $vv;
|
|
}elsif($camp==3){
|
|
$cf3 += $vv;
|
|
}elsif($camp==4){
|
|
$cf4 += $vv;
|
|
}elsif($camp==5){
|
|
$cf5 += $vv;
|
|
}
|
|
if($nation==1 && $cf1>=$v){
|
|
$cf1 -= $v;
|
|
}elsif($nation==2 && $cf2>=$v){
|
|
$cf2 -= $v;
|
|
}elsif($nation==3 && $cf3>=$v){
|
|
$cf3 -= $v;
|
|
}elsif($nation==4 && $cf4>=$v){
|
|
$cf4 -= $v;
|
|
}elsif($nation==5 && $cf5>=$v){
|
|
$cf5 -= $v;
|
|
}
|
|
$nation=0;
|
|
$tm = $cmd = 0;
|
|
$type='';
|
|
&call_main_st;
|
|
|
|
&hist_write;#国ログ
|
|
}else{
|
|
$mes = "$cmp[$nation] の 奇襲攻撃に失敗した・・・。<br>";
|
|
|
|
$wr_mes ="$date $cmp[$camp] の $syogo が $cmp[$nation] に奇襲攻撃を行ったが、失敗したようだ";
|
|
|
|
&gun_no;
|
|
|
|
&hist_write;#国ログ
|
|
}
|
|
}
|
|
|
|
#諜報内容 1
|
|
sub gun_tm31{
|
|
|
|
if($cmd<=0){
|
|
$log .= "諜報を中止します<br>\n";
|
|
$tm = $cmd = 0;
|
|
&mission_menu;
|
|
}elsif($cmd>0){
|
|
$v=$cmd;
|
|
if($v==$camp){
|
|
$log .= "自国は諜報できません。<br>\n";
|
|
$tm = $cmd = 0;
|
|
&mission_menu;
|
|
}elsif( (($cmd==1&&$cg1<600) || ($cmd==1&&$ce1==1))||
|
|
(($cmd==2&&$cg2<600) || ($cmd==2&&$ce2==1))||
|
|
(($cmd==3&&$cg3<600) || ($cmd==3&&$ce3==1))||
|
|
(($cmd==4&&$cg4<600) || ($cmd==4&&$ce4==1))||
|
|
(($cmd==5&&$cg5<600) || ($cmd==5&&$ce5==1))){
|
|
$log .= "亡国または、国家\予\算800以下の国を諜報することはできません。\n";
|
|
$tm = $cmd = 0;
|
|
&mission_menu;
|
|
}elsif($v==0){
|
|
$log .= "<br>\n";
|
|
$tm = $cmd = 0;
|
|
&mission_menu;
|
|
}else{
|
|
$log .= "$cmp[$v]の資金調達ルートを撹乱させます<br>\n";
|
|
$log .= "諜報員を送り込みます。敵国国境まで$GMW時間です<br>\n";
|
|
|
|
$nation=$v;
|
|
$pr=$GMT;
|
|
$tm=34;
|
|
}
|
|
}
|
|
}
|
|
#諜報内容 2
|
|
sub gun_tm34{
|
|
|
|
&syogo;
|
|
|
|
$vv=int(rand(3));
|
|
if($vv > 0){
|
|
|
|
$mes = "$cmp[$nation] の 資金調達ルートの撹乱に成功!<br>$cmp[$nation] から";
|
|
|
|
$wr_mes ="$date $cmp[$camp] の $syogo が $cmp[$nation] の資金調達ルートを撹乱し、";
|
|
|
|
$v=int(((rand(5)+1)*5)*$lr);
|
|
$v=600 + int(rand(200)) if($v>600);
|
|
$rank_exe++;
|
|
$vv=int($v/2);
|
|
$mes .= "$v の国家予\算が流失した!<br>そのうち $vv を持ち帰り$cmp[$camp]の国家予\算に割り当てた。<br>";
|
|
|
|
$wr_mes .="$v の国家予\算を流失させることに成功した";
|
|
|
|
if($camp==1){
|
|
$cg1 += $vv;
|
|
}elsif($camp==2){
|
|
$cg2 += $vv;
|
|
}elsif($camp==3){
|
|
$cg3 += $vv;
|
|
}elsif($camp==4){
|
|
$cg4 += $vv;
|
|
}elsif($camp==5){
|
|
$cg5 += $vv;
|
|
}
|
|
if($nation==1 && $cg1>=$v){
|
|
$cg1 -= $v;
|
|
}elsif($nation==2 && $cg2>=$v){
|
|
$cg2 -= $v;
|
|
}elsif($nation==3 && $cg3>=$v){
|
|
$cg3 -= $v;
|
|
}elsif($nation==4 && $cg4>=$v){
|
|
$cg4 -= $v;
|
|
}elsif($nation==5 && $cg5>=$v){
|
|
$cg5 -= $v;
|
|
}
|
|
$nation=0;
|
|
$tm = $cmd = 0;
|
|
$type='';
|
|
&call_main_st;
|
|
|
|
&hist_write;#国ログ
|
|
}else{
|
|
$mes = "$cmp[$nation] の 資金調達ルートの撹乱に失敗した・・・。<br>";
|
|
|
|
$wr_mes ="$date $cmp[$camp] の $syogo が $cmp[$nation] の資金調達ルートの撹乱を策略したが、失敗したようだ";
|
|
|
|
&gun_no;
|
|
|
|
&hist_write;#国ログ
|
|
}
|
|
|
|
}
|
|
|
|
#軍事失敗の国ステータス減少
|
|
sub gun_no{
|
|
|
|
$rank_exe-=5;
|
|
|
|
$tm = $cmd = 0;
|
|
$type='';
|
|
&call_main_st;
|
|
|
|
$v=int(rand(50)+1);
|
|
$v2=int(rand(200)+1);
|
|
$v3=int(rand(100)+1);
|
|
|
|
if($camp==1&&$cg1>$v&&$cf1>$v2&&$cs1>$v3){
|
|
$cg1 -= $v;
|
|
$cf1 -= $v2;
|
|
$cs1 -= $v3;
|
|
}elsif($camp==2&&$cg2>$v&&$cf2>$v2&&$cs2>$v3){
|
|
$cg2 -= $v;
|
|
$cf2 -= $v2;
|
|
$cs2 -= $v3;
|
|
}elsif($camp==3&&$cg3>$v&&$cf3>$v2&&$cs3>$v3){
|
|
$cg3 -= $v;
|
|
$cf3 -= $v2;
|
|
$cs3 -= $v3;
|
|
}elsif($camp==4&&$cg4>$v&&$cf4>$v2&&$cs4>$v3){
|
|
$cg4 -= $v;
|
|
$cf4 -= $v2;
|
|
$cs4 -= $v3;
|
|
}elsif($camp==5&&$cg51>$v&&$cf5>$v2&&$cs5>$v3){
|
|
$cg5 -= $v;
|
|
$cf5 -= $v2;
|
|
$cs5 -= $v3;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
1;
|