#-----------------------------------------------------------# # 罪と罰++ 二律背反 # # 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をゼロにした!
\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をゼロにした!
\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;