#-----------------------------------------------------------# # 죄와 벌++ 이율배반 # # 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|
\n|; $log2 .=qq|\n| if($mv_mode eq 'pc'); $log2 .=qq|\n\n|; if($thp<1||$hp<1){ $log2 .=qq|\n|; }else{ &spell_sp; } $log2 .=qq|
\n|;#テーブルずれ修正 $log2 .=qq|$td_end
\n|;#テーブル追加 &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 .="

$nm ( HP $hp / MP $mp ) VS $tnm_p ( HP $thp / MP $tmp )

\n"; } # 공격--자신 sub attack_myself{ $log .="\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] (으)로 공격!!
$tnm 에게 $v 의 상처를 입혔다!
\n"; $thp -= $v; $dg_cnt--; if($dg_cnt<=0){ $log .="$dg_data[$dg_a][1] 이(가) 파괴되었다!!
\n"; $dg_a = $dg_cnt = 0; } elsif(!$vv){ $log .="운 나쁘게 $dg_data[$dg_a][1] 이(가) 파괴되었다!!
\n"; $dg_a = $dg_cnt = 0; } }else{ $v = int((rand(4))+$v); $thp -= $v; $log .="$nm 은(는) $tnm에게 $v의 상처를 주었다!
\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 회복되었다!
\n"; $di_cnt--; if($di_cnt<=0){ $log .="$di_data[$di_a][1] 이(가) 산산조각이 났다!
\n"; $di_a=0; } } # 도구 호출 &dogu_k if($di_a > 1 && $cmd==15); if($v=$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 .="필살 마진검! 크리티컬 히트! $tnm에게 $v의 상처를 주었다!
\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 .="반 회복! 체력이 어느 정도 회복되었다!
연속기! 필살 마진검! $tnm에게 $v의 상처를 주었다!
\n"; }elsif($v == 0 && $ch >= 2 || ($ch == 1 && $lv >= 20)){ $v = int($ua*2); $v = 1 if($v<1); $thp -= $v; $log .="필살 마진검! $tnm에게 $v의 상처를 주었다!
\n"; }elsif($v == 1){ $hp = $max_hp; $log .="전체 회복! 체력이 완전히 회복되었다!
\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의 상처를 주었다!
\n"; }elsif($v == 1 ){ $v = int($max_hp-$hp); $v = 30 if($v>30); $hp += $v; $log .="생명공! 체력을 $v 회복했다!
\n"; }elsif($v == 2){ $bst .= 'W' unless($bst =~ /W/); $log .="봉격공! 공격력이 올랐다
\n"; }elsif($v == 3){ $thp -= 30; $log .="염창선! $tnm에게 30의 상처를 주었다!
\n"; }elsif($v == 4){ $bst .= 'S' unless($bst =~ /S/); $log .= "강기! 방어력이 올랐다
\n"; }elsif($v == 5){ $v = int($max_hp-$hp); $v = 50 if($v>50); $hp += $v; $log .="절심공! 체력을 $v 회복했다!
\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을 빈사 상태로 몰아넣었다!
그러나 여파를 입어 $nm은 $vv의 정신력을 잃었다.
\n" if($thp <= 1); $log .="오의 봉황전생!! $tnm에게 $v의 상처를 주었다!
그러나 여파를 입어 $nm은 $vv의 정신력을 잃었다.
\n" if($thp > 1); }else{ $v = int($thp*0.5); $thp -= $v; $thp = 1 if($thp < 1); $log .="오의 봉황전생!! $tnm을 빈사 상태로 몰아넣었다!
\n" if($thp <= 1); $log .="오의 봉황전생!! $tnm에게 $v의 상처를 주었다!
\n" if($thp > 1); } }elsif($v == 7){ $dh =int(rand(20)) ; if($dh <= 3){ $log .="비오의 혼 깨기!! $tnm은 마음이 산산조각 났다!
\n"; $thp=0; }elsif($dh == 4){ $v = int($hp*0.9); $hp -= $v; $log .="비오의 혼 깨기!! 자폭!! $nm은 마음이 산산조각이 나고 말았다!
\n"; }elsif($dh >= 5 && $dh <= 12){ $v = int(($tud+$tua)*2-$tud); $thp -= $v; $log .="비오의 혼 깨기!! 실패했다!!
그러나 $tnm에게 $v의 피해를 주는 데 성공!
\n"; }else{ $log .="실패했다... 그러나 최악의 사태만은 면했다.
\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의 상처를 주었다!
\n"; }elsif($v == 1 ){ $bst .= 'W' unless($bst =~ /W/); $log .="어택! 공격력이 올랐다
\n"; }elsif($v == 2){ $v = int($max_hp-$hp); $v = 30 if($v>30); $hp += $v; $log .="힐! 체력을 $v 회복했다!
\n"; }elsif($v == 3){ $thp -= 30; $v = int($max_hp-$hp); $v = 10 if($v>10); $hp += $v; $log .="세인트 크로스! $tnm에게 30의 상처를 주고, 추가로 그 체력을 조금 흡수했다!
\n"; }elsif($v == 4){ $tua = 1; $log .= "비술 안크레아 브레이크! $tnm의 UA를 0으로 만들었다!
\n"; }elsif($v == 5){ $v = int($max_hp-$hp); $v = 50 if($v>50); $hp += $v; $log .="ハイ힐! 체력을 $v 회복했다!
\n"; }elsif($v == 6){ $v = 140 + int(rand(60)) -$tud; $thp -= $v; $log .="시간의 흐름 속에 묻힌 자…… 영원(토와)의 꿈을 잇는 자……
지금 너의 이름 아래, 더러워진 자를 정화하라...!!
$tnm에게 $v의 상처를 주었다!
\n"; }elsif($v == 7){ $log .="황혼보다 어두운 자…… 흐르는 피보다 붉은 자……
(생략)
……동등하게 멸망을 선사할지어다! 용파참!!
\n"; $v = 200 + int(rand(150)) - $tud; $thp -= $v; $log .="$tnm에게 $v의 상처를 주었다!
\n"; } }elsif($camp==3){ if($v == 0){ $thp -= 15; $log .="소드 슬래시! $tnm에게 15의 상처를 주었다!
\n"; }elsif($v == 1 ){ $bst .= 'W' unless($bst =~ /W/); $log .="어택! UA가 올랐다
\n"; }elsif($v == 2){ $thp -= 25; $log .="소드 댄스! $tnm에게 25의 상처를 주었다!
\n"; }elsif($v == 3){ $bst .= 'S' unless($bst =~ /S/); $log .= "실드! 방어력이 올랐다
\n"; }elsif($v == 4){ $tud = 1; $log .= "오의 아머 브레이크! $tnm의 UD를 0으로 만들었다!
\n"; }elsif($v == 5){ $v = int($max_hp-$hp); $v = 50 if($v>50); $hp += $v; $log .="ハイ힐! 체력을 $v 회복했다!
\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의 상처를 주었다!
\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의 상처를 주었다!
\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의 상처를 주었다!
\n"; }elsif($v == 1 ){ $thp -= 20; $v = int($max_hp-$hp); $v = 10 if($v>10); $hp += $v; $log .="데드 크라운! $tnm에게 20의 상처를 주고, 추가로 그 체력을 조금 흡수했다!
\n"; }elsif($v == 2){ $tmp -= 30; $log .="나이트메어! $tnm의 MP에 30의 피해를 주었다!
\n"; }elsif($v == 3){ $thp -= 30; $log .="흑염! $tnm에게 30의 상처를 주었다!
\n"; }elsif($v == 4){ $v = int($max_hp-$hp); $v = 50 if($v>50); $hp += $v; $log .="절심공! 체력을 $v 회복했다!
\n"; }elsif($v == 5){ $bst .= 'W' unless($bst =~ /W/); $log .="어택! UA가 올랐다
\n"; }elsif($v == 6){ $bst .= 'S' unless($bst =~ /S/); $log .= "실드! 방어력이 올랐다
\n"; }elsif($v == 7){ $v = int(rand(50)) + 200; $thp -= $v; $log .="열려라 지옥의 문! $tnm에게 $v의 상처를 주었다!
\n"; } }elsif($camp==5){ if($v == 0){ $dh =int(rand(2)) ; if($dh==0){ $thp -= 30; $log .="일식! $tnm에게 30의 상처를 주었다!
\n"; }elsif($dh==1){ $thp -= 20; $log .="일식! 피했다!!
그러나 풍압으로 인해 $tnm에게 20의 상처를 주었다!
\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의 상처를 주었다!
\n"; }elsif($v == 2){ $dh =int(rand(2)) ; if($dh==0){ $thp -= 70; $log .="이식! $tnm에게 70의 상처를 주었다!
\n"; }elsif($dh==1){ $thp -= 35; $log .="이식! 피했다!!
그러나 풍압으로 인해 $tnm에게 35의 상처를 주었다!
\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의 상처를 주었다!
\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의 상처를 주었다!
그러나 기술을 제어하지 못하고 폭주하여 $nm은 15의 상처를 입었다.
\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의 상처를 주었다!
그러나 정신에 부하가 걸려 $nm은 15의 MP를 잃었다.
\n"; } }elsif($v == 4){ $dh =int(rand(2)) ; if($dh==0){ $thp -= 120; $log .="삼식! $tnm에게 120의 상처를 주었다!
\n"; }elsif($dh==1){ $thp -= 60; $log .="삼식! 피했다!!
그러나 풍압으로 인해 $tnm에게 60의 상처를 주었다!
\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의 상처를 주었다!
\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의 상처를 주었다!
그러나 기술을 제어하지 못하고 폭주하여 $nm은 30의 상처를 입었다.
\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의 상처를 주었다!
그러나 정신에 부하가 걸려 $nm은 30의 MP를 잃었다.
\n"; } }elsif($v == 6){ $dh =int(rand(2)) ; if($dh==0){ $thp -= 200; $log .="영식! $tnm에게 200의 상처를 주었다!
\n"; }elsif($dh==1){ $thp -= 100; $log .="영식! 피했다!!
그러나 풍압으로 인해 $tnm에게 100의 상처를 주었다!
\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의 상처를 주었다!
\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의 상처를 주었다!
그러나 기술을 제어하지 못하고 폭주하여 $nm은 60의 상처를 입었다.
\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의 상처를 주었다!
그러나 정신에 부하가 걸려 $nm은 60의 MP를 잃었다.
\n"; } } } } } $log .="
\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을(를) 쓰러뜨렸다!
\n"; $log .="$G 골드와 $E 경험치를 획득했다!
\n"; $tnm_p = $tnm; # 02/10 전쟁 시, 공격한 나라의 사람이 아닌 사람이 나오는 것에 대한 대처 $tnm =''; } # 공격--적측 sub attack_enemy{ $log .="\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 .="필살 마진검! 뼈아픈 일격! $nm은 $v의 상처를 입었다!
\n"; $tmp-=3; }else{ $v = int($tua*2); $v = 1 if($v<1); $hp -= $v; $log .="필살 마진검! $nm은 $v의 상처를 입었다!
\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 .="필살 마진검! 뼈아픈 일격! $nm에게 $v의 상처를 주었다!
\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 .="반 회복! 체력이 어느 정도 회복되었다!
적의 맹공격! 필살 마진검! $nm에게 $v의 상처를 주었다!
\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의 상처를 입었다!
\n"; $tmp-=3; }else{ $thp = $thp_max; $log .="전체 회복! 체력이 완전히 회복되었다!
\n"; $tmp-=9; } } }else{ # 적 캐릭터 일반 공격 처리 &bogu_bt; } }elsif($tcp==1){ if($tlv>=40&&$tmp>=90&&$p==0){ $dh =int(rand(20)) ; if($dh <= 3){ $log .="비오의 혼 깨기!! 의식이 멀어진다...
\n"; $hp=0; $tmp-=90; }elsif($dh == 4){ $v = int($thp*0.9); $thp -= $v; $log .="비오의 혼 깨기!! 자폭!! $tnm은 마음이 산산조각이 나고 말았다!
\n"; $tmp-=90; }elsif($dh >= 5 && $dh <= 12){ $v = int(($ud+$ua)*2-$ud); $hp -= $v; $log .="비오의 혼 깨기!! 간발의 차로 $nm은(는) 피했다!!
그러나 다 피하지 못하고 $v의 상처를 입었다!
\n"; $tmp-=90; }else{ $log .="실패한 것 같다♪
\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은 빈사 상태에 빠졌다!
그러나 여파를 입어 $tnm은 $vv의 정신력을 잃었다.
\n" if($thp <= 1); $log .="오의 봉황전생!! $nm은 $v의 상처를 입었다!
그러나 여파를 입어 $tnm은 $vv의 정신력을 잃었다.
\n"; $tmp-=60; }else{ $v = int($hp*0.5); $hp -= $v; $hp = 1 if($hp < 1); $log .="오의 봉황전생!! $nm은 빈사 상태에 빠졌다!
\n" if($thp <= 1); $log .="오의 봉황전생!! $nm은 $v의 상처를 입었다!
\n"; $tmp-=60; } }elsif($tlv>=30&&$tmp>=21&&$p==2){ $v = int($thp_max-$thp); $v = 50 if($v>50); $thp += $v; $log .="절심공! 체력을 $v 회복했다!
\n"; $tmp-=21; }elsif($tlv>=20&&$tmp>=15&&$p==3){ $hp -= 30; $log .="염창선! $nm 은(는) 30 의 상처를 입었다!
\n"; $tmp-=15; }elsif($tlv>=10&&$tmp>=9&&$p==4){ $v = int($thp_max-$thp); $v = 30 if($v>30); $thp += $v; $log .="생명공! 체력을 $v 회복해 버렸다!
\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의 상처를 입고 말았다!
\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 .="황혼보다 어두운 자…… 흐르는 피보다 붉은 자……
(생략)
……동등하게 멸망을 선사할지어다! 용파참!!
\n"; $tmp-=85; $log .="$nm 은(는) $v 의 상처를 입었다!
\n"; }elsif($tlv>=35&&$tmp>=45&&$p==2){ $v = 140 + int(rand(60)) -$ud; $hp -= $v; $log .="시간의 흐름 속에 묻힌 자…… 영원(토와)의 꿈을 잇는 자……
지금 너의 이름 아래, 더러워진 자를 정화하라...!!
$nm은 $v의 상처를 입었다!
\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의 상처를 입고, 추가로 그 체력을 조금 흡수당했다!
\n"; $tmp-=18; }elsif($tlv>=15&&$tmp>=12&&$p==4){ $v = int($thp_max-$thp); $v = 30 if($v>30); $thp += $v; $log .="힐! 체력을 $v 회복하고 말았다!
\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의 상처를 입고 말았다!
\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의 피해를 입고 말았다!
\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의 상처를 입고 말았다!
\n"; $tmp-=40; }elsif($tlv>=25&&$tmp>=18&&$p==3){ $v = int($thp_max-$thp); $v = 50 if($v>50); $thp += $v; $log .="ハイ힐! 체력을 $v 회복했다!
\n"; $tmp-=18; }elsif($tlv>=15&&$tmp>=12&&$p==4){ $hp -= 25; $log .="소드 댄스! $nm은 25의 상처를 입고 말았다!
\n"; $tmp-=12; }elsif($tlv>=5&&$tmp>=6&&$p==5){ $hp -= 15; $log .="소드 슬래시! $nm은 15의 상처를 입고 말았다!
\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 의 상처를 입었다!
\n"; $tmp-=90; }elsif($tlv>=20&&$tmp>=15&&$p==2){ $hp -= 30; $log .="흑염! $nm은 30의 상처를 입었다!
\n"; $tmp-=15; }elsif($tlv>=15&&$tmp>=12&&$p==3){ $mp -= 30; $log .="나이트메어! $nm의 MP에 30의 피해를 입혔다!
\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의 상처를 입고, 추가로 그 체력을 조금 흡수당했다!
\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의 상처를 입고 말았다!
\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의 상처를 입고 말았다!
\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의 상처를 입고 말았다!
그러나 기술을 제어하지 못하고 폭주하여 $tnm은 60의 상처를 입었다.
\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의 상처를 입고 말았다!
그러나 정신에 부하가 걸려 $tnm은 60의 MP를 잃었다.
\n"; $tmp-=99; $tmp-=60; } }elsif($tlv>=35&&$tmp>=40&&$p==1){ $dh =int(rand(2)) ; if($dh==0){ $hp -= 200; $log .="영식! $nm은 200의 상처를 입었다!
\n"; $tmp-=60; }elsif($dh==1){ $hp -= 100; $log .="영식! 몸을 돌려 피했다!!
그러나 풍압으로 인해 $nm은 100의 상처를 입었다!
\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의 상처를 입고 말았다!
\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의 상처를 입고 말았다!
그러나 기술을 제어하지 못하고 폭주하여 $tnm은 30의 상처를 입었다.
\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의 상처를 입고 말았다!
그러나 정신에 부하가 걸려 $tnm은 30의 MP를 잃었다.
\n"; $tmp-=30; $tmp-=30; } }elsif($tlv>=25&&$tmp>=30&&$p==3){ $dh =int(rand(2)) ; if($dh==0){ $hp -= 120; $log .="삼식! $nm은 120의 상처를 입었다!
\n"; $tmp-=30; }elsif($dh==1){ $hp -= 60; $log .="삼식! 몸을 돌려 피했다!!
그러나 풍압으로 인해 $nm은 60의 상처를 입었다!
\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의 상처를 입고 말았다!
\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의 상처를 입고 말았다!
그러나 기술을 제어하지 못하고 폭주하여 $tnm은 15의 상처를 입었다.
\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의 상처를 입고 말았다!
그러나 정신에 부하가 걸려 $tnm은 15의 MP를 잃었다.
\n"; $tmp-=20; $tmp-=15; } }elsif($tlv>=15&&$tmp>=20&&$p==5){ $dh =int(rand(2)) ; if($dh==0){ $hp -= 70; $log .="이식! $nm은 70의 상처를 입었다!
\n"; $tmp-=20; }elsif($dh==1){ $hp -= 35; $log .="이식! 몸을 돌려 피했다!!
그러나 풍압으로 인해 $nm은 35의 상처를 입었다!
\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의 상처를 입고 말았다!
\n"; $tmp-=10; }elsif($tlv>=5&&$tmp>=10&&$p==7){ $dh =int(rand(2)) ; if($dh==0){ $hp -= 30; $log .="삼식! $nm은 120의 상처를 입었다!
\n"; $tmp-=10; }elsif($dh==1){ $hp -= 20; $log .="삼식! 몸을 돌려 피했다!!
그러나 풍압으로 인해 $nm은 20의 상처를 입었다!
\n"; $tmp-=10; } }else{ # 적 캐릭터 일반 공격 처리 &bogu_bt; } } } $log .="
\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에게 패배했다…
\n"; $log .="$G 골드와 $E 경험치를 획득했다
\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](으)로 반격!!
$nm은 $v의 상처를 입었다!
\n"; $hp -= $v; }else{ $v = int((rand(4))+$v); $hp -= $v; $log .="$v의 반격을 받았다!
\n"; } if($df_a && $df_cnt){#防具呼び出し $df_cnt--; if($df_cnt<=0){ $log .="$tnm의 날카로운 공격으로 $nm의 $df_data[$df_a][1] 이(가) 파괴되었다!!
\n"; $df_a = $df_cnt = 0; } } } #------------------------------------------------------------------------------- #전투 시의 셀렉트 메뉴 표시 sub spell_sp { $log2 .=""; } #------------------------------------------------------------------------------- #계급 기술(플레이어용) 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의 상처를 주었다!
\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의 상처를 주었다!
\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의 상처를 주었다!
\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의 상처를 주었다!
\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]을(를) 사용했다! 체력과 마력이 전부 회복되었다!
\n"; }elsif($di_a == 3){ $hp = $max_hp; $di_cnt=0; $di_a=0; $log .="$nm은(는) $di_data[3][1]을(를) 사용했다! 체력이 전부 회복되었다!
\n"; }elsif($di_a == 4){ $mp = $max_mp; $di_cnt=0; $di_a=0; $log .="$nm은(는) $di_data[4][1]을(를) 사용했다! 마력이 전부 회복되었다!
\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]을(를) 사용했다!
체력이 $v 회복되고, 추가로 정신력이 $vv 회복되었다!
\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 회복되었다!
\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 회복되었다!
\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 회복되었다!
\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 회복되었다!
\n"; } } 1;