874 lines
21 KiB
Perl
Executable File
874 lines
21 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 wr_st {
|
||
|
||
&syogo;
|
||
|
||
if(!$ck){
|
||
$log .="$date $cmp[$nation]에 진입했습니다<br>\n";
|
||
$tm=0;
|
||
|
||
&usrdata_read;
|
||
|
||
$sach=0;
|
||
while($sach<15){
|
||
|
||
my $tg = int(rand($#usrfile));
|
||
|
||
open(IN,"$usrdata$usrfile[$tg]") || &error("Can't open $usrfile[$tg].cgi",1);
|
||
$tdat=<IN>;
|
||
close(IN);
|
||
|
||
# 참가자 스탯 취득
|
||
%DAT = '';
|
||
@prats = split(/,/,$tdat);
|
||
foreach $prats (@prats){
|
||
($key,$v) = split(/;/,$prats);
|
||
$DAT{$key} = $v;
|
||
}
|
||
|
||
$z = ($lv-20);
|
||
|
||
if ($nation==$DAT{'camp'} && $DAT{'lv'}>$z){
|
||
$tnm = $DAT{'nm'}; #이름 적
|
||
$tlv = $DAT{'lv'}; #레벨 적
|
||
$thp = $DAT{'max_hp'}; #HP
|
||
$thp_max= $DAT{'max_hp'}; #HP
|
||
$tmp = $DAT{'max_mp'}; #MP
|
||
$tua = $DAT{'ua'}; #UA
|
||
$tud = $DAT{'ud'}; #UD
|
||
$tag = $DAT{'ag'}; #AG
|
||
$tcp = $DAT{'camp'}; #소속
|
||
$tdf_a = $DAT{'df_a'}; #방어구 적
|
||
$tdg_a = $DAT{'dg_a'}; #무구 적
|
||
$tlr = $DAT{'lr'}; #LR
|
||
$tsol = $g_p[$DAT{'rank'}];#계급
|
||
$tsol_lv= $DAT{'sol_lv'}; #
|
||
$ck=1;
|
||
}
|
||
$sach++;
|
||
}
|
||
|
||
# NPC 읽기
|
||
if(!$tnm){
|
||
require './inc/ore_sub-npc_1.cgi';
|
||
local $v=int(rand(5));
|
||
&ck_ne_1;
|
||
}
|
||
|
||
if($nation==1){
|
||
$t_cs=$cs1;
|
||
}elsif($nation==2){
|
||
$t_cs=$cs2;
|
||
}elsif($nation==3){
|
||
$t_cs=$cs3;
|
||
}elsif($nation==4){
|
||
$t_cs=$cs4;
|
||
}elsif($nation==5){
|
||
$t_cs=$cs5;
|
||
}
|
||
|
||
|
||
if($tsol<=$t_cs){
|
||
$t_cs-=$tsol;
|
||
}elsif($tsol>$t_cs){
|
||
$tsol=$t_cs;
|
||
}
|
||
|
||
if($nation==1){
|
||
$cs1-=$tsol;
|
||
}elsif($nation==2){
|
||
$cs2-=$tsol;
|
||
}elsif($nation==3){
|
||
$cs3-=$tsol;
|
||
}elsif($nation==4){
|
||
$cs4-=$tsol;
|
||
}elsif($nation==5){
|
||
$cs5-=$tsol;
|
||
}
|
||
|
||
|
||
if($tsol<100){
|
||
$log .="$cmp[$nation] 측은 예비병 부족으로 인해 시민을 급히 징병한 것 같다<br>\n";
|
||
$tsol=$g_p[$DAT{'rank'}];
|
||
if($nation==1){
|
||
$cn1-=100;
|
||
$cn1=0 if($cn1<1);
|
||
}elsif($nation==2){
|
||
$cn2-=100;
|
||
$cn2=0 if($cn2<1);
|
||
}elsif($nation==3){
|
||
$cn3-=100;
|
||
$cn3=0 if($cn3<1);
|
||
}elsif($nation==4){
|
||
$cn4-=100;
|
||
$cn4=0 if($cn4<1);
|
||
}elsif($nation==5){
|
||
$cn5-=100;
|
||
$cn5=0 if($cn5<1);
|
||
}
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}
|
||
|
||
if($tsol<100){
|
||
$tsol=$bs_h[$v];
|
||
}
|
||
|
||
$b_n = int((rand(6))+5);
|
||
$log .="이번 작전의 전투 한계 턴은 $b_n 턴입니다<br>\n";
|
||
$b_v=0;
|
||
|
||
$log .="<hr size=1 noshade>\n";
|
||
|
||
$log .="$cmp[$nation]로부터 $tnm(이)가 이끄는 방위 부대가 출격해 왔다!<br>\n";
|
||
|
||
$log .="<hr size=1 noshade>\n";
|
||
|
||
$log .="침공 작전을 실행에 옮깁니다! 전투 개시!<br>\n";
|
||
|
||
$log2 .="<form action=$script method=$method name=ore_>\n";
|
||
$log2 .="<td align=center valign=middle>\n" if($mv_mode eq 'pc');
|
||
$log2 .="<input type=hidden name=id value=$id><input type=hidden name=pw value=$pw>\n";
|
||
$log2 .="<input type=hidden name=cmd value=\"-1\"><input type=submit $button1 value=\" 전투 돌입!! \">\n";
|
||
|
||
$log .="<hr size=1 noshade>\n";
|
||
|
||
$ck=1;
|
||
}elsif($ck==1){
|
||
|
||
# 전투 처리 파일 읽기
|
||
require './inc/ore_sub-battle.cgi';
|
||
|
||
$j=int($b_n-$b_v);
|
||
$j=0 if($j<1);
|
||
$log .="<p>$cmp[$camp]군 $nm $cl[$rank] 지휘($lr) 부대수($sol) VS $cmp[$nation]군 $tnm 지휘($tlr) 부대수($tsol)</p>\n";
|
||
|
||
$log .="<p>- 전투 한계까지 남은 턴: $j 턴 -</p>\n";
|
||
|
||
$log .="<hr size=1 noshade>\n";
|
||
|
||
$qz = int($lv-20);
|
||
|
||
if($b_n eq'' && $tlr eq''){
|
||
$tm = $ck = $cmd = 0;
|
||
$nation = 0;
|
||
$type='';
|
||
$log .="전투 중에 버그가 발생했습니다! 강제로 메인 화면으로 돌아갑니다<br>\n";
|
||
&call_main_st;
|
||
}
|
||
|
||
if($j>2 && $tm<10 && $cmd !=-1){
|
||
my $l=int(rand(5));
|
||
if($l==0 && $qz<$tlv){
|
||
$tm=50;
|
||
$log .="<p>적군을 지휘하는 $tnm(으)로부터 일대일 결투 신청이 들어왔습니다!</p><p>어떻게 하겠습니까?</p>\n";
|
||
|
||
$log .="<p>적장 스탯 - $tnm ( HP $thp MP $tmp UA $tua UD $tud LV $tlv )</p>\n";
|
||
|
||
}
|
||
}
|
||
|
||
if($tm==50){
|
||
|
||
if($cmd==10){
|
||
$log .="일대일 결투 신청을 거절했습니다.<br>평판이 소폭 하락했습니다.<br>\n";
|
||
$tm=0;
|
||
$rank_exe-=1;
|
||
}elsif($cmd==20){
|
||
$log .="$tnm 의 도전을 수락하여 이 전쟁의 승패를 건 일대일 결투를 치르기로 했습니다!<br>\n";
|
||
$tm=60;
|
||
$rank_exe+=1;
|
||
}
|
||
|
||
}elsif($tm==60){
|
||
|
||
$log .="진검승부 시작!<br>\n";
|
||
$tm=70;
|
||
|
||
}elsif($tm==70){
|
||
|
||
# 전투 처리 호출
|
||
&bt_cm;
|
||
|
||
if($thp<1){
|
||
$G =int(rand(200))+((500*$tlv)-($lv*50));
|
||
$G =1 if($G<1);
|
||
$G =int(rand(500))+1500 if($G>2000);
|
||
$gold +=$G;
|
||
$E =int((((((rand(5))+5)+$tlv)*2)*0.8)-$lv);
|
||
$E =1 if($E<1);
|
||
$E =int(rand(50))+250 if($E>300);
|
||
$exe+=$E;
|
||
$thp=0;
|
||
$bst ='';
|
||
$bt =0;
|
||
$log .="$nm 은(는) $tnm(을)를 쓰러뜨렸다!<br>\n";
|
||
$log .="$G GOLD와 $E 경험치를 획득했다!<br>\n";
|
||
$log .="<p></p>\n";
|
||
|
||
$H =int(rand(51));
|
||
$E = int((100+$H)*$lv);
|
||
$E = int((rand(500))+1800) if($E>2000);
|
||
$G = 20000;
|
||
# 개조 전은 50+$H
|
||
$N = $H+150;
|
||
# 여기까지
|
||
$exe+=$E;
|
||
$gold+=$G;
|
||
|
||
if($camp==1){
|
||
$cs1+=int($sol);
|
||
$cn1+=$N;
|
||
}elsif($camp==2){
|
||
$cs2+=int($sol);
|
||
$cn2+=$N;
|
||
}elsif($camp==3){
|
||
$cs3+=int($sol);
|
||
$cn3+=$N;
|
||
}elsif($camp==4){
|
||
$cs4+=int($sol);
|
||
$cn4+=$N;
|
||
}elsif($camp==5){
|
||
$cs5+=int($sol);
|
||
$cn5+=$N;
|
||
}
|
||
|
||
$tsol=int($tsol/2);
|
||
|
||
if($nation==1){
|
||
$cs1+=$tsol;
|
||
}elsif($nation==2){
|
||
$cs2+=$tsol;
|
||
}elsif($nation==3){
|
||
$cs3+=$tsol;
|
||
}elsif($nation==4){
|
||
$cs4+=$tsol;
|
||
}elsif($nation==5){
|
||
$cs5+=$tsol;
|
||
}
|
||
|
||
if($nation==1){
|
||
$cn1-=$N;
|
||
$cn1=0 if($cn1<1);
|
||
}elsif($nation==2){
|
||
$cn2-=$N;
|
||
$cn2=0 if($cn2<1);
|
||
}elsif($nation==3){
|
||
$cn3-=$N;
|
||
$cn3=0 if($cn3<1);
|
||
}elsif($nation==4){
|
||
$cn4-=$N;
|
||
$cn4=0 if($cn4<1);
|
||
}elsif($nation==5){
|
||
$cn5-=$N;
|
||
$cn5=0 if($cn5<1);
|
||
}
|
||
|
||
$log .="적군은 $tnm 의 패배에 전의를 상실했습니다! 장수를 잃은 부대 따위는 아군의 상대가 아닙니다.<br>적군을 추격하여 엄청난 타격을 입혔습니다!<br>\n";
|
||
|
||
$log .="$cmp[$nation]로부터 국력 $N을 빼앗았습니다.<br>추가로 $E 경험치와 $G GOLD의 보상을 획득했다!<br>\n";
|
||
|
||
$wr_mes ="$date $cmp[$camp] 의 $syogo 가 $cmp[$nation] 에 침공, $tnm 와 일대일 결투 끝에 승리하고 국력 $N 을 빼앗는 데 성공한 것 같습니다.";
|
||
|
||
&touitu;
|
||
|
||
$V =int(rand(6))+5;
|
||
$sol_lv-=$V;
|
||
$rank_exe+=int($V*2)+5;
|
||
$sol=0;
|
||
$tnm='';
|
||
$ck = $tm = $cmd = 0;
|
||
$nation=0;
|
||
$type='';
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}elsif($hp<1){
|
||
|
||
$bst ='';
|
||
$bt =0;
|
||
$ck =0;
|
||
$hp =0;
|
||
$G=int(rand(10))+1;
|
||
$E=int(rand(5))+1;
|
||
$gold+=$G;
|
||
$exe+=$E;
|
||
$log .="당신은 적장 $tnm 에게 패배하고 말았다…<br>\n";
|
||
$log .="$G GOLD와 $E 경험치를 획득했다<br>\n";
|
||
$log .="<p></p>\n";
|
||
|
||
$sol=int($sol/2);
|
||
|
||
if($camp==1){
|
||
$cs1+=int($sol);
|
||
$cn1+=$N;
|
||
}elsif($camp==2){
|
||
$cs2+=int($sol);
|
||
$cn2+=$N;
|
||
}elsif($camp==3){
|
||
$cs3+=int($sol);
|
||
$cn3+=$N;
|
||
}elsif($camp==4){
|
||
$cs4+=int($sol);
|
||
$cn4+=$N;
|
||
}elsif($camp==5){
|
||
$cs5+=int($sol);
|
||
$cn5+=$N;
|
||
}
|
||
|
||
if($nation==1){
|
||
$cs1+=$tsol;
|
||
}elsif($nation==2){
|
||
$cs2+=$tsol;
|
||
}elsif($nation==3){
|
||
$cs3+=$tsol;
|
||
}elsif($nation==4){
|
||
$cs4+=$tsol;
|
||
}elsif($nation==5){
|
||
$cs5+=$tsol;
|
||
}
|
||
|
||
$log .="일대일 결투에 패배하여 지휘관을 잃은 당신의 부대는 적에게 막대한 피해를 입었습니다…<br>\n";
|
||
|
||
$rank_exe-=15;
|
||
$log .="부대 전멸이라는 불명예스러운 패배로 인해 당신에 대한 평판이 크게 떨어졌다<br>\n";
|
||
if($rank_exe<1){
|
||
$rank--;
|
||
$rank=1 if($rank<1);
|
||
$next_rank=int(($rank*$rank)*3);
|
||
$v=$next_rank-10;
|
||
$rank_exe=$v;
|
||
$log .="일계급 강등되어 버렸다…<br>\n";
|
||
}
|
||
|
||
$wr_mes ="$date $cmp[$camp] 의 $syogo 가 $cmp[$nation] 에 침공, $tnm 와 일대일 결투를 치렀으나 패배하여 부대는 패주한 것 같습니다.";
|
||
|
||
$sol=0;
|
||
$tnm='';
|
||
$ck = $tm = $cmd = 0;
|
||
$nation=0;
|
||
$type='';
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}
|
||
|
||
}elsif($tm<1){
|
||
|
||
if($cmd==10){
|
||
|
||
my $btp = $ag + int(rand($lv/2) +1);
|
||
my $bte = $tag+ int(rand($tlv/2)+1);
|
||
|
||
if($j<3){
|
||
$log .="여기까지 전투가 진행된 상태에서의 퇴각은 불가능합니다.<br>\n";
|
||
$b_n+=1;
|
||
}elsif($btp<$bte){
|
||
$log .="적군에게 도주 경로가 막혀 더 이상 퇴각할 수 없습니다.<br>\n";
|
||
$b_n+=1;
|
||
}else{
|
||
|
||
$log .="아쉽지만 작전을 중지하고 퇴각합니다.<br>\n";
|
||
|
||
if($camp==1){
|
||
$cs1+=int($sol);
|
||
}elsif($camp==2){
|
||
$cs2+=int($sol);
|
||
}elsif($camp==3){
|
||
$cs3+=int($sol);
|
||
}elsif($camp==4){
|
||
$cs4+=int($sol);
|
||
}elsif($camp==5){
|
||
$cs5+=int($sol);
|
||
}
|
||
|
||
if($nation==1){
|
||
$cs1+=$tsol;
|
||
}elsif($nation==2){
|
||
$cs2+=$tsol;
|
||
}elsif($nation==3){
|
||
$cs3+=$tsol;
|
||
}elsif($nation==4){
|
||
$cs4+=$tsol;
|
||
}elsif($nation==5){
|
||
$cs5+=$tsol;
|
||
}
|
||
|
||
$wr_mes ="$date $cmp[$camp] 의 $syogo 가 $cmp[$nation] 에 침공, $tnm 방위 부대와 교전 후 부득이하게 퇴각한 것 같습니다.";
|
||
|
||
$sol_lv-=int(rand(40));
|
||
$rank_exe-=1;
|
||
$rank_exe = 0 if($rank_exe<1);
|
||
|
||
$tnm='';
|
||
$ck = $tm = $cmd = 0;
|
||
$nation=0;
|
||
$type='';
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}
|
||
}elsif($cmd==1){
|
||
$l=int(rand(3));
|
||
if($l==0){
|
||
$x=int(($sol/100)+($lr*10))+$sol_lv;
|
||
$y=int(($tsol/100)+($tlr*10))+$tsol_lv;
|
||
$x=1 if($x<1);
|
||
$y=1 if($y<1);
|
||
$log .="$nm (공격진형) VS $tnm (공격진형)<br>\n";
|
||
$log .="○자군 피해 $y ●적군 피해 $x<br>\n";
|
||
$sol-=$y;
|
||
$tsol-=$x;
|
||
}elsif($l==1){
|
||
$x=int((($sol/100)+($lr*10))*2)+$sol_lv;
|
||
$y=int((($tsol/100)+($tlr*10))*0.5)+$tsol_lv;
|
||
$x=1 if($x<1);
|
||
$y=1 if($y<1);
|
||
$log .="$nm (공격진형) VS $tnm (방어진형)<br>\n";
|
||
$log .="○자군 피해 $y ●적군 피해 $x<br>\n";
|
||
$sol-=$y;
|
||
$tsol-=$x;
|
||
}elsif($l==2){
|
||
$x=int((($sol/100)+($lr*10))*0.5)+$sol_lv;
|
||
$y=int((($tsol/100)+($tlr*10))*2)+$tsol_lv;
|
||
$x=1 if($x<1);
|
||
$y=1 if($y<1);
|
||
$log .="$nm (공격진형) VS $tnm (돌격진형)<br>\n";
|
||
$log .="○자군 피해 $y ●적군 피해 $x<br>\n";
|
||
$sol-=$y;
|
||
$tsol-=$x;
|
||
}
|
||
}elsif($cmd==2){
|
||
$l=int(rand(3));
|
||
if($l==0){
|
||
$x=int((($sol/100)+($lr*10))*0.5)+$sol_lv;
|
||
$y=int((($tsol/100)+($tlr*10))*2)+$tsol_lv;
|
||
$x=1 if($x<1);
|
||
$y=1 if($y<1);
|
||
$log .="$nm (방어진형) VS $tnm (공격진형)<br>\n";
|
||
$log .="○자군 피해 $y ●적군 피해 $x<br>\n";
|
||
$sol-=$y;
|
||
$tsol-=$x;
|
||
}elsif($l==1){
|
||
$x=int(($sol/100)+($lr*10))+$sol_lv;
|
||
$y=int(($tsol/100)+($tlr*10))+$tsol_lv;
|
||
$x=1 if($x<1);
|
||
$y=1 if($y<1);
|
||
$log .="$nm (방어진형) VS $tnm (방어진형)<br>\n";
|
||
$log .="○자군 피해 $y ●적군 피해 $x<br>\n";
|
||
$sol-=$y;
|
||
$tsol-=$x;
|
||
}elsif($l==2){
|
||
$x=int((($sol/100)+($lr*10))*2)+$sol_lv;
|
||
$y=int((($tsol/100)+($tlr*10))*0.5)+$tsol_lv;
|
||
$x=1 if($x<1);
|
||
$y=1 if($y<1);
|
||
$log .="$nm (방어진형) VS $tnm (돌격진형)<br>\n";
|
||
$log .="○자군 피해 $y ●적군 피해 $x<br>\n";
|
||
$sol-=$y;
|
||
$tsol-=$x;
|
||
}
|
||
}elsif($cmd==3){
|
||
$l=int(rand(3));
|
||
if($l==0){
|
||
$x=int((($sol/100)+($lr*10))*2)+$sol_lv;
|
||
$y=int((($tsol/100)+($tlr*10))*0.5)+$tsol_lv;
|
||
$x=1 if($x<1);
|
||
$y=1 if($y<1);
|
||
$log .="$nm (돌격진형) VS $tnm (공격진형)<br>\n";
|
||
$log .="○자군 피해 $y ●적군 피해 $x<br>\n";
|
||
$sol-=$y;
|
||
$tsol-=$x;
|
||
}elsif($l==1){
|
||
$x=int((($sol/100)+($lr*10))*0.5)+$sol_lv;
|
||
$y=int((($tsol/100)+($tlr*10))*2)+$tsol_lv;
|
||
$x=1 if($x<1);
|
||
$y=1 if($y<1);
|
||
$log .="$nm (돌격진형) VS $tnm (방어진형)<br>\n";
|
||
$log .="○자군 피해 $y ●적군 피해 $x<br>\n";
|
||
$sol-=$y;
|
||
$tsol-=$x;
|
||
}elsif($l==2){
|
||
$x=int(($sol/100)+($lr*10))+$sol_lv;
|
||
$y=int(($tsol/100)+($tlr*10))+$tsol_lv;
|
||
$x=1 if($x<1);
|
||
$y=1 if($y<1);
|
||
$log .="$nm (돌격진형) VS $tnm (돌격진형)<br>\n";
|
||
$log .="○자군 피해 $y ●적군 피해 $x<br>\n";
|
||
$sol-=$y;
|
||
$tsol-=$x;
|
||
}
|
||
}
|
||
|
||
$log .="<hr size=1 noshade>\n";
|
||
|
||
if($sol<1&&$tsol<1){
|
||
$log .="양군 모두 괴멸적인 타격을 입어 전투 지속이 불가능하게 되었습니다.<br>이번 작전은 무승부입니다.<br>\n";
|
||
|
||
$log .="국력은 양 진영 모두 변화 없음<br>\n";
|
||
|
||
$H =int(rand(21));
|
||
|
||
$E = int((20+$H)*$lv);
|
||
$E = int(rand(50))+170 if($E>200);
|
||
$G = 5000;
|
||
$exe+=$E;
|
||
$gold+=$G;
|
||
$rank_exe-=10;
|
||
$log .="부대 전멸이라는 불명예스러운 패배로 인해 당신에 대한 평판이 크게 떨어졌다<br>\n";
|
||
if($rank_exe<1){
|
||
$rank--;
|
||
$rank=1 if($rank<1);
|
||
$next_rank=int(($rank*$rank)*3);
|
||
$v=$next_rank-10;
|
||
$rank_exe=$v;
|
||
$log .="일계급 강등되어 버렸다…<br>\n";
|
||
}
|
||
|
||
$log .="$E 의 경험치와 $G 의 보상을 얻었다<br>\n";
|
||
|
||
$wr_mes ="$date $cmp[$camp] 의 $syogo 가 $cmp[$nation] 에 침공, $tnm 방위 부대에 가로막혀 격전 끝에 양군 모두 괴멸한 것 같습니다.";
|
||
|
||
$sol=0;
|
||
$sol_lv=0;
|
||
$tnm='';
|
||
$ck = $tm = $cmd = 0;
|
||
$nation=0;
|
||
$type='';
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}elsif($tsol<1){
|
||
$log .="적 부대를 격파했습니다!<br>아군의 승리입니다!<br>\n";
|
||
$H =int(rand(51));
|
||
$E = int((100+$H)*$lv);
|
||
$E = int((rand(500))+1800) if($E>2000);
|
||
$G = 20000;
|
||
# 개조 전은 50+$H
|
||
$N = $H+150;
|
||
# 여기까지
|
||
$exe+=$E;
|
||
$gold+=$G;
|
||
|
||
if($camp==1){
|
||
$cs1+=int($sol);
|
||
$cn1+=$N;
|
||
}elsif($camp==2){
|
||
$cs2+=int($sol);
|
||
$cn2+=$N;
|
||
}elsif($camp==3){
|
||
$cs3+=int($sol);
|
||
$cn3+=$N;
|
||
}elsif($camp==4){
|
||
$cs4+=int($sol);
|
||
$cn4+=$N;
|
||
}elsif($camp==5){
|
||
$cs5+=int($sol);
|
||
$cn5+=$N;
|
||
}
|
||
|
||
if($nation==1){
|
||
$cn1-=$N;
|
||
$cn1=0 if($cn1<1);
|
||
}elsif($nation==2){
|
||
$cn2-=$N;
|
||
$cn2=0 if($cn2<1);
|
||
}elsif($nation==3){
|
||
$cn3-=$N;
|
||
$cn3=0 if($cn3<1);
|
||
}elsif($nation==4){
|
||
$cn4-=$N;
|
||
$cn4=0 if($cn4<1);
|
||
}elsif($nation==5){
|
||
$cn5-=$N;
|
||
$cn5=0 if($cn5<1);
|
||
}
|
||
|
||
$log .="$cmp[$nation]로부터 국력 $N 을 빼앗았습니다.<br>$E 경험치와 $G GOLD의 보상을 얻었다!<br>\n";
|
||
|
||
$wr_mes ="$date $cmp[$camp] 의 $syogo 가 $cmp[$nation] 에 침공, $tnm 방위 부대를 격파하고 국력 $N 을 빼앗는 데 성공한 것 같습니다.";
|
||
|
||
&touitu;
|
||
|
||
$V =int(rand(6))+10;
|
||
$sol_lv-=$V;
|
||
$rank_exe+=$V;
|
||
$sol=0;
|
||
$tnm='';
|
||
$ck = $tm = $cmd = 0;
|
||
$nation=0;
|
||
$type='';
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}elsif($sol<1){
|
||
$log .="아군은 패배했습니다… 아쉽지만 철수합니다.<br>\n";
|
||
|
||
$log .="국력은 양 진영 모두 변화 없음<br>\n";
|
||
|
||
$H =int(rand(21));
|
||
|
||
$E = int((20+$H)*$lv);
|
||
$E = int(rand(50))+170 if($E>200);
|
||
$G = 5000;
|
||
$exe+=$E;
|
||
$gold+=$G;
|
||
|
||
$log .="$E 의 경험치와 $G 의 보상을 얻었다<br>\n";
|
||
|
||
$wr_mes ="$date $cmp[$camp] 의 $syogo 가 $cmp[$nation] 에 침공, $tnm 방위 부대 앞에 패퇴한 것 같습니다.";
|
||
|
||
if($nation==1){
|
||
$cs1+=$tsol;
|
||
}elsif($nation==2){
|
||
$cs2+=$tsol;
|
||
}elsif($nation==3){
|
||
$cs3+=$tsol;
|
||
}elsif($nation==4){
|
||
$cs4+=$tsol;
|
||
}elsif($nation==5){
|
||
$cs5+=$tsol;
|
||
}
|
||
|
||
$rank_exe-=10;
|
||
$log .="부대 전멸이라는 불명예스러운 패배로 인해 당신에 대한 평판이 떨어졌다<br>\n";
|
||
if($rank_exe<1){
|
||
$rank--;
|
||
$rank=1 if($rank<1);
|
||
$next_rank=int(($rank*$rank)*3);
|
||
$v=$next_rank-10;
|
||
$rank_exe=$v;
|
||
$log .="일계급 강등되어 버렸다…<br>\n";
|
||
}
|
||
|
||
$sol=0;
|
||
$tnm='';
|
||
$ck = $tm = $cmd = 0;
|
||
$nation=0;
|
||
$type='';
|
||
|
||
&hist_write;#국가 로그
|
||
}elsif($b_n<$b_v){
|
||
$log .="전투 한계 턴을 초과하고 말았다… 더 이상은 싸울 수 없습니다.<br>\n";
|
||
|
||
$log .="국력은 양 진영 모두 변화 없음<br>\n";
|
||
|
||
$H =int(rand(21));
|
||
|
||
$E = int((20+$H)*$lv);
|
||
$E = int(rand(50))+170 if($E>200);
|
||
$G = 5000;
|
||
$exe+=$E;
|
||
$gold+=$G;
|
||
|
||
$log .="$E 의 경험치와 $G 의 보상을 얻었다<br>\n";
|
||
|
||
$wr_mes ="$date $cmp[$camp] 의 $syogo 가 $cmp[$nation] 에 침공, $tnm 방위 부대에 가로막혀 전투 한계를 초과한 것 같습니다.";
|
||
|
||
$rank_exe-=5;
|
||
$log .="작전에 실패하여 당신에 대한 평판이 떨어졌다.<br>\n";
|
||
if($rank_exe<1){
|
||
$rank--;
|
||
$rank=1 if($rank<1);
|
||
$next_rank=int(($rank*$rank)*3);
|
||
$v=$next_rank-10;
|
||
$rank_exe=$v;
|
||
$log .="일계급 강등되어 버렸다…<br>\n";
|
||
}
|
||
|
||
$sol_lv-=int(rand(40));
|
||
$sol=0;
|
||
$tnm='';
|
||
$ck = $tm = $cmd = 0;
|
||
$nation=0;
|
||
$type='';
|
||
|
||
&hist_write;#국가 로그
|
||
}
|
||
|
||
$b_v+=1 if($cmd>0);
|
||
|
||
}
|
||
|
||
$log2 .="<form action=$script method=$method name=ore_>\n";
|
||
$log2 .="<td align=center valign=middle>\n" if($mv_mode eq 'pc');
|
||
$log2 .="<input type=hidden name=id value=\"$id_p\">\n";
|
||
$log2 .="<input type=hidden name=pw value=\"$pw_p\">\n";
|
||
if($tsol<1||$sol<1){
|
||
$log2 .="<input type=hidden name=cmd value=-1>\n";
|
||
}elsif($tm==50){
|
||
$log2 .="<select name=cmd size=1><option value=10>싫다</option><option value=20>수락</option>\n";
|
||
$log2 .="</select>";
|
||
}elsif($tm==60){
|
||
$log2 .="<input type=hidden name=cmd value=-1>\n";
|
||
}elsif($tm==70){
|
||
&spell_sp;
|
||
}elsif($tm<1){
|
||
$log2 .="<select name=cmd size=1><option value=1>공격진형</option><option value=2>방어진형</option><option value=3>돌격진형</option><option value=10>도망친다</option>\n";
|
||
$log2 .="</select>";
|
||
}
|
||
$log2 .="<br>";# 테이블 틀어짐 수정
|
||
$log2 .="<input type=submit $button1 value=\"NEXT!\">$td_end</form>\n";# 테이블 추가 </tr></table>
|
||
}
|
||
|
||
if($cn1<1&&$ce1<1){
|
||
|
||
$wr_mes ="$date $cmp[1] 이(가) $syogo 에 의해 괴멸적인 타격을 입어 망국이 되었습니다.";
|
||
|
||
$ce1=1;
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}elsif($cn2<1&&$ce2<1){
|
||
|
||
$wr_mes ="$date $cmp[2] 이(가) $syogo 에 의해 괴멸적인 타격을 입어 망국이 되었습니다.";
|
||
|
||
$ce2=1;
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}elsif($cn3<1&&$ce3<1){
|
||
|
||
$wr_mes ="$date $cmp[3] 이(가) $syogo 에 의해 괴멸적인 타격을 입어 망국이 되었습니다.";
|
||
|
||
$ce3=1;
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}elsif($cn4<1&&$ce4<1){
|
||
|
||
$wr_mes ="$date $cmp[4] 이(가) $syogo 에 의해 괴멸적인 타격을 입어 망국이 되었습니다.";
|
||
|
||
$ce4=1;
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}elsif($cn5<1&&$ce5<1){
|
||
|
||
$wr_mes ="$date $cmp[5] 이(가) $syogo 에 의해 괴멸적인 타격을 입어 망국이 되었습니다.";
|
||
|
||
$ce5=1;
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}elsif($cn1>1000&&$ce1>0){
|
||
|
||
$wr_mes ="$date $cmp[1] 이(가) $syogo 의 활약에 의해 망국에서 부흥했습니다.";
|
||
|
||
$ce1=0;
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}elsif($cn2>1000&&$ce2>0){
|
||
|
||
$wr_mes ="$date $cmp[2] 이(가) $syogo 의 활약에 의해 망국에서 부흥했습니다.";
|
||
|
||
$ce2=0;
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}elsif($cn3>1000&&$ce3>0){
|
||
|
||
$wr_mes ="$date $cmp[3] 이(가) $syogo 의 활약에 의해 망국에서 부흥했습니다.";
|
||
|
||
$ce3=0;
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}elsif($cn4>1000&&$ce4>0){
|
||
|
||
$wr_mes ="$date $cmp[4] 이(가) $syogo 의 활약에 의해 망국에서 부흥했습니다.";
|
||
|
||
$ce4=0;
|
||
|
||
&hist_write;#국가 로그
|
||
|
||
}elsif($cn5>1000&&$ce5>0){
|
||
|
||
$wr_mes ="$date $cmp[5] 이(가) $syogo 의 활약에 의해 망국에서 부흥했습니다.";
|
||
|
||
$ce5=0;
|
||
|
||
&hist_write;#국가 로그
|
||
}
|
||
|
||
$layout_flag=1;
|
||
&write_data;
|
||
&hist_write if($touitu_flag);
|
||
}
|
||
|
||
#-------------------------------------------------------------------------------
|
||
# 통일 처리
|
||
sub touitu{
|
||
|
||
&syogo;
|
||
|
||
if($camp==1){
|
||
if($cn1>=$data_reset){
|
||
|
||
$wr_mes ="$date $cmp[$camp] 이(가) $syogo 등의 활약에 의해 대륙을 제패했습니다!!!";
|
||
|
||
$sogo=1;#패자 기록
|
||
$hasya=$nm;#패자 기록
|
||
$hcamp=$camp;
|
||
$touitu_flag=1;
|
||
}
|
||
}elsif($camp==2){
|
||
if($cn2>=$data_reset){
|
||
|
||
$wr_mes ="$date $cmp[$camp] 이(가) $syogo 등의 활약에 의해 대륙을 제패했습니다!!!";
|
||
|
||
$sogo=1;#패자 기록
|
||
$hasya=$nm;#패자 기록
|
||
$hcamp=$camp;
|
||
$touitu_flag=1;
|
||
}
|
||
}elsif($camp==3){
|
||
if($cn3>=$data_reset){
|
||
|
||
$wr_mes ="$date $cmp[$camp] 이(가) $syogo 등의 활약에 의해 대륙을 제패했습니다!!!";
|
||
|
||
$sogo=1;#패자 기록
|
||
$hasya=$nm;#패자 기록
|
||
$hcamp=$camp;
|
||
$touitu_flag=1;
|
||
}
|
||
}elsif($camp==4){
|
||
if($cn4>=$data_reset){
|
||
|
||
$wr_mes ="$date $cmp[$camp] 이(가) $syogo 등의 활약에 의해 대륙을 제패했습니다!!!";
|
||
|
||
$sogo=1;#패자 기록
|
||
$hasya=$nm;#패자 기록
|
||
$hcamp=$camp;
|
||
$touitu_flag=1;
|
||
}
|
||
}elsif($camp==5){
|
||
if($cn5>=$data_reset){
|
||
|
||
$wr_mes ="$date $cmp[$camp] 이(가) $syogo 등의 활약에 의해 대륙을 제패했습니다!!!";
|
||
|
||
$sogo=1;#패자 기록
|
||
$hasya=$nm;#패자 기록
|
||
$hcamp=$camp;
|
||
$touitu_flag=1;
|
||
}
|
||
}
|
||
}
|
||
|
||
1;
|