Files
ore/inc/ore_sub-war.cgi

145 lines
4.1 KiB
Perl
Executable File

#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# 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 war{
if(!$type){
$log .= "전쟁을 실행합니다. 침공할 국가를 선택해 주십시오<br>\n";
$tm=0;
$type='전쟁';
&call_mapdata if($mv_mode eq 'pc');
&war_menu;
}
&dat_write;
}
sub war_menu{
$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 war_exe{
if(!$tm){
if($camp<=0){
$log .= "방랑 상태로는 전쟁을 선포할 수 없습니다<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($sogo==4){
$log .= "우선 빚을 갚고 $sogo_p[$sogo] 낙인을 제거해 주십시오.<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}else{
if($cmd<=0 || $cmd>$#cmp){
$log .= "전쟁을 중단합니다<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($cmd>0){
$v=$cmd;
if($v==$camp){
$log .= "아국에는 침공할 수 없습니다<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif( ($cmd==1&&$cn1==0)||
($cmd==2&&$cn2==0)||
($cmd==3&&$cn3==0)||
($cmd==4&&$cn4==0)||
($cmd==5&&$cn5==0)){
$log .= "국력이 0인 국가는 침공할 수 없습니다.<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($v==0){
$log .= "<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}else{
$x=int($g_p[$rank]/3);
if($max_sol<=$my_cs){
$sol=$max_sol;
}elsif($max_sol>$my_cs){
$sol=$my_cs;
}
$y=int($sol/10);
if($my_cs<$x){
$log .= "병력이 너무 적습니다. 예비 병력을 1/3 이상 확보해 주십시오<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($my_cg<$y){
$log .= "전쟁을 선포할 자금이 부족합니다.<br>출격 병력의 약 10분의 1에 해당하는 자금이 필요합니다<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($my_cf<$sol){
$log .= "전쟁을 선포할 군량이 부족합니다.<br>출격 병력과 동일한 수의 군량이 필요합니다<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}else{
$log .= "$cmp[$v]에 침공합니다<br>\n";
if($camp==1){
$cg1-=int($sol/10);
$cf1-=int($sol);
$cs1-=int($sol);
}elsif($camp==2){
$cg2-=int($sol/10);
$cf2-=int($sol);
$cs2-=int($sol);
}elsif($camp==3){
$cg3-=int($sol/10);
$cf3-=int($sol);
$cs3-=int($sol);
}elsif($camp==4){
$cg4-=int($sol/10);
$cf4-=int($sol);
$cs4-=int($sol);
}elsif($camp==5){
$cg5-=int($sol/10);
$cf5-=int($sol);
$cs5-=int($sol);
}
$log .= "행군을 시작합니다. 적국 국경까지 $GMW시간이 소요됩니다<br>\n";
$nation=$v;
$pr=$GMT;
$tm=0;
$type='전쟁중';
}
}
}
}
}
&write_data;
}
1;