Translate application to Korean and convert encodings to UTF-8

This commit is contained in:
sanjeok77
2026-06-22 22:22:41 +09:00
parent dc9058e0da
commit f43e7fa915
61 changed files with 11582 additions and 11644 deletions
Regular → Executable
+172 -172
View File
@@ -1,172 +1,172 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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 ability{
if(!$type){
&abi_up_data;
$log .= "UA $va G UD $vd G LR $vl G AG $vg G<br>体力・精神を15000 G を使いそれぞれの能\力を上げます<br>\n";
$tm=0;
$type='能力';
&ability_menu;
}
&dat_write;
}
sub ability_menu{
# 能力コマンド
@st = ('やめる','HP-UP','MP-UP','UA-UP','UD-UP','LR-UP','AG-UP');
$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 .. $#st){ $log2 .= "<option value=$_>$st[$_]</option>\n";}
$log2 .=qq|</select><br>\n|;
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
}
#-------------------------------------------------------------------------------
# 能力処理
sub ability_exe{
if(!$tm){
&abi_up_data;
if($cmd<=0){
$log .= "止めておきます<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($cmd==1){
if($gold<15000){
$log .= "お金が足りません<br>\n";
$tm = $cmd = 0;
$type='';
&ability_menu;
}else{
$log .= "最大HPが3上がった<br>\n";
$max_hp+=3;
$gold-=15000;
$tm = $cmd = 0;
$type='';
&call_main_st;
}
}elsif($cmd==2){
if($gold<15000){
$log .= "お金が足りません<br>\n";
$tm = $cmd = 0;
$type='';
&ability_menu;
}else{
$log .= "最大MPが3上がった<br>\n";
$max_mp+=3;
$gold-=15000;
$tm = $cmd = 0;
$type='';
&call_main_st;
}
}elsif($cmd==3){
if($gold<$va){
$log .= "お金が足りません<br>\n";
$tm = $cmd = 0;
&ability_menu;
}else{
$log .= "攻撃力が1上がった<br>\n";
$ua++;
$gold-=$va;
$tm = $cmd = 0;
$type='';
&call_main_st;
}
}elsif($cmd==4){
if($gold<$vd){
$log .= "お金が足りません<br>\n";
$tm = $cmd = 0;
&ability_menu;
}else{
$log .= "防御力が1上がった<br>\n";
$ud++;
$gold-=$vd;
$tm = $cmd = 0;
$type='';
&call_main_st;
}
}elsif($cmd==5){
if($gold<$vl){
$log .= "お金が足りません<br>\n";
$tm = $cmd = 0;
&ability_menu;
}else{
$log .= "指揮力が1上がった<br>\n";
$lr++;
$gold-=$vl;
$tm = $cmd = 0;
$type='';
&call_main_st;
}
}elsif($cmd==6){
if($gold<$vg){
$log .= "お金が足りません<br>\n";
$tm = $cmd = 0;
&ability_menu;
}else{
$log .= "敏捷力が1上がった<br>\n";
$ag++;
$gold-=$vg;
$tm = $cmd = 0;
$type='';
&call_main_st;
}
}
}
&dat_write;
}
# 能力上昇値計算
sub abi_up_data{
$va=int($ua*$ua)*100;
$va=15000 if($va<15000);
$va=500000 if($va>500000);
$vd=int($ud*$ud)*100;
$vd=15000 if($vd<15000);
$vd=500000 if($vd>500000);
$vl=int($lr*$lr)*100;
$vl=30000 if($vl<30000);
$vl=500000 if($vl>500000);
$vg=int($ag*$ag)*100;
$vg=15000 if($vg<15000);
$vg=500000 if($vg>500000);
return ($va,$vd,$vl,$vg);
}
1;
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# 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 ability{
if(!$type){
&abi_up_data;
$log .= "UA $va G UD $vd G LR $vl G AG $vg G<br>체력·정신을 15000 G 사용하여 각각의 능력을 올립니다.<br>\n";
$tm=0;
$type='능력';
&ability_menu;
}
&dat_write;
}
sub ability_menu{
# 능력 커맨드
@st = ('그만둔다','HP-UP','MP-UP','UA-UP','UD-UP','LR-UP','AG-UP');
$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 .. $#st){ $log2 .= "<option value=$_>$st[$_]</option>\n";}
$log2 .=qq|</select><br>\n|;
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
}
#-------------------------------------------------------------------------------
# 능력 처리
sub ability_exe{
if(!$tm){
&abi_up_data;
if($cmd<=0){
$log .= "그만둡니다.<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($cmd==1){
if($gold<15000){
$log .= "돈이 부족합니다.<br>\n";
$tm = $cmd = 0;
$type='';
&ability_menu;
}else{
$log .= "최대 HP가 3 올랐다.<br>\n";
$max_hp+=3;
$gold-=15000;
$tm = $cmd = 0;
$type='';
&call_main_st;
}
}elsif($cmd==2){
if($gold<15000){
$log .= "돈이 부족합니다.<br>\n";
$tm = $cmd = 0;
$type='';
&ability_menu;
}else{
$log .= "최대 MP가 3 올랐다.<br>\n";
$max_mp+=3;
$gold-=15000;
$tm = $cmd = 0;
$type='';
&call_main_st;
}
}elsif($cmd==3){
if($gold<$va){
$log .= "돈이 부족합니다.<br>\n";
$tm = $cmd = 0;
&ability_menu;
}else{
$log .= "공격력이 1 올랐다.<br>\n";
$ua++;
$gold-=$va;
$tm = $cmd = 0;
$type='';
&call_main_st;
}
}elsif($cmd==4){
if($gold<$vd){
$log .= "돈이 부족합니다.<br>\n";
$tm = $cmd = 0;
&ability_menu;
}else{
$log .= "방어력이 1 올랐다.<br>\n";
$ud++;
$gold-=$vd;
$tm = $cmd = 0;
$type='';
&call_main_st;
}
}elsif($cmd==5){
if($gold<$vl){
$log .= "돈이 부족합니다.<br>\n";
$tm = $cmd = 0;
&ability_menu;
}else{
$log .= "지휘력이 1 올랐다.<br>\n";
$lr++;
$gold-=$vl;
$tm = $cmd = 0;
$type='';
&call_main_st;
}
}elsif($cmd==6){
if($gold<$vg){
$log .= "돈이 부족합니다.<br>\n";
$tm = $cmd = 0;
&ability_menu;
}else{
$log .= "민첩성이 1 올랐다.<br>\n";
$ag++;
$gold-=$vg;
$tm = $cmd = 0;
$type='';
&call_main_st;
}
}
}
&dat_write;
}
# 능력 상승치 계산
sub abi_up_data{
$va=int($ua*$ua)*100;
$va=15000 if($va<15000);
$va=500000 if($va>500000);
$vd=int($ud*$ud)*100;
$vd=15000 if($vd<15000);
$vd=500000 if($vd>500000);
$vl=int($lr*$lr)*100;
$vl=30000 if($vl<30000);
$vl=500000 if($vl>500000);
$vg=int($ag*$ag)*100;
$vg=15000 if($vg<15000);
$vg=500000 if($vg>500000);
return ($va,$vd,$vl,$vg);
}
1;
Regular → Executable
+150 -150
View File
@@ -1,150 +1,150 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# 表示 PC用パーツ1 Version 1.0 #
#--- [注意事項] --------------------------------------------#
# 1.このスクリプトは以下の利用規程に従って配布しています。 #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
# 通常表示用
sub layout_flag_0{
print <<EOM;
<table width="740" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top" width="540">
EOM
if($log){
print <<"EOM";
<table width="100%" border="0" cellspacing="4" cellpadding="10" height="100" bgcolor="#444466">
<tr>
<td bgcolor="#000000" align="left" valign="top">
<tt class="moji1">
$log
</tt>
</td>
</tr>
</table>
<br>
EOM
}
my @metu=('','()');
my $reset_time_out = int(($set-$time)/(3600*24));
print <<"EOM";
<table width="100%" border="0" cellspacing="4" cellpadding="4" bgcolor="#444466">
<tr>
<td bgcolor="#000000" align="center">
<tt class="moji1">
$bmes
</tt>
</td>
</tr>
</table>
<br>
<table width="100%" border="0" cellspacing="4" cellpadding="0" bgcolor="#444466">
<tr>
<td bgcolor="#000000" align="left" valign="top">
<!-- $rstで作っていた表示 -->
<table border=0 cellpadding=2 cellspacing=2 width=100% align=center>
<tr>
<td bgcolor=#CCCCFF width=72>&nbsp;</td>
<td bgcolor=$color[1] align=center width=92>$cmp[1]$metu[$ce1]</td>
<td bgcolor=$color[2] align=center width=92>$cmp[2]$metu[$ce2]</td>
<td bgcolor=$color[3] align=center width=92>$cmp[3]$metu[$ce3]</td>
<td bgcolor=$color[4] align=center width=92>$cmp[4]$metu[$ce4]</td>
<td bgcolor=$color[5] align=center width=92>$cmp[5]$metu[$ce5]</td>
</tr>
<tr>
<td bgcolor=#CCCCFF>総国力</td>
<td bgcolor=$color[1] align=center>$cn1</td>
<td bgcolor=$color[2] align=center>$cn2</td>
<td bgcolor=$color[3] align=center>$cn3</td>
<td bgcolor=$color[4] align=center>$cn4</td>
<td bgcolor=$color[5] align=center>$cn5</td>
</tr>
<tr>
<td bgcolor=#CCCCFF>国家\予\算</td>
<td bgcolor=$color[1] align=center>$cg1</td>
<td bgcolor=$color[2] align=center>$cg2</td>
<td bgcolor=$color[3] align=center>$cg3</td>
<td bgcolor=$color[4] align=center>$cg4</td>
<td bgcolor=$color[5] align=center>$cg5</td>
</tr>
<tr>
<td bgcolor=#CCCCFF>総兵糧</td>
<td bgcolor=$color[1] align=center>$cf1</td>
<td bgcolor=$color[2] align=center>$cf2</td>
<td bgcolor=$color[3] align=center>$cf3</td>
<td bgcolor=$color[4] align=center>$cf4</td>
<td bgcolor=$color[5] align=center>$cf5</td>
</tr>
<tr><td bgcolor=#CCCCFF>総兵士数</td>
<td bgcolor=$color[1] align=center>$cs1</td>
<td bgcolor=$color[2] align=center>$cs2</td>
<td bgcolor=$color[3] align=center>$cs3</td>
<td bgcolor=$color[4] align=center>$cs4</td>
<td bgcolor=$color[5] align=center>$cs5</td>
</tr>
<tr>
<td bgcolor=#CCCCFF>所属人数</td>
<td bgcolor=$color[1] align=center>$c1/$c1a</td>
<td bgcolor=$color[2] align=center>$c2/$c2a</td>
<td bgcolor=$color[3] align=center>$c3/$c3a</td>
<td bgcolor=$color[4] align=center>$c4/$c4a</td>
<td bgcolor=$color[5] align=center>$c5/$c5a</td>
</tr>
</table>
<!-- ここまで -->
</td>
</tr>
</table>
</td>
<td align="right" valign="top" width="190">
<table width="190" border="0" cellspacing="4" cellpadding="4" bgcolor="#444466" height="140">
<tr>
<td bgcolor="#000000" align="left" valign="top" class="moji2">
<div align="center">- System Infomation -</div>
<hr size="2" noshade color="#9999bb" width="100%">
&nbsp;&nbsp; $goal_no <br>
&nbsp;&nbsp;統一期限まで 後 $reset_time_out
</div>
</td>
</tr>
</table>
<br>
<table width="190" border="0" cellspacing="4" cellpadding="4" bgcolor="#444466">
<tr>
<td bgcolor="#000000" align="left" valign="top" class="moji2">
参加総数: $all_mem / $sanka人定員<br>
統一国力: $data_reset&nbsp;&nbsp;難易度: $reset_point
<hr size="2" noshade color="#9999bb"width=160>
前回の覇者: $hasya [$cmp[$hcamp]]
</td>
</tr>
</table>
</td>
</tr>
</table>
EOM
}
1;
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# 표시 PC용 파츠1 Version 1.0 #
#--- [주의사항] --------------------------------------------#
# 1.이 스크립트는 이하의 이용규정에 따라 배포되고 있습니다. #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
# 통상 표시용
sub layout_flag_0{
print <<EOM;
<table width="740" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top" width="540">
EOM
if($log){
print <<"EOM";
<table width="100%" border="0" cellspacing="4" cellpadding="10" height="100" bgcolor="#444466">
<tr>
<td bgcolor="#000000" align="left" valign="top">
<tt class="moji1">
$log
</tt>
</td>
</tr>
</table>
<br>
EOM
}
my @metu=('','(멸망)');
my $reset_time_out = int(($set-$time)/(3600*24));
print <<"EOM";
<table width="100%" border="0" cellspacing="4" cellpadding="4" bgcolor="#444466">
<tr>
<td bgcolor="#000000" align="center">
<tt class="moji1">
$bmes
</tt>
</td>
</tr>
</table>
<br>
<table width="100%" border="0" cellspacing="4" cellpadding="0" bgcolor="#444466">
<tr>
<td bgcolor="#000000" align="left" valign="top">
<!-- $rst로 만들었던 표시 -->
<table border=0 cellpadding=2 cellspacing=2 width=100% align=center>
<tr>
<td bgcolor=#CCCCFF width=72>&nbsp;</td>
<td bgcolor=$color[1] align=center width=92>$cmp[1]$metu[$ce1]</td>
<td bgcolor=$color[2] align=center width=92>$cmp[2]$metu[$ce2]</td>
<td bgcolor=$color[3] align=center width=92>$cmp[3]$metu[$ce3]</td>
<td bgcolor=$color[4] align=center width=92>$cmp[4]$metu[$ce4]</td>
<td bgcolor=$color[5] align=center width=92>$cmp[5]$metu[$ce5]</td>
</tr>
<tr>
<td bgcolor=#CCCCFF>총 국력</td>
<td bgcolor=$color[1] align=center>$cn1</td>
<td bgcolor=$color[2] align=center>$cn2</td>
<td bgcolor=$color[3] align=center>$cn3</td>
<td bgcolor=$color[4] align=center>$cn4</td>
<td bgcolor=$color[5] align=center>$cn5</td>
</tr>
<tr>
<td bgcolor=#CCCCFF>국가 예산</td>
<td bgcolor=$color[1] align=center>$cg1</td>
<td bgcolor=$color[2] align=center>$cg2</td>
<td bgcolor=$color[3] align=center>$cg3</td>
<td bgcolor=$color[4] align=center>$cg4</td>
<td bgcolor=$color[5] align=center>$cg5</td>
</tr>
<tr>
<td bgcolor=#CCCCFF>총 군량</td>
<td bgcolor=$color[1] align=center>$cf1</td>
<td bgcolor=$color[2] align=center>$cf2</td>
<td bgcolor=$color[3] align=center>$cf3</td>
<td bgcolor=$color[4] align=center>$cf4</td>
<td bgcolor=$color[5] align=center>$cf5</td>
</tr>
<tr><td bgcolor=#CCCCFF>총 병사 수</td>
<td bgcolor=$color[1] align=center>$cs1</td>
<td bgcolor=$color[2] align=center>$cs2</td>
<td bgcolor=$color[3] align=center>$cs3</td>
<td bgcolor=$color[4] align=center>$cs4</td>
<td bgcolor=$color[5] align=center>$cs5</td>
</tr>
<tr>
<td bgcolor=#CCCCFF>소속 인원</td>
<td bgcolor=$color[1] align=center>$c1/$c1a</td>
<td bgcolor=$color[2] align=center>$c2/$c2a</td>
<td bgcolor=$color[3] align=center>$c3/$c3a</td>
<td bgcolor=$color[4] align=center>$c4/$c4a</td>
<td bgcolor=$color[5] align=center>$c5/$c5a</td>
</tr>
</table>
<!-- 여기까지 -->
</td>
</tr>
</table>
</td>
<td align="right" valign="top" width="190">
<table width="190" border="0" cellspacing="4" cellpadding="4" bgcolor="#444466" height="140">
<tr>
<td bgcolor="#000000" align="left" valign="top" class="moji2">
<div align="center">- System Infomation -</div>
<hr size="2" noshade color="#9999bb" width="100%">
&nbsp;&nbsp; $goal_no <br>
&nbsp;&nbsp;통일 기한까지 남은 시간: $reset_time_out
</div>
</td>
</tr>
</table>
<br>
<table width="190" border="0" cellspacing="4" cellpadding="4" bgcolor="#444466">
<tr>
<td bgcolor="#000000" align="left" valign="top" class="moji2">
참가 총수: $all_mem / 정원 $sanka<br>
통일 국력: $data_reset&nbsp;&nbsp;난이도: $reset_point
<hr size="2" noshade color="#9999bb"width=160>
이전 패자: $hasya [$cmp[$hcamp]]
</td>
</tr>
</table>
</td>
</tr>
</table>
EOM
}
1;
Regular → Executable
+82 -82
View File
@@ -1,82 +1,82 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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 html{
local($shop_i);
$shop_i = qq|<a href=$script?id=$id&pw=$pw&cmd=20 accesskey="2">2.ショッピング</a>/| if(!$type && $cmd<=0);
print "Content-type: text/html; charset=shift_jis\n\n" ;
print qq|<html><head><meta http-equiv="Cache-Control" content="no-cache"><title>$titleh</title></head><body $body><center>|;
print qq|$title_i<br>| if(!$tm && !$log);
if($lt_mode =~ /00/){print qq|$log1<hr color=white>| if(!$tm && !$log)}
else{print qq|$log1<hr color=white>|;}
print qq|$log2<hr color=white>|;
print qq|$log<hr color=white>|;
if(!$type && $cmd<=0){
print qq|<a href="$index" accesskey="9">9.タイトル</a>/<a href="$park?id=$id&pw=$pw&camp=$camp&sogo=$sogo" accesskey="1">1.交流広場</a>/$shop_i<a href="$hist?id=$id&pw=$pw" accesskey="3">3.過去の栄光</a>/<a href="$public?id=$id&pw=$pw" accesskey="4">4.公式条約</a>/<a href="$campbbs?id=$id&pw=$pw" accesskey="5">5.作戦会議</a><hr color=white>| if($lt_mode =~ /01/);
print qq|$bmes<hr color=white>| if($lt_mode =~ /02/ && !$log);
print qq|$rst<hr color=white>| if($lt_mode =~ /03/ && !$log);
print qq|参加総数:$now_sanka/$sanka人定員//統一国力:$data_reset/難易度:$reset_point//前回の覇者: $hasya [$cmp[$hcamp]]<hr color=white>| if($lt_mode =~ /04/ && !$log);
print qq|現在の参加者<br>$now_nm| if($lt_mode =~ /05/ && !$log);
print qq|<br>$kakiko<br>| if($lt_mode =~ /06/ && !$log);
}else{
print qq|<a href="$index" accesskey="9">9.タイトル</a>/<a href="$park?id=$id&pw=$pw&camp=$camp&sogo=$sogo" accesskey="1">1.交流広場</a>/$shop_i<a href="$hist?id=$id&pw=$pw" accesskey="3">3.過去の栄光</a>/<a href="$public?id=$id&pw=$pw" accesskey="4">4.公式条約</a>/<a href="$campbbs?id=$id&pw=$pw" accesskey="5">5.作戦会議</a><hr color=white>| if($lt_mode =~ /11/);
print qq|$bmes<hr color=white>| if($lt_mode =~ /22/);
print qq|$rst<hr color=white>| if($lt_mode =~ /33/);
print qq|参加総数:$now_sanka/$sanka人定員//統一国力:$data_reset/難易度:$reset_point//前回の覇者: $hasya [$cmp[$hcamp]]<hr color=white>| if($lt_mode =~ /44/);
print qq|プレイ人数<br>$now_nm| if($lt_mode =~ /55/);
print qq|<br>$kakiko<br>| if($lt_mode =~ /66/);
}
}
#-------------------------------------------------------------------------------
#ステータス表示
sub status{
$log1.=<<EOM;
$nm<br>
LV$lv $gold\G<br>
HP$hp/$max_hp MP$mp/$max_mp<br>
UA$ua/UD$ud/LR$lr/AG$ag<br>
経験値$exe/$next_lv<br>
$cmp[$camp] $cl[$rank]<br>
部隊$g_p[$rank] 訓練度$sol_lv<br>
EOM
$log1.="称号[$sogo_p[$sogo]]<br>" if($sogo);
$log1.="[$dg_data[$dg_a][1]]/$dg_cnt<br>" if($dg_a && $dg_cnt);
$log1.="[$df_data[$df_a][1]]/$df_cnt<br>" if($df_a && $df_cnt);
$log1.="[$di_data[$di_a][1]]/$di_cnt<br>" if($di_a && $di_cnt);
my @metu=('','()');
$rst.=<<EOM;
$cmp[1]$metu[$ce1] 国力$cn1 予\算$cg1 兵糧$cf1 兵士$cs1 人数$c1/$c1a
<hr color=white>$cmp[2]$metu[$ce2] 国力$cn2 予\算$cg2 兵糧$cf2 兵士$cs2 人数$c2/$c2a
<hr color=white>$cmp[3]$metu[$ce3] 国力$cn3 予\算$cg3 兵糧$cf3 兵士$cs3 人数$c3/$c3a
<hr color=white>$cmp[4]$metu[$ce4] 国力$cn4 予\算$cg4 兵糧$cf4 兵士$cs4 人数$c4/$c4a
<hr color=white>$cmp[5]$metu[$ce5] 国力$cn5 予\算$cg5 兵糧$cf5 兵士$cs5 人数$c5/$c5a
<hr color=white>
EOM
}
1;#削除不可
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# 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 html{
local($shop_i);
$shop_i = qq|<a href=$script?id=$id&pw=$pw&cmd=20 accesskey="2">2. 쇼핑</a>/| if(!$type && $cmd<=0);
print "Content-type: text/html; charset=utf-8\n\n" ;
print qq|<html><head><meta http-equiv="Cache-Control" content="no-cache"><title>$titleh</title></head><body $body><center>|;
print qq|$title_i<br>| if(!$tm && !$log);
if($lt_mode =~ /00/){print qq|$log1<hr color=white>| if(!$tm && !$log)}
else{print qq|$log1<hr color=white>|;}
print qq|$log2<hr color=white>|;
print qq|$log<hr color=white>|;
if(!$type && $cmd<=0){
print qq|<a href="$index" accesskey="9">9. 타이틀</a>/<a href="$park?id=$id&pw=$pw&camp=$camp&sogo=$sogo" accesskey="1">1. 교류광장</a>/$shop_i<a href="$hist?id=$id&pw=$pw" accesskey="3">3. 과거의 영광</a>/<a href="$public?id=$id&pw=$pw" accesskey="4">4. 공식조약</a>/<a href="$campbbs?id=$id&pw=$pw" accesskey="5">5. 작전회의</a><hr color=white>| if($lt_mode =~ /01/);
print qq|$bmes<hr color=white>| if($lt_mode =~ /02/ && !$log);
print qq|$rst<hr color=white>| if($lt_mode =~ /03/ && !$log);
print qq|참가 총수:$now_sanka/$sanka명 정원//통일 국력:$data_reset/난이도:$reset_point//이전 패자: $hasya [$cmp[$hcamp]]<hr color=white>| if($lt_mode =~ /04/ && !$log);
print qq|현재 참가자<br>$now_nm| if($lt_mode =~ /05/ && !$log);
print qq|<br>$kakiko<br>| if($lt_mode =~ /06/ && !$log);
}else{
print qq|<a href="$index" accesskey="9">9. 타이틀</a>/<a href="$park?id=$id&pw=$pw&camp=$camp&sogo=$sogo" accesskey="1">1. 교류광장</a>/$shop_i<a href="$hist?id=$id&pw=$pw" accesskey="3">3. 과거의 영광</a>/<a href="$public?id=$id&pw=$pw" accesskey="4">4. 공식조약</a>/<a href="$campbbs?id=$id&pw=$pw" accesskey="5">5. 작전회의</a><hr color=white>| if($lt_mode =~ /11/);
print qq|$bmes<hr color=white>| if($lt_mode =~ /22/);
print qq|$rst<hr color=white>| if($lt_mode =~ /33/);
print qq|참가 총수:$now_sanka/$sanka명 정원//통일 국력:$data_reset/난이도:$reset_point//이전 패자: $hasya [$cmp[$hcamp]]<hr color=white>| if($lt_mode =~ /44/);
print qq|플레이 인원<br>$now_nm| if($lt_mode =~ /55/);
print qq|<br>$kakiko<br>| if($lt_mode =~ /66/);
}
}
#-------------------------------------------------------------------------------
# 스태터스 표시
sub status{
$log1.=<<EOM;
$nm<br>
LV$lv $gold\G<br>
HP$hp/$max_hp MP$mp/$max_mp<br>
UA$ua/UD$ud/LR$lr/AG$ag<br>
경험치$exe/$next_lv<br>
$cmp[$camp] $cl[$rank]<br>
부대$g_p[$rank] 훈련도$sol_lv<br>
EOM
$log1.="칭호[$sogo_p[$sogo]]<br>" if($sogo);
$log1.="[$dg_data[$dg_a][1]]/$dg_cnt<br>" if($dg_a && $dg_cnt);
$log1.="[$df_data[$df_a][1]]/$df_cnt<br>" if($df_a && $df_cnt);
$log1.="[$di_data[$di_a][1]]/$di_cnt<br>" if($di_a && $di_cnt);
my @metu=('','(멸망)');
$rst.=<<EOM;
$cmp[1]$metu[$ce1] 국력$cn1 예산$cg1 군량$cf1 병사$cs1 인원$c1/$c1a
<hr color=white>$cmp[2]$metu[$ce2] 국력$cn2 예산$cg2 군량$cf2 병사$cs2 인원$c2/$c2a
<hr color=white>$cmp[3]$metu[$ce3] 국력$cn3 예산$cg3 군량$cf3 병사$cs3 인원$c3/$c3a
<hr color=white>$cmp[4]$metu[$ce4] 국력$cn4 예산$cg4 군량$cf4 병사$cs4 인원$c4/$c4a
<hr color=white>$cmp[5]$metu[$ce5] 국력$cn5 예산$cg5 군량$cf5 병사$cs5 인원$c5/$c5a
<hr color=white>
EOM
}
1;#삭제 불가
Regular → Executable
+368 -368
View File
@@ -1,368 +1,368 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# PC用サブルーチン Version 1.1 #
#--- [注意事項] --------------------------------------------#
# 1.このスクリプトは以下の利用規程に従って配布しています。 #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
# 画面レイアウト
sub html{
# ヘッダー&圧縮転送有無
&content_type;
# マウス自動操作チート撃退 戦闘時に4/400 の確立で発動
my $no_mouse = ($no_mouse && $type eq '修行中') ? int(rand(400)) : 100 ;
print <<EOM;
<html>
<head>
<title>$titleh</title>
<link rel=stylesheet type="text/css" href="$css" title="style">
EOM
# Javascript自動操作チート防衛(frame取り込み防衛)
if($no_js){
print <<EOM;
<script language="javascript">
<!--
if(self!=top){
top.location = self.location;
}
//-->
</script>
EOM
}
print <<EOM;
</head>
<body $body class="bar">
<center>
<table width="740" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left">
$title
</td>
</tr>
</table>
<table width="740" border="0" cellspacing="0" cellpadding="0" height="300">
<tr>
<td align="center" valign="middle" width="500">
<table width="540" border="0" cellspacing="6" cellpadding="6" height="285" bgcolor="#444466">
<tr>
<td bgcolor="#000000" align="left" valign="top">
$log1
</td>
</tr>
</table>
</td>
<td align="right" valign="middle" width="200">
<table border="0" cellspacing="0" cellpadding="5" height="285">
<tr>
<form method="get" action="$index">
<td bgcolor="#000000" valign="middle">
<input type="submit" value="† タイトルへ戻る †" class="button1">
</td>
</form>
</tr>
EOM
if($no_mouse==0){
print qq|<tr>$log2</tr>|;
}
print<<EOM;
<tr>
<form method="$method" action="$park">
<td valilgn="middle">
<input type="hidden" name="id" value="$id">
<input type="hidden" name="pw" value="$pw">
<input type="hidden" name="camp" value="$camp">
<input type="hidden" name="sogo" value="$sogo">
<input type="submit" value="† 国際交流広場 †" class="button1">
</td>
</form>
</tr>
EOM
if($no_mouse==1){
print qq|<tr>$log2</tr>|;
}
print<<EOM;
<tr>
<form method="$method" action="$hist">
<td valilgn="middle">
<input type="hidden" name="id" value="$id">
<input type="hidden" name="pw" value="$pw">
<input type="submit" value="† 過去の栄光 †" class="button1">
</td>
</form>
</tr>
EOM
if(!$type && $cmd<=0){
print <<"EOM";
<tr>
<form method="$method" action="$script">
<td valilgn="middle">
<input type="hidden" name="id" value="$id">
<input type="hidden" name="pw" value="$pw">
<input type="hidden" name="cmd" value="20">
<input type="submit" value="† ショッピングモール †" class="button1">
</td>
</form>
</tr>
EOM
}
print <<"EOM";
<tr>
<form method="$method" action="$public">
<td valilgn="middle">
<input type="hidden" name="id" value="$id">
<input type="hidden" name="pw" value="$pw">
<input type="submit" value="† 公式条約 †" class="button1">
</td>
</form>
</tr>
EOM
if($no_mouse==2){
print qq|<tr>$log2</tr>|;
}
print<<EOM;
<tr>
<form method="$method" action="$campbbs">
<td>
<input type="hidden" name="id" value="$id">
<input type="hidden" name="pw" value="$pw">
<input type="submit" value="†各国作戦会議室†" class="button1">
</td>
</form>
</tr>
EOM
if($no_mouse>=3){
print qq|<tr>$log2</tr>|;
}
print<<EOM;
</table>
</td>
</tr>
</table>
<br>
EOM
my($uti, $sti, $cuti, $csti) = times();
$uti += $cuti;
$sti += $csti;
my($cpu) = $uti + $sti;
my $disp="CPUs($cpu): User($uti) System($sti)<br>";
if($layout_flag==1){
print <<EOM;
<table width="740" border="0" cellspacing="4" cellpadding="4" bgcolor="#444466">
<tr>
<td bgcolor="#000000" align="center" valign="top" height="120">
<tt class="moji1">
$log
</tt>
</td>
</tr>
</table>
<br><br>
EOM
}elsif(!$layout_flag){
require './inc/ore_sub-base-p1_pc.cgi';&layout_flag_0;
}
print <<"EOM";
$disp<br>
<br>
$kakiko
EOM
}
#-------------------------------------------------------------------------------
#ステータス表示
sub status{
&settei;#設定読み込み
my(
$hp_v,$hp_c,$hp_y,
$mp_v,$mp_c,$mp_y,
$ua_v,$ua_c,
$ud_v,$ud_c,
$lr_v,$lr_c,
);
#HPグラフ
if($max_hp <= 75){
$hp_v = $hp*2;
$hp_c = "#00bbff";
$hp_y = $max_hp*2-$hp*2;
}elsif($max_hp <= 300){
$hp_v = $hp;
$hp_c = "#0099ff";
$hp_y = $max_hp-$hp;
}elsif($max_hp <= 600){
$hp_v = int($hp/2);
$hp_c = "#0077ff";
$hp_y = int($max_hp/2-$hp/2);
}elsif($max_hp <= 1200){
$hp_v = int($hp/4);
$hp_c = "#0055ff";
$hp_y = int($max_hp/4-$hp/4);
}elsif($max_hp <= 2400){
$hp_v = int($hp/8);
$hp_c = "#0033ff";
$hp_y = int($max_hp/8-$hp/8);
}elsif($max_hp <= 4800){
$hp_v = int($hp/16);
$hp_c = "#0011ff";
$hp_y = int($max_hp/16-$hp/16);
}else{
$hp_v = int($hp/32);
$hp_c = "#0011ff";
$hp_y = int($max_hp/32-$hp/32);
}
#MPグラフ
if($max_mp <= 75){
$mp_v = $mp*2;
$mp_c = "#00ffcc";
$mp_y = $max_mp*2-$mp*2;
}elsif($max_mp <= 300){
$mp_v = $mp;
$mp_c = "#00ddcc";
$mp_y = $max_mp-$mp;
}elsif($max_mp <= 600){
$mp_v = int($mp/2);
$mp_c = "#00bbcc";
$mp_y = int($max_mp/2-$mp/2);
}elsif($max_mp <= 1200){
$mp_v = int($mp/4);
$mp_c = "#0099cc";
$mp_y = int($max_mp/4-$mp/4);
}elsif($max_mp <= 2400){
$mp_v = int($mp/8);
$mp_c = "#0077cc";
$mp_y = int($max_mp/8-$mp/8);
}elsif($max_mp <= 4800){
$mp_v = int($mp/16);
$mp_c = "#0055cc";
$mp_y = int($max_mp/16-$mp/16);
}else{
$mp_v = int($mp/32);
$mp_c = "#0033cc";
$mp_y = int($max_mp/32-$mp/32);
}
#UAグラフ
if($ua <= 25){
$ua_v = $ua*4;
$ua_c = "#99ccff";
}elsif($ua <= 50){
$ua_v = $ua*2;
$ua_c = "#9999ff";
}elsif($ua <= 100){
$ua_v = $ua;
$ua_c = "#9966ff";
}elsif($ua <= 500){
$ua_v = int($ua/2);
$ua_c = "#9933ff";
}else{
$ua_v = int($ua/4);
$ua_c = "#9900ff";
}
#UDグラフ
if($ud <= 25){
$ud_v = $ud*4;
$ud_c = "#33ffff";
}elsif($ud <= 50){
$ud_v = $ud*2;
$ud_c = "#33ccff";
}elsif($ud <= 100){
$ud_v = $ud;
$ud_c = "#3399ff";
}elsif($ud <= 500){
$ud_v = int($ud/2);
$ud_c = "#3366ff";
}else{
$ud_v = int($ud/4);
$ud_c = "#3333ff";
}
#LRグラフ
if($lr <= 25){
$lr_v = $lr*4;
$lr_c = "#ccccff";
}elsif($lr <= 50){
$lr_v = $lr*2;
$lr_c = "#cc99ff";
}elsif($lr <= 100){
$lr_v = $lr;
$lr_c = "#cc66ff";
}elsif($lr <= 500){
$lr_v = int($lr/2);
$lr_c = "#cc33ff";
}else{
$lr_v = int($lr/4);
$lr_c = "#cc00ff";
}
#LRグラフ
if($ag <= 25){
$ag_v = $ag*4;
$ag_c = "#ccccff";
}elsif($ag <= 50){
$ag_v = $ag*2;
$ag_c = "#cc99ff";
}elsif($ag <= 100){
$ag_v = $ag;
$ag_c = "#cc66ff";
}elsif($ag <= 500){
$ag_v = int($ag/2);
$ag_c = "#cc33ff";
}else{
$ag_v = int($ag/4);
$ag_c = "#cc00ff";
}
$hp_y = (!$hp_y) ? "" : "<img src=\"$imgs/spc.gif\" height=\"8\" width=\"$hp_y\" style=\"background-color:#555555\">";
$mp_y = (!$mp_y) ? "" : "<img src=\"$imgs/spc.gif\" height=\"8\" width=\"$mp_y\" style=\"background-color:#555555\">";
$ua_y = (!$dg_a) ? "" : "<img src=\"$imgs/spc.gif\" height=\"8\" width=\"$dg_data[$dg_a][4]\" style=\"background-color:#6666cc\">";
$ud_y = (!$df_a) ? "" : "<img src=\"$imgs/spc.gif\" height=\"8\" width=\"$df_data[$df_a][4]\" style=\"background-color:#6666cc\">";
$log1.=<<EOM;
<tt class="moji1">
<b>$nm</b>   <span style="font-size:12px">$seibetu[$sei]</span>&nbsp;&nbsp;&nbsp;&nbsp;ID: $id<br>
レベル <b>$lv</b> 階 級 <b>$cl[$rank]</b> 称 号 [<b>$sogo_p[$sogo]</b>]<br>
<br>
体 力[HP] <img src="$imgs/spc.gif" height="8" width="$hp_v" style="background-color:$hp_c">$hp_y $hp/$max_hp<br>
魔 力[MP] <img src="$imgs/spc.gif" height="8" width="$mp_v" style="background-color:$mp_c">$mp_y $mp/$max_mp<br>
攻撃力[UA] <img src="$imgs/spc.gif" height="8" width="$ua_v" style="background-color:$ua_c">$ua_y $ua +$dg_data[$dg_a][4]<br>
防御力[UD] <img src="$imgs/spc.gif" height="8" width="$ud_v" style="background-color:$ud_c">$ud_y $ud +$df_data[$df_a][4]<br>
指揮力[LR] <img src="$imgs/spc.gif" height="8" width="$lr_v" style="background-color:$lr_c"> $lr<br>
敏捷力[AG] <img src="$imgs/spc.gif" height="8" width="$ag_v" style="background-color:$ag_c"> $ag<br>
<br>
資 金 <b>$gold</b> 経験値 <b>$exe/$next_lv</b> 貢献値 <b>$rank_exe</b><br>
<br>
所 属 <b>$cmp[$camp]</b> 部 隊 <b>$g_p[$rank]</b> 訓練度 <b>$sol_lv</b><br>
<br>
武 具 [<b>$dg_data[$dg_a][1]</b>] 回数 [<b>$dg_cnt</b>]<br>
防 具 [<b>$df_data[$df_a][1]</b>] 回数 [<b>$df_cnt</b>]<br>
道 具 [<b>$di_data[$di_a][1]</b>] 回数 [<b>$di_cnt</b>]
</tt>
EOM
}
1;#削除不可
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# PC용 서브루틴 Version 1.1 #
#--- [주의사항] --------------------------------------------#
# 1.이 스크립트는 이하의 이용규정에 따라 배포되고 있습니다. #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
# 화면 레이아웃
sub html{
# 헤더 & 압축 전송 유무
&content_type;
# 마우스 자동 조작 치트 격퇴 전투 시에 4/400 확률로 발동
my $no_mouse = ($no_mouse && $type eq '수행중') ? int(rand(400)) : 100 ;
print <<EOM;
<html>
<head>
<title>$titleh</title>
<link rel=stylesheet type="text/css" href="$css" title="style">
EOM
# Javascript 자동 조작 치트 방어(frame 방어)
if($no_js){
print <<EOM;
<script language="javascript">
<!--
if(self!=top){
top.location = self.location;
}
//-->
</script>
EOM
}
print <<EOM;
</head>
<body $body class="bar">
<center>
<table width="740" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left">
$title
</td>
</tr>
</table>
<table width="740" border="0" cellspacing="0" cellpadding="0" height="300">
<tr>
<td align="center" valign="middle" width="500">
<table width="540" border="0" cellspacing="6" cellpadding="6" height="285" bgcolor="#444466">
<tr>
<td bgcolor="#000000" align="left" valign="top">
$log1
</td>
</tr>
</table>
</td>
<td align="right" valign="middle" width="200">
<table border="0" cellspacing="0" cellpadding="5" height="285">
<tr>
<form method="get" action="$index">
<td bgcolor="#000000" valign="middle">
<input type="submit" value="† 타이틀로 돌아가기 †" class="button1">
</td>
</form>
</tr>
EOM
if($no_mouse==0){
print qq|<tr>$log2</tr>|;
}
print<<EOM;
<tr>
<form method="$method" action="$park">
<td valilgn="middle">
<input type="hidden" name="id" value="$id">
<input type="hidden" name="pw" value="$pw">
<input type="hidden" name="camp" value="$camp">
<input type="hidden" name="sogo" value="$sogo">
<input type="submit" value="† 국제 교류 광장 †" class="button1">
</td>
</form>
</tr>
EOM
if($no_mouse==1){
print qq|<tr>$log2</tr>|;
}
print<<EOM;
<tr>
<form method="$method" action="$hist">
<td valilgn="middle">
<input type="hidden" name="id" value="$id">
<input type="hidden" name="pw" value="$pw">
<input type="submit" value="† 과거의 영광 †" class="button1">
</td>
</form>
</tr>
EOM
if(!$type && $cmd<=0){
print <<"EOM";
<tr>
<form method="$method" action="$script">
<td valilgn="middle">
<input type="hidden" name="id" value="$id">
<input type="hidden" name="pw" value="$pw">
<input type="hidden" name="cmd" value="20">
<input type="submit" value="† 쇼핑몰 †" class="button1">
</td>
</form>
</tr>
EOM
}
print <<"EOM";
<tr>
<form method="$method" action="$public">
<td valilgn="middle">
<input type="hidden" name="id" value="$id">
<input type="hidden" name="pw" value="$pw">
<input type="submit" value="† 공식 조약 †" class="button1">
</td>
</form>
</tr>
EOM
if($no_mouse==2){
print qq|<tr>$log2</tr>|;
}
print<<EOM;
<tr>
<form method="$method" action="$campbbs">
<td>
<input type="hidden" name="id" value="$id">
<input type="hidden" name="pw" value="$pw">
<input type="submit" value="† 국가별 작전 회의실 †" class="button1">
</td>
</form>
</tr>
EOM
if($no_mouse>=3){
print qq|<tr>$log2</tr>|;
}
print<<EOM;
</table>
</td>
</tr>
</table>
<br>
EOM
my($uti, $sti, $cuti, $csti) = times();
$uti += $cuti;
$sti += $csti;
my($cpu) = $uti + $sti;
my $disp="CPUs($cpu): User($uti) System($sti)<br>";
if($layout_flag==1){
print <<EOM;
<table width="740" border="0" cellspacing="4" cellpadding="4" bgcolor="#444466">
<tr>
<td bgcolor="#000000" align="center" valign="top" height="120">
<tt class="moji1">
$log
</tt>
</td>
</tr>
</table>
<br><br>
EOM
}elsif(!$layout_flag){
require './inc/ore_sub-base-p1_pc.cgi';&layout_flag_0;
}
print <<"EOM";
$disp<br>
<br>
$kakiko
EOM
}
#-------------------------------------------------------------------------------
#스태터스 표시
sub status{
&settei;#설정 읽기
my(
$hp_v,$hp_c,$hp_y,
$mp_v,$mp_c,$mp_y,
$ua_v,$ua_c,
$ud_v,$ud_c,
$lr_v,$lr_c,
);
#HP 그래프
if($max_hp <= 75){
$hp_v = $hp*2;
$hp_c = "#00bbff";
$hp_y = $max_hp*2-$hp*2;
}elsif($max_hp <= 300){
$hp_v = $hp;
$hp_c = "#0099ff";
$hp_y = $max_hp-$hp;
}elsif($max_hp <= 600){
$hp_v = int($hp/2);
$hp_c = "#0077ff";
$hp_y = int($max_hp/2-$hp/2);
}elsif($max_hp <= 1200){
$hp_v = int($hp/4);
$hp_c = "#0055ff";
$hp_y = int($max_hp/4-$hp/4);
}elsif($max_hp <= 2400){
$hp_v = int($hp/8);
$hp_c = "#0033ff";
$hp_y = int($max_hp/8-$hp/8);
}elsif($max_hp <= 4800){
$hp_v = int($hp/16);
$hp_c = "#0011ff";
$hp_y = int($max_hp/16-$hp/16);
}else{
$hp_v = int($hp/32);
$hp_c = "#0011ff";
$hp_y = int($max_hp/32-$hp/32);
}
#MP 그래프
if($max_mp <= 75){
$mp_v = $mp*2;
$mp_c = "#00ffcc";
$mp_y = $max_mp*2-$mp*2;
}elsif($max_mp <= 300){
$mp_v = $mp;
$mp_c = "#00ddcc";
$mp_y = $max_mp-$mp;
}elsif($max_mp <= 600){
$mp_v = int($mp/2);
$mp_c = "#00bbcc";
$mp_y = int($max_mp/2-$mp/2);
}elsif($max_mp <= 1200){
$mp_v = int($mp/4);
$mp_c = "#0099cc";
$mp_y = int($max_mp/4-$mp/4);
}elsif($max_mp <= 2400){
$mp_v = int($mp/8);
$mp_c = "#0077cc";
$mp_y = int($max_mp/8-$mp/8);
}elsif($max_mp <= 4800){
$mp_v = int($mp/16);
$mp_c = "#0055cc";
$mp_y = int($max_mp/16-$mp/16);
}else{
$mp_v = int($mp/32);
$mp_c = "#0033cc";
$mp_y = int($max_mp/32-$mp/32);
}
#UA 그래프
if($ua <= 25){
$ua_v = $ua*4;
$ua_c = "#99ccff";
}elsif($ua <= 50){
$ua_v = $ua*2;
$ua_c = "#9999ff";
}elsif($ua <= 100){
$ua_v = $ua;
$ua_c = "#9966ff";
}elsif($ua <= 500){
$ua_v = int($ua/2);
$ua_c = "#9933ff";
}else{
$ua_v = int($ua/4);
$ua_c = "#9900ff";
}
#UD 그래프
if($ud <= 25){
$ud_v = $ud*4;
$ud_c = "#33ffff";
}elsif($ud <= 50){
$ud_v = $ud*2;
$ud_c = "#33ccff";
}elsif($ud <= 100){
$ud_v = $ud;
$ud_c = "#3399ff";
}elsif($ud <= 500){
$ud_v = int($ud/2);
$ud_c = "#3366ff";
}else{
$ud_v = int($ud/4);
$ud_c = "#3333ff";
}
#LR 그래프
if($lr <= 25){
$lr_v = $lr*4;
$lr_c = "#ccccff";
}elsif($lr <= 50){
$lr_v = $lr*2;
$lr_c = "#cc99ff";
}elsif($lr <= 100){
$lr_v = $lr;
$lr_c = "#cc66ff";
}elsif($lr <= 500){
$lr_v = int($lr/2);
$lr_c = "#cc33ff";
}else{
$lr_v = int($lr/4);
$lr_c = "#cc00ff";
}
#AG 그래프
if($ag <= 25){
$ag_v = $ag*4;
$ag_c = "#ccccff";
}elsif($ag <= 50){
$ag_v = $ag*2;
$ag_c = "#cc99ff";
}elsif($ag <= 100){
$ag_v = $ag;
$ag_c = "#cc66ff";
}elsif($ag <= 500){
$ag_v = int($ag/2);
$ag_c = "#cc33ff";
}else{
$ag_v = int($ag/4);
$ag_c = "#cc00ff";
}
$hp_y = (!$hp_y) ? "" : "<img src=\"$imgs/spc.gif\" height=\"8\" width=\"$hp_y\" style=\"background-color:#555555\">";
$mp_y = (!$mp_y) ? "" : "<img src=\"$imgs/spc.gif\" height=\"8\" width=\"$mp_y\" style=\"background-color:#555555\">";
$ua_y = (!$dg_a) ? "" : "<img src=\"$imgs/spc.gif\" height=\"8\" width=\"$dg_data[$dg_a][4]\" style=\"background-color:#6666cc\">";
$ud_y = (!$df_a) ? "" : "<img src=\"$imgs/spc.gif\" height=\"8\" width=\"$df_data[$df_a][4]\" style=\"background-color:#6666cc\">";
$log1.=<<EOM;
<tt class="moji1">
<b>$nm</b>   <span style="font-size:12px">$seibetu[$sei]</span>&nbsp;&nbsp;&nbsp;&nbsp;ID: $id<br>
레벨 <b>$lv</b> 계 급 <b>$cl[$rank]</b> 칭 호 [<b>$sogo_p[$sogo]</b>]<br>
<br>
체 력[HP] <img src="$imgs/spc.gif" height="8" width="$hp_v" style="background-color:$hp_c">$hp_y $hp/$max_hp<br>
마 력[MP] <img src="$imgs/spc.gif" height="8" width="$mp_v" style="background-color:$mp_c">$mp_y $mp/$max_mp<br>
공격력[UA] <img src="$imgs/spc.gif" height="8" width="$ua_v" style="background-color:$ua_c">$ua_y $ua +$dg_data[$dg_a][4]<br>
방어력[UD] <img src="$imgs/spc.gif" height="8" width="$ud_v" style="background-color:$ud_c">$ud_y $ud +$df_data[$df_a][4]<br>
지휘력[LR] <img src="$imgs/spc.gif" height="8" width="$lr_v" style="background-color:$lr_c"> $lr<br>
민첩성[AG] <img src="$imgs/spc.gif" height="8" width="$ag_v" style="background-color:$ag_c"> $ag<br>
<br>
자 금 <b>$gold</b> 경험치 <b>$exe/$next_lv</b> 공헌도 <b>$rank_exe</b><br>
<br>
소 속 <b>$cmp[$camp]</b> 부 대 <b>$g_p[$rank]</b> 훈련도 <b>$sol_lv</b><br>
<br>
무 기 [<b>$dg_data[$dg_a][1]</b>] 횟수 [<b>$dg_cnt</b>]<br>
방 어구 [<b>$df_data[$df_a][1]</b>] 횟수 [<b>$df_cnt</b>]<br>
도 구 [<b>$di_data[$di_a][1]</b>] 횟수 [<b>$di_cnt</b>]
</tt>
EOM
}
1;#삭제 불가
Regular → Executable
+1109 -1109
View File
File diff suppressed because it is too large Load Diff
Regular → Executable
+287 -305
View File
@@ -1,305 +1,287 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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/ #
#-----------------------------------------------------------#
#===============================================================================
# 各種掲示板共通設定項目
require './jcode.pl'; # jcode.plのパス
$ore_game = './ore_.cgi'; # 罪と罰++本体のパス
$index = './index.cgi'; # 罪と罰++トップページ
$usrdata = "./usrdata/"; # キャラデータ格納ディレクトリ。
$no_window = 1; # 現状維持・拘束時間以外の他窓禁止(0:なし 1:あり)[負荷対策]
# 各国設定情報
@camp_info =( ['無所属', '#eeeeee'],
['アルメリア王国', '#ee9999'],
['フラリン教国', '#00eeee'],
['イギス連合国', '#88ee88'],
['ソーディナ帝国', '#ffccff'],
['ヤマト神国', '#55bbff']);
# 称号
@sogo_p =('----','覇者','英雄','借金王','鬼畜',' ',' ',' ',' ',' ','管理人');
# デバックモード
# なし:PC・モバイル両対応
# pc :PC限定モード(モバイル非対応)
# mv :モバイル固定モード(PC上でモバイル画面をエミュレート表示)
$mv_mode = '';
# 機種別設定
if( $ENV{'HTTP_USER_AGENT'}=~/DoCoMo/ ||
$ENV{'HTTP_USER_AGENT'}=~/UP\.Browser/ ||
$ENV{'HTTP_USER_AGENT'}=~/J-PHONE/ ||
$ENV{'HTTP_USER_AGENT'}=~/ASTEL/ ||
$ENV{'HTTP_X_JPHONE_MSNAME'} || $mv_mode eq 'mv'){
$mv_mode= 'mv'; # モバイル用フラグ(変更不可)
$method = "GET"; # フォームメソッド(モバイル)
}else{
$mv_mode= 'pc'; # PC用フラグ(変更不可)
$method = "POST"; # フォームメソッド(PC)
# スタイルシート
$css =<<EOM;
<style type="text/css">
<!--
.button1{
font-family: "MS Pゴシック", "Osaka"; font-size: 12px; font-weight: 400; color: #bbbbcc;
border: 2px #9999cc ridge; cursor: hand; background-color: #333366;
}
body { font-size: 12pt;}
.mem { font-size: 10pt; color:#ddddee}
.date { font-size: 10pt; color:#dddddd}
.f1{font-size:16pt; font-family:'Symbol','Palatino'; color:#ff99cc;}
-->
</style>
EOM
}
# ホスト名取得モード
# --> 0 : $ENV{'REMOTE_HOST'} で取得できる場合
# --> 1 : gethostbyaddr で取得できる場合
$get_remotehost = 1;
# 他サイトから投稿排除時に指定 (http://から書く)
$base_url = "";
# アクセス制限(ホスト名もしくはIPアドレスを記述)
@deny = (
"anonymizer.com",
"cache*.*.interlog.com",
"",
""
);
#===============================================================================
# 以下処理 基本的にこれ以下はいじらないように。
#-------------------------------------------------------------------------------
# 参加者データ個別読み込み
sub mandata_open{
open(IN,"$usrdata$id\.cgi") || &error("Open Error : $usrdata$id\.cgi");
$dat = <IN>;
close(IN);
%DAT = '';
my @prats = split(/,/,$dat);
foreach (0 .. $#prats){
my($key,$v) = split(/;/,$prats[$_]);
$DAT{$key} = $v;
}
if($pw ne $DAT{'pw'}){ &error("パスワードが間違ってます"); }
if($no_window){
&error("現在のイベントを終了してからご利用ください。") if($DAT{'pr'}<=0 && $DAT{'type'});
}
}
#-------------------------------------------------------------------------------
# デコード処理
sub decode {
local($buffer, @pairs, $name, $value);
$post_flag=0;
if($ENV{'REQUEST_METHOD'} eq "POST"){
$post_flag=1;
&error("投稿量が大きすぎます") if($ENV{'CONTENT_LENGTH'}>8192);
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}else{
$buffer = $ENV{'QUERY_STRING'};
&error("投稿量が大きすぎます") if(length($buffer)>7500)
}
@pairs = split(/&/, $buffer);
foreach (@pairs) {
($name,$value) = split(/=/);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# 文字コードをシフトJIS変換
&jcode'convert(*value, "sjis", "", "z");
$value =~ s/\&/&amp\;/g;
$value =~ s/\;/&#59\;/g;
$value =~ s/\,/&#44\;/g;
# タグ処理
if ($tagkey) {
$value =~ s/<!--(.|\n)*-->//g;
$value =~ s/<>/&lt;&gt;/g;
} else {
$value =~ s/</&lt;/g;
$value =~ s/>/&gt;/g;
$value =~ s/\"/&quot;/g;
}
# 改行等処理
if ($name eq "comment" && $br_mode) {
$value =~ s/\r\n/<br>/g;
$value =~ s/\r/<br>/g;
$value =~ s/\n/<br>/g;
} else {
$value =~ s/\r//g;
$value =~ s/\n//g;
}
# 荒らし処理 1
$value =~ s/(<br>){4,}//g;
$value =~ s/( | ){6,}//g;
# 記号置換え
$value =~ s/\//&#47\;/g;
$value =~ s/\./&#46\;/g;
$value =~ s/cgi/&#99\;&#103\;&#105\;/g;
$in{$name} = $value;
}
&no_link($in{'comment'}) if($nolink);
$com = $in{'comment'}; if(length($in{'comment'})>$com_limit) { &error("文字数エラーです 1"); }
$mode = $in{'mode'}; if(length($in{'mode'})>10) { &error("文字数エラーです 2"); }
$pw = $in{'pw'}; if(length($in{'pw'})>8 || !$in{'pw'}) { &error("文字数エラーです 3"); }
$id = $in{'id'}; if(length($in{'id'})>24 || !$in{'id'}) { &error("文字数エラーです 4"); }
$ids = $in{'ids'}; if(length($in{'ids'})>12) { &error("文字数エラーです 5"); }
$rd = $in{'rd'}; if(length($in{'rd'})>1) { &error("文字数エラーです 6"); }
if ($base_url) {
$ref_url = $ENV{'HTTP_REFERER'};
$ref_url =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
if ($ref_url !~ /$base_url/i) { &error("不正なアクセスです"); }
}
}
#-------------------------------------------------------------------------------
# エラー処理
sub error {
if (-e $lockfile) { unlink($lockfile); }
&header(1);
print "<center><hr width='75%'><P><h3>ERROR !</h3>\n";
print "<P><font color=red><B>$_[0]</B></font>\n";
print "<P><hr width='75%'></center>\n";
&copyright;
exit;
}
#-------------------------------------------------------------------------------
# ロックファイルの生成
sub lock {
local($lflag) = 0;
foreach (1 .. 5) {
if (-e $lockfile) { sleep(1); }
else {
open(LOCK,">$lockfile") || &error("Can't create $lockfile");
close(LOCK);
$lflag = 1;
last;
}
}
if ($lflag == 0) { &error("LOCK is BUSY"); }
}
#-------------------------------------------------------------------------------
# アクセスチェック(アクセス拒否)
sub axs_check {
&get_host;
local($flag)=0;
foreach (@deny) {
if (!$_) { next; }
$_ =~ s/\*/\.\*/g;
if ($host =~ /$_/i || $addr =~ /$_/i) { $flag=1; last; }
}
if ($flag) { &error("アクセスを許可されていません"); }
}
#-------------------------------------------------------------------------------
# ホスト情報取得
sub get_host {
$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};
$agent = $ENV{'HTTP_USER_AGENT'};
if ($get_remotehost) {
if ($host eq "" || $host eq "$addr") {
$host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2);
}
}
if ($host eq "") { $host = $addr; }
}
#-------------------------------------------------------------------------------
# 時間取得
sub get_time {
$time = time;
($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime($time);
$hour= "0$hour" if($hour<10);
$min = "0$min" if($min<10);
$sec = "0$sec" if($sec<10);
$month++;
$month = "0$month" if(month<10);
@week=('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
$date = "$month/$mday($week[$wday]) $hour:$min";
srand($time);
}
#-------------------------------------------------------------------------------
# プレイ規制
sub safetime {
foreach (0 .. $#safetime){
&error("プレイ規制時間中です。暫くお待ち下さい。") if $hour eq $safetime[$_];
}
}
#-------------------------------------------------------------------------------
# URL排除
sub no_link {
$_[0] =~ s/([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+)/$1<!-- $2 -->/g;
}
#-------------------------------------------------------------------------------
# 削除変更不可 必ず表示すること
#著作権表示(削除・変更不可)
sub copyright{
if($mv_mode eq 'mv'){
print <<"EOM";
<br><hr color="white">
過去の栄光 $ver<br>
<a href="http://pom.to/" target="_blank">BLANK BOARD[ねっと遊園地♪]</a>
</body>
</html>
EOM
}else{
print <<"EOM";
<div align="right" style="font-size:12px">
$ver<br>
<a href="http://www17.big.or.jp/~obochan/vivid/" target="_blank" style="font-size:13px">Vivid Studio.</a><br>
<a href="http://pom.to/" target="_blank" style="font-size:11px">BLANK BOARD[ねっと遊園地♪]</a>
</div>
</body>
</html>
EOM
}
}
1;#削除不可
$index = './index.cgi'; # 죄와 벌++ 탑 페이지
$usrdata = "./usrdata/"; # 캐릭터 데이터 보관 디렉터리.
$no_window = 1; # 현상유지·구속시간 이외의 다른 창 금지(0:없음 1:있음)[부하 방지 대책]
# 각국 설정 정보
@camp_info =( ['무소속', '#eeeeee'],
['알메리아 왕국', '#ee9999'],
['플라린 교국', '#00eeee'],
['이기스 연합국', '#88ee88'],
['소디나 제국', '#ffccff'],
['야마토 신국', '#55bbff']);
# 칭호
@sogo_p =('----','패자','영웅','빚쟁이 왕','귀축',' ',' ',' ',' ',' ','관리자');
# 디버그 모드
# 없음: PC·모바일 양쪽 대응
# pc : PC 한정 모드(모바일 미대응)
# mv : 모바일 고정 모드(PC상에서 모바일 화면을 에뮬레이트 표시)
$mv_mode = '';
# 기기별 설정
if( $ENV{'HTTP_USER_AGENT'}=~/DoCoMo/ ||
$ENV{'HTTP_USER_AGENT'}=~/UP\.Browser/ ||
$ENV{'HTTP_USER_AGENT'}=~/J-PHONE/ ||
$ENV{'HTTP_USER_AGENT'}=~/ASTEL/ ||
$ENV{'HTTP_X_JPHONE_MSNAME'} || $mv_mode eq 'mv'){
$mv_mode= 'mv'; # 모바일용 플래그(변경 불가)
$method = "GET"; # 폼 메서드(모바일)
}else{
$mv_mode= 'pc'; # PC용 플래그(변경 불가)
$method = "POST"; # 폼 메서드(PC)
# 스타일 시트
$css =<<EOM;
<style type="text/css">
<!--
.button1{
font-family: "MS Pゴシック", "Osaka"; font-size: 12px; font-weight: 400; color: #bbbbcc;
border: 2px #9999cc ridge; cursor: hand; background-color: #333366;
}
body { font-size: 12pt;}
.mem { font-size: 10pt; color:#ddddee}
.date { font-size: 10pt; color:#dddddd}
.f1{font-size:16pt; font-family:'Symbol','Palatino'; color:#ff99cc;}
-->
</style>
EOM
}
# 호スト名取得モード
# --> 0 : $ENV{'REMOTE_HOST'} で取得できる場合
# --> 1 : gethostbyaddr で取得できる場合
$get_remotehost = 1;
# 다른 사이트로부터의 투고 배제 시에 지정 (http://부터 작성)
$base_url = "";
# 액세스 제한(호스트명 또는 IP 주소 기술)
@deny = (
"anonymizer.com",
"cache*.*.interlog.com",
"",
""
);
#===============================================================================
# 이하 처리 기본적으로 이 이하는 수정하지 않도록.
#-------------------------------------------------------------------------------
# 참가자 데이터 개별 읽기
sub mandata_open{
open(IN,"$usrdata$id\.cgi") || &error("Open Error : $usrdata$id\.cgi");
$dat = <IN>;
close(IN);
%DAT = '';
my @prats = split(/,/,$dat);
foreach (0 .. $#prats){
my($key,$v) = split(/;/,$prats[$_]);
$DAT{$key} = $v;
}
if($pw ne $DAT{'pw'}){ &error("비밀번호가 틀렸습니다"); }
if($no_window){
&error("현재 이벤트를 종료한 후에 이용해 주십시오.") if($DAT{'pr'}<=0 && $DAT{'type'});
}
}
#-------------------------------------------------------------------------------
# 디코드 처리
sub decode {
local($buffer, @pairs, $name, $value);
$post_flag=0;
if($ENV{'REQUEST_METHOD'} eq "POST"){
$post_flag=1;
&error("투고량이 너무 많습니다") if($ENV{'CONTENT_LENGTH'}>8192);
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}else{
$buffer = $ENV{'QUERY_STRING'};
&error("투고량이 너무 많습니다") if(length($buffer)>7500)
}
@pairs = split(/&/, $buffer);
foreach (@pairs) {
($name,$value) = split(/=/);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# 문자 코드를 Shift_JIS 변환
# &jcode'convert(*value, "sjis", "", "z");
$value =~ s/\&/&amp\;/g;
$value =~ s/\;/&#59\;/g;
$value =~ s/\,/&#44\;/g;
# 태그 처리
if ($tagkey) {
$value =~ s/<!--(.|\n)*-->//g;
$value =~ s/<>/&lt;&gt;/g;
} else {
$value =~ s/</&lt;/g;
$value =~ s/>/&gt;/g;
$value =~ s/\"/&quot;/g;
}
# 개행 등 처리
if ($name eq "comment" && $br_mode) {
$value =~ s/\r\n/<br>/g;
$value =~ s/\r/<br>/g;
$value =~ s/\n/<br>/g;
} else {
$value =~ s/\r//g;
$value =~ s/\n//g;
}
# 도배 처리 1
$value =~ s/(<br>){4,}//g;
$value =~ s/( | ){6,}//g;
# 기호 교체
$value =~ s/\//&#47\;/g;
$value =~ s/\./&#46\;/g;
$value =~ s/cgi/&#99\;&#103\;&#105\;/g;
$in{$name} = $value;
}
&no_link($in{'comment'}) if($nolink);
$com = $in{'comment'}; if(length($in{'comment'})>$com_limit) { &error("글자 수 에러입니다 1"); }
$mode = $in{'mode'}; if(length($in{'mode'})>10) { &error("글자 수 에러입니다 2"); }
$pw = $in{'pw'}; if(length($in{'pw'})>8 || !$in{'pw'}) { &error("글자 수 에러입니다 3"); }
$id = $in{'id'}; if(length($in{'id'})>24 || !$in{'id'}) { &error("글자 수 에러입니다 4"); }
$ids = $in{'ids'}; if(length($in{'ids'})>12) { &error("글자 수 에러입니다 5"); }
$rd = $in{'rd'}; if(length($in{'rd'})>1) { &error("글자 수 에러입니다 6"); }
if ($base_url) {
$ref_url = $ENV{'HTTP_REFERER'};
$ref_url =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
if ($ref_url !~ /$base_url/i) { &error("잘못된 접근입니다"); }
}
}
#-------------------------------------------------------------------------------
# 에러 처리
sub error {
if (-e $lockfile) { unlink($lockfile); }
&header(1);
print "<center><hr width='75%'><P><h3>ERROR !</h3>\n";
print "<P><font color=red><B>$_[0]</B></font>\n";
print "<P><hr width='75%'></center>\n";
&copyright;
exit;
}
#-------------------------------------------------------------------------------
# 락 파일 생성
sub lock {
local($lflag) = 0;
foreach (1 .. 5) {
if (-e $lockfile) { sleep(1); }
else {
open(LOCK,">$lockfile") || &error("Can't create $lockfile");
close(LOCK);
$lflag = 1;
last;
}
}
if ($lflag == 0) { &error("LOCK is BUSY"); }
}
#-------------------------------------------------------------------------------
# 액세스 체크(액세스 거부)
sub axs_check {
&get_host;
local($flag)=0;
foreach (@deny) {
if (!$_) { next; }
$_ =~ s/\*/\.\*/g;
if ($host =~ /$_/i || $addr =~ /$_/i) { $flag=1; last; }
}
if ($flag) { &error("액세스가 허용되지 않았습니다"); }
}
#-------------------------------------------------------------------------------
# 호스트 정보 취득
sub get_host {
$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};
$agent = $ENV{'HTTP_USER_AGENT'};
if ($get_remotehost) {
if ($host eq "" || $host eq "$addr") {
$host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2);
}
}
if ($host eq "") { $host = $addr; }
}
#-------------------------------------------------------------------------------
# 시간 취득
sub get_time {
$time = time;
($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime($time);
$hour= "0$hour" if($hour<10);
$min = "0$min" if($min<10);
$sec = "0$sec" if($sec<10);
$month++;
$month = "0$month" if(month<10);
@week=('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
$date = "$month/$mday($week[$wday]) $hour:$min";
srand($time);
}
#-------------------------------------------------------------------------------
# 플레이 규제
sub safetime {
foreach (0 .. $#safetime){
&error("플레이 규제 시간 중입니다. 잠시만 기다려 주십시오.") if $hour eq $safetime[$_];
}
}
#-------------------------------------------------------------------------------
# URL 배제
sub no_link {
$_[0] =~ s/([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+)/$1<!-- $2 -->/g;
}
#-------------------------------------------------------------------------------
# 삭제/변경 불가 반드시 표시할 것
# 저작권 표시(삭제/변경 불가)
sub copyright{
if($mv_mode eq 'mv'){
print <<"EOM";
<br><hr color="white">
과거의 영광 $ver<br>
<a href="http://pom.to/" target="_blank">BLANK BOARD[인터넷 유원지♪]</a>
</body>
</html>
EOM
}else{
print <<"EOM";
<div align="right" style="font-size:12px">
$ver<br>
<a href="http://www17.big.or.jp/~obochan/vivid/" target="_blank" style="font-size:13px">Vivid Studio.</a><br>
<a href="http://pom.to/" target="_blank" style="font-size:11px">BLANK BOARD[인터넷 유원지♪]</a>
</div>
</body>
</html>
EOM
}
}
1;#삭제 불가
Regular → Executable
+142 -142
View File
@@ -1,142 +1,142 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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){#レベルが15以上で先が無所属以外で元が無所属以外(国→国)
$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){#レベルが15以上で先が無所属(無or国→無)
$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;
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# 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;
Regular → Executable
+125 -125
View File
@@ -1,125 +1,125 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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 infomation_com{
$log .= qq|現在の $cmp[$camp] の将兵一覧<br>\n|;
local(@usrfile,@tdat);
# 参加者データファイル一覧取得/読み込み
&usrdata_read;
&usrdata_open;
require './inc/ore_sub-members-p1.cgi';&member_list;
if($camp eq'' || $camp < 1 || $camp > 5){
foreach (0 .. $#tdat){
%R = '';
my @prats = split(/,/,$tdat[$_]);
foreach $prats (@prats){
my($y,$x) = split(/;/,$prats);
$R{$y} = $x;
}
$NM_V = $R{'nm'};
$HP_MAX_V = $R{'max_hp'};
$MP_MAX_V = $R{'max_mp'};
$LV_V = $R{'rank'};
$TM_V = $R{'lv'};
$UA_V = $R{'ua'};
$UD_V = $R{'ud'};
$LR_V = $R{'lr'};
$AG_V = $R{'ag'};
$DG_A_V = $R{'dg_a'};#武具
$DF_A_V = $R{'df_a'};#防具
$SOGO_V = $R{'sogo'};#称号
$SEI_V = $R{'sei'};#性別
$MES_V = $R{'info_mes'};
$TYPE_V = ($R{'type'}) ? "$R{'type'}" : "待機中";
$cnt = $_+1;
if($R{'camp'} == 0){
$log .=qq|$cnt Lv$TM_V|;
# 称号
$log .= ($SOGO_V > 0) ? "$NM_V [$sogo_p[$SOGO_V]]" : "$NM_V";
$log .=qq|HP$HP_MAX_V/MP$MP_MAX_V/UA$UA_V/UD$UD_V/LR$LR_V/AG$AG_V $cl[$LV_V]<hr color="white">\n|;
}
}
}else{
foreach(0 .. $#tdat){
%R = '';
my @prats = split(/,/,$tdat[$_]);
foreach $prats (@prats){
my($y,$x) = split(/;/,$prats);
$R{$y} = $x;
}
if($camp == $R{'camp'}){
$NM_V{$R{'nm'}} = $R{'nm'};
$HP_MAX_V{$R{'nm'}} = $R{'max_hp'};
$MP_MAX_V{$R{'nm'}} = $R{'max_mp'};
$LV_V{$R{'nm'}} = $R{'rank'};
$TM_V{$R{'nm'}} = $R{'lv'};
$UA_V{$R{'nm'}} = $R{'ua'};
$UD_V{$R{'nm'}} = $R{'ud'};
$LR_V{$R{'nm'}} = $R{'lr'};
$AG_V{$R{'nm'}} = $R{'ag'};
$DG_A{$R{'nm'}} = $R{'dg_a'};#武具
$DF_A{$R{'nm'}} = $R{'df_a'};#防具
$SOGO_V{$R{'nm'}} =$R{'sogo'};#称号
$SEI_V{$R{'nm'}} =$R{'sei'};#性別
$MES_V{$R{'nm'}} =$R{'info_mes'};
$TYPE_V{$R{'nm'}} = ($R{'type'}) ? "$R{'type'}" : "待機中";
$N_M{$R{'nm'}} = $_;
}
}
$l = $rk = 1;
foreach $nm (sort sclv keys(%LV_V)){
$lv_v = $LV_V{$nm};
next if($lv_v<=0);
if($lv_v<$prv_lv){ $rk = $l; }
$log .="$rk Lv$TM_V{$nm} ";
#称号
$log .= ($SOGO_V{$nm} > 0) ? "$NM_V{$nm} [$sogo_p[$SOGO_V{$nm}]]" : "$NM_V{$nm}";
$log .=qq| HP$HP_MAX_V{$nm}/MP$MP_MAX_V{$nm}/UA$UA_V{$nm}/UD$UD_V{$nm}/LR$LR_V{$nm}/AG$AG_V{$nm} $cl[$lv_v]<hr color="white">\n|;
$prv_lv = $lv_v;
$l++;
}
}
$tm = $cmd = 0;
$layout_flag=1;
&call_main_st;
}
1;#削除不可
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# 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 infomation_com{
$log .= qq|현재 $cmp[$camp]의 장병 일람<br>\n|;
local(@usrfile,@tdat);
# 참가자 데이터 파일 일람 취득/읽기
&usrdata_read;
&usrdata_open;
require './inc/ore_sub-members-p1.cgi';&member_list;
if($camp eq'' || $camp < 1 || $camp > 5){
foreach (0 .. $#tdat){
%R = '';
my @prats = split(/,/,$tdat[$_]);
foreach $prats (@prats){
my($y,$x) = split(/;/,$prats);
$R{$y} = $x;
}
$NM_V = $R{'nm'};
$HP_MAX_V = $R{'max_hp'};
$MP_MAX_V = $R{'max_mp'};
$LV_V = $R{'rank'};
$TM_V = $R{'lv'};
$UA_V = $R{'ua'};
$UD_V = $R{'ud'};
$LR_V = $R{'lr'};
$AG_V = $R{'ag'};
$DG_A_V = $R{'dg_a'};#무기
$DF_A_V = $R{'df_a'};#방어구
$SOGO_V = $R{'sogo'};#칭호
$SEI_V = $R{'sei'};#성별
$MES_V = $R{'info_mes'};
$TYPE_V = ($R{'type'}) ? "$R{'type'}" : "대기중";
$cnt = $_+1;
if($R{'camp'} == 0){
$log .=qq|$cnt Lv$TM_V|;
# 칭호
$log .= ($SOGO_V > 0) ? "$NM_V [$sogo_p[$SOGO_V]]" : "$NM_V";
$log .=qq|HP$HP_MAX_V/MP$MP_MAX_V/UA$UA_V/UD$UD_V/LR$LR_V/AG$AG_V $cl[$LV_V]<hr color="white">\n|;
}
}
}else{
foreach(0 .. $#tdat){
%R = '';
my @prats = split(/,/,$tdat[$_]);
foreach $prats (@prats){
my($y,$x) = split(/;/,$prats);
$R{$y} = $x;
}
if($camp == $R{'camp'}){
$NM_V{$R{'nm'}} = $R{'nm'};
$HP_MAX_V{$R{'nm'}} = $R{'max_hp'};
$MP_MAX_V{$R{'nm'}} = $R{'max_mp'};
$LV_V{$R{'nm'}} = $R{'rank'};
$TM_V{$R{'nm'}} = $R{'lv'};
$UA_V{$R{'nm'}} = $R{'ua'};
$UD_V{$R{'nm'}} = $R{'ud'};
$LR_V{$R{'nm'}} = $R{'lr'};
$AG_V{$R{'nm'}} = $R{'ag'};
$DG_A{$R{'nm'}} = $R{'dg_a'};#무기
$DF_A{$R{'nm'}} = $R{'df_a'};#방어구
$SOGO_V{$R{'nm'}} =$R{'sogo'};#칭호
$SEI_V{$R{'nm'}} =$R{'sei'};#성별
$MES_V{$R{'nm'}} =$R{'info_mes'};
$TYPE_V{$R{'nm'}} = ($R{'type'}) ? "$R{'type'}" : "대기중";
$N_M{$R{'nm'}} = $_;
}
}
$l = $rk = 1;
foreach $nm (sort sclv keys(%LV_V)){
$lv_v = $LV_V{$nm};
next if($lv_v<=0);
if($lv_v<$prv_lv){ $rk = $l; }
$log .="$rk Lv$TM_V{$nm} ";
#칭호
$log .= ($SOGO_V{$nm} > 0) ? "$NM_V{$nm} [$sogo_p[$SOGO_V{$nm}]]" : "$NM_V{$nm}";
$log .=qq| HP$HP_MAX_V{$nm}/MP$MP_MAX_V{$nm}/UA$UA_V{$nm}/UD$UD_V{$nm}/LR$LR_V{$nm}/AG$AG_V{$nm} $cl[$lv_v]<hr color="white">\n|;
$prv_lv = $lv_v;
$l++;
}
}
$tm = $cmd = 0;
$layout_flag=1;
&call_main_st;
}
1;#삭제 불가
Regular → Executable
+164 -164
View File
@@ -1,164 +1,164 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# 情報 PC用サブルーチン Version 1.0 #
#--- [注意事項] --------------------------------------------#
# 1.このスクリプトは以下の利用規程に従って配布しています。 #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
# 情報
sub infomation_com{
$log .= qq|<b style="color:$color[$camp]">現在の $cmp[$camp] に所属する将兵一覧</b><br><br>\n|;
if($com){
if($com =~ /:/){ &error("名前に不正な文字( : )が含まれています。",1); }
if($com =~ /;/){ &error("名前に不正な文字( ; )が含まれています。",1); }
if($com =~ /,/){ &error("名前に不正な文字( , )が含まれています。",1); }
if($com =~ /"/){ &error("名前に不正な文字( \" )が含まれています。",1); }
if($com =~ /'/){ &error("名前に不正な文字( ' )が含まれています。",1); }
if($com =~ /\//){ &error("名前に不正な文字( / )が含まれています。",1); }
if(length($com)>80){ &error("全角40文字までです。",1); }
$com =~ s/\n//g;
$info_mes=$com;
}
local(@usrfile,@tdat);
# 参加者データファイル一覧取得/読み込み
&usrdata_read;
&usrdata_open;
require './inc/ore_sub-members-p1.cgi';&member_list;
if($camp eq'' || $camp < 1 || $camp > 5){
$log .= "<table border=0 cellpadding=2 cellspacing=2 width=100%>\n<tr align=center bgcolor=#ccccee><td>順位</td><td>LV</td><td>名前</td><td>体力/精神</td><td>攻撃/防御/指揮/敏捷</td><td>武具</td><td>防具</td><td>階級</td><td>行動</td></tr>";
foreach (0 .. $#tdat){
%R = '';
my @prats = split(/,/,$tdat[$_]);
foreach $prats (@prats){
my($y,$x) = split(/;/,$prats);
$R{$y} = $x;
}
$NM_V = $R{'nm'};
$HP_MAX_V = $R{'max_hp'};
$MP_MAX_V = $R{'max_mp'};
$LV_V = $R{'rank'};
$TM_V = $R{'lv'};
$UA_V = $R{'ua'};
$UD_V = $R{'ud'};
$LR_V = $R{'lr'};
$AG_V = $R{'ag'};
$DG_A_V = $R{'dg_a'};#武具
$DF_A_V = $R{'df_a'};#防具
$SOGO_V = $R{'sogo'};#称号
$SEI_V = $R{'sei'};#性別
$MES_V = $R{'info_mes'};
$TYPE_V = ($R{'type'}) ? "$R{'type'}" : "待機中";
$cnt = $_+1;
if($R{'camp'} == 0){
$log .=qq|<tr align="center" bgcolor="#ccccee"><td>$cnt</td><td>$TM_V</td><td>|;
# 称号
$log .= ($SOGO_V > 0) ? "$NM_V <small>[$sogo_p[$SOGO_V]]</small>" : "$NM_V";
$log .="</td><td>$HP_MAX_V/$MP_MAX_V</td><td align=center>$UA_V/$UD_V/$LR_V/$AG_V</td><td>$dg_data[$DG_A_V][1]</td><td>$df_data[$DF_A_V][1]</td><td>$cl[$LV_V]</td><td></td>$TYPE_V</tr>\n";
$log .=qq|<tr align="left" bgcolor="#ccccee"><td style="font-size:12px" colspan="8">&gt;&gt; 備考: $seibetu[$SEI_V]&nbsp;&nbsp;&nbsp;&nbsp;格言: $MES_V</td></tr>\n|;
}
}
}else{
foreach(0 .. $#tdat){
%R = '';
my @prats = split(/,/,$tdat[$_]);
foreach $prats (@prats){
my($y,$x) = split(/;/,$prats);
$R{$y} = $x;
}
if($camp == $R{'camp'}){
$NM_V{$R{'nm'}} = $R{'nm'};
$HP_MAX_V{$R{'nm'}} = $R{'max_hp'};
$MP_MAX_V{$R{'nm'}} = $R{'max_mp'};
$LV_V{$R{'nm'}} = $R{'rank'};
$TM_V{$R{'nm'}} = $R{'lv'};
$UA_V{$R{'nm'}} = $R{'ua'};
$UD_V{$R{'nm'}} = $R{'ud'};
$LR_V{$R{'nm'}} = $R{'lr'};
$AG_V{$R{'nm'}} = $R{'ag'};
$DG_A{$R{'nm'}} = $R{'dg_a'};#武具
$DF_A{$R{'nm'}} = $R{'df_a'};#防具
$SOGO_V{$R{'nm'}} =$R{'sogo'};#称号
$SEI_V{$R{'nm'}} =$R{'sei'};#性別
$MES_V{$R{'nm'}} =$R{'info_mes'};
$TYPE_V{$R{'nm'}} = ($R{'type'}) ? "$R{'type'}" : "待機中";
$N_M{$R{'nm'}} = $_;
}
}
$log .=qq|<table border="0" cellpadding="2" cellspacing="2" width="100%">\n<tr align="center" bgcolor="#ccccee"><td style="font-size:12px">順位</td><td style="font-size:12px">LV</td><td style="font-size:12px">名前</td><td style="font-size:12px">体力/精神</td><td style="font-size:12px">攻撃/防御/指揮/敏捷</td><td style="font-size:12px">武具</td><td style="font-size:12px">防具</td><td style="font-size:12px">階級</td><td style="font-size:12px">行動</td></tr>|;
$l = $rk = 1;
foreach $nm (sort sclv keys(%LV_V)){
$lv_v = $LV_V{$nm};
next if($lv_v<=0);
if($lv_v<$prv_lv){ $rk = $l; }
$log .="<tr align=center bgcolor=#ccccee><td>$rk</td><td>$TM_V{$nm}</td><td>";
#称号
$log .= ($SOGO_V{$nm} > 0) ? "$NM_V{$nm} <small>[$sogo_p[$SOGO_V{$nm}]]</small>" : "$NM_V{$nm}";
$log .="</td><td>$HP_MAX_V{$nm}/$MP_MAX_V{$nm}</td><td align=center>$UA_V{$nm}/$UD_V{$nm}/$LR_V{$nm}/$AG_V{$nm}</td><td>$dg_data[$DG_A{$nm}][1]</td><td>$df_data[$DF_A{$nm}][1]</td><td>$cl[$lv_v]</td><td>$TYPE_V{$nm}</td></tr>\n";
$log .=qq|<tr align="left" bgcolor="#ccccee"><td style="font-size:12px" colspan="9">&gt;&gt; 備考: $seibetu[$SEI_V{$nm}]&nbsp;&nbsp;&nbsp;&nbsp;格言: $MES_V{$nm}</td></tr>\n|;
$prv_lv = $lv_v;
$l++;
}
}
$log .="</table>\n";
$log.=<<EOM;
<br><br>
<div align="center" class="moji2">
<form method="$method" action="$script" name="ore_">
<input type="hidden" name="id" value="$id">
<input type="hidden" name="pw" value="$pw">
<input type="hidden" name="cmd" value="6">
<input type=text name="com" class="button2" style="width:360px">
<input type=submit value="ポチッ/更新" class="button2" style="width:100px">
<input type=reset value="クリア" class="button2" style="width:40px">
<br>
コメントは全角40文字まで。
</form>
</div>
EOM
$log .="</table>\n";
$tm = $cmd = 0;
$layout_flag=1;
&call_main_st;
}
1;#削除不可
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# 정보 PC용 서브루틴 Version 1.0 #
#--- [주의사항] --------------------------------------------#
# 1.이 스크립트는 이하의 이용규정에 따라 배포되고 있습니다. #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
# 정보
sub infomation_com{
$log .= qq|<b style="color:$color[$camp]">현재 $cmp[$camp]에 소속된 장병 일람</b><br><br>\n|;
if($com){
if($com =~ /:/){ &error("이름에 올바르지 않은 문자( : )가 포함되어 있습니다.",1); }
if($com =~ /;/){ &error("이름에 올바르지 않은 문자( ; )가 포함되어 있습니다.",1); }
if($com =~ /,/){ &error("이름에 올바르지 않은 문자( , )가 포함되어 있습니다.",1); }
if($com =~ /"/){ &error("이름에 올바르지 않은 문자( \" )가 포함되어 있습니다.",1); }
if($com =~ /'/){ &error("이름에 올바르지 않은 문자( ' )가 포함되어 있습니다.",1); }
if($com =~ /\//){ &error("이름에 올바르지 않은 문자( / )가 포함되어 있습니다.",1); }
if(length($com)>80){ &error("전각 40자까지 입력 가능합니다.",1); }
$com =~ s/\n//g;
$info_mes=$com;
}
local(@usrfile,@tdat);
# 참가자 데이터 파일 일람 취득/읽기
&usrdata_read;
&usrdata_open;
require './inc/ore_sub-members-p1.cgi';&member_list;
if($camp eq'' || $camp < 1 || $camp > 5){
$log .= "<table border=0 cellpadding=2 cellspacing=2 width=100%>\n<tr align=center bgcolor=#ccccee><td>순위</td><td>LV</td><td>이름</td><td>체력/정신</td><td>공격/방어/지휘/민첩</td><td>무기</td><td>방어구</td><td>계급</td><td>행동</td></tr>";
foreach (0 .. $#tdat){
%R = '';
my @prats = split(/,/,$tdat[$_]);
foreach $prats (@prats){
my($y,$x) = split(/;/,$prats);
$R{$y} = $x;
}
$NM_V = $R{'nm'};
$HP_MAX_V = $R{'max_hp'};
$MP_MAX_V = $R{'max_mp'};
$LV_V = $R{'rank'};
$TM_V = $R{'lv'};
$UA_V = $R{'ua'};
$UD_V = $R{'ud'};
$LR_V = $R{'lr'};
$AG_V = $R{'ag'};
$DG_A_V = $R{'dg_a'};#무기
$DF_A_V = $R{'df_a'};#방어구
$SOGO_V = $R{'sogo'};#칭호
$SEI_V = $R{'sei'};#성별
$MES_V = $R{'info_mes'};
$TYPE_V = ($R{'type'}) ? "$R{'type'}" : "대기중";
$cnt = $_+1;
if($R{'camp'} == 0){
$log .=qq|<tr align="center" bgcolor="#ccccee"><td>$cnt</td><td>$TM_V</td><td>|;
# 칭호
$log .= ($SOGO_V > 0) ? "$NM_V <small>[$sogo_p[$SOGO_V]]</small>" : "$NM_V";
$log .="</td><td>$HP_MAX_V/$MP_MAX_V</td><td align=center>$UA_V/$UD_V/$LR_V/$AG_V</td><td>$dg_data[$DG_A_V][1]</td><td>$df_data[$DF_A_V][1]</td><td>$cl[$LV_V]</td><td></td>$TYPE_V</tr>\n";
$log .=qq|<tr align="left" bgcolor="#ccccee"><td style="font-size:12px" colspan="8">&gt;&gt; 비고: $seibetu[$SEI_V]&nbsp;&nbsp;&nbsp;&nbsp;격언: $MES_V</td></tr>\n|;
}
}
}else{
foreach(0 .. $#tdat){
%R = '';
my @prats = split(/,/,$tdat[$_]);
foreach $prats (@prats){
my($y,$x) = split(/;/,$prats);
$R{$y} = $x;
}
if($camp == $R{'camp'}){
$NM_V{$R{'nm'}} = $R{'nm'};
$HP_MAX_V{$R{'nm'}} = $R{'max_hp'};
$MP_MAX_V{$R{'nm'}} = $R{'max_mp'};
$LV_V{$R{'nm'}} = $R{'rank'};
$TM_V{$R{'nm'}} = $R{'lv'};
$UA_V{$R{'nm'}} = $R{'ua'};
$UD_V{$R{'nm'}} = $R{'ud'};
$LR_V{$R{'nm'}} = $R{'lr'};
$AG_V{$R{'nm'}} = $R{'ag'};
$DG_A{$R{'nm'}} = $R{'dg_a'};#무기
$DF_A{$R{'nm'}} = $R{'df_a'};#방어구
$SOGO_V{$R{'nm'}} =$R{'sogo'};#칭호
$SEI_V{$R{'nm'}} =$R{'sei'};#성별
$MES_V{$R{'nm'}} =$R{'info_mes'};
$TYPE_V{$R{'nm'}} = ($R{'type'}) ? "$R{'type'}" : "대기중";
$N_M{$R{'nm'}} = $_;
}
}
$log .=qq|<table border="0" cellpadding="2" cellspacing="2" width="100%">\n<tr align="center" bgcolor="#ccccee"><td style="font-size:12px">순위</td><td style="font-size:12px">LV</td><td style="font-size:12px">이름</td><td style="font-size:12px">체력/정신</td><td style="font-size:12px">공격/방어/지휘/민첩</td><td style="font-size:12px">무기</td><td style="font-size:12px">방어구</td><td style="font-size:12px">계급</td><td style="font-size:12px">행동</td></tr>|;
$l = $rk = 1;
foreach $nm (sort sclv keys(%LV_V)){
$lv_v = $LV_V{$nm};
next if($lv_v<=0);
if($lv_v<$prv_lv){ $rk = $l; }
$log .="<tr align=center bgcolor=#ccccee><td>$rk</td><td>$TM_V{$nm}</td><td>";
#칭호
$log .= ($SOGO_V{$nm} > 0) ? "$NM_V{$nm} <small>[$sogo_p[$SOGO_V{$nm}]]</small>" : "$NM_V{$nm}";
$log .="</td><td>$HP_MAX_V{$nm}/$MP_MAX_V{$nm}</td><td align=center>$UA_V{$nm}/$UD_V{$nm}/$LR_V{$nm}/$AG_V{$nm}</td><td>$dg_data[$DG_A{$nm}][1]</td><td>$df_data[$DF_A{$nm}][1]</td><td>$cl[$lv_v]</td><td>$TYPE_V{$nm}</td></tr>\n";
$log .=qq|<tr align="left" bgcolor="#ccccee"><td style="font-size:12px" colspan="9">&gt;&gt; 비고: $seibetu[$SEI_V{$nm}]&nbsp;&nbsp;&nbsp;&nbsp;격언: $MES_V{$nm}</td></tr>\n|;
$prv_lv = $lv_v;
$l++;
}
}
$log .="</table>\n";
$log.=<<EOM;
<br><br>
<div align="center" class="moji2">
<form method="$method" action="$script" name="ore_">
<input type="hidden" name="id" value="$id">
<input type="hidden" name="pw" value="$pw">
<input type="hidden" name="cmd" value="6">
<input type=text name="com" class="button2" style="width:360px">
<input type=submit value="클릭/업데이트" class="button2" style="width:100px">
<input type=reset value="초기화" class="button2" style="width:40px">
<br>
한마디는 전각 40자까지.
</form>
</div>
EOM
$log .="</table>\n";
$tm = $cmd = 0;
$layout_flag=1;
&call_main_st;
}
1;#삭제 불가
Regular → Executable
+152 -152
View File
@@ -1,152 +1,152 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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 main_st { # メイン
# 回復
$hrg=int($time-$la);
$hrg=int($hrg/$hrg_time);
$hrg=0 if($hrg<1);
$d=$time;
$d=$d-$roku;
if($ck!=1){
for($x=0;$x<$hrg;++$x){
$hp++;
$mp++;
}
}
$hp=$max_hp if($hp>$max_hp);
$mp=$max_mp if($mp>$max_mp);
# 給料
if($camp>0&&$d>21600){
$v=$g_p[$rank];
$v=int($v/5);
$v=int($my_cn*0.8)+$v;
$gold+=$v;
$log .= " $v の給与が支給された<br>";
$d-=21600;
$roku=$time;
}
# データリセット
if( $cn1>=$data_reset||
$cn2>=$data_reset||
$cn3>=$data_reset||
$cn4>=$data_reset||
$cn5>=$data_reset){
$log .="全国統一が成された!<br>国力が初期化されます<br>\n";
require './inc/ore_sub-main_reset.cgi';&reset_cdat;
}
if($set<$time){
require './inc/ore_sub-main_reset.cgi';&reset_time_limit;
}
# 経験
$next_rank=int(($rank*$rank)*3);
if($rank_exe>=$next_rank){
if($camp!=0&&$rank<14){
$log .="日頃の仕事ぶりが認められ階級があがった<br>\n";
$rank++;
$rank_exe-=$next_rank;
}
}
if($exe>$next_lv){
$log .="経験を積みより強く成長した<br>\n";
$lv++;
$a =int(rand(2));
$max_hp +=int($a);
$b =int(rand(2));
$max_mp +=int($b);
$w =int(rand(2));
$ua +=int($w);
$d =int(rand(2));
$ud +=int($d);
$l =int(rand(2));
$lr +=int($l);
if($lv<=5){$gg=2;}
if($lv<=10){$gg=1;}
$g =int(rand(2)+$gg);
$ag +=int($g);
$exe-=$next_lv;
$log .="体力が$a上がった<br>精神力が$b上がった<br>攻撃が$w上がった<br>防御が$d上がった<br>指揮が$l上がった<br>敏捷が$g上がった<br>\n";
}
# アナウンス
if($mes && $pr<1){
$log .="$mes<br>\n";
$mes='';
}
# 内政義務制
if($act_cnt>=$act_cnt_limit && $camp){
$log .= "行動セッションが限界に達しています。一度内政を行ってください。<br>\n";
$tm=0;
}elsif($act_cnt>=$act_cnt_limit && !$camp){
$log .= "行動セッションが限界に達しています。休憩してください。<br>\n";
$pr=int($GMT/2);
$tm=0;
# 行動カウントのリセット(無条件)
$act_cnt=0;
}
# メインコマンド
my @c = ('現状維持','修業','内政','戦争','能力','仕官','情報','討伐','軍事');
$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 .. $#c){ $log2 .=qq|<option value="$_">$c[$_]</option>\n|;}
$log2 .=qq|</select><br>\n|;
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
&write_data;
}
#-------------------------------------------------------------------------------
# 拘束時間
sub wt_st {
$whour = int($pr/3600);
$wmin = int(($pr%3600)/60);
$wsec = $pr%60;
if($whour>0){
$wmin = "0$wmin" if($wmin<10);
$log .="行動中・・・あと$whour時間$wmin\n";
}elsif($wmin>0){
$wsec = "0$wsec" if($wsec<10);
$log .="行動中…あと$wmin\n";
}else{
$log .="行動中…あと$wsec\n";
}
}
1;
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# 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 main_st { # 메인
# 회복
$hrg=int($time-$la);
$hrg=int($hrg/$hrg_time);
$hrg=0 if($hrg<1);
$d=$time;
$d=$d-$roku;
if($ck!=1){
for($x=0;$x<$hrg;++$x){
$hp++;
$mp++;
}
}
$hp=$max_hp if($hp>$max_hp);
$mp=$max_mp if($mp>$max_mp);
# 급여
if($camp>0&&$d>21600){
$v=$g_p[$rank];
$v=int($v/5);
$v=int($my_cn*0.8)+$v;
$gold+=$v;
$log .= " $v 골드의 급여가 지급되었습니다.<br>";
$d-=21600;
$roku=$time;
}
# 데이터 초기화
if( $cn1>=$data_reset||
$cn2>=$data_reset||
$cn3>=$data_reset||
$cn4>=$data_reset||
$cn5>=$data_reset){
$log .="천하통일이 달성되었다!<br>국력이 초기화됩니다.<br>\n";
require './inc/ore_sub-main_reset.cgi';&reset_cdat;
}
if($set<$time){
require './inc/ore_sub-main_reset.cgi';&reset_time_limit;
}
# 경험
$next_rank=int(($rank*$rank)*3);
if($rank_exe>=$next_rank){
if($camp!=0&&$rank<14){
$log .="평소의 공로가 인정되어 계급이 올랐다.<br>\n";
$rank++;
$rank_exe-=$next_rank;
}
}
if($exe>$next_lv){
$log .="경험을 쌓아 더욱 강하게 성장했다.<br>\n";
$lv++;
$a =int(rand(2));
$max_hp +=int($a);
$b =int(rand(2));
$max_mp +=int($b);
$w =int(rand(2));
$ua +=int($w);
$d =int(rand(2));
$ud +=int($d);
$l =int(rand(2));
$lr +=int($l);
if($lv<=5){$gg=2;}
if($lv<=10){$gg=1;}
$g =int(rand(2)+$gg);
$ag +=int($g);
$exe-=$next_lv;
$log .="체력이 $a 올랐다<br>정신력이 $b 올랐다<br>공격력이 $w 올랐다<br>방어력이 $d 올랐다<br>지휘력이 $l 올랐다<br>민첩성이 $g 올랐다<br>\n";
}
# 안내
if($mes && $pr<1){
$log .="$mes<br>\n";
$mes='';
}
# 내정 의무제
if($act_cnt>=$act_cnt_limit && $camp){
$log .= "행동 세션이 한계에 도달했습니다. 내정을 한번 수행해 주십시오.<br>\n";
$tm=0;
}elsif($act_cnt>=$act_cnt_limit && !$camp){
$log .= "행동 세션이 한계에 도달했습니다. 휴식해 주십시오.<br>\n";
$pr=int($GMT/2);
$tm=0;
# 행동 카운트 초기화(무조건)
$act_cnt=0;
}
# 메인 커맨드
my @c = ('현상유지','수행','내정','전쟁','능력','사관','정보','토벌','군사');
$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 .. $#c){ $log2 .=qq|<option value="$_">$c[$_]</option>\n|;}
$log2 .=qq|</select><br>\n|;
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
&write_data;
}
#-------------------------------------------------------------------------------
# 구속 시간
sub wt_st {
$whour = int($pr/3600);
$wmin = int(($pr%3600)/60);
$wsec = $pr%60;
if($whour>0){
$wmin = "0$wmin" if($wmin<10);
$log .="행동 중… 남은 시간: $whour시간 $wmin\n";
}elsif($wmin>0){
$wsec = "0$wsec" if($wsec<10);
$log .="행동 중… 남은 시간: $wmin\n";
}else{
$log .="행동 중… 남은 시간: $wsec\n";
}
}
1;
Regular → Executable
+103 -104
View File
@@ -1,104 +1,103 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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 reset_cdat{
if($limit_mode){
require './inc/ore_sub-members-p1.cgi';
&member_adjust;
}
# 旧式・固定モード
if(!$reset_cdat){
my @camp_pw = (0,4500,4500,3500,5000,3500); # 国力 変更可能
my @camp_gl = (0,900,200,400,250,300); # 国家予算
my @camp_fd = (0,2000,5000,3500,8000,6000); # 総兵糧
my @camp_sl = (0,3000,2500,4000,5000,4000); # 総兵士数
$cn1=$camp_pw[1];
$cg1=$camp_gl[1];
$cf1=$camp_fd[1];
$cs1=$camp_sl[1];
$cn2=$camp_pw[2];
$cg2=$camp_gl[2];
$cf2=$camp_fd[2];
$cs2=$camp_sl[2];
$cn3=$camp_pw[3];
$cg3=$camp_gl[3];
$cf3=$camp_fd[3];
$cs3=$camp_sl[3];
$cn4=$camp_pw[4];
$cg4=$camp_gl[4];
$cf4=$camp_fd[4];
$cs4=$camp_sl[4];
$cn5=$camp_pw[5];
$cg5=$camp_gl[5];
$cf5=$camp_fd[5];
$cs5=$camp_sl[5];
}
# ランダムモード
else{
# リセット処理
$cn1=int(rand(40))*100+2500;
$cn2=int(rand(40))*100+2500;
$cn3=int(rand(40))*100+2500;
$cn4=int(rand(40))*100+2500;
$cn5=int(rand(40))*100+2500;
$cg1=int(rand(50))*20+200;
$cg2=int(rand(50))*20+200;
$cg3=int(rand(50))*20+200;
$cg4=int(rand(50))*20+200;
$cg5=int(rand(50))*20+200;
$cf1=int(rand(60))*100+2500;
$cf2=int(rand(60))*100+2500;
$cf3=int(rand(60))*100+2500;
$cf4=int(rand(60))*100+2500;
$cf5=int(rand(60))*100+2500;
$cs1=int(rand(60))*50+2000;
$cs2=int(rand(60))*50+2000;
$cs3=int(rand(60))*50+2000;
$cs4=int(rand(60))*50+2000;
$cs5=int(rand(60))*50+2000;
}
$ce1=$ce2=$ce3=$ce4=$ce5=0;
$set=$reset_time_limit * 3600 * 24 + $time;
$goal_no++;
# 国データを配列化したいけど、めんどくさいからいいや・・・。
}
#-------------------------------------------------------------------------------
# タイムアウトによるリセット
sub reset_time_limit{
$log .="長き年月が過ぎたが、戦乱の世を制する覇者は最後まで出現しなかった。<br>各国データがリセットされます。\n";
$wr_mes="長き年月が過ぎたが、戦乱の世を制する覇者は最後まで出現しなかった。各国データがリセットされた";
&reset_cdat;
&hist_write;
}
1;
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# 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 reset_cdat{
if($limit_mode){
require './inc/ore_sub-members-p1.cgi';
&member_adjust;
}
# 구식/고정 모드
if(!$reset_cdat){
my @camp_pw = (0,4500,4500,3500,5000,3500); # 국력 변경 가능
my @camp_gl = (0,900,200,400,250,300); # 국가 예산
my @camp_fd = (0,2000,5000,3500,8000,6000); # 총 군량
my @camp_sl = (0,3000,2500,4000,5000,4000); # 총 병사 수
$cn1=$camp_pw[1];
$cg1=$camp_gl[1];
$cf1=$camp_fd[1];
$cs1=$camp_sl[1];
$cn2=$camp_pw[2];
$cg2=$camp_gl[2];
$cf2=$camp_fd[2];
$cs2=$camp_sl[2];
$cn3=$camp_pw[3];
$cg3=$camp_gl[3];
$cf3=$camp_fd[3];
$cs3=$camp_sl[3];
$cn4=$camp_pw[4];
$cg4=$camp_gl[4];
$cf4=$camp_fd[4];
$cs4=$camp_sl[4];
$cn5=$camp_pw[5];
$cg5=$camp_gl[5];
$cf5=$camp_fd[5];
$cs5=$camp_sl[5];
}
# 랜덤 모드
else{
# 리셋 처리
$cn1=int(rand(40))*100+2500;
$cn2=int(rand(40))*100+2500;
$cn3=int(rand(40))*100+2500;
$cn4=int(rand(40))*100+2500;
$cn5=int(rand(40))*100+2500;
$cg1=int(rand(50))*20+200;
$cg2=int(rand(50))*20+200;
$cg3=int(rand(50))*20+200;
$cg4=int(rand(50))*20+200;
$cg5=int(rand(50))*20+200;
$cf1=int(rand(60))*100+2500;
$cf2=int(rand(60))*100+2500;
$cf3=int(rand(60))*100+2500;
$cf4=int(rand(60))*100+2500;
$cf5=int(rand(60))*100+2500;
$cs1=int(rand(60))*50+2000;
$cs2=int(rand(60))*50+2000;
$cs3=int(rand(60))*50+2000;
$cs4=int(rand(60))*50+2000;
$cs5=int(rand(60))*50+2000;
}
$ce1=$ce2=$ce3=$ce4=$ce5=0;
$set=$reset_time_limit * 3600 * 24 + $time;
$goal_no++;
# 국가 데이터를 배열화하고 싶지만, 귀찮으니까 패스...
}
#-------------------------------------------------------------------------------
# 타임아웃에 의한 리셋
sub reset_time_limit{
$log .="긴 세월이 흘렀으나, 전란의 시대를 제패할 패자는 끝내 나타나지 않았습니다.<br>각 국가의 데이터가 리셋됩니다.\n";
$wr_mes="긴 세월이 흘렀으나, 전란의 시대를 제패할 패자는 끝내 나타나지 않았습니다. 각 국가의 데이터가 리셋되었습니다";
&reset_cdat;
&hist_write;
}
1;
Regular → Executable
+54 -54
View File
@@ -1,54 +1,54 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# マップ PC用サブルーチン Version 1.0 #
#--- [注意事項] --------------------------------------------#
# 1.このスクリプトは以下の利用規程に従って配布しています。 #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#############################################################
# 以下処理 基本的にこれ以下はいじらないように。
#-------------------------------------------------------------------------------
# クリッカブルマップ
sub mapdata{
$log.=<<EOM;
<tt><br> <br></tt><table width=440 cellspacing=1 cellpadding=0 height=360 bordercolor=#000000>
<tr>
<td width=55 height=45> </td><td width=55> </td><td width=55 bgcolor=$color[4]> </td><td width=55> </td><td width=55> </td><td width=55> </td><td width=55 bgcolor=$color[5]> </td><td width=55> </td>
</tr><tr>
<td height=45> </td><td bgcolor=$color[4]> </td><td bgcolor=$color[4]> </td><td bgcolor=$color[1]> </td><td bgcolor=$color[1]> </td><td> </td>
<td bgcolor=$color[5]><a style="color:white" href="$script?id=$id&pw=$pw&cmd=5"><b class=map>$cmp[5]</b></a></td>
<td bgcolor=$color[5]> </td>
</tr><tr>
<td bgcolor=$color[4] height=45> </td><td bgcolor=$color[4]> </td>
<td bgcolor=$color[4]><a style="color:white" href="$script?id=$id&pw=$pw&cmd=4"><b class=map>$cmp[4]</b></a></td>
<td bgcolor=$color[4]> </td><td bgcolor=$color[1]> </td><td> </td><td bgcolor=$color[5]> </td><td bgcolor=$color[5]> </td>
</tr><tr>
<td height=45> </td><td bgcolor=$color[4]> </td><td bgcolor=$color[4]> </td><td bgcolor=$color[1]> </td><td bgcolor=$color[1]><a style="color:white" href="$script?id=$id&pw=$pw&cmd=1"><b class=map>$cmp[1]</b></a></td>
<td bgcolor=$color[1]> </td><td> </td><td bgcolor=$color[5]> </td>
</tr><tr>
<td bgcolor=$color[2] height=45> </td><td bgcolor=$color[2]> </td><td bgcolor=$color[4]> </td>
<td bgcolor=$color[4]><small>永遠の証<br>跡地</small></td>
<td bgcolor=$color[1]> </td><td bgcolor=$color[1]> </td><td> </td><td> </td>
</tr><tr>
<td height=45> </td><td bgcolor=$color[2]> </td>
<td bgcolor=$color[2]><a style="color:white" href="$script?id=$id&pw=$pw&cmd=2"><b class=map>$cmp[2]</b></a></td>
<td bgcolor=$color[2]> </td><td bgcolor=$color[3]> </td><td bgcolor=$color[3]> </td><td bgcolor=$color[3]> </td><td> </td>
</tr><tr>
<td height=45> </td><td> </td><td bgcolor=$color[2]> </td><td bgcolor=$color[3]> </td>
<td bgcolor=$color[3]><a style="color:white" href="$script?id=$id&pw=$pw&cmd=3"><b class=map>$cmp[3]</b></a></td>
<td bgcolor=$color[3]> </td><td> </td><td> </td>
</tr><tr>
<td height=45> </td><td> </td><td> </td><td> </td><td bgcolor=$color[3]> </td><td> </td><td> </td><td> </td>
</tr></table><tt><br><b>エルタニア ワールドマップ</b><br></tt>
EOM
}
1;#削除不可
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# 맵 PC용 서브루틴 Version 1.0 #
#--- [주의사항] --------------------------------------------#
# 1.이 스크립트는 이하의 이용규정에 따라 배포되고 있습니다. #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#############################################################
# 이하 처리 기본적으로 이 이하는 수정하지 말 것.
#-------------------------------------------------------------------------------
# 클릭커블 맵
sub mapdata{
$log.=<<EOM;
<tt><br> <br></tt><table width=440 cellspacing=1 cellpadding=0 height=360 bordercolor=#000000>
<tr>
<td width=55 height=45> </td><td width=55> </td><td width=55 bgcolor=$color[4]> </td><td width=55> </td><td width=55> </td><td width=55> </td><td width=55 bgcolor=$color[5]> </td><td width=55> </td>
</tr><tr>
<td height=45> </td><td bgcolor=$color[4]> </td><td bgcolor=$color[4]> </td><td bgcolor=$color[1]> </td><td bgcolor=$color[1]> </td><td> </td>
<td bgcolor=$color[5]><a style="color:white" href="$script?id=$id&pw=$pw&cmd=5"><b class=map>$cmp[5]</b></a></td>
<td bgcolor=$color[5]> </td>
</tr><tr>
<td bgcolor=$color[4] height=45> </td><td bgcolor=$color[4]> </td>
<td bgcolor=$color[4]><a style="color:white" href="$script?id=$id&pw=$pw&cmd=4"><b class=map>$cmp[4]</b></a></td>
<td bgcolor=$color[4]> </td><td bgcolor=$color[1]> </td><td> </td><td bgcolor=$color[5]> </td><td bgcolor=$color[5]> </td>
</tr><tr>
<td height=45> </td><td bgcolor=$color[4]> </td><td bgcolor=$color[4]> </td><td bgcolor=$color[1]> </td><td bgcolor=$color[1]><a style="color:white" href="$script?id=$id&pw=$pw&cmd=1"><b class=map>$cmp[1]</b></a></td>
<td bgcolor=$color[1]> </td><td> </td><td bgcolor=$color[5]> </td>
</tr><tr>
<td bgcolor=$color[2] height=45> </td><td bgcolor=$color[2]> </td><td bgcolor=$color[4]> </td>
<td bgcolor=$color[4]><small>영원의 증표<br></small></td>
<td bgcolor=$color[1]> </td><td bgcolor=$color[1]> </td><td> </td><td> </td>
</tr><tr>
<td height=45> </td><td bgcolor=$color[2]> </td>
<td bgcolor=$color[2]><a style="color:white" href="$script?id=$id&pw=$pw&cmd=2"><b class=map>$cmp[2]</b></a></td>
<td bgcolor=$color[2]> </td><td bgcolor=$color[3]> </td><td bgcolor=$color[3]> </td><td bgcolor=$color[3]> </td><td> </td>
</tr><tr>
<td height=45> </td><td> </td><td bgcolor=$color[2]> </td><td bgcolor=$color[3]> </td>
<td bgcolor=$color[3]><a style="color:white" href="$script?id=$id&pw=$pw&cmd=3"><b class=map>$cmp[3]</b></a></td>
<td bgcolor=$color[3]> </td><td> </td><td> </td>
</tr><tr>
<td height=45> </td><td> </td><td> </td><td> </td><td bgcolor=$color[3]> </td><td> </td><td> </td><td> </td>
</tr></table><tt><br><b>엘타니아 월드맵</b><br></tt>
EOM
}
1;#삭제 불가
Regular → Executable
+106 -106
View File
@@ -1,106 +1,106 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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 member_list{
$all_mem=$#tdat+1;
# 参加者合計取得
$c0 = grep(/camp;0/, @tdat);
$c1 = grep(/camp;1/, @tdat);
$c2 = grep(/camp;2/, @tdat);
$c3 = grep(/camp;3/, @tdat);
$c4 = grep(/camp;4/, @tdat);
$c5 = grep(/camp;5/, @tdat);
if($limit_mode){
$c1a = $c2a = $c3a = $c4a = $c5a = ($all_mem<18) ? 3 : int($all_mem/6)+1 ;
&member_adjust if(!$member_flag);
}
&cdat_write;
}
#-------------------------------------------------------------------------------
# 前回統一の優劣設定(参加人数)
sub member_adjust{
$c1a = $c2a = $c3a = $c4a = $c5a = ($all_mem<18) ? 3 : int($all_mem/6)+1 ;
local($rca_p,$rca_m);
$rca_p=1 if($all_mem<50);
$rca_p=2 if($all_mem=>50 && $all_mem<100);
$rca_p=3 if($all_mem=>100 && $all_mem<150);
$rca_p=4 if($all_mem=>150 && $all_mem<200);
$rca_p=5 if($all_mem=>200);
if($all_mem<50){
$rca_p=0;
$rca_m=-1;
}
elsif($all_mem=>50 && $all_mem<100){
$rca_p=0;
$rca_m=-2;
}
elsif($all_mem=>100 && $all_mem<150){
$rca_p=1;
$rca_m=-3;
}
elsif($all_mem=>150 && $all_mem<200){
$rca_p=1;
$rca_m=-4;
}
elsif($all_mem=>200){
$rca_p=2;
$rca_m=-5;
}
if($cn1>=$data_reset || $hcamp==1){
$c1a +=$rca_m;
$c2a +=$rca_p;
$c3a +=$rca_p;
$c4a +=$rca_p;
$c5a +=$rca_p;
}elsif($cn2>=$data_reset || $hcamp==2){
$c1a +=$rca_p;
$c2a +=$rca_m;
$c3a +=$rca_p;
$c4a +=$rca_p;
$c5a +=$rca_p;
}elsif($cn3>=$data_reset || $hcamp==3){
$c1a +=$rca_p;
$c2a +=$rca_p;
$c3a +=$rca_m;
$c4a +=$rca_p;
$c5a +=$rca_p;
}elsif($cn4>=$data_reset || $hcamp==4){
$c1a +=$rca_p;
$c2a +=$rca_p;
$c3a +=$rca_p;
$c4a +=$rca_m;
$c5a +=$rca_p;
}elsif($cn5>=$data_reset || $hcamp==5){
$c1a +=$rca_p;
$c2a +=$rca_p;
$c3a +=$rca_p;
$c4a +=$rca_p;
$c5a +=$rca_m;
}
}
1;
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# 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 member_list{
$all_mem=$#tdat+1;
# 참가자 합계 획득
$c0 = grep(/camp;0/, @tdat);
$c1 = grep(/camp;1/, @tdat);
$c2 = grep(/camp;2/, @tdat);
$c3 = grep(/camp;3/, @tdat);
$c4 = grep(/camp;4/, @tdat);
$c5 = grep(/camp;5/, @tdat);
if($limit_mode){
$c1a = $c2a = $c3a = $c4a = $c5a = ($all_mem<18) ? 3 : int($all_mem/6)+1 ;
&member_adjust if(!$member_flag);
}
&cdat_write;
}
#-------------------------------------------------------------------------------
# 지난번 통일의 우열 설정(참가 인원수)
sub member_adjust{
$c1a = $c2a = $c3a = $c4a = $c5a = ($all_mem<18) ? 3 : int($all_mem/6)+1 ;
local($rca_p,$rca_m);
$rca_p=1 if($all_mem<50);
$rca_p=2 if($all_mem=>50 && $all_mem<100);
$rca_p=3 if($all_mem=>100 && $all_mem<150);
$rca_p=4 if($all_mem=>150 && $all_mem<200);
$rca_p=5 if($all_mem=>200);
if($all_mem<50){
$rca_p=0;
$rca_m=-1;
}
elsif($all_mem=>50 && $all_mem<100){
$rca_p=0;
$rca_m=-2;
}
elsif($all_mem=>100 && $all_mem<150){
$rca_p=1;
$rca_m=-3;
}
elsif($all_mem=>150 && $all_mem<200){
$rca_p=1;
$rca_m=-4;
}
elsif($all_mem=>200){
$rca_p=2;
$rca_m=-5;
}
if($cn1>=$data_reset || $hcamp==1){
$c1a +=$rca_m;
$c2a +=$rca_p;
$c3a +=$rca_p;
$c4a +=$rca_p;
$c5a +=$rca_p;
}elsif($cn2>=$data_reset || $hcamp==2){
$c1a +=$rca_p;
$c2a +=$rca_m;
$c3a +=$rca_p;
$c4a +=$rca_p;
$c5a +=$rca_p;
}elsif($cn3>=$data_reset || $hcamp==3){
$c1a +=$rca_p;
$c2a +=$rca_p;
$c3a +=$rca_m;
$c4a +=$rca_p;
$c5a +=$rca_p;
}elsif($cn4>=$data_reset || $hcamp==4){
$c1a +=$rca_p;
$c2a +=$rca_p;
$c3a +=$rca_p;
$c4a +=$rca_m;
$c5a +=$rca_p;
}elsif($cn5>=$data_reset || $hcamp==5){
$c1a +=$rca_p;
$c2a +=$rca_p;
$c3a +=$rca_p;
$c4a +=$rca_p;
$c5a +=$rca_m;
}
}
1;
Regular → Executable
+436 -436
View File
@@ -1,436 +1,436 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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;
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# 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&&$cg5>$v&&$cf5>$v2&&$cs5>$v3){
$cg5 -= $v;
$cf5 -= $v2;
$cs5 -= $v3;
}
}
1;
Regular → Executable
+93 -93
View File
@@ -1,93 +1,93 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# NPC定義 Version 1.0
#--- [注意事項] --------------------------------------------#
# 1.このスクリプトは以下の利用規程に従って配布しています。 #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
# NPC定義(国)
sub ck_ne_1 {
if($nation==1){
@boss =('ランス皇子','グスタフ老','アルニード将軍','フィリナ将軍','傭兵隊');# 国1のNPC
@bs_lv =(99,80,40,30,15); # レベル
@bs_h =(20000,18000,14000,12000,2000,100); # 最大兵数
@bs_hp =(1000,450,300,200,100); # 最大HP
@bs_mp =(300,100,90,150,40); # 最大MP
@bs_ua =(55,80,60,45,10, 99,55,80,60,45,150,200); # UA
@bs_ud =(50,75,30,30,5); # UD
@bs_l =(50,75,45,30,5,99); # LR
@bs_ag =(80,80,55,40,20); # AG
}elsif($nation==2){
@boss =('エカテリーナ女王','ギリナム将軍','ルーシア将軍','グルューン将軍','傭兵隊');
@bs_lv =(99,55,40,30,15);
@bs_h =(20000,18000,10000,6000,2000,100);
@bs_hp =(1600,500,250,200,30);
@bs_mp =(400,100,200,150,40);
@bs_ua =(40,60,65,25,10);
@bs_ud =(40,45,60,20,5);
@bs_l =(30,65,40,20,5);
@bs_ag =(70,80,50,35,25);
}elsif($nation==3){
@boss =('ヤン元帥','シェーンコップ将軍','アッテンボロー将軍','ミンツ将軍','傭兵隊');
@bs_lv =(99,50,40,30,15);
@bs_h =(20000,16000,12000,10000,2000,100);
@bs_hp =(999,3000,150,250,30);
@bs_mp =(4000,130,120,70,40);
@bs_ua =(50,65,30,40,10);
@bs_ud =(60,70,35,35,5);
@bs_l =(75,40,35,30,5);
@bs_ag =(90,40,60,40,30);
}elsif($nation==4){
@boss =('皇帝ギザロフ','ランフォード将軍','ランディウス将軍','リーヴァス将軍','傭兵隊');
@bs_lv =(99,60,40,30,15);
@bs_h =(30000,18000,16000,14000,2000,100);
@bs_hp =(2500,350,400,250,30);
@bs_mp =(99999,150,120,70,40);
@bs_ua =(60,75,60,40,10);
@bs_ud =(50,60,55,50,5);
@bs_l =(80,70,55,45,5);
@bs_ag =(60,90,50,30,20);
}elsif($nation==5){
@boss =('皇帝ゾーマ','バラモス将軍','カンダタ将軍','オルデカ将軍','傭兵隊');
@bs_lv =(30,60,40,30,15);
@bs_h =(50000,4000,30000,2000,10000,1000);
@bs_hp =(5000,4000,3000,2000,1000);
@bs_mp =(99999,150,120,70,40);
@bs_ua =(60,75,60,40,10);
@bs_ud =(99,60,55,50,5);
@bs_l =(80,70,55,45,5);
@bs_ag =(40,40,50,20,20);
}
$tnm =$boss[$v];
$tsol =$bs_h[$v];
$tlv =$bs_lv[$v];
$thp =$bs_hp[$v];
$thp_max=$bs_hp[$v];
$tmp =$bs_mp[$v];
$tua =$bs_ua[$v];
$tud =$bs_ud[$v];
$tlr =$bs_l[$v];
$tag =$bs_ag[$v];
$tsol_lv=100;
$tcp =$nation;
}
1;
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# NPC 정의 Version 1.0
#--- [주의사항] --------------------------------------------#
# 1.이 스크립트는 이하의 이용규정에 따라 배포되고 있습니다. #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
# NPC 정의(국가)
sub ck_ne_1 {
if($nation==1){
@boss =('란스 황자','구스타프 옹','알니드 장군','피리나 장군','용병대');# 국가 1의 NPC
@bs_lv =(99,80,40,30,15); # 레벨
@bs_h =(20000,18000,14000,12000,2000,100); # 최대 병사 수
@bs_hp =(1000,450,300,200,100); # 최대 HP
@bs_mp =(300,100,90,150,40); # 최대 MP
@bs_ua =(55,80,60,45,10, 99,55,80,60,45,150,200); # UA
@bs_ud =(50,75,30,30,5); # UD
@bs_l =(50,75,45,30,5,99); # LR
@bs_ag =(80,80,55,40,20); # AG
}elsif($nation==2){
@boss =('에카테리나 여왕','기리남 장군','루시아 장군','그륜 장군','용병대');
@bs_lv =(99,55,40,30,15);
@bs_h =(20000,18000,10000,6000,2000,100);
@bs_hp =(1600,500,250,200,30);
@bs_mp =(400,100,200,150,40);
@bs_ua =(40,60,65,25,10);
@bs_ud =(40,45,60,20,5);
@bs_l =(30,65,40,20,5);
@bs_ag =(70,80,50,35,25);
}elsif($nation==3){
@boss =('양 원수','쇤코프 장군','아텐보로 장군','민츠 장군','용병대');
@bs_lv =(99,50,40,30,15);
@bs_h =(20000,16000,12000,10000,2000,100);
@bs_hp =(999,3000,150,250,30);
@bs_mp =(4000,130,120,70,40);
@bs_ua =(50,65,30,40,10);
@bs_ud =(60,70,35,35,5);
@bs_l =(75,40,35,30,5);
@bs_ag =(90,40,60,40,30);
}elsif($nation==4){
@boss =('황제 기자로프','란포드 장군','란디우스 장군','리바스 장군','용병대');
@bs_lv =(99,60,40,30,15);
@bs_h =(30000,18000,16000,14000,2000,100);
@bs_hp =(2500,350,400,250,30);
@bs_mp =(99999,150,120,70,40);
@bs_ua =(60,75,60,40,10);
@bs_ud =(50,60,55,50,5);
@bs_l =(80,70,55,45,5);
@bs_ag =(60,90,50,30,20);
}elsif($nation==5){
@boss =('황제 조마','바라모스 장군','칸다타 장군','올데카 장군','용병대');
@bs_lv =(30,60,40,30,15);
@bs_h =(50000,4000,30000,2000,10000,1000);
@bs_hp =(5000,4000,3000,2000,1000);
@bs_mp =(99999,150,120,70,40);
@bs_ua =(60,75,60,40,10);
@bs_ud =(99,60,55,50,5);
@bs_l =(80,70,55,45,5);
@bs_ag =(40,40,50,20,20);
}
$tnm =$boss[$v];
$tsol =$bs_h[$v];
$tlv =$bs_lv[$v];
$thp =$bs_hp[$v];
$thp_max=$bs_hp[$v];
$tmp =$bs_mp[$v];
$tua =$bs_ua[$v];
$tud =$bs_ud[$v];
$tlr =$bs_l[$v];
$tag =$bs_ag[$v];
$tsol_lv=100;
$tcp =$nation;
}
1;
Regular → Executable
+86 -86
View File
@@ -1,86 +1,86 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# NPC定義 Version 1.0
#--- [注意事項] --------------------------------------------#
# 1.このスクリプトは以下の利用規程に従って配布しています。 #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
# NPC定義(魑魅魍魎)
sub ck_ne_2 {
if($nation==1){
@boss =('アモン','バアル','ザエボス','ヴァッサゴ','サミジーナ','マルバス','ブォルフォール'); # 国1のNPC
@bs_lv =(99,99,99,80,40,30,35); # レベル
@bs_hp =(6000,2000,2000,6000,900,1500,600); # 最大HP
@bs_mp =(6000,4000,600,1500,900,1500,400); # 最大MP
@bs_ua =(180,110,65,90,70,55,40); # UA
@bs_ud =(300,99,50,75,50,30,30); # UD
@bs_l =(120,70,95,65,50,40,35); # LR
@bs_ag =(60,87,70,77,57,45,36); # AG
}elsif($nation==2){
@boss =('バルバトス','パイモン','ブエル','グイソン','シトリー','ベレス','レラージュ');
@bs_lv =(99,99,99,55,40,40,35);
@bs_hp =(8000,1200,3000,2500,800,1000,300);
@bs_mp =(8000,1600,4000,1000,800,600,800);
@bs_ua =(99,300,150,130,140,80,40);
@bs_ud =(99,99,80,90,60,50,20);
@bs_l =(99,99,30,65,40,20,5);
@bs_ag =(50,70,70,77,57,40,36);
}elsif($nation==3){
@boss =('エリゴール','ゼパール','ボーティス','バシム','サロス','プルソン','マラクス');
@bs_lv =(99,99,99,50,40,35,35);
@bs_hp =(4000,4000,999,3000,1200,1000,4000);
@bs_mp =(4000,4000,4000,1000,1440,2100,6000);
@bs_ua =(110,110,80,75,90,180,60);
@bs_ud =(110,99,70,80,45,45,25);
@bs_l =(110,99,85,50,45,40,25);
@bs_ag =(70,80,70,80,60,40,36);
}elsif($nation==4){
@boss =('イポス','ハボリム','ナベリウス','カーシモラル','ブーネ','ロノウェ','ベリス');
@bs_lv =(99,99,99,60,40,35,35);
@bs_hp =(5000,2000,1500,1000,800,1500,500);
@bs_mp =(1000,1500,5000,1000,600,900,400);
@bs_ua =(99,200,60,95,100,40,50);
@bs_ud =(99,99,70,60,55,60,5);
@bs_l =(99,99,80,70,55,45,5);
@bs_ag =(60,70,80,70,80,60,40);
}elsif($nation==5){
@boss =('アスタロス','フォルネウス','フォラス','アスモダイ','ガープ','フールフール','マルコキアス');
@bs_lv =(99,99,99,60,40,35,40);
@bs_hp =(2000,20000,4000,3000,2000,1500,800);
@bs_mp =(2000,20000,6000,1500,150,2000,4000);
@bs_ua =(150,99,90,105,90,70,30);
@bs_ud =(200,99,130,90,85,80,35);
@bs_l =(99,110,100,85,75,35,99);
@bs_ag =(60,10,50,60,70,60,40);
}
$tnm =$boss[$v];
$tlv =$bs_lv[$v];
$thp =$bs_hp[$v];
$thp_max=$bs_hp[$v];
$tmp =$bs_mp[$v];
$tua =$bs_ua[$v];
$tud =$bs_ud[$v];
$tlr =$bs_l[$v];
$tag =$bs_ag[$v];
$tsol_lv=100;
$tcp=$nation;
}
1;
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# NPC 정의 Version 1.0
#--- [주의사항] --------------------------------------------#
# 1.이 스크립트는 이하의 이용규정에 따라 배포되고 있습니다. #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
# NPC 정의(이매망량)
sub ck_ne_2 {
if($nation==1){
@boss =('아몬','바알','자에보스','바사고','사미지나','마르바스','발레포르'); # 국가 1의 NPC
@bs_lv =(99,99,99,80,40,30,35); # 레벨
@bs_hp =(6000,2000,2000,6000,900,1500,600); # 최대 HP
@bs_mp =(6000,4000,600,1500,900,1500,400); # 최대 MP
@bs_ua =(180,110,65,90,70,55,40); # UA
@bs_ud =(300,99,50,75,50,30,30); # UD
@bs_l =(120,70,95,65,50,40,35); # LR
@bs_ag =(60,87,70,77,57,45,36); # AG
}elsif($nation==2){
@boss =('바르바토스','파이몬','부엘','구시온','시트리','벨레스','레라지에');
@bs_lv =(99,99,99,55,40,40,35);
@bs_hp =(8000,1200,3000,2500,800,1000,300);
@bs_mp =(8000,1600,4000,1000,800,600,800);
@bs_ua =(99,300,150,130,140,80,40);
@bs_ud =(99,99,80,90,60,50,20);
@bs_l =(99,99,30,65,40,20,5);
@bs_ag =(50,70,70,77,57,40,36);
}elsif($nation==3){
@boss =('엘리고르','제파르','보티스','바심','살로스','푸르손','마락스');
@bs_lv =(99,99,99,50,40,35,35);
@bs_hp =(4000,4000,999,3000,1200,1000,4000);
@bs_mp =(4000,4000,4000,1000,1440,2100,6000);
@bs_ua =(110,110,80,75,90,180,60);
@bs_ud =(110,99,70,80,45,45,25);
@bs_l =(110,99,85,50,45,40,25);
@bs_ag =(70,80,70,80,60,40,36);
}elsif($nation==4){
@boss =('이포스','하보림','나베리우스','카시모랄','분','로노베','베리스');
@bs_lv =(99,99,99,60,40,35,35);
@bs_hp =(5000,2000,1500,1000,800,1500,500);
@bs_mp =(1000,1500,5000,1000,600,900,400);
@bs_ua =(99,200,60,95,100,40,50);
@bs_ud =(99,99,70,60,55,60,5);
@bs_l =(99,99,80,70,55,45,5);
@bs_ag =(60,70,80,70,80,60,40);
}elsif($nation==5){
@boss =('아스타로트','포르네우스','포라스','아스모다이','가프','푸르푸르','마르코시아스');
@bs_lv =(99,99,99,60,40,35,40);
@bs_hp =(2000,20000,4000,3000,2000,1500,800);
@bs_mp =(2000,20000,6000,1500,150,2000,4000);
@bs_ua =(150,99,90,105,90,70,30);
@bs_ud =(200,99,130,90,85,80,35);
@bs_l =(99,110,100,85,75,35,99);
@bs_ag =(60,10,50,60,70,60,40);
}
$tnm =$boss[$v];
$tlv =$bs_lv[$v];
$thp =$bs_hp[$v];
$thp_max=$bs_hp[$v];
$tmp =$bs_mp[$v];
$tua =$bs_ua[$v];
$tud =$bs_ud[$v];
$tlr =$bs_l[$v];
$tag =$bs_ag[$v];
$tsol_lv=100;
$tcp=$nation;
}
1;
Regular → Executable
+299 -299
View File
@@ -1,299 +1,299 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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;
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# 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;
Regular → Executable
+149 -149
View File
@@ -1,149 +1,149 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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 lotto{
if($tm==90){
if($cmd<=0){
$log .= "またお越しください…<br>\n";
$tm = $cmd = 0;
&shop_menu;
}elsif($cmd==1){
$S = 500;
if($S < $gold){
$gold -= $S;
$log .= "五百Gを支払った…<br>さぁ当たったかな~?<br>\n";
$tm=95;
$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|;
}else{
$log .= "お金が足りないよ! タダじゃ夢も買えないこの現実・・・<br>\n";
$tm = $cmd = 0;
&shop_menu;
}
}
}elsif($tm==95){ # 宝くじ処理
my $dh =int(rand(450)) ;
if($dh == 0){
$gold += 100000;
$log .="ドンドンヒューヒューパフパフ♪<br>壱等賞が当たった!!!<br>$nm は \十\万\Gを獲得した!<br>\n";
$tm = $cmd = 0;
&shop_menu;
}elsif($dh > 0 && $dh <= 2){
$gold += 50000;
$log .="ドンドンヒューヒューパフパフ♪<br>弐等賞が当たった!!!<br>$nm は 五万Gを獲得した!<br>\n";
$tm = $cmd = 0;
&shop_menu;
}elsif($dh > 10 && $dh <= 20){
$gold += 10000;
$log .="ドンドンヒューヒューパフパフ♪<br>参等賞が当たった!!!<br>$nm は 壱万Gを獲得した!<br>\n";
$tm = $cmd = 0;
&shop_menu;
}elsif($dh > 20 && $dh <= 60){
$gold += 1000;
$log .="ドンドンヒューヒューパフパフ♪<br>四等賞が当たった!!!<br>$nm は 壱千Gを獲得した!<br>\n";
$tm = $cmd = 0;
&shop_menu;
}elsif($dh == 447){
$dh =int(rand(2)) ;
if($dh){
$hp = $max_hp;
$log .="ドンドンヒューヒューパフパフ♪<br>幸運賞が当たった!!!<br>$nm HP が全回復した!<br>\n";
}else{
$mp = $max_mp;
$log .="ドンドンヒューヒューパフパフ♪<br>幸運賞が当たった!!!<br>$nm MP が全回復した!<br>\n";
}
$tm = $cmd = 0;
&shop_menu;
}elsif($dh == 448){
$dh =int(rand(2)) ;
if($dh){
$hp = int($hp/2);
$log .="ガーーン!!  不幸賞が当たってしまった・・・。<br>$nm HP が半分になった・・・。<br>\n";
}else{
$mp = int($mp/2);
$log .="ガーーン!!  不幸賞が当たってしまった・・・。<br>$nm MP が半分になった・・・。<br>\n";
}
$tm = $cmd = 0;
&shop_menu;
}elsif($dh == 449){#$dh == 449
$dh =int(rand(5)) ;
if($dh==0){
$log .="おーっと!! 滅多に当たらない$dg_data[1][1]が当たった!!<br><br>装備する場合、現在所持している武具は破棄されます。<br>どうしますか?<br>\n";
$tm = 100;
$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><option value="0">いらない</option>\n|;
$log2 .=qq|</select><br>\n|;
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
}elsif($dh==1){
$log .="おーっと!! 滅多に当たらない$df_data[1][1]が当たった!!<br><br>装備する場合、現在所持している防具は破棄されます。<br>どうしますか?<br>\n";
$tm = 115;
$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><option value="0">いらない</option>\n|;
$log2 .=qq|</select><br>\n|;
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
}else{
$log .= "外れた・・・ また挑戦してくださいネェ♪<br>\n";
$tm = $cmd = 0;
&shop_menu;
}
}else{
$log .= "外れた・・・ また挑戦してくださいネェ♪<br>\n";
$tm = $cmd = 0;
&shop_menu;
}
}elsif($tm==100){#宝くじ 罪罰賞処理
if($cmd){
$log .="$nm <b>$dg_data[1][1]</b>を手に入れた!!<br>\n";
$dg_a = 1;
$dg_cnt = $dg_data[1][3];
}else{
$log .="$nm は 涙をしのんで諦めた・・・・・・\n";
}
$tm = $cmd = 0;
&shop_menu;
}elsif($tm==115){#宝くじ 罪罰賞処理
if($cmd){
$log .="$nm <b>$df_data[1][1]</b>を手に入れた!!<br>\n";
$df_a = 1;
$df_cnt = $df_data[1][3];
}else{
$log .="$nm は 涙をしのんで諦めた・・・・・・\n";
}
$tm = $cmd = 0;
&shop_menu;
}
}
1;
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# 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 lotto{
if($tm==90){
if($cmd<=0){
$log .= "또 오세요…<br>\n";
$tm = $cmd = 0;
&shop_menu;
}elsif($cmd==1){
$S = 500;
if($S < $gold){
$gold -= $S;
$log .= "500 G를 지불했습니다…<br>자, 당첨되었으려나~?<br>\n";
$tm=95;
$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|;
}else{
$log .= "돈이 부족해요! 공짜로는 꿈도 살 수 없는 이 현실…<br>\n";
$tm = $cmd = 0;
&shop_menu;
}
}
}elsif($tm==95){ # 복권 처리
my $dh =int(rand(450)) ;
if($dh == 0){
$gold += 100000;
$log .="둥둥둥둥 빰빰빰빠♪<br>1등상에 당첨되었다!!!<br>$nm 님은 10만 G를 획득했다!<br>\n";
$tm = $cmd = 0;
&shop_menu;
}elsif($dh > 0 && $dh <= 2){
$gold += 50000;
$log .="둥둥둥둥 빰빰빰빠♪<br>2등상에 당첨되었다!!!<br>$nm 님은 5만 G를 획득했다!<br>\n";
$tm = $cmd = 0;
&shop_menu;
}elsif($dh > 10 && $dh <= 20){
$gold += 10000;
$log .="둥둥둥둥 빰빰빰빠♪<br>3등상에 당첨되었다!!!<br>$nm 님은 1만 G를 획득했다!<br>\n";
$tm = $cmd = 0;
&shop_menu;
}elsif($dh > 20 && $dh <= 60){
$gold += 1000;
$log .="둥둥둥둥 빰빰빰빠♪<br>4등상에 당첨되었다!!!<br>$nm 님은 1천 G를 획득했다!<br>\n";
$tm = $cmd = 0;
&shop_menu;
}elsif($dh == 447){
$dh =int(rand(2)) ;
if($dh){
$hp = $max_hp;
$log .="둥둥둥둥 빰빰빰빠♪<br>행운상에 당첨되었다!!!<br>$nm 님은 HP가 모두 회복되었다!<br>\n";
}else{
$mp = $max_mp;
$log .="둥둥둥둥 빰빰빰빠♪<br>행운상에 당첨되었다!!!<br>$nm 님은 MP가 모두 회복되었다!<br>\n";
}
$tm = $cmd = 0;
&shop_menu;
}elsif($dh == 448){
$dh =int(rand(2)) ;
if($dh){
$hp = int($hp/2);
$log .="쾅~!! 불행상에 당첨되어 버렸다…<br>$nm 님은 HP가 절반이 되었다…<br>\n";
}else{
$mp = int($mp/2);
$log .="쾅~!! 불행상에 당첨되어 버렸다…<br>$nm 님은 MP가 절반이 되었다…<br>\n";
}
$tm = $cmd = 0;
&shop_menu;
}elsif($dh == 449){#$dh == 449
$dh =int(rand(5)) ;
if($dh==0){
$log .="오옷!! 좀처럼 당첨되지 않는 $dg_data[1][1]이(가) 당첨되었다!!<br><br>장착할 경우, 현재 소지하고 있는 무기는 파기됩니다.<br>어떻게 하시겠습니까?<br>\n";
$tm = 100;
$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><option value="0">필요 없다</option>\n|;
$log2 .=qq|</select><br>\n|;
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
}elsif($dh==1){
$log .="오옷!! 좀처럼 당첨되지 않는 $df_data[1][1]이(가) 당첨되었다!!<br><br>장착할 경우, 현재 소지하고 있는 방어구는 파기됩니다.<br>어떻게 하시겠습니까?<br>\n";
$tm = 115;
$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><option value="0">필요 없다</option>\n|;
$log2 .=qq|</select><br>\n|;
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
}else{
$log .= "꽝… 다음 기회에 또 도전해 주세요♪<br>\n";
$tm = $cmd = 0;
&shop_menu;
}
}else{
$log .= "꽝… 다음 기회에 또 도전해 주세요♪<br>\n";
$tm = $cmd = 0;
&shop_menu;
}
}elsif($tm==100){#복권 죄벌상 처리
if($cmd){
$log .="$nm 님은 <b>$dg_data[1][1]</b>을(를) 손에 넣었다!!<br>\n";
$dg_a = 1;
$dg_cnt = $dg_data[1][3];
}else{
$log .="$nm 님은 눈물을 머금고 포기했다……\n";
}
$tm = $cmd = 0;
&shop_menu;
}elsif($tm==115){#복권 죄벌상 처리
if($cmd){
$log .="$nm 님은 <b>$df_data[1][1]</b>을(를) 손에 넣었다!!<br>\n";
$df_a = 1;
$df_cnt = $df_data[1][3];
}else{
$log .="$nm 님은 눈물을 머금고 포기했다……\n";
}
$tm = $cmd = 0;
&shop_menu;
}
}
1;
Regular → Executable
+122 -122
View File
@@ -1,122 +1,122 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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 medical{
if($tm==120){
if($cmd<=0){
$log .= "またお越しください…<br>\n";
$tm = $cmd = 0;
&shop_menu;
# 治療-1
}elsif($cmd==1){
$S = ($lv < 50) ? $lv*2000 : 100000;
$log .= "…ここでは古の秘術によって体力と魔力を<br>瞬時に全快まで回復してさしあげられます<br>…ただし$SG\頂きますが…<br>\n";
$tm=125;
$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|</select><br>\n|;
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
# 性転換-1
}elsif($cmd==2){
$log.="ここでは性転換手術を受けられます。<br>ただし入院と手術費に20万G ほどかかりますが・・・<br>";
$tm=135;
$log2 .= qq|<form action="$script" method="$method" name="ore_">|;
$log2 .= qq|<td align="center" valign="middle">\n| if($mv_mode eq 'pc');
$log2 .= qq|<input type="hidden" name="id" value="$id">\n|;
$log2 .= qq|<input type="hidden" name="pw" value="$pw">\n|;
$log2 .= qq|<select name="cmd">\n|;
$log2 .= qq|<option value="0">逃げる</option>\n|;
$log2 .= ($sei==1) ?
qq|<option value="3">女になる</option>\n|:
qq|<option value="3">男になる</option>\n|;
$log2 .= qq|</select><br>\n|;
$log2 .= qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
}
# 治療-2
}elsif($tm==125){
if($cmd<=0){
$log .= "$nm は立ち去った。<br>\n";
$tm = $cmd = 0;
&shop_menu;
}else{
$S = ($lv < 50) ? $lv*2000 : 100000;
if($S < $gold){
$hp = $max_hp;
$mp = $max_mp;
$gold -= $S;
$log .= "$SGを支払った…<br>体力と魔力が全回復した。<br>\n";
$tm = $cmd = 0;
&shop_menu;
}else{
$log .= "お金が足りないわ…<br>\n";
$tm=0;
&shop_menu;
}
}
# 性転換-2
}elsif($tm==135){
if($cmd<=0){
$log .= "$nm は何事も無かったように立ち去った。<br>\n";
$tm = $cmd = 0;
&shop_menu;
}else{
if($gold>=200000){
$gold-=200000;
$log.="オペを開始します。目覚めるとそこは別世界になっていることでしょう。<br>";
$pr=$GMT*8;
if($sei==1){
$sei=2;
$sei2="女性";
}else{
$sei=1;
$sei2="男性";
}
$mes.= qq|麻酔から目を覚ました。$nm $sei2 になった。|;
$tm = $cmd = 0;
$type='';
&call_main_st;
}else{
$log2.="お金が足りません。";
$tm = $cmd = 0;
&shop_menu;
}
}
}
}
1;
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# 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 medical{
if($tm==120){
if($cmd<=0){
$log .= "또 오세요…<br>\n";
$tm = $cmd = 0;
&shop_menu;
# 치료-1
}elsif($cmd==1){
$S = ($lv < 50) ? $lv*2000 : 100000;
$log .= "…이곳에서는 고대의 비술을 통해 체력과 마력을<br>순식간에 전 회복해 드릴 수 있습니다.<br>…다만 $S G를 받겠습니다만…<br>\n";
$tm=125;
$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|</select><br>\n|;
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
# 성전환-1
}elsif($cmd==2){
$log.="이곳에서는 성전환 수술을 받을 수 있습니다.<br>다만 입원 및 수술 비용으로 20만 G 정도 듭니다만…<br>";
$tm=135;
$log2 .= qq|<form action="$script" method="$method" name="ore_">|;
$log2 .= qq|<td align="center" valign="middle">\n| if($mv_mode eq 'pc');
$log2 .= qq|<input type="hidden" name="id" value="$id">\n|;
$log2 .= qq|<input type="hidden" name="pw" value="$pw">\n|;
$log2 .= qq|<select name="cmd">\n|;
$log2 .= qq|<option value="0">도망치기</option>\n|;
$log2 .= ($sei==1) ?
qq|<option value="3">여성이 된다</option>\n|:
qq|<option value="3">남성이 된다</option>\n|;
$log2 .= qq|</select><br>\n|;
$log2 .= qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
}
# 치료-2
}elsif($tm==125){
if($cmd<=0){
$log .= "$nm 님은 자리를 떠났다.<br>\n";
$tm = $cmd = 0;
&shop_menu;
}else{
$S = ($lv < 50) ? $lv*2000 : 100000;
if($S < $gold){
$hp = $max_hp;
$mp = $max_mp;
$gold -= $S;
$log .= "$S G를 지불했습니다…<br>체력과 마력이 모두 회복되었습니다.<br>\n";
$tm = $cmd = 0;
&shop_menu;
}else{
$log .= "돈이 부족하네요…<br>\n";
$tm=0;
&shop_menu;
}
}
# 성전환-2
}elsif($tm==135){
if($cmd<=0){
$log .= "$nm 님은 아무 일도 없었던 것처럼 자리를 떠났다.<br>\n";
$tm = $cmd = 0;
&shop_menu;
}else{
if($gold>=200000){
$gold-=200000;
$log.="수술을 시작합니다. 눈을 뜨면 그곳은 딴 세상이 되어 있겠지요.<br>";
$pr=$GMT*8;
if($sei==1){
$sei=2;
$sei2="여성";
}else{
$sei=1;
$sei2="남성";
}
$mes.= qq|마취에서 깨어났다. $nm 님은 $sei2이(가) 되었다.|;
$tm = $cmd = 0;
$type='';
&call_main_st;
}else{
$log2.="돈이 부족합니다.";
$tm = $cmd = 0;
&shop_menu;
}
}
}
}
1;
Regular → Executable
+73 -73
View File
@@ -1,73 +1,73 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# お買い物 PC用パーツ1 Version 1.0 #
#--- [注意事項] --------------------------------------------#
# 1.このスクリプトは以下の利用規程に従って配布しています。 #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#############################################################
# 以下処理 基本的にこれ以下はいじらないように。
#-------------------------------------------------------------------------------
#武具(ショッピング)
sub bugu_s{
$log.=<<EOM;
<form action=$script method=$method name=ore_>
<input type=hidden name=id value="$id_p">
<input type=hidden name=pw value="$pw_p">
<input type=hidden name=cmd value=-1>
EOM
foreach(11 .. $#dg_data){
$log .=qq|<hr color=white><input type=radio value="$_" name=cmd>\n|;
$log .=qq|$dg_data[$_][1] $dg_data[$_][2]G 回数$dg_data[$_][3] $dg_data[$_][5]\n|;
}
$log .=qq|<hr color=white><input type=submit value="購入/やめる"></form>\n|;
}
#-------------------------------------------------------------------------------
#防具(ショッピング)
sub bogu_s{
$log.=<<EOM;
<form action=$script method=$method name=ore_>
<input type=hidden name=id value="$id_p">
<input type=hidden name=pw value="$pw_p">
<input type=hidden name=cmd value=-1>
EOM
foreach(11 .. $#df_data){
$log .=qq|<hr color=white><input type=radio value="$_" name=cmd>\n|;
$log .=qq|$df_data[$_][1] $df_data[$_][2]G 回数$df_data[$_][3] $df_data[$_][5]\n|;
}
$log .=qq|<hr color=white><input type=submit value="購入/やめる"></form>\n|;
}
#-------------------------------------------------------------------------------
#道具(ショッピング)
sub dogu_s{
$log.=<<EOM;
<form action=$script method=$method name=ore_>
<input type=hidden name=id value="$id_p">
<input type=hidden name=pw value="$pw_p">
<input type=hidden name=cmd value=-1>
EOM
foreach(11 .. $#di_data){
$log .=qq|<hr color=white><input type=radio value="$_" name=cmd>\n|;
$log .=qq|$di_data[$_][1] $di_data[$_][2]G 回数$di_data[$_][3] $di_data[$_][4]\n|;
}
$log .=qq|<hr color=white><input type=submit value="購入/やめる"></form>\n|;
}
1;#削除不可
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# 상점 PC용 파츠1 Version 1.0 #
#--- [주의사항] --------------------------------------------#
# 1.이 스크립트는 이하의 이용규정에 따라 배포되고 있습니다. #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#############################################################
# 이하 처리 기본적으로 이 이하는 수정하지 말 것.
#-------------------------------------------------------------------------------
# 무구(상점)
sub bugu_s{
$log.=<<EOM;
<form action=$script method=$method name=ore_>
<input type=hidden name=id value="$id_p">
<input type=hidden name=pw value="$pw_p">
<input type=hidden name=cmd value=-1>
EOM
foreach(11 .. $#dg_data){
$log .=qq|<hr color=white><input type=radio value="$_" name=cmd>\n|;
$log .=qq|$dg_data[$_][1] $dg_data[$_][2]G 횟수$dg_data[$_][3] $dg_data[$_][5]\n|;
}
$log .=qq|<hr color=white><input type=submit value="구매/그만두기"></form>\n|;
}
#-------------------------------------------------------------------------------
# 방어구(상점)
sub bogu_s{
$log.=<<EOM;
<form action=$script method=$method name=ore_>
<input type=hidden name=id value="$id_p">
<input type=hidden name=pw value="$pw_p">
<input type=hidden name=cmd value=-1>
EOM
foreach(11 .. $#df_data){
$log .=qq|<hr color=white><input type=radio value="$_" name=cmd>\n|;
$log .=qq|$df_data[$_][1] $df_data[$_][2]G 횟수$df_data[$_][3] $df_data[$_][5]\n|;
}
$log .=qq|<hr color=white><input type=submit value="구매/그만두기"></form>\n|;
}
#-------------------------------------------------------------------------------
# 도구(상점)
sub dogu_s{
$log.=<<EOM;
<form action=$script method=$method name=ore_>
<input type=hidden name=id value="$id_p">
<input type=hidden name=pw value="$pw_p">
<input type=hidden name=cmd value=-1>
EOM
foreach(11 .. $#di_data){
$log .=qq|<hr color=white><input type=radio value="$_" name=cmd>\n|;
$log .=qq|$di_data[$_][1] $di_data[$_][2]G 횟수$di_data[$_][3] $di_data[$_][4]\n|;
}
$log .=qq|<hr color=white><input type=submit value="구매/그만두기"></form>\n|;
}
1;#삭제 불가
Regular → Executable
+103 -103
View File
@@ -1,103 +1,103 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to ] #
#-----------------------------------------------------------#
# お買い物 PC用パーツ1 Version 1.5 #
#--- [注意事項] --------------------------------------------#
# 1.このスクリプトは以下の利用規程に従って配布しています。 #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#############################################################
# 以下処理 基本的にこれ以下はいじらないように。
#-------------------------------------------------------------------------------
# 武具(ショッピング)
sub bugu_s{
$log.=<<EOM;
<form action=$script method=$method name=ore_>
<input type=hidden name=id value="$id">
<input type=hidden name=pw value="$pw_p">
<input type=hidden name=cmd value=-1>
<table border=0 cellpadding=2 cellspacing=2 width=100%>
<tr align=center bgcolor="#ccccee">
<td>&nbsp;</td>
<td>武具</td>
<td>値段</td>
<td>回数</td>
<td>説明</td>
</tr>
EOM
foreach(11 .. $#dg_data){
$log .=qq|<tr align="center" bgcolor="#ccccee">\n|;
$log .=qq|<td><input type="radio" value="$_" name="cmd" class="a5">\n|;
$log .=qq|<td>$dg_data[$_][1]</td><td>$dg_data[$_][2]</td><td>$dg_data[$_][3]</td><td>$dg_data[$_][5]</td></tr>\n|;
}
$log .=qq|</table>\n|;
$log .=qq|<tt><br></tt><input type=submit value="購入/やめる" class="button1"></form>\n|;
}
#-------------------------------------------------------------------------------
# 防具(ショッピング)
sub bogu_s{
$log.=<<EOM;
<form action=$script method=$method name=ore_>
<input type=hidden name=id value="$id_p">
<input type=hidden name=pw value="$pw_p">
<input type=hidden name=cmd value=-1>
<table border=0 cellpadding=2 cellspacing=2 width=100%>
<tr align=center bgcolor="#ccccee">
<td>&nbsp;</td>
<td>防具</td>
<td>値段</td>
<td>回数</td>
<td>説明</td>
</tr>
EOM
foreach(11 .. $#df_data){
$log .=qq|<tr align="center" bgcolor="#ccccee">\n|;
$log .=qq|<td><input type="radio" value="$_" name="cmd" class="a5">\n|;
$log .=qq|<td>$df_data[$_][1]</td><td>$df_data[$_][2]</td><td>$df_data[$_][3]</td><td>$df_data[$_][5]</td></tr>\n|;
}
$log .=qq|</table>\n|;
$log .=qq|<tt><br></tt><input type="submit" value="購入/やめる" class="button1"></form>\n|;
}
#-------------------------------------------------------------------------------
# 道具(ショッピング)
sub dogu_s{
$log.=<<EOM;
<form action=$script method=$method name=ore_>
<input type=hidden name=id value="$id_p">
<input type=hidden name=pw value="$pw_p">
<input type=hidden name=cmd value=-1>
<table border=0 cellpadding=2 cellspacing=2 width=100%>
<tr align=center bgcolor="#ccccee">
<td>&nbsp;</td>
<td>道具</td>
<td>値段</td>
<td>回数</td>
<td>説明</td>
</tr>
EOM
foreach(11 .. $#di_data){
$log .=qq|<tr align="center" bgcolor="#ccccee">\n|;
$log .=qq|<td><input type="radio" value="$_" name="cmd" class="a5">\n|;
$log .=qq|<td>$di_data[$_][1]</td><td>$dg_data[$_][2]</td><td>$di_data[$_][3]</td><td>$di_data[$_][4]</td></tr>\n|;
}
$log .=qq|</table>\n|;
$log .=qq|<tt><br></tt><input type="submit" value="購入/やめる" class="button1"></form>\n|;
}
1;#削除不可
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to ] #
#-----------------------------------------------------------#
# 쇼핑 PC용 파츠1 Version 1.5 #
#--- [주의사항] --------------------------------------------#
# 1.이 스크립트는 이하의 이용규정에 따라 배포되고 있습니다. #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#############################################################
# 이하 처리 기본적으로 이 이하는 수정하지 않도록.
#-------------------------------------------------------------------------------
# 무구(쇼핑)
sub bugu_s{
$log.=<<EOM;
<form action=$script method=$method name=ore_>
<input type=hidden name=id value="$id">
<input type=hidden name=pw value="$pw_p">
<input type=hidden name=cmd value=-1>
<table border=0 cellpadding=2 cellspacing=2 width=100%>
<tr align=center bgcolor="#ccccee">
<td>&nbsp;</td>
<td>무구</td>
<td>가격</td>
<td>횟수</td>
<td>설명</td>
</tr>
EOM
foreach(11 .. $#dg_data){
$log .=qq|<tr align="center" bgcolor="#ccccee">\n|;
$log .=qq|<td><input type="radio" value="$_" name="cmd" class="a5">\n|;
$log .=qq|<td>$dg_data[$_][1]</td><td>$dg_data[$_][2]</td><td>$dg_data[$_][3]</td><td>$dg_data[$_][5]</td></tr>\n|;
}
$log .=qq|</table>\n|;
$log .=qq|<tt><br></tt><input type=submit value="구매/그만두기" class="button1"></form>\n|;
}
#-------------------------------------------------------------------------------
# 방어구(쇼핑)
sub bogu_s{
$log.=<<EOM;
<form action=$script method=$method name=ore_>
<input type=hidden name=id value="$id_p">
<input type=hidden name=pw value="$pw_p">
<input type=hidden name=cmd value=-1>
<table border=0 cellpadding=2 cellspacing=2 width=100%>
<tr align=center bgcolor="#ccccee">
<td>&nbsp;</td>
<td>방어구</td>
<td>가격</td>
<td>횟수</td>
<td>설명</td>
</tr>
EOM
foreach(11 .. $#df_data){
$log .=qq|<tr align="center" bgcolor="#ccccee">\n|;
$log .=qq|<td><input type="radio" value="$_" name="cmd" class="a5">\n|;
$log .=qq|<td>$df_data[$_][1]</td><td>$df_data[$_][2]</td><td>$df_data[$_][3]</td><td>$df_data[$_][5]</td></tr>\n|;
}
$log .=qq|</table>\n|;
$log .=qq|<tt><br></tt><input type="submit" value="구매/그만두기" class="button1"></form>\n|;
}
#-------------------------------------------------------------------------------
# 도구(쇼핑)
sub dogu_s{
$log.=<<EOM;
<form action=$script method=$method name=ore_>
<input type=hidden name=id value="$id_p">
<input type=hidden name=pw value="$pw_p">
<input type=hidden name=cmd value=-1>
<table border=0 cellpadding=2 cellspacing=2 width=100%>
<tr align=center bgcolor="#ccccee">
<td>&nbsp;</td>
<td>도구</td>
<td>가격</td>
<td>횟수</td>
<td>설명</td>
</tr>
EOM
foreach(11 .. $#di_data){
$log .=qq|<tr align="center" bgcolor="#ccccee">\n|;
$log .=qq|<td><input type="radio" value="$_" name="cmd" class="a5">\n|;
$log .=qq|<td>$di_data[$_][1]</td><td>$dg_data[$_][2]</td><td>$di_data[$_][3]</td><td>$di_data[$_][4]</td></tr>\n|;
}
$log .=qq|</table>\n|;
$log .=qq|<tt><br></tt><input type="submit" value="구매/그만두기" class="button1"></form>\n|;
}
1;#삭제 불가
Regular → Executable
+505 -505
View File
File diff suppressed because it is too large Load Diff
Regular → Executable
+91 -91
View File
@@ -1,91 +1,91 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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 subdue{
if(!$type){
$log .= "エルタニアの地に蔓延る魑魅魍魎を討伐します。<br>成功すると地位と賞金が獲得できます。<br>\n";
$tm=0;
$type='討伐';
&call_mapdata if($mv_mode eq 'pc');
&subdue_menu;
}elsif($type eq '討伐'){ &subdue_exe }
&dat_write;
}
sub subdue_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 subdue_exe{
if(!$tm){
if($cmd<=0 || $cmd>$#cmp){
$log .= "またお越しください…<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($cmd){
if($camp<1){
$log .= "放浪の身で討伐は行えません<br>\n";
$tm = $cmd = 0;
&call_main_st;
}else{
my $x = int($g_p[$rank]/3);
if($max_sol<=$my_cs){
$sol= $max_sol;
}elsif($max_sol>$my_cs){
$sol= $my_cs;
}
my $y = int($sol/10);
$log .= "$cmp[$cmd]の魑魅魍魎を討伐します<br>\n";
$log .= "探索を開始します。<br>\n";
$nation=$cmd;
$tm=0;
$type='討伐中';
$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|;
}
}
}
&dat_write;
}
1;
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# 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 subdue{
if(!$type){
$log .= "엘타니아 땅에 만연한 이매망량을 토벌합니다.<br>성공하면 지위와 상금을 획득할 수 있습니다.<br>\n";
$tm=0;
$type='토벌';
&call_mapdata if($mv_mode eq 'pc');
&subdue_menu;
}elsif($type eq '토벌'){ &subdue_exe }
&dat_write;
}
sub subdue_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 subdue_exe{
if(!$tm){
if($cmd<=0 || $cmd>$#cmp){
$log .= "다음에 또 오십시오…<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($cmd){
if($camp<1){
$log .= "방랑자 신분으로는 토벌을 진행할 수 없습니다<br>\n";
$tm = $cmd = 0;
&call_main_st;
}else{
my $x = int($g_p[$rank]/3);
if($max_sol<=$my_cs){
$sol= $max_sol;
}elsif($max_sol>$my_cs){
$sol= $my_cs;
}
my $y = int($sol/10);
$log .= "$cmp[$cmd]의 이매망량을 토벌합니다<br>\n";
$log .= "탐색을 시작합니다.<br>\n";
$nation=$cmd;
$tm=0;
$type='토벌 중';
$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|;
}
}
}
&dat_write;
}
1;
Regular → Executable
+344 -348
View File
@@ -1,348 +1,344 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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 ws_st {
if(!$tm && !$ck){
$log .="$date $cmp[$nation] を探索中です<br>\n";
# NPC(魑魅魍魎)読み込み
require './inc/ore_sub-npc_2.cgi';
local $v=int(rand(7));
&ck_ne_2;
$log .="<hr size=1 noshade>\n";
$log .="$cmp[$nation] に蔓延る $tnm を発見した!<br>\n";
$log .="戦闘態勢をとります!<br>\n";
$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="hidden" name="cmd" value="-1"><input $button1 type="submit" value=" 戦闘突入!!">$td_end</form>\n|;
$tm=40;
$ck=1;
}elsif($ck){
# 戦闘処理読み込み
require './inc/ore_sub-battle.cgi';
if(!$b_n && !$tlr){
$tm = 0;
$ck = 0;
$nation = 0;#討伐
$type='';
$log .="戦闘中にバグが発生しました!強制的にメイン画面に戻ります<br>\n";
}
if($tm==40 && $cmd==-1){
$tm=55;
$log .="<p>$tnm との対決!!</p><p>どうしますか?</p>\n";
$log .="<p>魑魅魍魎ステータス - $tnm ( HP $thp MP $tmp UA $tua UD $tud LV $tlv )</p>\n";
}
if($tm==55){
if($cmd==10){
my $btp = $ag + int(rand($lv)*0.8);
my $bte = $tag+ int(rand($tlv)*0.8);
if($btp>=$bte){
$log .="$nm は 脱兎の如く逃げ出した・・・<br>評価が著しく下がった<br>\n";
$tm=0;
$v = int(2 + rand(4));
$rank_exe-=$v;
$sol=0;
$tnm='';
$ck=0;
$nation=0;#討伐
$type='';
$vv = int(rand(2));
if(!$vv){
$we-- if($we>0);
}
}else{
$log .="$nm は 脱兎の如く逃げ出した・・・<br>しかし! $tnm に追いつかれてしまった!!<br>\n";
$tm=65;
$rank_exe-=1;
}
}elsif($cmd==20){
$log .="$tnm の討伐を行なう事に!<br>\n";
$tm=65;
$rank_exe+=1;
}
}elsif($tm==65){
$log .="真剣勝負開始!<br>\n";
$tm=75;
}elsif($tm==75){
&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((($tlv*2)+$tua+$tud+$tag)*(rand($lv/10)+3))-$lv*2;
$E = int(rand(300)+1300) if($E>1500);
$exe+=$E;
$thp=0;
$bst ='';
$bt =0;
$log .="$nm $tnm を倒した!<br>\n";
$log .="$G の金 と $E の経験値を得た!<br>\n";
$log .="<br>\n";
# 賞金(自国優位)
if($nation==$camp){
$G =int($my_cg/(rand(6)+15));
$G =int(rand(500))+1500 if(int(2000>=$G));
$G =int(rand(1500))+4000 if(int(5000<=$G));
}else{
if($nation==1){$G =int($cg1/(rand(11)+20));}
elsif($nation==2){$G =int($cg2/(rand(11)+20));}
elsif($nation==3){$G =int($cg2/(rand(11)+20));}
elsif($nation==4){$G =int($cg2/(rand(11)+20));}
elsif($nation==5){$G =int($cg2/(rand(11)+20));}
$G =int(rand(500))+500 if(int(1000>=$G));
$G =int(rand(1000))+2500 if(int(3500<=$G));
}
$exe+=$E;
$gold+=$G;
$tsol=int($tsol/2);
$log .="$cmp[$nation]から $G の賞金を得た!<br>\n";#討伐
$V =int(rand(4));
$sol_lv-=$V;
$rank_exe+=int($V*2)+5;
# 拾得物処理 1
if(int(rand(100))==0){
&syutoku1;
}else{
$sol=0;
$tnm='';
$ck = $tm = 0;
$nation=0;
$type='';
}
$we++;
if($we>250){
$log .="エルタニアの地に蔓延る魑魅魍魎の討伐の励みより $nm $sogo_p[2] の称号を授かった!<br>\n";
$sogo =2;
$we =0;
}
}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 の金 と $E の経験値を得た<br>\n";
$log .="<p></p>\n";
$sol=int($sol/2);
$rank_exe-=25;
$log .="魑魅魍魎に返り討ちにあうという不名誉な敗北に、<br>貴方に対する評価が著しく低下した<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 = 0;
$nation=0;#討伐
$type='';
}
}
# 拾得物処理 2
if($cmd==40){
&syutoku2;
}elsif($cmd ==41){
$log .="$nm は 気づかなかったフリをして立ち去った・・・・・・<br>\n";
$sol=0;
$tnm='';
$ck = $tm = 0;
$nation=0;#討伐
$type='';
}
$log2 .=qq|<form action="$script" method="$method" name="ore_">\n|;
$log2 .=qq|<td 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|;
if($tsol<1||$sol<1){
$log2 .=qq|<input type="hidden" name="cmd" value="-1">\n|;
}if($tm==55){
$log2 .=qq|<select name="cmd" size="1"><option value="10">逃げる</option><option value="20">闘う</option>\n|;
$log2 .=qq|</select>|;
}elsif($tm==65){
$log2 .=qq|<input type="hidden" name="cmd" value="-1">\n|;
}elsif($tm==75){
&spell_sp;
}elsif($tm>=100){
$log2 .=qq|<select name="cmd" size="1"><option value="40">拾う</option><option value="41">ほっとく</option>\n|;
$log2 .=qq|</select>|;
}
$log2 .=qq|<br>|;#テーブルずれ修正
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;#テーブル追加</tr></table>
}
&dat_write;
}
#拾得物処理
sub syutoku1{
$log .="$tnm が消滅した場所に何か落ちている・・・・・<br>$nm ";
my $S = int(rand(10)+1);
# 武具
if($S == 1){
$log .="$dg_data[2][1]を発見した!!<br><br>装備する場合、現在所持している武具";
$tm = 110;
}elsif($S == 2){
$log .="$dg_data[3][1]を発見した!!<br><br>装備する場合、現在所持している武具";
$tm = 120;
}elsif($S == 3){
$log .="$dg_data[4][1]を発見した!!<br><br>装備する場合、現在所持している武具";
$tm = 130;
# 道具
}elsif($S == 4){
$log .="$di_data[1][1]を発見した!!<br><br>装備する場合、現在所持している道具";
$tm = 140;
}elsif($S == 5){
$log .="$di_data[2][1]を発見した!!<br><br>装備する場合、現在所持している道具";
$tm = 150;
}elsif($S == 6){
$log .="$di_data[3][1]を発見した!!<br><br>装備する場合、現在所持している道具";
$tm = 160;
}elsif($S == 7){
$log .="$di_data[4][1]を発見した!!<br><br>装備する場合、現在所持している道具";
$tm = 170;
# 防具
}elsif($S == 8){
$log .="$df_data[2][1]を発見した!!<br><br>装備する場合、現在所持している道具";
$tm = 180;
}elsif($S == 9){
$log .="$df_data[3][1]を発見した!!<br><br>装備する場合、現在所持している道具";
$tm = 190;
}elsif($S == 10){
$log .="$df_data[4][1]を発見した!!<br><br>装備する場合、現在所持している道具";
$tm = 200;
}
$log .="は破棄されます。<br>どうしますか?<br>";
}
#拾得物処理2
sub syutoku2{
$log .="$nm ";
# 武具2
if($tm==110){
$log .="$dg_data[2][1]";
$dg_a = 2;
$dg_cnt=$dg_data[2][3];
}elsif($tm==120){
$log .="$dg_data[3][1]";
$dg_a = 3;
$dg_cnt=$dg_data[3][3];
}elsif($tm==130){
$log .="$dg_data[4][1]";
$dg_a = 4;
$dg_cnt=$dg_data[4][3];
# 道具2
}elsif($tm==140){
$log .="$di_data[1][1]";
$di_a = 1;
$di_cnt=$di_data[1][3];
}elsif($tm==150){
$log .="$di_data[2][1]";
$di_a = 2;
$di_cnt=$di_data[2][3];
}elsif($tm==160){
$log .="$di_data[3][1]";
$di_a = 3;
}elsif($tm==170){
$log .="$di_data[4][1]";
$di_a = 4;
$di_cnt=$di_data[4][3];
# 防具2
}elsif($tm==180){
$log .="$df_data[2][1]";
$df_a = 2;
$df_cnt=$df_data[2][3];
}elsif($tm==190){
$log .="$df_data[3][1]";
$df_a = 3;
$df_cnt=$df_data[3][3];
}elsif($tm==200){
$log .="$df_data[4][1]";
$df_a = 4;
$df_cnt=$df_data[4][3];
}
$log .="を手に入れた!!<br>\n";
$sol=0;
$tnm='';
$ck = $tm = 0;
$nation=0;#討伐
$type='';
}
1;
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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 ws_st {
if(!$tm && !$ck){
$log .="$date $cmp[$nation] 을 탐색 중입니다<br>\n";
# NPC(魑魅魍魎)読み込み
require './inc/ore_sub-npc_2.cgi';
local $v=int(rand(7));
&ck_ne_2;
$log .="<hr size=1 noshade>\n";
$log .="$cmp[$nation]에 도사리는 $tnm(을)를 발견했다!<br>\n";
$log .="전투 태세를 갖춥니다!<br>\n";
$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="hidden" name="cmd" value="-1"><input $button1 type="submit" value=" 전투 돌입!!">$td_end</form>\n|;
$tm=40;
$ck=1;
}elsif($ck){
# 戦闘処理読み込み
require './inc/ore_sub-battle.cgi';
if(!$b_n && !$tlr){
$tm = 0;
$ck = 0;
$nation = 0;#討伐
$type='';
$log .="전투 중 오류가 발생했습니다! 강제로 메인 화면으로 돌아갑니다<br>\n";
}
if($tm==40 && $cmd==-1){
$tm=55;
$log .="<p>$tnm과의 대결!!</p><p>어떻게 하겠습니까?</p>\n";
$log .="<p>이매망량 능력치 - $tnm ( HP $thp MP $tmp UA $tua UD $tud LV $tlv )</p>\n";
}
if($tm==55){
if($cmd==10){
my $btp = $ag + int(rand($lv)*0.8);
my $bte = $tag+ int(rand($tlv)*0.8);
if($btp>=$bte){
$log .="$nm 은 걸음아 날 살려라 하고 도망쳤다...<br>평판이 크게 떨어졌다<br>\n";
$tm=0;
$v = int(2 + rand(4));
$rank_exe-=$v;
$sol=0;
$tnm='';
$ck=0;
$nation=0;#討伐
$type='';
$vv = int(rand(2));
if(!$vv){
$we-- if($we>0);
}
}else{
$log .="$nm 은 걸음아 날 살려라 하고 도망쳤다...<br>하지만! $tnm에게 덜미를 잡히고 말았다!!<br>\n";
$tm=65;
$rank_exe-=1;
}
}elsif($cmd==20){
$log .="$tnm 토벌을 시작합니다!<br>\n";
$tm=65;
$rank_exe+=1;
}
}elsif($tm==65){
$log .="진검승부 시작!<br>\n";
$tm=75;
}elsif($tm==75){
&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((($tlv*2)+$tua+$tud+$tag)*(rand($lv/10)+3))-$lv*2;
$E = int(rand(300)+1300) if($E>1500);
$exe+=$E;
$thp=0;
$bst ='';
$bt =0;
$log .="$nm $tnm 을 쓰러뜨렸다!<br>\n";
$log .="$G GOLD와 $E 경험치를 획득했다!<br>\n";
$log .="<br>\n";
# 賞金(自国優位)
if($nation==$camp){
$G =int($my_cg/(rand(6)+15));
$G =int(rand(500))+1500 if(int(2000>=$G));
$G =int(rand(1500))+4000 if(int(5000<=$G));
}else{
if($nation==1){$G =int($cg1/(rand(11)+20));}
elsif($nation==2){$G =int($cg2/(rand(11)+20));}
elsif($nation==3){$G =int($cg2/(rand(11)+20));}
elsif($nation==4){$G =int($cg2/(rand(11)+20));}
elsif($nation==5){$G =int($cg2/(rand(11)+20));}
$G =int(rand(500))+500 if(int(1000>=$G));
$G =int(rand(1000))+2500 if(int(3500<=$G));
}
$exe+=$E;
$gold+=$G;
$tsol=int($tsol/2);
$log .="$cmp[$nation]로부터 $G 의 현상금을 획득했다!<br>\n";#討伐
$V =int(rand(4));
$sol_lv-=$V;
$rank_exe+=int($V*2)+5;
# 拾得物処理 1
if(int(rand(100))==0){
&syutoku1;
}else{
$sol=0;
$tnm='';
$ck = $tm = 0;
$nation=0;
$type='';
}
$we++;
if($we>250){
$log .="엘타니아 땅에 도사리는 이매망량 토벌에 매진한 공로로 $nm $sogo_p[2] 칭호를 하사받았다!<br>\n";
$sogo =2;
$we =0;
}
}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);
$rank_exe-=25;
$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 = 0;
$nation=0;#討伐
$type='';
}
}
# 拾得物処理 2
if($cmd==40){
&syutoku2;
}elsif($cmd ==41){
$log .="$nm 은 못 본 척하고 자리를 떴다......<br>\n";
$sol=0;
$tnm='';
$ck = $tm = 0;
$nation=0;#討伐
$type='';
}
$log2 .=qq|<form action="$script" method="$method" name="ore_">\n|;
$log2 .=qq|<td 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|;
if($tsol<1||$sol<1){
$log2 .=qq|<input type="hidden" name="cmd" value="-1">\n|;
}if($tm==55){
$log2 .=qq|<select name="cmd" size="1"><option value="10">도망친다</option><option value="20">싸운다</option>\n|;
$log2 .=qq|</select>|;
}elsif($tm==65){
$log2 .=qq|<input type="hidden" name="cmd" value="-1">\n|;
}elsif($tm==75){
&spell_sp;
}elsif($tm>=100){
$log2 .=qq|<select name="cmd" size="1"><option value="40">줍는다</option><option value="41">그냥 둔다</option>\n|;
$log2 .=qq|</select>|;
}
$log2 .=qq|<br>|;#テーブルずれ修正
$log2 .=qq|<input type="submit" $button1 value="다음으로!">$td_end</form>\n|;#テーブル追加</tr></table>
}
&dat_write;
}
#拾得物処理
sub syutoku1{
$log .="$tnm 이 소멸한 자리에 무언가 떨어져 있다......<br>$nm ";
my $S = int(rand(10)+1);
# 武具
if($S == 1){
$log .="$dg_data[2][1]을 발견했다!!<br><br>장착할 경우 현재 장착 중인 무구";
$tm = 110;
}elsif($S == 2){
$log .="$dg_data[3][1]을 발견했다!!<br><br>장착할 경우 현재 장착 중인 무구";
$tm = 120;
}elsif($S == 3){
$log .="$dg_data[4][1]을 발견했다!!<br><br>장착할 경우 현재 장착 중인 무구";
$tm = 130;
# 道具
}elsif($S == 4){
$log .="$di_data[1][1]을 발견했다!!<br><br>소지할 경우 현재 소지 중인 도구";
$tm = 140;
}elsif($S == 5){
$log .="$di_data[2][1]을 발견했다!!<br><br>소지할 경우 현재 소지 중인 도구";
$tm = 150;
}elsif($S == 6){
$log .="$di_data[3][1]을 발견했다!!<br><br>소지할 경우 현재 소지 중인 도구";
$tm = 160;
}elsif($S == 7){
$log .="$di_data[4][1]을 발견했다!!<br><br>소지할 경우 현재 소지 중인 도구";
$tm = 170;
# 防具
}elsif($S == 8){
$log .="$df_data[2][1]을 발견했다!!<br><br>장착할 경우 현재 소지 중인 방어구";
$tm = 180;
}elsif($S == 9){
$log .="$df_data[3][1]을 발견했다!!<br><br>장착할 경우 현재 소지 중인 방어구";
$tm = 190;
}elsif($S == 10){
$log .="$df_data[4][1]을 발견했다!!<br><br>장착할 경우 현재 소지 중인 방어구";
$tm = 200;
}
$log .="은 파기됩니다.<br>어떻게 하겠습니까?<br>";
}
#拾得物処理2
sub syutoku2{
$log .="$nm ";
# 武具2
if($tm==110){
$log .="$dg_data[2][1]";
$dg_a = 2;
$dg_cnt=$dg_data[2][3];
}elsif($tm==120){
$log .="$dg_data[3][1]";
$dg_a = 3;
$dg_cnt=$dg_data[3][3];
}elsif($tm==130){
$log .="$dg_data[4][1]";
$dg_a = 4;
$dg_cnt=$dg_data[4][3];
# 道具2
}elsif($tm==140){
$log .="$di_data[1][1]";
$di_a = 1;
$di_cnt=$di_data[1][3];
}elsif($tm==150){
$log .="$di_data[2][1]";
$di_a = 2;
$di_cnt=$di_data[2][3];
}elsif($tm==160){
$log .="$di_data[3][1]";
$di_a = 3;
}elsif($tm==170){
$log .="$di_data[4][1]";
$di_a = 4;
$di_cnt=$di_data[4][3];
# 防具2
}elsif($tm==180){
$log .="$df_data[2][1]";
$df_a = 2;
$df_cnt=$df_data[2][3];
}elsif($tm==190){
$log .="$df_data[3][1]";
$df_a = 3;
$df_cnt=$df_data[3][3];
}elsif($tm==200){
$log .="$df_data[4][1]";
$df_a = 4;
$df_cnt=$df_data[4][3];
}
$log .="을 손에 넣었다!!<br>\n";
$sol=0;
$tnm='';
$ck = $tm = 0;
$nation=0;#討伐
$type='';
}
1;
Regular → Executable
+493 -497
View File
@@ -1,497 +1,493 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
# ファイル IN 関連
#---------------------------------------#
# 参加者データ全取得 #
#---------------------------------------#
# 参加者データファイル一覧取得
sub usrdata_read{
opendir(DIR,"$usrdata") || &error("ユーザデータ読みこみエラー",1);
@usrfile = grep /\.cgi/,readdir(DIR);
closedir(DIR);
}
# 参加者データ一括読み込み
sub usrdata_open{
foreach (0 .. $#usrfile) {
open(IN,"$usrdata$usrfile[$_]") || &error("Can't open $usrfile[$_]",1);
$line = <IN>;
close(IN);
push(@tdat,$line);
}
}
#---------------------------------------#
# 参加者データ個別取得 #
#---------------------------------------#
# 参加者データ個別読み込み
sub usr_file_open{
open(IN,"$usrdata$id\.cgi") || &error("ユーザーIDが間違っているか、登録されていません。<br>Open Error : $usrdata$id\.cgi",1);
@dat = <IN>;
close(IN);
%DAT = '';
# chop $dat[0];
my @prats = split(/,/,$dat[0]);
foreach (0 .. $#prats){
my($key,$v) = split(/;/,$prats[$_]);
$DAT{$key} = $v;
}
&error("パスワードが間違っています",1) if($pw ne $DAT{'pw'} && $admin_pass ne $pw);
&hash_data;
# 行動セッションリセット
$act_cnt=0 if($time-$la>3600*24);
}
# ハッシュ割り当て
sub hash_data{
$pw = $DAT{'pw'}; # パスワード
$gold = $DAT{'gold'}; # お金
$nm = $DAT{'nm'}; # 名前
$lv = $DAT{'lv'}; # レベル
$sei = $DAT{'sei'}; # 性別
$hp = $DAT{'hp'}; # 体力
$max_hp = $DAT{'max_hp'}; # 最大体力
$mp = $DAT{'mp'}; # 魔力
$max_mp = $DAT{'max_mp'}; # 最大魔力
$ua = $DAT{'ua'}; # 攻撃力
$ud = $DAT{'ud'}; # 防御力
$lr = $DAT{'lr'}; # 指揮力
$ag = $DAT{'ag'}; # 敏捷力
$exe = $DAT{'exe'}; # 経験値
$rank = $DAT{'rank'}; # 階級
$rank_exe = $DAT{'rank_exe'}; # 貢献値
$camp = $DAT{'camp'}; # 所属国
$sol = $DAT{'sol'}; # 部隊数
$sol_lv = $DAT{'sol_lv'}; # 部隊訓練度
$nation = $DAT{'nation'}; # 対象国
$we = $DAT{'we'}; # 討伐 回数
$dg_a = $DAT{'dg_a'}; # 武具
$dg_cnt = $DAT{'dg_cnt'}; # 武具 回数
$df_a = $DAT{'df_a'}; # 防具
$df_cnt = $DAT{'df_cnt'}; # 防具 回数
$di_a = $DAT{'di_a'}; # 道具
$di_cnt = $DAT{'di_cnt'}; # 道具 回数
$sogo = $DAT{'sogo'}; # 称号
$type = $DAT{'type'}; # 行動判定(行動フラグ)
$tm = $DAT{'tm'}; # 行動判定(行動フラグ)
$bt = $DAT{'bt'}; # 戦闘時敵キャラ判別(行動フラグ)
$bst = $DAT{'bst'}; # 技による能力上昇の判定
$ck = $DAT{'ck'}; # 戦闘判定(行動フラグ)
$pr = $DAT{'pr'}; # 拘束時間 残り(行動フラグ)
$la = $DAT{'la'}; # 更新時間
$roku = $DAT{'roku'}; # 前回給料が払われた時間(仕官した時間)
$mes = $DAT{'mes'}; # メッセージ
$tnm = $DAT{'tnm'}; # 名前 敵
$tid = $DAT{'tid'}; # ID 敵
$thp = $DAT{'thp'}; # 体力 敵
$thp_max = $DAT{'thp_max'}; # 最大体力 敵
$tmp = $DAT{'tmp'}; # 魔力 敵
$tlv = $DAT{'tlv'}; # レベル 敵
$tua = $DAT{'tua'}; # 攻撃力 敵
$tud = $DAT{'tud'}; # 防御力 敵
$tlr = $DAT{'tlr'}; # 指揮力 敵
$tag = $DAT{'tag'}; # 敏捷力 敵
$tdf_a = $DAT{'tdf_a'}; # 防具 敵
$tdg_a = $DAT{'tdg_a'}; # 武器 敵
$tcp = $DAT{'tcp'}; # 所属国 敵
$tsol = $DAT{'tsol'}; # 部隊数 敵
$tsg = $DAT{'tsg'}; # 称号 敵
$tsol_lv = $DAT{'tsol_lv'}; # 敵部隊訓練度
$b_n = $DAT{'b_n'}; # 戦闘限界ターン
$b_v = $DAT{'b_v'}; # 現在のターン数
$n = $_; # 配列インデックス
$act_cnt = $DAT{'act_cnt'}; # 行動セッション値
$age_time = $DAT{'age_time'}; # 前回のレベルアップ < time式
$info_mes = $DAT{'info_mes'}; # 情報時に表示されるコメント
$pr -= $time-$la;
$pr = 0 if($pr<0);
}
# 国データ読み込み
sub cdata_open{
open (IN,"$cdatfile") || &error("国データファイルが開けませんでした",1);
@cdat = <IN>;
close(IN) or die "Can't close : $!";
%CP = '';
my @prats = split(/,/,$cdat[0]);
foreach $prats (@prats){
my($k,$v) = split(/;/,$prats);
$CP{$k} = $v;
}
$cn1=$CP{'cn1'};# 国1の国力
$cg1=$CP{'cg1'};# 国1の財政
$cf1=$CP{'cf1'};# 国1の蓄米
$cs1=$CP{'cs1'};# 国1の予備兵
$ce1=$CP{'ce1'};# 国1の現状
$c1 =$CP{'c1'}; # 国1の参加人数
$c1a=$CP{'c1a'};# 国1の定員数
$cn2=$CP{'cn2'};
$cg2=$CP{'cg2'};
$cf2=$CP{'cf2'};
$cs2=$CP{'cs2'};
$ce2=$CP{'ce2'};
$c2 =$CP{'c2'};
$c2a=$CP{'c2a'};
$cn3=$CP{'cn3'};
$cg3=$CP{'cg3'};
$cf3=$CP{'cf3'};
$cs3=$CP{'cs3'};
$ce3=$CP{'ce3'};
$c3 =$CP{'c3'};
$c3a=$CP{'c3a'};
$cn4=$CP{'cn4'};
$cg4=$CP{'cg4'};
$cf4=$CP{'cf4'};
$cs4=$CP{'cs4'};
$ce4=$CP{'ce4'};
$c4 =$CP{'c4'};
$c4a=$CP{'c4a'};
$cn5=$CP{'cn5'};
$cg5=$CP{'cg5'};
$cf5=$CP{'cf5'};
$cs5=$CP{'cs5'};
$ce5=$CP{'ce5'};
$c5 =$CP{'c5'};
$c5a=$CP{'c5a'};
$set=$CP{'set'};
$all_mem=$CP{'all_mem'};
$goal_no=$CP{'goal_no'}; # 現在何期か。
$hasya=$CP{'hasya'};
$hcamp=$CP{'hcamp'};
$wr_mes=$CP{'wr_mes'};
if($camp==1){
$my_cn=$cn1;
$my_cg=$cg1;
$my_cf=$cf1;
$my_cs=$cs1;
$my_ce=$ce1;
}elsif($camp==2){
$my_cn=$cn2;
$my_cg=$cg2;
$my_cf=$cf2;
$my_cs=$cs2;
$my_ce=$ce2;
}elsif($camp==3){
$my_cn=$cn3;
$my_cg=$cg3;
$my_cf=$cf3;
$my_cs=$cs3;
$my_ce=$ce3;
}elsif($camp==4){
$my_cn=$cn4;
$my_cg=$cg4;
$my_cf=$cf4;
$my_cs=$cs4;
$my_ce=$ce4;
}elsif($camp==5){
$my_cn=$cn5;
$my_cg=$cg5;
$my_cf=$cf5;
$my_cs=$cs5;
$my_ce=$ce5;
}
}
# ログデータ読み込み
sub read_data{
# キャラデータ読み込み
&usr_file_open;
# リロード規制
foreach(0 .. $#act_limit){
# エラー表示式(リロード抑制を明示的に行いたい方はコチラがオススメ。)
# &error("行動は $act_limit[$_][1]秒以上間隔を空けて行なってください",1) if($time<=$la+$act_limit[$_][1] && $hour==$act_limit[$_][0]);
# リロード無効式
if($time<=$la+$act_limit[$_][1] && $hour==$act_limit[$_][0]){
print "Status: 204\n\n";
if($mode ne "mes_write"){
&unlock($lock) if $lock_check;
}
exit;
}
}
# 国データ読み込み
&cdata_open;
$id_p = $id;
$pw_p = $pw;
$next_lv = int(($lv*$lv)*10);
$max_sol = $g_p[$rank];
$sol_lv = 1 if($sol_lv<1);
$sol_lv = 100 if($sol_lv>100);
$max_hp = 9999 if($max_hp>9999);
$max_mp = 9999 if($max_mp>9999);
$mp = 1 if($mp<1);
$ua = 999 if($ua>999);
$ud = 999 if($ud>999);
$lr = 999 if($lr>999);
$ag = 999 if($ag>999);
$rank = 14 if($rank>14);
$rank_exe = 0 if($rank_exe<1);
$lv = 1 if($lv<1);
$hp = $max_hp if($hp>$max_hp);
$mp = $max_mp if($mp>$max_mp);
if($pr<1){
&settei;#設定読み込み
&status;#ステータス表示
}
$bmes="最新情報 ◎ $wr_mes\n" if $wr_mes;
$data_reset = int(($cn1+$cn2+$cn3+$cn4+$cn5) * $reset_point);
}
#-------------------------------------------------------------------------------
# ファイル OUT 関連
# 国データ&キャラデータ書き込み
sub write_data{
&cdat_write;
&dat_write;
}
# 国データ書き込み
sub cdat_write{
$cdat = "cn1;$cn1,cg1;$cg1,cf1;$cf1,cs1;$cs1,ce1;$ce1,c1;$c1,c1a;$c1a,cn2;$cn2,cg2;$cg2,cf2;$cf2,cs2;$cs2,ce2;$ce2,c2;$c2,c2a;$c2a,cn3;$cn3,cg3;$cg3,cf3;$cf3,cs3;$cs3,ce3;$ce3,c3;$c3,c3a;$c3a,cn4;$cn4,cg4;$cg4,cf4;$cf4,cs4;$cs4,ce4;$ce4,c4;$c4,c4a;$c4a,cn5;$cn5,cg5;$cg5,cf5;$cf5,cs5;$cs5,ce5;$ce5,c5;$c5,c5a;$c5a,set;$set,all_mem;$all_mem,goal_no;$goal_no,hasya;$hasya,hcamp;$hcamp,ad;$addr,ht;$host,date;$date,wr_mes;$wr_mes,\n";
open (OUT,">$cdatfile") || &error("open error:$cdatfile",1);
print OUT $cdat;
close(OUT) or die "Can't close : $!";
}
# キャラデータ書き込み
sub dat_write{
&error("open error no such a file!",1) if(!$nm || !$id);
$dat[0] = "la;$time,nm;$nm,pw;$pw,id;$id,sei;$sei,type;$type,age_time;$age_time,act_cnt;$act_cnt,hp;$hp,max_hp;$max_hp,lv;$lv,mp;$mp,max_mp;$max_mp,rank;$rank,ua;$ua,ud;$ud,lr;$lr,ag;$ag,ck;$ck,tm;$tm,bt;$bt,bst;$bst,exe;$exe,rank_exe;$rank_exe,sol;$sol,sol_lv;$sol_lv,nation;$nation,we;$we,camp;$camp,pr;$pr,tnm;$tnm,tid;$tid,thp;$thp,tlr;$tlr,tag;$tag,tsol;$tsol,tsg;$tsg,tsol_lv;$tsol_lv,b_n;$b_n,b_v;$b_v,thp_max;$thp_max,tlv;$tlv,tdg_a;$tdg_a,tdf_a;$tdf_a,tua;$tua,tud;$tud,tmp;$tmp,tcp;$tcp,gold;$gold,roku;$roku,dg_a;$dg_a,dg_cnt;$dg_cnt,df_a;$df_a,df_cnt;$df_cnt,di_a;$di_a,di_cnt;$di_cnt,sogo;$sogo,mes;$mes,info_mes;$info_mes,\n";
$dat[1] = "$date<>$addr<>$host<>$agent<>\n";
open (OUT,">$usrdata$id\.cgi") || &error("open error:$usrdata$id\.cgi",1);
print OUT @dat;
close(OUT) or die "Can't close : $!";
}
# 過去の栄光書き込み&バックアップ処理
sub hist_write{
$cdat = "cn1;$cn1,cg1;$cg1,cf1;$cf1,cs1;$cs1,ce1;$ce1,c1;$c1,c1a;$c1a,cn2;$cn2,cg2;$cg2,cf2;$cf2,cs2;$cs2,ce2;$ce2,c2;$c2,c2a;$c2a,cn3;$cn3,cg3;$cg3,cf3;$cf3,cs3;$cs3,ce3;$ce3,c3;$c3,c3a;$c3a,cn4;$cn4,cg4;$cg4,cf4;$cf4,cs4;$cs4,ce4;$ce4,c4;$c4,c4a;$c4a,cn5;$cn5,cg5;$cg5,cf5;$cf5,cs5;$cs5,ce5;$ce5,c5;$c5,c5a;$c5a,set;$set,all_mem;$all_mem,goal_no;$goal_no,hasya;$hasya,hcamp;$hcamp,ad;$addr,ht;$host,date;$date,wr_mes;$wr_mes,\n";
open (DB,">>$histfile") || &error("open error:$histfile",1);
print DB $cdat;
close(DB) or die "Can't close : $!";
}
#-------------------------------------------------------------------------------
# ファイルロック関連(rename式)
# $lock = &lock if($lock_check);
# &unlock($lock) if($lock_check);
# -----ロック-----
sub lock {
my %lock = (dir => "$lockdir", basename => "$lockfile", timeout => 30, trytime => 10, @_);
$lock{path} = $lock{dir} . $lock{basename};
for (my $i = 0; $i < $lock{trytime}; $i++, sleep 1) {
return \%lock if (rename($lock{path}, $lock{current} = $lock{path} . time));
}
opendir(LOCKDIR, $lock{dir});
my @filelist = readdir(LOCKDIR);
closedir(LOCKDIR);
foreach (@filelist) {
if (/^$lock{basename}(\d+)/) {
return \%lock if (time - $1 > $lock{timeout} and
rename($lock{dir} . $_, $lock{current} = $lock{path} . time));
last;
}
}
undef;
&error("ファイルがロックされています");
}
# -----ロック解除-----
sub unlock {
rename($_[0]->{current}, $_[0]->{path});
}
#-------------------------------------------------------------------------------
# フォームデータ関連
# フォームデコード処理
sub decode {
local($buffer, @pairs, $name, $value);
$post_flag=0;
if($ENV{'REQUEST_METHOD'} eq "POST"){
$post_flag=1;
&error("投稿量が大きすぎます") if($ENV{'CONTENT_LENGTH'}>1024);
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}else{
$buffer = $ENV{'QUERY_STRING'};
&error("投稿量が大きすぎます") if(length($buffer)>800)
}
@pairs = split(/&/, $buffer);
foreach (@pairs) {
($name,$value) = split(/=/);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# 記号置換え
$value =~ s/&/&amp;/g;
$value =~ s/\;/&#59\;/g;
$value =~ s/,/&#44\;/g;
$value =~ s/</&lt;/g;
$value =~ s/>/&gt;/g;
$value =~ s/"/&quot;/g;
$value =~ s/\//&#47\;/g;
$value =~ s/\./&#46\;/g;
$value =~ s/cgi/&#99\;&#103\;&#105\;/g;
# 改行等処理
$value =~ s/\r\n//g;
$value =~ s/\r//g;
$value =~ s/\n//g;
# 文字コードをシフトJIS変換
&jcode'convert(*value, "sjis", "", "z");
$in{$name} = $value;
# 一括削除用
if ($name eq "usr_del") { push(@USR_DEL,$value); }
}
$pw = $in{'pw'};
$cmd = $in{'cmd'};
$com = $in{'com'};
$id = $in{'id'};
$mode = $in{'mode'};
}
#-------------------------------------------------------------------------------
# アクセス制御関連
# アクセスチェック(アクセス拒否)
sub axs_check {
&get_host;
local($flag)=0;
foreach (@deny) {
if (!$_) { next; }
$_ =~ s/\*/\.\*/g;
if ($host =~ /$_/i || $addr =~ /$_/i) { $flag=1; last; }
}
if ($flag) { &error("アクセスを許可されていません"); }
}
# ホスト情報取得
sub get_host {
$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};
$agent= $ENV{'HTTP_USER_AGENT'};
if ($get_remotehost) {
if ($host eq "" || $host eq "$addr") {
$host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2);
}
}
if ($host eq "") { $host = $addr; }
}
# 時間取得
sub get_time {
$time = time;
($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime($time);
$min = "0$min" if($min<10);
$sec = "0$sec" if($sec<10);
$month++;
@week=('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
$date = "$month/$mday $hour:$min:$sec";
srand($time);
}
# プレイ規制
sub safetime {
foreach (0 .. $#safetime){
&error("プレイ規制時間中です。暫くお待ち下さい。") if $hour eq $safetime[$_];
}
}
#-------------------------------------------------------------------------------
# 表示関連
# 圧縮転送
sub content_type {
if($gzip){
$|=1;
if($ENV{'HTTP_ACCEPT_ENCODING'}=~/gzip/ ){
print "Content-type: text/html; charset=shift_jis\n";
print "Content-encoding: gzip\n\n";
open(STDOUT,"| $gzip -1 -c");
}else{
print "Content-type: text/html; charset=shift_jis\n\n";
}
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
} else {
print "Content-type: text/html; charset=shift_jis\n\n";
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
}
}
#著作権表示(削除・変更不可)
sub copyright{
if($mv_mode eq 'mv'){
print qq|<hr color="white">罪と罰++ 二律背反 $ver<br><a href="http://pom.to/">BLANK BOARD[ねっと遊園地♪]</a>| if(!$tm && !$log);
print qq|</body></html>|;
}else{
print <<"EOM";
<div align="right" style="font-size:12px">
罪と罰++ 二律背反 $ver<br>
<a href="http://www17.big.or.jp/~obochan/vivid/" target="_blank" style="font-size:13px">Vivid Studio.</a><br>
<a href="http://pom.to/" target="_blank" style="font-size:11px">BLANK BOARD[ねっと遊園地♪]<br>
<img src="$imgs/bb.gif" border="0" alt="BLANK BOARD[ねっと遊園地♪]"></a>
</div>
</body>
</html>
EOM
}
}
# エラー表示
sub error{
print "Content-type: text/html\n\n";
print "<html><head><title>CGI Error</title></head>\n";
print "<body $body><h1>CGI Error</h1>\n";
print "<p>This program encountered an internal error.</p>";
print "<p><b>Error:</b> $_[0]</p>\n";
print "</body></html>";
if ($_[1] && $lock_check) { &unlock($lock); }
exit;
}
1;#削除不可
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
# ファイル IN 関連
#---------------------------------------#
# 参加者データ全取得 #
#---------------------------------------#
# 参加者データファイル一覧取得
sub usrdata_read{
opendir(DIR,"$usrdata") || &error("유저 데이터 로딩 오류",1);
@usrfile = grep /\.cgi/,readdir(DIR);
closedir(DIR);
}
# 参加者データ一括読み込み
sub usrdata_open{
foreach (0 .. $#usrfile) {
open(IN,"$usrdata$usrfile[$_]") || &error("Can't open $usrfile[$_]",1);
$line = <IN>;
close(IN);
push(@tdat,$line);
}
}
#---------------------------------------#
# 参加者データ個別取得 #
#---------------------------------------#
# 参加者データ個別読み込み
sub usr_file_open{
open(IN,"$usrdata$id\.cgi") || &error("유저 ID가 틀렸거나 등록되어 있지 않습니다.<br>Open Error : $usrdata$id\.cgi",1);
@dat = <IN>;
close(IN);
%DAT = '';
# chop $dat[0];
my @prats = split(/,/,$dat[0]);
foreach (0 .. $#prats){
my($key,$v) = split(/;/,$prats[$_]);
$DAT{$key} = $v;
}
&error("비밀번호가 틀렸습니다",1) if($pw ne $DAT{'pw'} && $admin_pass ne $pw);
&hash_data;
# 行動セッションリセット
$act_cnt=0 if($time-$la>3600*24);
}
# ハッシュ割り当て
sub hash_data{
$pw = $DAT{'pw'}; # パスワード
$gold = $DAT{'gold'}; # お金
$nm = $DAT{'nm'}; # 名前
$lv = $DAT{'lv'}; # レベル
$sei = $DAT{'sei'}; # 性別
$hp = $DAT{'hp'}; # 体力
$max_hp = $DAT{'max_hp'}; # 最大体力
$mp = $DAT{'mp'}; # 魔力
$max_mp = $DAT{'max_mp'}; # 最大魔力
$ua = $DAT{'ua'}; # 攻撃力
$ud = $DAT{'ud'}; # 防御力
$lr = $DAT{'lr'}; # 指揮力
$ag = $DAT{'ag'}; # 敏捷力
$exe = $DAT{'exe'}; # 経験値
$rank = $DAT{'rank'}; # 階級
$rank_exe = $DAT{'rank_exe'}; # 貢献値
$camp = $DAT{'camp'}; # 所属国
$sol = $DAT{'sol'}; # 部隊数
$sol_lv = $DAT{'sol_lv'}; # 部隊訓練度
$nation = $DAT{'nation'}; # 対象国
$we = $DAT{'we'}; # 討伐 回数
$dg_a = $DAT{'dg_a'}; # 武具
$dg_cnt = $DAT{'dg_cnt'}; # 武具 回数
$df_a = $DAT{'df_a'}; # 防具
$df_cnt = $DAT{'df_cnt'}; # 防具 回数
$di_a = $DAT{'di_a'}; # 道具
$di_cnt = $DAT{'di_cnt'}; # 道具 回数
$sogo = $DAT{'sogo'}; # 称号
$type = $DAT{'type'}; # 行動判定(行動フラグ)
$tm = $DAT{'tm'}; # 行動判定(行動フラグ)
$bt = $DAT{'bt'}; # 戦闘時敵キャラ判別(行動フラグ)
$bst = $DAT{'bst'}; # 技による能力上昇の判定
$ck = $DAT{'ck'}; # 戦闘判定(行動フラグ)
$pr = $DAT{'pr'}; # 拘束時間 残り(行動フラグ)
$la = $DAT{'la'}; # 更新時間
$roku = $DAT{'roku'}; # 前回給料が払われた時間(仕官した時間)
$mes = $DAT{'mes'}; # メッセージ
$tnm = $DAT{'tnm'}; # 名前 敵
$tid = $DAT{'tid'}; # ID 敵
$thp = $DAT{'thp'}; # 体力 敵
$thp_max = $DAT{'thp_max'}; # 最大体力 敵
$tmp = $DAT{'tmp'}; # 魔力 敵
$tlv = $DAT{'tlv'}; # レベル 敵
$tua = $DAT{'tua'}; # 攻撃力 敵
$tud = $DAT{'tud'}; # 防御力 敵
$tlr = $DAT{'tlr'}; # 指揮力 敵
$tag = $DAT{'tag'}; # 敏捷力 敵
$tdf_a = $DAT{'tdf_a'}; # 防具 敵
$tdg_a = $DAT{'tdg_a'}; # 武器 敵
$tcp = $DAT{'tcp'}; # 所属国 敵
$tsol = $DAT{'tsol'}; # 部隊数 敵
$tsg = $DAT{'tsg'}; # 称号 敵
$tsol_lv = $DAT{'tsol_lv'}; # 敵部隊訓練度
$b_n = $DAT{'b_n'}; # 戦闘限界ターン
$b_v = $DAT{'b_v'}; # 現在のターン数
$n = $_; # 配列インデックス
$act_cnt = $DAT{'act_cnt'}; # 行動セッション値
$age_time = $DAT{'age_time'}; # 前回のレベルアップ < time式
$info_mes = $DAT{'info_mes'}; # 情報時に表示されるコメント
$pr -= $time-$la;
$pr = 0 if($pr<0);
}
# 国データ読み込み
sub cdata_open{
open (IN,"$cdatfile") || &error("국가 데이터 파일을 열 수 없습니다",1);
@cdat = <IN>;
close(IN) or die "Can't close : $!";
%CP = '';
my @prats = split(/,/,$cdat[0]);
foreach $prats (@prats){
my($k,$v) = split(/;/,$prats);
$CP{$k} = $v;
}
$cn1=$CP{'cn1'};# 国1の国力
$cg1=$CP{'cg1'};# 国1の財政
$cf1=$CP{'cf1'};# 国1の蓄米
$cs1=$CP{'cs1'};# 国1の予備兵
$ce1=$CP{'ce1'};# 国1の現状
$c1 =$CP{'c1'}; # 国1の参加人数
$c1a=$CP{'c1a'};# 国1の定員数
$cn2=$CP{'cn2'};
$cg2=$CP{'cg2'};
$cf2=$CP{'cf2'};
$cs2=$CP{'cs2'};
$ce2=$CP{'ce2'};
$c2 =$CP{'c2'};
$c2a=$CP{'c2a'};
$cn3=$CP{'cn3'};
$cg3=$CP{'cg3'};
$cf3=$CP{'cf3'};
$cs3=$CP{'cs3'};
$ce3=$CP{'ce3'};
$c3 =$CP{'c3'};
$c3a=$CP{'c3a'};
$cn4=$CP{'cn4'};
$cg4=$CP{'cg4'};
$cf4=$CP{'cf4'};
$cs4=$CP{'cs4'};
$ce4=$CP{'ce4'};
$c4 =$CP{'c4'};
$c4a=$CP{'c4a'};
$cn5=$CP{'cn5'};
$cg5=$CP{'cg5'};
$cf5=$CP{'cf5'};
$cs5=$CP{'cs5'};
$ce5=$CP{'ce5'};
$c5 =$CP{'c5'};
$c5a=$CP{'c5a'};
$set=$CP{'set'};
$all_mem=$CP{'all_mem'};
$goal_no=$CP{'goal_no'}; # 現在何期か。
$hasya=$CP{'hasya'};
$hcamp=$CP{'hcamp'};
$wr_mes=$CP{'wr_mes'};
if($camp==1){
$my_cn=$cn1;
$my_cg=$cg1;
$my_cf=$cf1;
$my_cs=$cs1;
$my_ce=$ce1;
}elsif($camp==2){
$my_cn=$cn2;
$my_cg=$cg2;
$my_cf=$cf2;
$my_cs=$cs2;
$my_ce=$ce2;
}elsif($camp==3){
$my_cn=$cn3;
$my_cg=$cg3;
$my_cf=$cf3;
$my_cs=$cs3;
$my_ce=$ce3;
}elsif($camp==4){
$my_cn=$cn4;
$my_cg=$cg4;
$my_cf=$cf4;
$my_cs=$cs4;
$my_ce=$ce4;
}elsif($camp==5){
$my_cn=$cn5;
$my_cg=$cg5;
$my_cf=$cf5;
$my_cs=$cs5;
$my_ce=$ce5;
}
}
# ログデータ読み込み
sub read_data{
# キャラデータ読み込み
&usr_file_open;
# リロード規制
foreach(0 .. $#act_limit){
# エラー表示式(リロード抑制を明示的に行いたい方はコチラがオススメ。)
# &error("行動は $act_limit[$_][1]秒以上間隔を空けて行なってください",1) if($time<=$la+$act_limit[$_][1] && $hour==$act_limit[$_][0]);
# リロード無効式
if($time<=$la+$act_limit[$_][1] && $hour==$act_limit[$_][0]){
print "Status: 204\n\n";
if($mode ne "mes_write"){
&unlock($lock) if $lock_check;
}
exit;
}
}
# 国データ読み込み
&cdata_open;
$id_p = $id;
$pw_p = $pw;
$next_lv = int(($lv*$lv)*10);
$max_sol = $g_p[$rank];
$sol_lv = 1 if($sol_lv<1);
$sol_lv = 100 if($sol_lv>100);
$max_hp = 9999 if($max_hp>9999);
$max_mp = 9999 if($max_mp>9999);
$mp = 1 if($mp<1);
$ua = 999 if($ua>999);
$ud = 999 if($ud>999);
$lr = 999 if($lr>999);
$ag = 999 if($ag>999);
$rank = 14 if($rank>14);
$rank_exe = 0 if($rank_exe<1);
$lv = 1 if($lv<1);
$hp = $max_hp if($hp>$max_hp);
$mp = $max_mp if($mp>$max_mp);
if($pr<1){
&settei;#設定読み込み
&status;#ステータス表示
}
$bmes="최신 정보 ◎ $wr_mes\n" if $wr_mes;
$data_reset = int(($cn1+$cn2+$cn3+$cn4+$cn5) * $reset_point);
}
#-------------------------------------------------------------------------------
# ファイル OUT 関連
# 国データ&キャラデータ書き込み
sub write_data{
&cdat_write;
&dat_write;
}
# 国データ書き込み
sub cdat_write{
$cdat = "cn1;$cn1,cg1;$cg1,cf1;$cf1,cs1;$cs1,ce1;$ce1,c1;$c1,c1a;$c1a,cn2;$cn2,cg2;$cg2,cf2;$cf2,cs2;$cs2,ce2;$ce2,c2;$c2,c2a;$c2a,cn3;$cn3,cg3;$cg3,cf3;$cf3,cs3;$cs3,ce3;$ce3,c3;$c3,c3a;$c3a,cn4;$cn4,cg4;$cg4,cf4;$cf4,cs4;$cs4,ce4;$ce4,c4;$c4,c4a;$c4a,cn5;$cn5,cg5;$cg5,cf5;$cf5,cs5;$cs5,ce5;$ce5,c5;$c5,c5a;$c5a,set;$set,all_mem;$all_mem,goal_no;$goal_no,hasya;$hasya,hcamp;$hcamp,ad;$addr,ht;$host,date;$date,wr_mes;$wr_mes,\n";
open (OUT,">$cdatfile") || &error("open error:$cdatfile",1);
print OUT $cdat;
close(OUT) or die "Can't close : $!";
}
# キャラデータ書き込み
sub dat_write{
&error("open error no such a file!",1) if(!$nm || !$id);
$dat[0] = "la;$time,nm;$nm,pw;$pw,id;$id,sei;$sei,type;$type,age_time;$age_time,act_cnt;$act_cnt,hp;$hp,max_hp;$max_hp,lv;$lv,mp;$mp,max_mp;$max_mp,rank;$rank,ua;$ua,ud;$ud,lr;$lr,ag;$ag,ck;$ck,tm;$tm,bt;$bt,bst;$bst,exe;$exe,rank_exe;$rank_exe,sol;$sol,sol_lv;$sol_lv,nation;$nation,we;$we,camp;$camp,pr;$pr,tnm;$tnm,tid;$tid,thp;$thp,tlr;$tlr,tag;$tag,tsol;$tsol,tsg;$tsg,tsol_lv;$tsol_lv,b_n;$b_n,b_v;$b_v,thp_max;$thp_max,tlv;$tlv,tdg_a;$tdg_a,tdf_a;$tdf_a,tua;$tua,tud;$tud,tmp;$tmp,tcp;$tcp,gold;$gold,roku;$roku,dg_a;$dg_a,dg_cnt;$dg_cnt,df_a;$df_a,df_cnt;$df_cnt,di_a;$di_a,di_cnt;$di_cnt,sogo;$sogo,mes;$mes,info_mes;$info_mes,\n";
$dat[1] = "$date<>$addr<>$host<>$agent<>\n";
open (OUT,">$usrdata$id\.cgi") || &error("open error:$usrdata$id\.cgi",1);
print OUT @dat;
close(OUT) or die "Can't close : $!";
}
# 過去の栄光書き込み&バックアップ処理
sub hist_write{
$cdat = "cn1;$cn1,cg1;$cg1,cf1;$cf1,cs1;$cs1,ce1;$ce1,c1;$c1,c1a;$c1a,cn2;$cn2,cg2;$cg2,cf2;$cf2,cs2;$cs2,ce2;$ce2,c2;$c2,c2a;$c2a,cn3;$cn3,cg3;$cg3,cf3;$cf3,cs3;$cs3,ce3;$ce3,c3;$c3,c3a;$c3a,cn4;$cn4,cg4;$cg4,cf4;$cf4,cs4;$cs4,ce4;$ce4,c4;$c4,c4a;$c4a,cn5;$cn5,cg5;$cg5,cf5;$cf5,cs5;$cs5,ce5;$ce5,c5;$c5,c5a;$c5a,set;$set,all_mem;$all_mem,goal_no;$goal_no,hasya;$hasya,hcamp;$hcamp,ad;$addr,ht;$host,date;$date,wr_mes;$wr_mes,\n";
open (DB,">>$histfile") || &error("open error:$histfile",1);
print DB $cdat;
close(DB) or die "Can't close : $!";
}
#-------------------------------------------------------------------------------
# ファイルロック関連(rename式)
# $lock = &lock if($lock_check);
# &unlock($lock) if($lock_check);
# -----ロック-----
sub lock {
my %lock = (dir => "$lockdir", basename => "$lockfile", timeout => 30, trytime => 10, @_);
$lock{path} = $lock{dir} . $lock{basename};
for (my $i = 0; $i < $lock{trytime}; $i++, sleep 1) {
return \%lock if (rename($lock{path}, $lock{current} = $lock{path} . time));
}
opendir(LOCKDIR, $lock{dir});
my @filelist = readdir(LOCKDIR);
closedir(LOCKDIR);
foreach (@filelist) {
if (/^$lock{basename}(\d+)/) {
return \%lock if (time - $1 > $lock{timeout} and
rename($lock{dir} . $_, $lock{current} = $lock{path} . time));
last;
}
}
undef;
&error("파일이 잠겨 있습니다");
}
# -----ロック解除-----
sub unlock {
rename($_[0]->{current}, $_[0]->{path});
}
#-------------------------------------------------------------------------------
# フォームデータ関連
# フォームデコード処理
sub decode {
local($buffer, @pairs, $name, $value);
$post_flag=0;
if($ENV{'REQUEST_METHOD'} eq "POST"){
$post_flag=1;
&error("게시글 용량이 너무 큽니다") if($ENV{'CONTENT_LENGTH'}>1024);
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}else{
$buffer = $ENV{'QUERY_STRING'};
&error("게시글 용량이 너무 큽니다") if(length($buffer)>800)
}
@pairs = split(/&/, $buffer);
foreach (@pairs) {
($name,$value) = split(/=/);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
# 記号置換え
$value =~ s/&/&amp;/g;
$value =~ s/\;/&#59\;/g;
$value =~ s/,/&#44\;/g;
$value =~ s/</&lt;/g;
$value =~ s/>/&gt;/g;
$value =~ s/"/&quot;/g;
$value =~ s/\//&#47\;/g;
$value =~ s/\./&#46\;/g;
$value =~ s/cgi/&#99\;&#103\;&#105\;/g;
# 改行等処理
$value =~ s/\r\n//g;
$value =~ s/\r//g;
$value =~ s/\n//g;
# 文字コードをシフトJIS変換
# &jcode'convert(*value, "sjis", "", "z");
$in{$name} = $value;
# 一括削除用
if ($name eq "usr_del") { push(@USR_DEL,$value); }
}
$pw = $in{'pw'};
$cmd = $in{'cmd'};
$com = $in{'com'};
$id = $in{'id'};
$mode = $in{'mode'};
}
#-------------------------------------------------------------------------------
# アクセス制御関連
# アクセスチェック(アクセス拒否)
sub axs_check {
&get_host;
local($flag)=0;
foreach (@deny) {
if (!$_) { next; }
$_ =~ s/\*/\.\*/g;
if ($host =~ /$_/i || $addr =~ /$_/i) { $flag=1; last; }
}
if ($flag) { &error("접속이 허용되지 않았습니다"); }
}
# ホスト情報取得
sub get_host {
$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};
$agent= $ENV{'HTTP_USER_AGENT'};
if ($get_remotehost) {
if ($host eq "" || $host eq "$addr") {
$host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2);
}
}
if ($host eq "") { $host = $addr; }
}
# 時間取得
sub get_time {
$time = time;
($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime($time);
$min = "0$min" if($min<10);
$sec = "0$sec" if($sec<10);
$month++;
@week=('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
$date = "$month/$mday $hour:$min:$sec";
srand($time);
}
# プレイ規制
sub safetime {
foreach (0 .. $#safetime){
&error("플레이 제한 시간입니다. 잠시 기다려 주십시오.") if $hour eq $safetime[$_];
}
}
#-------------------------------------------------------------------------------
# 表示関連
# 圧縮転送
sub content_type {
if($gzip){
$|=1;
if($ENV{'HTTP_ACCEPT_ENCODING'}=~/gzip/ ){
print "Content-type: text/html; charset=UTF-8\n";
print "Content-encoding: gzip\n\n";
open(STDOUT,"| $gzip -1 -c");
}else{
print "Content-type: text/html; charset=UTF-8\n\n";
}
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
} else {
print "Content-type: text/html; charset=UTF-8\n\n";
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
}
}
#著作権表示(削除・変更不可)
sub copyright{
if($mv_mode eq 'mv'){
print qq|<hr color="white">죄와 벌++ 이율배반 $ver<br><a href="http://pom.to/">BLANK BOARD[네트 유원지♪]</a>| if(!$tm && !$log);
print qq|</body></html>|;
}else{
print <<"EOM";
<div align="right" style="font-size:12px">
죄와 벌++ 이율배반 $ver<br>
<a href="http://www17.big.or.jp/~obochan/vivid/" target="_blank" style="font-size:13px">Vivid Studio.</a><br>
<a href="http://pom.to/" target="_blank" style="font-size:11px">BLANK BOARD[네트 유원지♪]<br>
<img src="$imgs/bb.gif" border="0" alt="BLANK BOARD[네트 유원지♪]"></a>
</div>
</body>
</html>
EOM
}
}
# エラー表示
sub error{
print "Content-type: text/html\n\n";
print "<html><head><title>CGI Error</title></head>\n";
print "<body $body><h1>CGI Error</h1>\n";
print "<p>This program encountered an internal error.</p>";
print "<p><b>Error:</b> $_[0]</p>\n";
print "</body></html>";
if ($_[1] && $lock_check) { &unlock($lock); }
exit;
}
1;#削除不可
Regular → Executable
+235 -243
View File
@@ -1,243 +1,235 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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 training{
if(!$type){
if($hp<4){
$log .= "体力が少なすぎます<br>\n";
$tm= $cmd = 0;
$type='';
&call_main_st;
}else{
$log .= "修行を行います<br>\n";
$tm= $cmd = 0;
$type = '修行';
$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| if($tid);
$log2 .=qq|<option value="2">一覧から選出</option>\n|;
$log2 .=qq|<option value="0">やめる</option>\n|;
$log2 .=qq|</select><br>\n|;
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
}
}
&dat_write;
}
#-------------------------------------------------------------------------------
# 修行処理1
sub training_exe{
if($cmd==0){
$log .= "修行を中止します<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($cmd==1){
open(IN,"$usrdata$tid\.cgi") || &error("Open Error : $usrdata$tid\.cgi",1);
$tdat = <IN>;
close(IN);
%VS = '';
my @prats = split(/,/,$tdat);
foreach $prats (@prats){
my ($u,$q) = split(/;/,$prats);
$VS{$u} = $q;
}
$tid = $VS{'id'}; # ID
$tnm = $VS{'nm'}; # 名前
$tlv = $VS{'lv'}; # レベル
$thp = $VS{'max_hp'}; # HP
$thp_max= $VS{'max_hp'}; # MAX_HP
$tmp = $VS{'max_mp'}; # MP
$tua = $VS{'ua'}; # UA
$tud = $VS{'ud'}; # UD
$tag = $VS{'ag'}; # AG
$tcp = $VS{'camp'}; # 所属
$tsg = $VS{'sogo'}; # 称号
$tdf_a = $VS{'df_a'}; # 防具
$tdg_a = $VS{'dg_a'}; # 武具
$log .="前回の対戦相手と修行を行います。<br>試合開始!<br>\n";
$type = '修行中';
$tm = 0;
$cmd =-1;
# $log2 .=qq|<form action="$script" method="$method" name="ore_"><td align="center" valign="middle">\n|;
# $log2 .=qq|<input type="hidden" name="id" value="$id">\n<input type="hidden" name="pw" value="$pw">\n|;
# $log2 .=qq|<input type="hidden" name="cmd" value="-1">\n|;
# $log2 .=qq|<input type="submit" $button1 value="対戦">$td_end</form>\n|;
# 行動セッション加算
$act_cnt++;
# &dat_write;
require './inc/ore_sub-battle.cgi'; &bt_st;
}else{&sele_list;}
}
#-------------------------------------------------------------------------------
# 修行リスト表示
sub sele_list {
local(@usrfile,@BT_LIST,@tdat);
# 参加者データファイル一覧取得
&usrdata_read;
# 表示参加者ランダム選出
foreach(0 .. $bt_count){
$bt_list = int(rand($#usrfile));
$flag = 0;
foreach(0 .. $#BT_LIST){
$flag = 1 if $bt_list eq $BT_LIST[$_];
}
push(@BT_LIST,$bt_list) if !$flag;
}
@BT_LIST = sort(@BT_LIST);
# ランダム選出参加者のデータ一括読み込み
foreach (0 .. $#BT_LIST) {
open(IN,"$usrdata$usrfile[$BT_LIST[$_]]") || &error("Can't open $usrfile[$BT_LIST[$_]].cgi",1);
push(@tdat,<IN>);
close(IN);
}
# 参加者ステータス取得
foreach(0 ..$#tdat){
%R = '';
my @prats = split(/,/,$tdat[$_]);
foreach $prats (@prats){
my($y,$x) = split(/;/,$prats);
$R{$y} = $x;
}
if($nm ne $R{'nm'}){
$NM_V{$R{'nm'}} = $R{'nm'}; # 名前
$HP_MAX_V{$R{'nm'}} = $R{'max_hp'}; # HP
$MP_MAX_V{$R{'nm'}} = $R{'max_mp'}; # MP
$LV_V{$R{'nm'}} = $R{'lv'}; # レベル
$TM_V{$R{'nm'}} = $R{'tm'}; # 行動
$UA_V{$R{'nm'}} = $R{'ua'}; # UA
$UD_V{$R{'nm'}} = $R{'ud'}; # UD
$LR_V{$R{'nm'}} = $R{'lr'}; # LR
$AG_V{$R{'nm'}} = $R{'ag'}; # AG
$CP_V{$R{'nm'}} = $R{'camp'}; # 所属
$SG_V{$R{'nm'}} = $R{'sogo'}; # 称号
$N_M{$R{'nm'}} = $R{'id'}; # ID
}
}
# 修行リスト表示
if(!$tm){
$l = $rk = 1;
foreach $nm (sort sclv keys(%LV_V)){
$lv_v = $LV_V{$nm};
next if($lv_v<=0);
if($lv_v<$prv_lv){ $rk = $l; }
$log .=qq|<a href="$script?id=$id&pw=$pw&cmd=-1&com=$N_M{$nm}">$rk Lv$lv_v |;
# 称号
$log .= ($SG_V{$nm} > 0) ? "$NM_V{$nm} [$sogo_p[$SG_V{$nm}]]" : "$NM_V{$nm}";
$log .=qq|</a> HP$HP_MAX_V{$nm}/MP$MP_MAX_V{$nm}/UA$UA_V{$nm}/UD$UD_V{$nm}/AG$AG_V{$nm}<br>\n|;
$prv_lv = $lv_v;
$l++;
}
$log .=qq|<a href="$script?id=$id&pw=$pw&cmd=-1">中止する</a> |;
$tm=1;
# 行動セッション加算
$act_cnt++;
$layout_flag=1;
&dat_write;
}
# 戦相手割り当て
elsif($tm){
if($com){
open(IN,"$usrdata$com\.cgi") || &error("Open Error : $usrdata$com\.cgi",1);
$tdat = <IN>;
close(IN);
%VS = '';
my @prats = split(/,/,$tdat);
foreach $prats (@prats){
my ($u,$q) = split(/;/,$prats);
$VS{$u} = $q;
}
$tid = $VS{'id'}; # ID
$tnm = $VS{'nm'}; # 名前
$tlv = $VS{'lv'}; # レベル
$thp = $VS{'max_hp'}; # HP
$thp_max= $VS{'max_hp'}; # MAX_HP
$tmp = $VS{'max_mp'}; # MP
$tua = $VS{'ua'}; # UA
$tud = $VS{'ud'}; # UD
$tag = $VS{'ag'}; # AG
$tcp = $VS{'camp'}; # 所属
$tsg = $VS{'sogo'}; # 称号
$tdf_a = $VS{'df_a'}; # 防具
$tdg_a = $VS{'dg_a'}; # 武具
$log .="試合開始!<br>\n";
$type = '修行中';
$tm = 0;
require './inc/ore_sub-battle.cgi'; &bt_st;
}
elsif(!$com){
$log .="中止した…<br>\n";
$type = '';
$tm = 0;
&call_main_st;
}
}
# &dat_write;
}
1;#削除不可
1;#削除不可
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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 training{
if(!$type){
if($hp<4){
$log .= "체력이 너무 적습니다<br>\n";
$tm= $cmd = 0;
$type='';
&call_main_st;
}else{
$log .= "수행을 시작합니다<br>\n";
$tm= $cmd = 0;
$type = '수행';
$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| if($tid);
$log2 .=qq|<option value="2">목록에서 선택</option>\n|;
$log2 .=qq|<option value="0">그만둔다</option>\n|;
$log2 .=qq|</select><br>\n|;
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
}
}
&dat_write;
}
#-------------------------------------------------------------------------------
# 修行処理1
sub training_exe{
if($cmd==0){
$log .= "수행을 중단합니다<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($cmd==1){
open(IN,"$usrdata$tid\.cgi") || &error("Open Error : $usrdata$tid\.cgi",1);
$tdat = <IN>;
close(IN);
%VS = '';
my @prats = split(/,/,$tdat);
foreach $prats (@prats){
my ($u,$q) = split(/;/,$prats);
$VS{$u} = $q;
}
$tid = $VS{'id'}; # ID
$tnm = $VS{'nm'}; # 名前
$tlv = $VS{'lv'}; # レベル
$thp = $VS{'max_hp'}; # HP
$thp_max= $VS{'max_hp'}; # MAX_HP
$tmp = $VS{'max_mp'}; # MP
$tua = $VS{'ua'}; # UA
$tud = $VS{'ud'}; # UD
$tag = $VS{'ag'}; # AG
$tcp = $VS{'camp'}; # 所属
$tsg = $VS{'sogo'}; # 称号
$tdf_a = $VS{'df_a'}; # 防具
$tdg_a = $VS{'dg_a'}; # 武具
$log .="이전 대전 상대와 수행을 시작합니다.<br>시합 개시!<br>\n";
$type = '수행중';
$tm = 0;
$cmd =-1;
# $log2 .=qq|<form action="$script" method="$method" name="ore_"><td align="center" valign="middle">\n|;
# $log2 .=qq|<input type="hidden" name="id" value="$id">\n<input type="hidden" name="pw" value="$pw">\n|;
# $log2 .=qq|<input type="hidden" name="cmd" value="-1">\n|;
# $log2 .=qq|<input type="submit" $button1 value="対戦">$td_end</form>\n|;
# 行動セッション加算
$act_cnt++;
# &dat_write;
require './inc/ore_sub-battle.cgi'; &bt_st;
}else{&sele_list;}
}
#-------------------------------------------------------------------------------
# 修行リスト表示
sub sele_list {
local(@usrfile,@BT_LIST,@tdat);
# 参加者データファイル一覧取得
&usrdata_read;
# 表示参加者ランダム選出
foreach(0 .. $bt_count){
$bt_list = int(rand($#usrfile));
$flag = 0;
foreach(0 .. $#BT_LIST){
$flag = 1 if $bt_list eq $BT_LIST[$_];
}
push(@BT_LIST,$bt_list) if !$flag;
}
@BT_LIST = sort(@BT_LIST);
# ランダム選出参加者のデータ一括読み込み
foreach (0 .. $#BT_LIST) {
open(IN,"$usrdata$usrfile[$BT_LIST[$_]]") || &error("Can't open $usrfile[$BT_LIST[$_]].cgi",1);
push(@tdat,<IN>);
close(IN);
}
# 参加者ステータス取得
foreach(0 ..$#tdat){
%R = '';
my @prats = split(/,/,$tdat[$_]);
foreach $prats (@prats){
my($y,$x) = split(/;/,$prats);
$R{$y} = $x;
}
if($nm ne $R{'nm'}){
$NM_V{$R{'nm'}} = $R{'nm'}; # 名前
$HP_MAX_V{$R{'nm'}} = $R{'max_hp'}; # HP
$MP_MAX_V{$R{'nm'}} = $R{'max_mp'}; # MP
$LV_V{$R{'nm'}} = $R{'lv'}; # レベル
$TM_V{$R{'nm'}} = $R{'tm'}; # 行動
$UA_V{$R{'nm'}} = $R{'ua'}; # UA
$UD_V{$R{'nm'}} = $R{'ud'}; # UD
$LR_V{$R{'nm'}} = $R{'lr'}; # LR
$AG_V{$R{'nm'}} = $R{'ag'}; # AG
$CP_V{$R{'nm'}} = $R{'camp'}; # 所属
$SG_V{$R{'nm'}} = $R{'sogo'}; # 称号
$N_M{$R{'nm'}} = $R{'id'}; # ID
}
}
# 修行リスト表示
if(!$tm){
$l = $rk = 1;
foreach $nm (sort sclv keys(%LV_V)){
$lv_v = $LV_V{$nm};
next if($lv_v<=0);
if($lv_v<$prv_lv){ $rk = $l; }
$log .=qq|<a href="$script?id=$id&pw=$pw&cmd=-1&com=$N_M{$nm}">$rk Lv$lv_v |;
# 称号
$log .= ($SG_V{$nm} > 0) ? "$NM_V{$nm} [$sogo_p[$SG_V{$nm}]]" : "$NM_V{$nm}";
$log .=qq|</a> HP$HP_MAX_V{$nm}/MP$MP_MAX_V{$nm}/UA$UA_V{$nm}/UD$UD_V{$nm}/AG$AG_V{$nm}<br>\n|;
$prv_lv = $lv_v;
$l++;
}
$log .=qq|<a href="$script?id=$id&pw=$pw&cmd=-1">중단하기</a> |;
$tm=1;
# 行動セッション加算
$act_cnt++;
$layout_flag=1;
&dat_write;
}
# 戦相手割り当て
elsif($tm){
if($com){
open(IN,"$usrdata$com\.cgi") || &error("Open Error : $usrdata$com\.cgi",1);
$tdat = <IN>;
close(IN);
%VS = '';
my @prats = split(/,/,$tdat);
foreach $prats (@prats){
my ($u,$q) = split(/;/,$prats);
$VS{$u} = $q;
}
$tid = $VS{'id'}; # ID
$tnm = $VS{'nm'}; # 名前
$tlv = $VS{'lv'}; # レベル
$thp = $VS{'max_hp'}; # HP
$thp_max= $VS{'max_hp'}; # MAX_HP
$tmp = $VS{'max_mp'}; # MP
$tua = $VS{'ua'}; # UA
$tud = $VS{'ud'}; # UD
$tag = $VS{'ag'}; # AG
$tcp = $VS{'camp'}; # 所属
$tsg = $VS{'sogo'}; # 称号
$tdf_a = $VS{'df_a'}; # 防具
$tdg_a = $VS{'dg_a'}; # 武具
$log .="시합 개시!<br>\n";
$type = '수행중';
$tm = 0;
require './inc/ore_sub-battle.cgi'; &bt_st;
}
elsif(!$com){
$log .="중단했다…<br>\n";
$type = '';
$tm = 0;
&call_main_st;
}
}
# &dat_write;
}
1;#削除不可
1;#削除不可
Regular → Executable
+270 -274
View File
@@ -1,274 +1,270 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# 修行 PC Version 1.1 #
#--- [注意事項] --------------------------------------------#
# 1.このスクリプトは以下の利用規程に従って配布しています。 #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
#修行メニュー
sub training{
if(!$type){
if($hp<4){
$log .= "体力が少なすぎます。<br>\n";
$tm= $cmd = 0;
$type='';
&call_main_st;
}else{
$log .= "修行を行います。<br>\n";
$tm= $cmd = 0;
$type = '修行';
$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| if($tid);
$log2 .=qq|<option value="2">一覧から選出</option>\n|;
$log2 .=qq|<option value="0">やめる</option>\n|;
$log2 .=qq|</select><br>\n|;
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
}
}
&dat_write;
}
#-------------------------------------------------------------------------------
# 修行処理1
sub training_exe{
if($cmd==0){
$log .= "修行を中止します<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($cmd==1 && !$com){
# GETによる不正処理にペナルティ
&penalty if($mv_mode eq 'pc' && $method eq 'POST' && !$post_flag);
open(IN,"$usrdata$tid\.cgi") || &error("Open Error : $usrdata$tid\.cgi",1);
$tdat = <IN>;
close(IN);
%VS = '';
my @prats = split(/,/,$tdat);
foreach $prats (@prats){
my ($u,$q) = split(/;/,$prats);
$VS{$u} = $q;
}
$tid = $VS{'id'}; # ID
$tnm = $VS{'nm'}; # 名前
$tlv = $VS{'lv'}; # レベル
$thp = $VS{'max_hp'}; # HP
$thp_max= $VS{'max_hp'}; # MAX_HP
$tmp = $VS{'max_mp'}; # MP
$tua = $VS{'ua'}; # UA
$tud = $VS{'ud'}; # UD
$tag = $VS{'ag'}; # AG
$tcp = $VS{'camp'}; # 所属
$tsg = $VS{'sogo'}; # 称号
$tdf_a = $VS{'df_a'}; # 防具
$tdg_a = $VS{'dg_a'}; # 武具
$log .="前回の対戦相手と修行を行います。<br>試合開始!<br>\n";
$type = '修行中';
$tm = 0;
$cmd =-1;
# $log2 .=qq|<form action="$script" method="$method" name="ore_"><td align="center" valign="middle">\n|;
# $log2 .=qq|<input type="hidden" name="id" value="$id">\n<input type="hidden" name="pw" value="$pw">\n|;
# $log2 .=qq|<input type="hidden" name="cmd" value="-1">\n|;
# $log2 .=qq|<input type="submit" $button1 value="対戦">$td_end</form>\n|;
# 行動セッション加算
$act_cnt++;
# &dat_write;
require './inc/ore_sub-battle.cgi'; &bt_st;
}else{&sele_list;}
}
#-------------------------------------------------------------------------------
# 修行リスト表示
sub sele_list {
# GETによる不正処理にペナルティ
&penalty if($mv_mode eq 'pc' && $method eq 'POST' && !$post_flag);
local(@usrfile,@BT_LIST,@tdat);
# 参加者データファイル一覧取得
&usrdata_read;
# 表示参加者ランダム選出
foreach(0 .. $bt_count){
$bt_list = int(rand($#usrfile));
$flag = 0;
foreach(0 .. $#BT_LIST){
$flag = 1 if $bt_list eq $BT_LIST[$_];
}
push(@BT_LIST,$bt_list) if !$flag;
}
@BT_LIST = sort(@BT_LIST);
# ランダム選出参加者のデータ一括読み込み
foreach (0 .. $#BT_LIST) {
open(IN,"$usrdata$usrfile[$BT_LIST[$_]]") || &error("Can't open $usrfile[$BT_LIST[$_]].cgi",1);
push(@tdat,<IN>);
close(IN);
}
# 参加者ステータス取得
foreach(0 ..$#tdat){
%R = '';
my @prats = split(/,/,$tdat[$_]);
foreach $prats (@prats){
my($y,$x) = split(/;/,$prats);
$R{$y} = $x;
}
if($nm ne $R{'nm'}){
$NM_V{$R{'nm'}} = $R{'nm'}; # 名前
$HP_MAX_V{$R{'nm'}} = $R{'max_hp'}; # HP
$MP_MAX_V{$R{'nm'}} = $R{'max_mp'}; # MP
$LV_V{$R{'nm'}} = $R{'lv'}; # レベル
$TM_V{$R{'nm'}} = $R{'tm'}; # 行動
$UA_V{$R{'nm'}} = $R{'ua'}; # UA
$UD_V{$R{'nm'}} = $R{'ud'}; # UD
$LR_V{$R{'nm'}} = $R{'lr'}; # LR
$AG_V{$R{'nm'}} = $R{'ag'}; # AG
$CP_V{$R{'nm'}} = $R{'camp'}; # 所属
$SG_V{$R{'nm'}} = $R{'sogo'}; # 称号
$N_M{$R{'nm'}} = $R{'id'}; # ID
}
}
# 修行リスト表示
if(!$tm){
$log .=qq|<form action="$script" method="$method" name="ore_">\n|;
$log .=qq|<input type="hidden" name="id" value="$id">\n<input type="hidden" name="pw" value="$pw">\n|;
$log .=qq|<input type="hidden" name="cmd" value="-1">\n|;
$log .=qq|<table border="0" cellpadding="4" sellpadding="4" width="100%">\n<tr align="center" bgcolor="#ccccee"><td></td><td>順位</td><td>LV</td><td>名前</td><td>体力/精神</td><td>攻撃/防御/指揮/敏捷</td><td>所属</td></tr>\n|;
$l = $rk = 1;
foreach $nm (sort sclv keys(%LV_V)){
$lv_v = $LV_V{$nm};
next if($lv_v<=0);
if($lv_v<$prv_lv){ $rk = $l; }
$log .= ($agent !~ /Mac/) ?
qq|<tr bgcolor="#ccccee" align="center"><td><input type="radio" value="$N_M{$nm}" name="com" class="a5" onClick="location.href='#bt_start'">\n|:
qq|<tr bgcolor="#ccccee" align="center"><td><input type="radio" value="$N_M{$nm}" name="com" class="a5">\n|;
$log .="</td><td>$rk</td><td>$lv_v</td><td>";
# 称号
$log .= ($SG_V{$nm} > 0) ? "$NM_V{$nm} [$sogo_p[$SG_V{$nm}]]" : "$NM_V{$nm}";
$log .=qq|</td><td>$HP_MAX_V{$nm}/$MP_MAX_V{$nm}</td><td>$UA_V{$nm}/$UD_V{$nm}/$LR_V{$nm}/$AG_V{$nm}</td><td>$cmp[$CP_V{$nm}]</td></tr>\n|;
$prv_lv = $lv_v;
$l++;
}
$log .="</table>\n";
$log .="<tt><br></tt><a name=\"bt_start\"><input type=submit value=\"対戦\" class=\"button1\">\n";
$log .="</td></form>\n";
$tm=1;
# 行動セッション加算
$act_cnt++;
$layout_flag=1;
&dat_write;
}
# 対戦相手割り当て
elsif($tm){
if($com){
open(IN,"$usrdata$com\.cgi") || &error("Open Error : $usrdata$com\.cgi",1);
$tdat = <IN>;
close(IN);
%VS = '';
my @prats = split(/,/,$tdat);
foreach $prats (@prats){
my ($u,$q) = split(/;/,$prats);
$VS{$u} = $q;
}
$tid = $VS{'id'}; # ID
$tnm = $VS{'nm'}; # 名前
$tlv = $VS{'lv'}; # レベル
$thp = $VS{'max_hp'}; # HP
$thp_max= $VS{'max_hp'}; # MAX_HP
$tmp = $VS{'max_mp'}; # MP
$tua = $VS{'ua'}; # UA
$tud = $VS{'ud'}; # UD
$tag = $VS{'ag'}; # AG
$tcp = $VS{'camp'}; # 所属
$tsg = $VS{'sogo'}; # 称号
$tdf_a = $VS{'df_a'}; # 防具
$tdg_a = $VS{'dg_a'}; # 武具
$log .="試合開始!<br>\n";
$type = '修行中';
$tm = 0;
# $log2 .=qq|<input type=submit value="NEXT!!" class="button1">$td_end</form>\n|;
require './inc/ore_sub-battle.cgi'; &bt_st;
}
elsif(!$com){
$log .="中止した…<br>\n";
$type = '';
$tm = 0;
&call_main_st;
}
}
# &dat_write;
}
# 不正GET処理のペナルティ
sub penalty{
$pr=3600*24*3;
$sogo=4;
$camp=0;
$tm = $cmd = 0;
$type='服役中';
$max_hp =int($max_hp*0.8);
$max_mp =int($max_mp*0.8);
$ua =int($ua*0.8);
$ud =int($ud*0.8);
$lr =int($lr*0.8);
$ag =int($ag*0.8);
&dat_write;
&error("不正処理です。ペナルティが発生します。",1);
}
1;#削除不可
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
# BLANK BOARD [ http://pom.to/ ] #
#-----------------------------------------------------------#
# 수행 PC Version 1.1 #
#--- [주의사항] --------------------------------------------#
# 1.이 스크립트는 이하의 이용규정에 따라 배포되고 있습니다. #
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
#-----------------------------------------------------------#
#-------------------------------------------------------------------------------
# 수행 메뉴
sub training{
if(!$type){
if($hp<4){
$log .= "체력이 너무 적습니다.<br>\n";
$tm= $cmd = 0;
$type='';
&call_main_st;
}else{
$log .= "수행을 시작합니다.<br>\n";
$tm= $cmd = 0;
$type = '수행';
$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| if($tid);
$log2 .=qq|<option value="2">목록에서 선택</option>\n|;
$log2 .=qq|<option value="0">그만둔다</option>\n|;
$log2 .=qq|</select><br>\n|;
$log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
}
}
&dat_write;
}
#-------------------------------------------------------------------------------
# 수행 처리1
sub training_exe{
if($cmd==0){
$log .= "수행을 중단합니다<br>\n";
$tm = $cmd = 0;
$type='';
&call_main_st;
}elsif($cmd==1 && !$com){
# GET에 의한 부정 처리 페널티
&penalty if($mv_mode eq 'pc' && $method eq 'POST' && !$post_flag);
open(IN,"$usrdata$tid\.cgi") || &error("Open Error : $usrdata$tid\.cgi",1);
$tdat = <IN>;
close(IN);
%VS = '';
my @prats = split(/,/,$tdat);
foreach $prats (@prats){
my ($u,$q) = split(/;/,$prats);
$VS{$u} = $q;
}
$tid = $VS{'id'}; # ID
$tnm = $VS{'nm'}; # 이름
$tlv = $VS{'lv'}; # 레벨
$thp = $VS{'max_hp'}; # HP
$thp_max= $VS{'max_hp'}; # MAX_HP
$tmp = $VS{'max_mp'}; # MP
$tua = $VS{'ua'}; # UA
$tud = $VS{'ud'}; # UD
$tag = $VS{'ag'}; # AG
$tcp = $VS{'camp'}; # 소속
$tsg = $VS{'sogo'}; # 칭호
$tdf_a = $VS{'df_a'}; # 방어구
$tdg_a = $VS{'dg_a'}; # 무구
$log .="이전 대전 상대와 수행을 시작합니다.<br>시합 개시!<br>\n";
$type = '수행중';
$tm = 0;
$cmd =-1;
# $log2 .=qq|<form action="$script" method="$method" name="ore_"><td align="center" valign="middle">\n|;
# $log2 .=qq|<input type="hidden" name="id" value="$id">\n<input type="hidden" name="pw" value="$pw">\n|;
# $log2 .=qq|<input type="hidden" name="cmd" value="-1">\n|;
# $log2 .=qq|<input type="submit" $button1 value="대결">$td_end</form>\n|;
# 행동 세션 가산
$act_cnt++;
# &dat_write;
require './inc/ore_sub-battle.cgi'; &bt_st;
}else{&sele_list;}
}
#-------------------------------------------------------------------------------
# 수행 리스트 표시
sub sele_list {
# GET에 의한 부정 처리 페널티
&penalty if($mv_mode eq 'pc' && $method eq 'POST' && !$post_flag);
local(@usrfile,@BT_LIST,@tdat);
# 참가자 데이터 파일 목록 취득
&usrdata_read;
# 표시 참가자 랜덤 선출
foreach(0 .. $bt_count){
$bt_list = int(rand($#usrfile));
$flag = 0;
foreach(0 .. $#BT_LIST){
$flag = 1 if $bt_list eq $BT_LIST[$_];
}
push(@BT_LIST,$bt_list) if !$flag;
}
@BT_LIST = sort(@BT_LIST);
# 랜덤 선출 참가자 데이터 일괄 읽기
foreach (0 .. $#BT_LIST) {
open(IN,"$usrdata$usrfile[$BT_LIST[$_]]") || &error("Can't open $usrfile[$BT_LIST[$_]].cgi",1);
push(@tdat,<IN>);
close(IN);
}
# 참가자 스탯 취득
foreach(0 ..$#tdat){
%R = '';
my @prats = split(/,/,$tdat[$_]);
foreach $prats (@prats){
my($y,$x) = split(/;/,$prats);
$R{$y} = $x;
}
if($nm ne $R{'nm'}){
$NM_V{$R{'nm'}} = $R{'nm'}; # 이름
$HP_MAX_V{$R{'nm'}} = $R{'max_hp'}; # HP
$MP_MAX_V{$R{'nm'}} = $R{'max_mp'}; # MP
$LV_V{$R{'nm'}} = $R{'lv'}; # 레벨
$TM_V{$R{'nm'}} = $R{'tm'}; # 행동
$UA_V{$R{'nm'}} = $R{'ua'}; # UA
$UD_V{$R{'nm'}} = $R{'ud'}; # UD
$LR_V{$R{'nm'}} = $R{'lr'}; # LR
$AG_V{$R{'nm'}} = $R{'ag'}; # AG
$CP_V{$R{'nm'}} = $R{'camp'}; # 소속
$SG_V{$R{'nm'}} = $R{'sogo'}; # 칭호
$N_M{$R{'nm'}} = $R{'id'}; # ID
}
}
# 수행 리스트 표시
if(!$tm){
$log .=qq|<form action="$script" method="$method" name="ore_">\n|;
$log .=qq|<input type="hidden" name="id" value="$id">\n<input type="hidden" name="pw" value="$pw">\n|;
$log .=qq|<input type="hidden" name="cmd" value="-1">\n|;
$log .=qq|<table border="0" cellpadding="4" sellpadding="4" width="100%">\n<tr align="center" bgcolor="#ccccee"><td></td><td>순위</td><td>LV</td><td>이름</td><td>체력/정신</td><td>공격/방어/지휘/민첩</td><td>소속</td></tr>\n|;
$l = $rk = 1;
foreach $nm (sort sclv keys(%LV_V)){
$lv_v = $LV_V{$nm};
next if($lv_v<=0);
if($lv_v<$prv_lv){ $rk = $l; }
$log .= ($agent !~ /Mac/) ?
qq|<tr bgcolor="#ccccee" align="center"><td><input type="radio" value="$N_M{$nm}" name="com" class="a5" onClick="location.href='#bt_start'">\n|:
qq|<tr bgcolor="#ccccee" align="center"><td><input type="radio" value="$N_M{$nm}" name="com" class="a5">\n|;
$log .="</td><td>$rk</td><td>$lv_v</td><td>";
# 칭호
$log .= ($SG_V{$nm} > 0) ? "$NM_V{$nm} [$sogo_p[$SG_V{$nm}]]" : "$NM_V{$nm}";
$log .=qq|</td><td>$HP_MAX_V{$nm}/$MP_MAX_V{$nm}</td><td>$UA_V{$nm}/$UD_V{$nm}/$LR_V{$nm}/$AG_V{$nm}</td><td>$cmp[$CP_V{$nm}]</td></tr>\n|;
$prv_lv = $lv_v;
$l++;
}
$log .="</table>\n";
$log .="<tt><br></tt><a name=\"bt_start\"><input type=submit value=\"대결\" class=\"button1\">\n";
$log .="</td></form>\n";
$tm=1;
# 행동 세션 가산
$act_cnt++;
$layout_flag=1;
&dat_write;
}
# 대전자 할당
elsif($tm){
if($com){
open(IN,"$usrdata$com\.cgi") || &error("Open Error : $usrdata$com\.cgi",1);
$tdat = <IN>;
close(IN);
%VS = '';
my @prats = split(/,/,$tdat);
foreach $prats (@prats){
my ($u,$q) = split(/;/,$prats);
$VS{$u} = $q;
}
$tid = $VS{'id'}; # ID
$tnm = $VS{'nm'}; # 이름
$tlv = $VS{'lv'}; # 레벨
$thp = $VS{'max_hp'}; # HP
$thp_max= $VS{'max_hp'}; # MAX_HP
$tmp = $VS{'max_mp'}; # MP
$tua = $VS{'ua'}; # UA
$tud = $VS{'ud'}; # UD
$tag = $VS{'ag'}; # AG
$tcp = $VS{'camp'}; # 소속
$tsg = $VS{'sogo'}; # 칭호
$tdf_a = $VS{'df_a'}; # 방어구
$tdg_a = $VS{'dg_a'}; # 무구
$log .="시합 개시!<br>\n";
$type = '수행중';
$tm = 0;
# $log2 .=qq|<input type=submit value="NEXT!!" class="button1">$td_end</form>\n|;
require './inc/ore_sub-battle.cgi'; &bt_st;
}
elsif(!$com){
$log .="중단했다…<br>\n";
$type = '';
$tm = 0;
&call_main_st;
}
}
# &dat_write;
}
# 부정 GET 처리의 페널티
sub penalty{
$pr=3600*24*3;
$sogo=4;
$camp=0;
$tm = $cmd = 0;
$type='복역중';
$max_hp =int($max_hp*0.8);
$max_mp =int($max_mp*0.8);
$ua =int($ua*0.8);
$ud =int($ud*0.8);
$lr =int($lr*0.8);
$ag =int($ag*0.8);
&dat_write;
&error("올바르지 않은 처리입니다. 페널티가 발생합니다.",1);
}
1;
Regular → Executable
+144 -148
View File
@@ -1,148 +1,144 @@
#-----------------------------------------------------------#
# 罪と罰++ 二律背反 #
# 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>出撃兵数の約\十\分の一の金が必要です<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;
#-----------------------------------------------------------#
# 죄와 벌++ 이율배반 #
# 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;
Regular → Executable
+873 -876
View File
File diff suppressed because it is too large Load Diff