1110 lines
33 KiB
Perl
Executable File
1110 lines
33 KiB
Perl
Executable File
#-----------------------------------------------------------#
|
||
# 죄와 벌++ 이율배반 #
|
||
# Copyright(C) 2001-2002 by Vivid Studio. BLANK BOARD #
|
||
# Vivid Studio.[ http://www17.big.or.jp/~obochan/vivid/ ] #
|
||
# BLANK BOARD [ http://pom.to/ ] #
|
||
#-----------------------------------------------------------#
|
||
# 전투 Version 1.1
|
||
#--- [주의사항] --------------------------------------------#
|
||
# 1.이 스크립트는 이하의 이용규정에 따라 배포되고 있습니다. #
|
||
# http://www24.big.or.jp/~obo/game/ore_/gild/ #
|
||
#-----------------------------------------------------------#
|
||
|
||
#-------------------------------------------------------------------------------
|
||
#수행 처리 2
|
||
sub bt_st {
|
||
|
||
&bt_cm;
|
||
|
||
$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|;
|
||
if($thp<1||$hp<1){
|
||
$log2 .=qq|<input type="hidden" name="cmd" value=-1>\n|;
|
||
}else{
|
||
&spell_sp;
|
||
}
|
||
$log2 .=qq|<br>\n|;#テーブルずれ修正
|
||
$log2 .=qq|<input $button1 type="submit" value="NEXT!">$td_end</form>\n|;#テーブル追加</tr></table>
|
||
|
||
&dat_write;
|
||
|
||
}
|
||
|
||
#-------------------------------------------------------------------------------
|
||
#전투 처리
|
||
sub bt_cm {
|
||
|
||
$layout_flag=1;
|
||
|
||
$ua_a = $ua+$dg_data[$dg_a][4]; # $uaに武具値付加
|
||
$ud_a = $ud+$df_data[$df_a][4]; # $udに防具値付加
|
||
|
||
$tua_a = $tua+$dg_data[$tdg_a][4]; # $tuaに武具値付加
|
||
$tud_a = $tud+$df_data[$tdf_a][4]; # $tudに防具値付加
|
||
|
||
my $btp = $ag + int(rand($lv/10)+1);
|
||
my $bte = $tag+ int(rand($tlv/10)+1);
|
||
|
||
($btp>=$bte) ? &attack_myself : &attack_enemy ;
|
||
if($thp>0 && $hp>0){($btp>=$bte) ? &attack_enemy : &attack_myself ;}
|
||
|
||
# 02/10 전쟁 시, 공격한 나라의 사람이 아닌 사람이 나오는 것에 대한 대처 $tnm >> $tnm_p
|
||
$tnm_p = $tnm if(!$tnm_p);
|
||
$log .="<p>$nm ( HP $hp / MP $mp ) VS $tnm_p ( HP $thp / MP $tmp )</p>\n";
|
||
|
||
}
|
||
|
||
# 공격--자신
|
||
sub attack_myself{
|
||
|
||
$log .="<font color=#6666FF>\n";
|
||
|
||
if($cmd == 1){
|
||
local ($v,$vv);
|
||
|
||
$vv=int(rand(1500));
|
||
|
||
$v = $ua_a-$tud_a;
|
||
$v += int(sqrt($ua)) if($bst =~ /W/);
|
||
|
||
$v = 1 if($v<1);
|
||
|
||
if($dg_a && $dg_cnt){#武具呼び出し
|
||
$log .="$nm 은(는) $dg_data[$dg_a][1] (으)로 공격!!<br>$tnm 에게 $v 의 상처를 입혔다!<br>\n";
|
||
$thp -= $v;
|
||
$dg_cnt--;
|
||
if($dg_cnt<=0){
|
||
$log .="$dg_data[$dg_a][1] 이(가) 파괴되었다!!<br>\n";
|
||
$dg_a = $dg_cnt = 0;
|
||
}
|
||
elsif(!$vv){
|
||
$log .="운 나쁘게 $dg_data[$dg_a][1] 이(가) 파괴되었다!!<br>\n";
|
||
$dg_a = $dg_cnt = 0;
|
||
}
|
||
}else{
|
||
$v = int((rand(4))+$v);
|
||
$thp -= $v;
|
||
$log .="$nm 은(는) $tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}
|
||
|
||
}elsif($cmd >= 2){
|
||
$v = $cmd -2;
|
||
|
||
if($rank >= 8){# 계급 기술 호출
|
||
&st_cm_k;
|
||
}
|
||
|
||
if($di_a == 1){#현자의 돌
|
||
my $ss=int($lv/2);
|
||
my ($v,$vv);
|
||
if(int($hp+$ss) < $max_hp){
|
||
$hp += $ss;
|
||
}else{
|
||
$v=$max_hp-$hp;
|
||
$hp += $v;
|
||
}
|
||
if(int($mp+$ss) < $max_mp){
|
||
$mp += $ss;
|
||
}else{
|
||
$vv=$max_mp-$mp;
|
||
$mp += $vv;
|
||
}
|
||
$log .="$di_data[$di_a][1] 의 작용으로 $nm은(는) 체력과 정신력이 $ss 회복되었다!<br>\n";
|
||
|
||
$di_cnt--;
|
||
|
||
if($di_cnt<=0){
|
||
$log .="$di_data[$di_a][1] 이(가) 산산조각이 났다!<br>\n";
|
||
$di_a=0;
|
||
}
|
||
}
|
||
|
||
# 도구 호출
|
||
&dogu_k if($di_a > 1 && $cmd==15);
|
||
|
||
if($v<int($lv/5) && $mp>=$sp_mp[$v]){
|
||
$mp -= $sp_mp[$v];
|
||
|
||
if($camp==0){
|
||
|
||
if($lv < 10){$ch =int(rand(10));}#크리티컬 히트율
|
||
elsif($lv >= 10 && $lv < 15){$ch =int(rand(15));}
|
||
elsif($lv >= 15 && $lv < 20){$ch =int(rand(25));}
|
||
elsif($lv >= 20 && $lv < 30){$ch =int(rand(50));}
|
||
elsif($lv >= 30 && $lv < 40){$ch =int(rand(75));}
|
||
else{$ch =int(rand(125));}
|
||
|
||
if($v == 0 && $ch == 0 || ($ch == 1 && $lv > 5 && $lv < 10)){
|
||
$v = int($ua*4);
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="필살 마진검! <b>크리티컬 히트!</b> $tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}elsif($v == 0 && $ch == 1 && $lv >= 10 && $lv < 20){
|
||
$hp += int($max_hp/3) if($hp < $max_hp - int($max_hp/3));
|
||
$v = int($ua*2);
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="반 회복! 체력이 어느 정도 회복되었다!<br>연속기! 필살 마진검! $tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}elsif($v == 0 && $ch >= 2 || ($ch == 1 && $lv >= 20)){
|
||
$v = int($ua*2);
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="필살 마진검! $tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}elsif($v == 1){
|
||
$hp = $max_hp;
|
||
$log .="전체 회복! 체력이 완전히 회복되었다!<br>\n";
|
||
}
|
||
|
||
}elsif($camp==1){
|
||
|
||
if($v == 0){
|
||
$v = int($ua*1.5);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*1.5) if($bst =~ /W/);
|
||
$v = $v-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="필살 질풍검! $tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}elsif($v == 1 ){
|
||
$v = int($max_hp-$hp);
|
||
$v = 30 if($v>30);
|
||
$hp += $v;
|
||
$log .="생명공! 체력을 $v 회복했다!<br>\n";
|
||
}elsif($v == 2){
|
||
$bst .= 'W' unless($bst =~ /W/);
|
||
$log .="봉격공! 공격력이 올랐다<br>\n";
|
||
}elsif($v == 3){
|
||
$thp -= 30;
|
||
$log .="염창선! $tnm에게 30의 상처를 주었다!<br>\n";
|
||
}elsif($v == 4){
|
||
$bst .= 'S' unless($bst =~ /S/);
|
||
$log .= "강기! 방어력이 올랐다<br>\n";
|
||
}elsif($v == 5){
|
||
$v = int($max_hp-$hp);
|
||
$v = 50 if($v>50);
|
||
$hp += $v;
|
||
$log .="절심공! 체력을 $v 회복했다!<br>\n";
|
||
}elsif($v == 6){
|
||
$dh =int(rand(3)) ;
|
||
if($dh==0){
|
||
$v = int($thp*0.8);
|
||
$thp -= $v;
|
||
$thp = 1 if($thp < 1);
|
||
$vv = int($mp/4);
|
||
$mp -= $vv;
|
||
$log .="오의 봉황전생!! $tnm을 빈사 상태로 몰아넣었다!<br>그러나 여파를 입어 $nm은 $vv의 정신력을 잃었다.<br>\n" if($thp <= 1);
|
||
$log .="오의 봉황전생!! $tnm에게 $v의 상처를 주었다!<br>그러나 여파를 입어 $nm은 $vv의 정신력을 잃었다.<br>\n" if($thp > 1);
|
||
}else{
|
||
$v = int($thp*0.5);
|
||
$thp -= $v;
|
||
$thp = 1 if($thp < 1);
|
||
$log .="오의 봉황전생!! $tnm을 빈사 상태로 몰아넣었다!<br>\n" if($thp <= 1);
|
||
$log .="오의 봉황전생!! $tnm에게 $v의 상처를 주었다!<br>\n" if($thp > 1);
|
||
}
|
||
}elsif($v == 7){
|
||
$dh =int(rand(20)) ;
|
||
if($dh <= 3){
|
||
$log .="비오의 혼 깨기!! $tnm은 마음이 산산조각 났다!<br>\n";
|
||
$thp=0;
|
||
}elsif($dh == 4){
|
||
$v = int($hp*0.9);
|
||
$hp -= $v;
|
||
$log .="비오의 혼 깨기!! <b>자폭!!</b> $nm은 마음이 산산조각이 나고 말았다!<br>\n";
|
||
}elsif($dh >= 5 && $dh <= 12){
|
||
$v = int(($tud+$tua)*2-$tud);
|
||
$thp -= $v;
|
||
$log .="비오의 혼 깨기!! 실패했다!!<br>그러나 $tnm에게 $v의 피해를 주는 데 성공!<br>\n";
|
||
}else{
|
||
$log .="실패했다... 그러나 최악의 사태만은 면했다.<br>\n";
|
||
}
|
||
}
|
||
|
||
}elsif($camp==2){
|
||
|
||
if($v == 0){
|
||
$v = int($ua*1.5);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*1.5) if($bst =~ /W/);
|
||
$v = $v-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="버티컬 소드! $tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}elsif($v == 1 ){
|
||
$bst .= 'W' unless($bst =~ /W/);
|
||
$log .="어택! 공격력이 올랐다<br>\n";
|
||
}elsif($v == 2){
|
||
$v = int($max_hp-$hp);
|
||
$v = 30 if($v>30);
|
||
$hp += $v;
|
||
$log .="힐! 체력을 $v 회복했다!<br>\n";
|
||
}elsif($v == 3){
|
||
$thp -= 30;
|
||
$v = int($max_hp-$hp);
|
||
$v = 10 if($v>10);
|
||
$hp += $v;
|
||
$log .="세인트 크로스! $tnm에게 30의 상처를 주고, 추가로 그 체력을 조금 흡수했다!<br>\n";
|
||
}elsif($v == 4){
|
||
$tua = 1;
|
||
$log .= "비술 안크레아 브레이크! $tnm의 UA를 0으로 만들었다!<br>\n";
|
||
}elsif($v == 5){
|
||
$v = int($max_hp-$hp);
|
||
$v = 50 if($v>50);
|
||
$hp += $v;
|
||
$log .="ハイ힐! 체력을 $v 회복했다!<br>\n";
|
||
}elsif($v == 6){
|
||
$v = 140 + int(rand(60)) -$tud;
|
||
$thp -= $v;
|
||
$log .="시간의 흐름 속에 묻힌 자…… 영원<small>(토와)</small>의 꿈을 잇는 자……<br>지금 너의 이름 아래, 더러워진 자를 정화하라...!!<br>$tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}elsif($v == 7){
|
||
$log .="황혼보다 어두운 자…… 흐르는 피보다 붉은 자……<br>(생략)<br>……동등하게 멸망을 선사할지어다! 용파참!!<br>\n";
|
||
$v = 200 + int(rand(150)) - $tud;
|
||
$thp -= $v;
|
||
$log .="$tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}
|
||
|
||
}elsif($camp==3){
|
||
|
||
if($v == 0){
|
||
$thp -= 15;
|
||
$log .="소드 슬래시! $tnm에게 15의 상처를 주었다!<br>\n";
|
||
}elsif($v == 1 ){
|
||
$bst .= 'W' unless($bst =~ /W/);
|
||
$log .="어택! UA가 올랐다<br>\n";
|
||
}elsif($v == 2){
|
||
$thp -= 25;
|
||
$log .="소드 댄스! $tnm에게 25의 상처를 주었다!<br>\n";
|
||
}elsif($v == 3){
|
||
$bst .= 'S' unless($bst =~ /S/);
|
||
$log .= "실드! 방어력이 올랐다<br>\n";
|
||
}elsif($v == 4){
|
||
$tud = 1;
|
||
$log .= "오의 아머 브레이크! $tnm의 UD를 0으로 만들었다!<br>\n";
|
||
}elsif($v == 5){
|
||
$v = int($max_hp-$hp);
|
||
$v = 50 if($v>50);
|
||
$hp += $v;
|
||
$log .="ハイ힐! 체력을 $v 회복했다!<br>\n";
|
||
}elsif($v == 6){
|
||
$v = int($ua*3);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*3) if($bst =~ /W/);
|
||
$v = $v-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="오거 소드! $tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}elsif($v == 7){
|
||
$v = int($ua*3);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*3) if($bst =~ /W/);
|
||
$v = 100 if($v < 100);
|
||
$thp -= $v;
|
||
$tmp -= $v;
|
||
$log .="비오의 얼티밋 어택! $tnm의 HP와 MP에 $v의 상처를 주었다!<br>\n";
|
||
}
|
||
|
||
}elsif($camp==4){
|
||
|
||
if($v == 0){
|
||
$v = int($ua*2);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*2) if($bst =~ /W/);
|
||
$v = $v-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="암흑검! $tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}elsif($v == 1 ){
|
||
$thp -= 20;
|
||
$v = int($max_hp-$hp);
|
||
$v = 10 if($v>10);
|
||
$hp += $v;
|
||
$log .="데드 크라운! $tnm에게 20의 상처를 주고, 추가로 그 체력을 조금 흡수했다!<br>\n";
|
||
}elsif($v == 2){
|
||
$tmp -= 30;
|
||
$log .="나이트메어! $tnm의 MP에 30의 피해를 주었다!<br>\n";
|
||
}elsif($v == 3){
|
||
$thp -= 30;
|
||
$log .="흑염! $tnm에게 30의 상처를 주었다!<br>\n";
|
||
}elsif($v == 4){
|
||
$v = int($max_hp-$hp);
|
||
$v = 50 if($v>50);
|
||
$hp += $v;
|
||
$log .="절심공! 체력을 $v 회복했다!<br>\n";
|
||
}elsif($v == 5){
|
||
$bst .= 'W' unless($bst =~ /W/);
|
||
$log .="어택! UA가 올랐다<br>\n";
|
||
}elsif($v == 6){
|
||
$bst .= 'S' unless($bst =~ /S/);
|
||
$log .= "실드! 방어력이 올랐다<br>\n";
|
||
}elsif($v == 7){
|
||
$v = int(rand(50)) + 200;
|
||
$thp -= $v;
|
||
$log .="열려라 지옥의 문! $tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}
|
||
}elsif($camp==5){
|
||
|
||
if($v == 0){
|
||
$dh =int(rand(2)) ;
|
||
if($dh==0){
|
||
$thp -= 30;
|
||
$log .="일식! $tnm에게 30의 상처를 주었다!<br>\n";
|
||
}elsif($dh==1){
|
||
$thp -= 20;
|
||
$log .="일식! 피했다!!<br>그러나 풍압으로 인해 $tnm에게 20의 상처를 주었다!<br>\n";
|
||
}
|
||
}elsif($v == 1 ){
|
||
$v = int($ua*1.5);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*1.5) if($bst =~ /W/);
|
||
$v = $v-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="일식·단! $tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}elsif($v == 2){
|
||
$dh =int(rand(2)) ;
|
||
if($dh==0){
|
||
$thp -= 70;
|
||
$log .="이식! $tnm에게 70의 상처를 주었다!<br>\n";
|
||
}elsif($dh==1){
|
||
$thp -= 35;
|
||
$log .="이식! 피했다!!<br>그러나 풍압으로 인해 $tnm에게 35의 상처를 주었다!<br>\n";
|
||
}
|
||
}elsif($v == 3){
|
||
$dh =int(rand(3)) ;
|
||
if($dh==0){
|
||
$v = int($ua*2.5);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*2.5) if($bst =~ /W/);
|
||
$v = $v-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="이식·열! $tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}elsif($dh==1){
|
||
$v = int($ua*2.5);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*2.5) if($bst =~ /W/);
|
||
$v = $v-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$hp -= 15;
|
||
$log .="이식·열! $tnm에게 $v의 상처를 주었다!<br>그러나 기술을 제어하지 못하고 폭주하여 $nm은 15의 상처를 입었다.<br>\n";
|
||
}elsif($dh==2){
|
||
$v = int($ua*2.5);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*2.5) if($bst =~ /W/);
|
||
$v = $v-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$mp -= 15;
|
||
$log .="이식·열! $tnm에게 $v의 상처를 주었다!<br>그러나 정신에 부하가 걸려 $nm은 15의 MP를 잃었다.<br>\n";
|
||
}
|
||
}elsif($v == 4){
|
||
$dh =int(rand(2)) ;
|
||
if($dh==0){
|
||
$thp -= 120;
|
||
$log .="삼식! $tnm에게 120의 상처를 주었다!<br>\n";
|
||
}elsif($dh==1){
|
||
$thp -= 60;
|
||
$log .="삼식! 피했다!!<br>그러나 풍압으로 인해 $tnm에게 60의 상처를 주었다!<br>\n";
|
||
}
|
||
}elsif($v == 5){
|
||
$dh =int(rand(3)) ;
|
||
if($dh==0){
|
||
$v = int($ua*3.5);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*3.5) if($bst =~ /W/);
|
||
$v = $v-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="삼식·파! $tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}elsif($dh==1){
|
||
$v = int($ua*3.5);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*3.5) if($bst =~ /W/);
|
||
$v = $v-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$hp -= 30;
|
||
$log .="삼식·파! $tnm에게 $v의 상처를 주었다!<br>그러나 기술을 제어하지 못하고 폭주하여 $nm은 30의 상처를 입었다.<br>\n";
|
||
}elsif($dh==2){
|
||
$v = int($ua*3.5);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*3.5) if($bst =~ /W/);
|
||
$v = $v-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$mp -= 30;
|
||
$log .="삼식·파! $tnm에게 $v의 상처를 주었다!<br>그러나 정신에 부하가 걸려 $nm은 30의 MP를 잃었다.<br>\n";
|
||
}
|
||
}elsif($v == 6){
|
||
$dh =int(rand(2)) ;
|
||
if($dh==0){
|
||
$thp -= 200;
|
||
$log .="영식! $tnm에게 200의 상처를 주었다!<br>\n";
|
||
}elsif($dh==1){
|
||
$thp -= 100;
|
||
$log .="영식! 피했다!!<br>그러나 풍압으로 인해 $tnm에게 100의 상처를 주었다!<br>\n";
|
||
}
|
||
}elsif($v == 7){
|
||
$dh =int(rand(3)) ;
|
||
if($dh==0){
|
||
$v = int($ua*5);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*5) if($bst =~ /W/);
|
||
$v = $v-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="영식·절! $tnm에게 $v의 상처를 주었다!<br>\n";
|
||
}elsif($dh==1){
|
||
$v = int($ua*6);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*6) if($bst =~ /W/);
|
||
$v = $v-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$hp -= 60;
|
||
$log .="영식·절! $tnm에게 $v의 상처를 주었다!<br>그러나 기술을 제어하지 못하고 폭주하여 $nm은 60의 상처를 입었다.<br>\n";
|
||
}elsif($dh==2){
|
||
$v = int($ua*6);
|
||
$v = int(sqrt($ua)) + $ua if($bst =~ /W/);
|
||
$v = int($v*6) if($bst =~ /W/);
|
||
$v = $v-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$mp -= 60;
|
||
$log .="영식·절! $tnm에게 $v의 상처를 주었다!<br>그러나 정신에 부하가 걸려 $nm은 60의 MP를 잃었다.<br>\n";
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
$log .="</font>\n";
|
||
|
||
# 승리 처리
|
||
&battle_win if($thp <= 0 && $type eq '수행중');
|
||
|
||
}
|
||
|
||
# 승리 처리
|
||
sub battle_win{
|
||
$G =int(rand(200))+((500*$tlv)-($lv*200));
|
||
$v =$lv-5;
|
||
$z =$lv-10;
|
||
$G =int(rand(500))+1500 if($G>2000);
|
||
$G =int($G/2) if($tlv<$v);
|
||
$G =int($G/3) if($tlv<$z);
|
||
$G =1 if($G<1);
|
||
$gold +=$G;
|
||
$E =int((((((rand(5))+5)+$tlv)*2)*0.8)-$lv);
|
||
$E =1 if($E<1);
|
||
$E =int(rand(50))+250 if($E>300);
|
||
$exe+=$E;
|
||
$tm =0;
|
||
$thp=0;
|
||
$bst ='';
|
||
$bt =0;
|
||
$ck =0;
|
||
$cmd=-1;
|
||
$type='';
|
||
$log .="$nm은(는) $tnm을(를) 쓰러뜨렸다!<br>\n";
|
||
$log .="$G 골드와 $E 경험치를 획득했다!<br>\n";
|
||
$tnm_p = $tnm; # 02/10 전쟁 시, 공격한 나라의 사람이 아닌 사람이 나오는 것에 대한 대처
|
||
$tnm ='';
|
||
}
|
||
|
||
# 공격--적측
|
||
sub attack_enemy{
|
||
|
||
$log .="<font color=FF3366>\n";
|
||
|
||
if(($cmd != -1)&&($thp>0)){
|
||
$log .="$tnm의 공격! \n";
|
||
$p=int(rand(6));
|
||
|
||
if($tcp==0){
|
||
|
||
if($lv < 10){$ch =int(rand(20));}#언럭키 히트율
|
||
elsif($lv >= 10 && $lv < 15){$ch =int(rand(32));}
|
||
elsif($lv >= 15 && $lv < 25){$ch =int(rand(16));}
|
||
elsif($lv >= 25 && $lv < 40){$ch =int(rand(8));}
|
||
else{$ch =int(rand(4));}
|
||
|
||
if($tlv>=5&&$tlv<10&&$tmp>=3&&$p==0){
|
||
if($ch == 0){
|
||
$v = int($tua*4);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="필살 마진검! <b>뼈아픈 일격!</b> $nm은 $v의 상처를 입었다!<br>\n";
|
||
$tmp-=3;
|
||
}else{
|
||
$v = int($tua*2);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="필살 마진검! $nm은 $v의 상처를 입었다!<br>\n";
|
||
$tmp-=3;
|
||
}
|
||
}elsif($tlv>=10&&$tmp>=9&&$p==1){
|
||
if($ch == 0){
|
||
$v = int($tua*4);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="필살 마진검! <b>뼈아픈 일격!</b> $nm에게 $v의 상처를 주었다!<br>\n";
|
||
$tmp-=3;
|
||
}elsif($ch == 1){
|
||
$thp += int($thp_max/3) if($thp < $thp_max - int($thp_max/3));
|
||
$v = int($tua*2);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="반 회복! 체력이 어느 정도 회복되었다!<br>적의 맹공격! 필살 마진검! $nm에게 $v의 상처를 주었다!<br>\n";
|
||
$tmp-=9;
|
||
}elsif($ch > 1){
|
||
$ch2 =int(rand(3));
|
||
if($ch2 == 0 || $ch2 == 1){
|
||
$v = int($tua*2);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="필살 마진검! $nm은 $v의 상처를 입었다!<br>\n";
|
||
$tmp-=3;
|
||
}else{
|
||
$thp = $thp_max;
|
||
$log .="전체 회복! 체력이 완전히 회복되었다!<br>\n";
|
||
$tmp-=9;
|
||
}
|
||
}
|
||
}else{
|
||
# 적 캐릭터 일반 공격 처리
|
||
&bogu_bt;
|
||
}
|
||
}elsif($tcp==1){
|
||
if($tlv>=40&&$tmp>=90&&$p==0){
|
||
$dh =int(rand(20)) ;
|
||
if($dh <= 3){
|
||
$log .="비오의 혼 깨기!! 의식이 멀어진다...<br>\n";
|
||
$hp=0;
|
||
$tmp-=90;
|
||
}elsif($dh == 4){
|
||
$v = int($thp*0.9);
|
||
$thp -= $v;
|
||
$log .="비오의 혼 깨기!! <b>자폭!!</b> $tnm은 마음이 산산조각이 나고 말았다!<br>\n";
|
||
$tmp-=90;
|
||
}elsif($dh >= 5 && $dh <= 12){
|
||
$v = int(($ud+$ua)*2-$ud);
|
||
$hp -= $v;
|
||
$log .="비오의 혼 깨기!! 간발의 차로 $nm은(는) 피했다!!<br>그러나 다 피하지 못하고 $v의 상처를 입었다!<br>\n";
|
||
$tmp-=90;
|
||
}else{
|
||
$log .="실패한 것 같다♪<br>\n";
|
||
$tmp-=90;
|
||
}
|
||
}elsif($tlv>=35&&$tmp>=60&&$p==1){
|
||
$dh =int(rand(3)) ;
|
||
if($dh==0){
|
||
$v = int($hp*0.8);
|
||
$hp -= $v;
|
||
$hp = 1 if($hp < 1);
|
||
$vv = int($tmp/4);
|
||
$tmp -= $vv;
|
||
$log .="오의 봉황전생!! $nm은 빈사 상태에 빠졌다!<br>그러나 여파를 입어 $tnm은 $vv의 정신력을 잃었다.<br>\n" if($thp <= 1);
|
||
$log .="오의 봉황전생!! $nm은 $v의 상처를 입었다!<br>그러나 여파를 입어 $tnm은 $vv의 정신력을 잃었다.<br>\n";
|
||
$tmp-=60;
|
||
}else{
|
||
$v = int($hp*0.5);
|
||
$hp -= $v;
|
||
$hp = 1 if($hp < 1);
|
||
$log .="오의 봉황전생!! $nm은 빈사 상태에 빠졌다!<br>\n" if($thp <= 1);
|
||
$log .="오의 봉황전생!! $nm은 $v의 상처를 입었다!<br>\n";
|
||
$tmp-=60;
|
||
}
|
||
}elsif($tlv>=30&&$tmp>=21&&$p==2){
|
||
$v = int($thp_max-$thp);
|
||
$v = 50 if($v>50);
|
||
$thp += $v;
|
||
$log .="절심공! 체력을 $v 회복했다!<br>\n";
|
||
$tmp-=21;
|
||
}elsif($tlv>=20&&$tmp>=15&&$p==3){
|
||
$hp -= 30;
|
||
$log .="염창선! $nm 은(는) 30 의 상처를 입었다!<br>\n";
|
||
$tmp-=15;
|
||
}elsif($tlv>=10&&$tmp>=9&&$p==4){
|
||
$v = int($thp_max-$thp);
|
||
$v = 30 if($v>30);
|
||
$thp += $v;
|
||
$log .="생명공! 체력을 $v 회복해 버렸다!<br>\n";
|
||
$tmp-=9;
|
||
}elsif($tlv>=5&&$tmp>=6&&$p==5){
|
||
$v = int($tua*1.5);
|
||
$v = $v-$ud;
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="필살 질풍검! $nm은 $v의 상처를 입고 말았다!<br>\n";
|
||
$tmp-=6;
|
||
}else{
|
||
# 적 캐릭터 일반 공격 처리
|
||
&bogu_bt;
|
||
}
|
||
}elsif($tcp==2){
|
||
|
||
if($tlv>=40&&$tmp>=90&&$p==0){
|
||
$v = 200 + int(rand(150)) - $ud;
|
||
$hp -= $v;
|
||
$log .="황혼보다 어두운 자…… 흐르는 피보다 붉은 자……<br>(생략)<br>……동등하게 멸망을 선사할지어다! 용파참!!<br>\n";
|
||
$tmp-=85;
|
||
$log .="$nm 은(는) $v 의 상처를 입었다!<br>\n";
|
||
}elsif($tlv>=35&&$tmp>=45&&$p==2){
|
||
$v = 140 + int(rand(60)) -$ud;
|
||
$hp -= $v;
|
||
$log .="시간의 흐름 속에 묻힌 자…… 영원<small>(토와)</small>의 꿈을 잇는 자……<br>지금 너의 이름 아래, 더러워진 자를 정화하라...!!<br>$nm은 $v의 상처를 입었다!<br>\n";
|
||
$tmp-=45;
|
||
}elsif($tlv>=20&&$tmp>=18&&$p==3){
|
||
$hp -= 30;
|
||
$v = int($thp_max-$thp);
|
||
$v = 10 if($v>10);
|
||
$thp += $v;
|
||
$log .="세인트 크로스! $nm은 30의 상처를 입고, 추가로 그 체력을 조금 흡수당했다!<br>\n";
|
||
$tmp-=18;
|
||
}elsif($tlv>=15&&$tmp>=12&&$p==4){
|
||
$v = int($thp_max-$thp);
|
||
$v = 30 if($v>30);
|
||
$thp += $v;
|
||
$log .="힐! 체력을 $v 회복하고 말았다!<br>\n";
|
||
$tmp-=12;
|
||
}elsif($tlv>=5&&$tmp>=6&&$p==5){
|
||
$v = int($tua*1.5);
|
||
$v = $v-$ud;
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="버티컬 소드! $nm은 $v의 상처를 입고 말았다!<br>\n";
|
||
$tmp-=6;
|
||
}else{
|
||
# 적 캐릭터 일반 공격 처리
|
||
&bogu_bt;
|
||
}
|
||
|
||
}elsif($tcp==3){
|
||
|
||
if($tlv>=40&&$tmp>=85&&$p==0){
|
||
$v = int($tua*3);
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 100 if($tua<2);
|
||
$v = 100 if($v < 100);
|
||
$hp -= $v;
|
||
$mp -= $v;
|
||
$log .="비오의 얼티밋 어택! $nm은 HP와 MP에 $v의 피해를 입고 말았다!<br>\n";
|
||
$tmp-=85;
|
||
}elsif($tlv>=30&&$tmp>=40&&$p==2){
|
||
$v = int($tua*3);
|
||
$v = $v-$ud;
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="회심의 일격! $nm은 $v의 상처를 입고 말았다!<br>\n";
|
||
$tmp-=40;
|
||
}elsif($tlv>=25&&$tmp>=18&&$p==3){
|
||
$v = int($thp_max-$thp);
|
||
$v = 50 if($v>50);
|
||
$thp += $v;
|
||
$log .="ハイ힐! 체력을 $v 회복했다!<br>\n";
|
||
$tmp-=18;
|
||
}elsif($tlv>=15&&$tmp>=12&&$p==4){
|
||
$hp -= 25;
|
||
$log .="소드 댄스! $nm은 25의 상처를 입고 말았다!<br>\n";
|
||
$tmp-=12;
|
||
}elsif($tlv>=5&&$tmp>=6&&$p==5){
|
||
$hp -= 15;
|
||
$log .="소드 슬래시! $nm은 15의 상처를 입고 말았다!<br>\n";
|
||
$tmp-=6;
|
||
}else{
|
||
# 적 캐릭터 일반 공격 처리
|
||
&bogu_bt;
|
||
}
|
||
|
||
}elsif($tcp==4){
|
||
|
||
if($tlv>=40&&$tmp>=90&&$p==0){
|
||
$v = int(rand(50)) + 200;
|
||
$hp -= $v;
|
||
$log .="열려라 지옥의 문! $nm 은(는) $v 의 상처를 입었다!<br>\n";
|
||
$tmp-=90;
|
||
}elsif($tlv>=20&&$tmp>=15&&$p==2){
|
||
$hp -= 30;
|
||
$log .="흑염! $nm은 30의 상처를 입었다!<br>\n";
|
||
$tmp-=15;
|
||
}elsif($tlv>=15&&$tmp>=12&&$p==3){
|
||
$mp -= 30;
|
||
$log .="나이트메어! $nm의 MP에 30의 피해를 입혔다!<br>\n";
|
||
$tmp-=12;
|
||
}elsif($tlv>=10&&$tmp>=9&&$p==4){
|
||
$hp -= 20;
|
||
$v = int($thp_max-$thp);
|
||
$v = 10 if($v>10);
|
||
$thp += $v;
|
||
$log .="데드 크라운! $nm은 20의 상처를 입고, 추가로 그 체력을 조금 흡수당했다!<br>\n";
|
||
$tmp-=9;
|
||
}elsif($tlv>=5&&$tmp>=9&&$p==5){
|
||
$v = int($tua*2);
|
||
$v = $v-$ud;
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="암흑검! $nm은 $v의 상처를 입고 말았다!<br>\n";
|
||
$tmp-=9;
|
||
}else{
|
||
# 적 캐릭터 일반 공격 처리
|
||
&bogu_bt;
|
||
}
|
||
|
||
}elsif($tcp==5){
|
||
|
||
if($tlv>=40&&$tmp>=90&&$p==0){
|
||
$dh =int(rand(3)) ;
|
||
if($dh==0){
|
||
$v = int($tua*5);
|
||
$v = $v-$ud;
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="영식·열! $nm은 $v의 상처를 입고 말았다!<br>\n";
|
||
$tmp-=99;
|
||
}elsif($dh==1){
|
||
$v = int($tua*6);
|
||
$v = $v-$ud;
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="영식·열! $nm은 $v의 상처를 입고 말았다!<br>그러나 기술을 제어하지 못하고 폭주하여 $tnm은 60의 상처를 입었다.<br>\n";
|
||
$tmp-=99;
|
||
$thp-=60;
|
||
}elsif($dh==2){
|
||
$v = int($tua*6);
|
||
$v = $v-$ud;
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="영식·열! $nm은 $v의 상처를 입고 말았다!<br>그러나 정신에 부하가 걸려 $tnm은 60의 MP를 잃었다.<br>\n";
|
||
$tmp-=99;
|
||
$tmp-=60;
|
||
}
|
||
}elsif($tlv>=35&&$tmp>=40&&$p==1){
|
||
$dh =int(rand(2)) ;
|
||
if($dh==0){
|
||
$hp -= 200;
|
||
$log .="영식! $nm은 200의 상처를 입었다!<br>\n";
|
||
$tmp-=60;
|
||
}elsif($dh==1){
|
||
$hp -= 100;
|
||
$log .="영식! 몸을 돌려 피했다!!<br>그러나 풍압으로 인해 $nm은 100의 상처를 입었다!<br>\n";
|
||
$tmp-=60;
|
||
}
|
||
}elsif($tlv>=30&&$tmp>=45&&$p==2){
|
||
$dh =int(rand(3)) ;
|
||
if($dh==0){
|
||
$v = int($tua*3.5);
|
||
$v = $v-$ud;
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="삼식·파! $nm은 $v의 상처를 입고 말았다!<br>\n";
|
||
$tmp-=30;
|
||
}elsif($dh==1){
|
||
$v = int($tua*3.5);
|
||
$v = $v-$ud;
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="삼식·파! $nm은 $v의 상처를 입고 말았다!<br>그러나 기술을 제어하지 못하고 폭주하여 $tnm은 30의 상처를 입었다.<br>\n";
|
||
$tmp-=30;
|
||
$thp-=30;
|
||
}elsif($dh==2){
|
||
$v = int($tua*3.5);
|
||
$v = $v-$ud;
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="삼식·파! $nm은 $v의 상처를 입고 말았다!<br>그러나 정신에 부하가 걸려 $tnm은 30의 MP를 잃었다.<br>\n";
|
||
$tmp-=30;
|
||
$tmp-=30;
|
||
}
|
||
}elsif($tlv>=25&&$tmp>=30&&$p==3){
|
||
$dh =int(rand(2)) ;
|
||
if($dh==0){
|
||
$hp -= 120;
|
||
$log .="삼식! $nm은 120의 상처를 입었다!<br>\n";
|
||
$tmp-=30;
|
||
}elsif($dh==1){
|
||
$hp -= 60;
|
||
$log .="삼식! 몸을 돌려 피했다!!<br>그러나 풍압으로 인해 $nm은 60의 상처를 입었다!<br>\n";
|
||
$tmp-=30;
|
||
}
|
||
}elsif($tlv>=20&&$tmp>=30&&$p==4){
|
||
$dh =int(rand(3)) ;
|
||
if($dh==0){
|
||
$v = int($tua*2.5);
|
||
$v = $v-$ud;
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="이식·열! $nm은 $v의 상처를 입고 말았다!<br>\n";
|
||
$tmp-=20;
|
||
}elsif($dh==1){
|
||
$v = int($tua*2.5);
|
||
$v = $v-$ud;
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="이식·열! $nm은 $v의 상처를 입고 말았다!<br>그러나 기술을 제어하지 못하고 폭주하여 $tnm은 15의 상처를 입었다.<br>\n";
|
||
$tmp-=20;
|
||
$thp-=15;
|
||
}elsif($dh==2){
|
||
$v = int($tua*2.5);
|
||
$v = $v-$ud;
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="이식·열! $nm은 $v의 상처를 입고 말았다!<br>그러나 정신에 부하가 걸려 $tnm은 15의 MP를 잃었다.<br>\n";
|
||
$tmp-=20;
|
||
$tmp-=15;
|
||
}
|
||
}elsif($tlv>=15&&$tmp>=20&&$p==5){
|
||
$dh =int(rand(2)) ;
|
||
if($dh==0){
|
||
$hp -= 70;
|
||
$log .="이식! $nm은 70의 상처를 입었다!<br>\n";
|
||
$tmp-=20;
|
||
}elsif($dh==1){
|
||
$hp -= 35;
|
||
$log .="이식! 몸을 돌려 피했다!!<br>그러나 풍압으로 인해 $nm은 35의 상처를 입었다!<br>\n";
|
||
$tmp-=20;
|
||
}
|
||
}elsif($tlv>=10&&$tmp>=15&&$p==6){
|
||
$v = int($tua*1.5);
|
||
$v = $v-$ud;
|
||
$v -= int(sqrt($ud)) if($bst =~ /S/);
|
||
$v = 1 if($v<1);
|
||
$hp -= $v;
|
||
$log .="일식·단! $nm은 $v의 상처를 입고 말았다!<br>\n";
|
||
$tmp-=10;
|
||
}elsif($tlv>=5&&$tmp>=10&&$p==7){
|
||
$dh =int(rand(2)) ;
|
||
if($dh==0){
|
||
$hp -= 30;
|
||
$log .="삼식! $nm은 120의 상처를 입었다!<br>\n";
|
||
$tmp-=10;
|
||
}elsif($dh==1){
|
||
$hp -= 20;
|
||
$log .="삼식! 몸을 돌려 피했다!!<br>그러나 풍압으로 인해 $nm은 20의 상처를 입었다!<br>\n";
|
||
$tmp-=10;
|
||
}
|
||
}else{
|
||
# 적 캐릭터 일반 공격 처리
|
||
&bogu_bt;
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
$log .="</font>\n";
|
||
|
||
# 패배 처리
|
||
&battle_lost if($hp <= 0 && $type eq '수행중');
|
||
|
||
}
|
||
|
||
# 패배 처리
|
||
sub battle_lost{
|
||
$tm = 0;
|
||
$cmd=-1;
|
||
$bst ='';
|
||
$bt =0;
|
||
$ck =0;
|
||
$hp =0;
|
||
$type='';
|
||
$G=int(rand(10))+1;
|
||
$E=int(rand(5))+1;
|
||
$gold+=$G;
|
||
$exe+=$E;
|
||
$log .="당신은 $tnm에게 패배했다…<br>\n";
|
||
$log .="$G 골드와 $E 경험치를 획득했다<br>\n";
|
||
$tnm_p = $tnm; # 02/10 전쟁 시, 공격한 나라의 사람이 아닌 사람이 나오는 것에 대한 대처
|
||
$tnm='';
|
||
}
|
||
|
||
#-------------------------------------------------------------------------------
|
||
# 적 캐릭터 일반 공격 처리
|
||
sub bogu_bt{
|
||
$v = $tua_a-$ud_a;
|
||
$v -= int(sqrt($tud)) if($bst =~ /S/);
|
||
|
||
$v = 1 if($v<1);
|
||
|
||
# 일반 데미지 보정 << 강자가 약자만 상대하지 않도록
|
||
if($lv <= 15){$v += int((rand(2))+$v);}
|
||
elsif($lv > 15 && $lv <= 30){$v += int((rand(4))+$v);}
|
||
else{$v += int((rand(8))+$v);}
|
||
|
||
if($tdg_a>0){#武具呼び出し
|
||
$log .="$dg_data[$tdg_a][1](으)로 반격!!<br>$nm은 $v의 상처를 입었다!<br>\n";
|
||
$hp -= $v;
|
||
}else{
|
||
$v = int((rand(4))+$v);
|
||
$hp -= $v;
|
||
$log .="$v의 반격을 받았다!<br>\n";
|
||
}
|
||
|
||
if($df_a && $df_cnt){#防具呼び出し
|
||
$df_cnt--;
|
||
if($df_cnt<=0){
|
||
$log .="$tnm의 날카로운 공격으로 $nm의 $df_data[$df_a][1] 이(가) 파괴되었다!!<br>\n";
|
||
$df_a = $df_cnt = 0;
|
||
}
|
||
}
|
||
}
|
||
|
||
#-------------------------------------------------------------------------------
|
||
#전투 시의 셀렉트 메뉴 표시
|
||
sub spell_sp {
|
||
$log2 .="<select name=cmd size=1>\n<option value=1>공격</option>\n";
|
||
for($i=0,$j=2;$i<int($lv/5) && $i<=$#spell;$i++,$j++){
|
||
next if($mp<$sp_mp[$i]);
|
||
$v = int($mp/$sp_mp[$i]);
|
||
$log2 .="<option value=$j>$spell[$i]\[$v\]</option>\n";
|
||
}#;
|
||
for($i=0,$j=8,$k=10;$i<=$#kspell;$i++,$j=$j+2,$k++){
|
||
if($rank >= $j && $mp >= $ksp_mp[$i] && $camp >0){
|
||
$v = int($mp/$ksp_mp[$i]);
|
||
$log2 .="<option value=$k>$kspell[$i]\[$v\]</option>\n";
|
||
}
|
||
}
|
||
if($di_a>0){
|
||
$log2 .="<option value=15>$di_data[$di_a][1]\[1\]</option>\n";
|
||
}
|
||
$log2 .="</select>";
|
||
}
|
||
|
||
#-------------------------------------------------------------------------------
|
||
#계급 기술(플레이어용)
|
||
sub st_cm_k {
|
||
if($v == 8 && $camp > 0){
|
||
$v = int(($ua+$ud)*2)-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="$kspell[0]!$tnm에게 $v의 상처를 주었다!<br>\n";
|
||
$mp -= $ksp_mp[0];
|
||
}elsif($v == 9 && $camp > 0){
|
||
$v = int(($ua+$ud)*2.5)-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="$kspell[1]!$tnm에게 $v의 상처를 주었다!<br>\n";
|
||
$mp -= $ksp_mp[1];
|
||
}elsif($v == 10 && $camp > 0){
|
||
$v = int(($ua+$ud)*3)-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="$kspell[2]!$tnm에게 $v의 상처를 주었다!<br>\n";
|
||
$mp -= $ksp_mp[2];
|
||
}elsif($v == 11 && $camp > 0){
|
||
$v = int(($ua+$ud)*4)-$tud;
|
||
$v = 1 if($v<1);
|
||
$thp -= $v;
|
||
$log .="$kspell[3]!$tnm에게 $v의 상처를 주었다!<br>\n";
|
||
$mp -= $ksp_mp[3];
|
||
}
|
||
}
|
||
|
||
#-------------------------------------------------------------------------------
|
||
#도구(PC용)
|
||
sub dogu_k {
|
||
my $v;
|
||
|
||
if($di_a == 2){
|
||
$hp = $max_hp;
|
||
$mp = $max_mp;
|
||
$di_cnt=0;
|
||
$di_a=0;
|
||
$log .="$nm은(는) $di_data[2][1]을(를) 사용했다! 체력과 마력이 전부 회복되었다!<br>\n";
|
||
}elsif($di_a == 3){
|
||
$hp = $max_hp;
|
||
$di_cnt=0;
|
||
$di_a=0;
|
||
$log .="$nm은(는) $di_data[3][1]을(를) 사용했다! 체력이 전부 회복되었다!<br>\n";
|
||
}elsif($di_a == 4){
|
||
$mp = $max_mp;
|
||
$di_cnt=0;
|
||
$di_a=0;
|
||
$log .="$nm은(는) $di_data[4][1]을(를) 사용했다! 마력이 전부 회복되었다!<br>\n";
|
||
}elsif($di_a == 11){
|
||
if(int($hp+80) < $max_hp){
|
||
$v=80;
|
||
$hp += $v;
|
||
}else{
|
||
$v=$max_hp-$hp;
|
||
$hp += $v;
|
||
}
|
||
if(int($mp+60) < $max_mp){
|
||
$vv=60;
|
||
$mp += $vv;
|
||
}else{
|
||
$vv=$max_mp-$mp;
|
||
$mp += $vv;
|
||
}
|
||
$di_cnt=0;
|
||
$di_a=0;
|
||
$log .="$nm 은(는) $di_data[11][1]을(를) 사용했다!<br>체력이 $v 회복되고, 추가로 정신력이 $vv 회복되었다!<br>\n";
|
||
}elsif($di_a == 12){
|
||
if(int($mp+80) < $max_mp){
|
||
$v=80;
|
||
$mp += $v;
|
||
}else{
|
||
$v=$max_mp-$mp;
|
||
$mp += $v;
|
||
}
|
||
$di_cnt=0;
|
||
$di_a=0;
|
||
$log .="$nm 은(는) $di_data[12][1] 을(를) 사용했다! 정신력이 $v 회복되었다!<br>\n";
|
||
}elsif($di_a == 13){
|
||
if(int($mp+40) < $max_mp){
|
||
$v=40;
|
||
$mp += $v;
|
||
}else{
|
||
$v=$max_mp-$mp;
|
||
$mp += $v;
|
||
}
|
||
$di_cnt=0;
|
||
$di_a=0;
|
||
$log .="$nm 은(는) $di_data[13][1] 을(를) 사용했다! 정신력이 $v 회복되었다!<br>\n";
|
||
}elsif($di_a == 14){
|
||
if(int($hp+100) < $max_hp){
|
||
$v=100;
|
||
$hp += $v;
|
||
}else{
|
||
$v=$max_hp-$hp;
|
||
$hp += $v;
|
||
}
|
||
$di_cnt=0;
|
||
$di_a=0;
|
||
$log .="$nm 은(는) $di_data[14][1] 을(를) 사용했다! 체력이 $v 회복되었다!<br>\n";
|
||
}elsif($di_a == 15){
|
||
if(int($hp+50) < $max_hp){
|
||
$v=50;
|
||
$hp += $v;
|
||
}else{
|
||
$v=$max_hp-$hp;
|
||
$hp += $v;
|
||
}
|
||
$di_cnt=0;
|
||
$di_a=0;
|
||
$log .="$nm 은(는) $di_data[15][1] 을(를) 사용했다! 체력이 $v 회복되었다!<br>\n";
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
1;
|