Files
ore/inc/ore_sub-changes.cgi

143 lines
4.3 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.2
#--- [주의사항] --------------------------------------------#
# 1.이 스크립트는 이하의 이용규정에 따라 배포되고 있습니다. #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
# 사관 메뉴
sub changes{
if(!$type){
&usrdata_read;
&usrdata_open;
require './inc/ore_sub-members-p1.cgi';&member_list;
$log .= "참가자 집계를 갱신합니다.<br>\n";
$log .= "전체 참가자:$all_mem<br>$cmp[0]:$c0<br>$cmp[1]:$c1/$c1a<br>$cmp[2]:$c2/$c2a<br>$cmp[3]:$c3/$c3a<br>$cmp[4]:$c4/$c4a<br>$cmp[5]:$c5/$c5a<br>\n" if($mv_mode eq 'pc');
$tm=0;
$type='사관';
&changes_menu1;
}
&dat_write;
}
sub changes_menu1{
$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|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
}
sub changes_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="-1">그만둔다</option>\n|;
foreach(0 .. $#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 changes_exe{
if(!$tm){
$log .= "현재 소속에서 새로운 소속으로<br>\n";
$tm=1;
$type='사관';
&changes_menu2;
}elsif($tm==1){
if($cmd<=-1 || $cmd>$#cmp){
$log .= "그만두겠습니다.<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($cmd>=0 && (($c1 >= $c1a && $cmd == 1)||($c2 >= $c2a && $cmd == 2)||($c3 >= $c3a && $cmd == 3)||($c4 >= $c4a && $cmd == 4)||($c5 >= $c5a && $cmd == 5))){
for($i=1,$j=1;$i<=$#cmp;$i++,$j++){
if($cmd==$j){
$log .= "$cmp[$i] 은(는) 정원이 초과되어 입국할 수 없습니다.<br>\n";
}
}
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($lv < $clv){
$log .= "사관은 레벨 $clv부터 가능합니다.<br>먼저 수행으로 자신을 단련해 주십시오.<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}else{
if($lv >= 20 && $camp && $cmd){#레벨이 20 이상이고 대상이 무소속이 아니며 원래도 무소속이 아닐 때 (국가->국가)
$gold -=(15-$rank)*(int($lv/4))*8;
$log .= "국가 이적료로 금화 $zx를 지불합니다.<br>\n";
my $zy = $rank*(int($lv/10))*4;
if($camp == 1){$cg1 += $zy;}
elsif($camp == 2){$cg2 += $zy;}
elsif($camp == 3){$cg3 += $zy;}
elsif($camp == 4){$cg4 += $zy;}
elsif($camp == 5){$cg5 += $zy;}
$log .= "$cmp[$camp] 의 국가 예산이 $zy 상승했다.<br>\n";
}elsif($lv >= 20 && !$cmd){#레벨이 20 이상이고 대상이 무소속일 때 (무소속 또는 국가->무소속)
$gold -=(15-$rank)*(int($lv/4))*8;
$log .= "국가 이적료로 금화 $zx를 지불합니다.<br>\n";
my $zy = $rank*(int($lv/10))*4;
if($camp == 1){$cg1 += $zy;}
elsif($camp == 2){$cg2 += $zy;}
elsif($camp == 3){$cg3 += $zy;}
elsif($camp == 4){$cg4 += $zy;}
elsif($camp == 5){$cg5 += $zy;}
$log .= "$cmp[$camp] 의 국가 예산이 $zy 상승했다.<br>\n";
}
$camp = $cmd;
#레벨에 따른 사관 시의 마이너스 수치
$rank-=($lv > 40)? int(rand(3))+3 : int(rand(4))+1;
$rank=1 if($rank<1);
$rank=0 if(!$camp);
$log .= "$cmp[$camp] (으)로 소속을 변경하여, $cl[$rank] 계급이 부여되었다.<br>\n";
$roku=$time;
$tm = $cmd = 0;
$type='';
&call_main_st;
}
}
&write_data;
}
1;