300 lines
6.6 KiB
Perl
Executable File
300 lines
6.6 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.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;
|