#-----------------------------------------------------------# # 罪と罰++ 二律背反 # # 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){ $log2 .=qq|\n|; }elsif($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に防具値付加 $ag_a = $ag+$ch_data[$ch_a][3]; # $agにチョコボ付加 $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*6); $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*3); $v = 1 if($v<1); $thp -= $v; $log .="半回復!体力がある程度回復した!
連続技!ブラスター!$tnm に $v の傷を与えた!
\n"; }elsif($v == 0 && $ch >= 2 || ($ch == 1 && $lv >= 20)){ $v = int($ua*5); $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($ma*1.5); $v = $v-$tmd; $v = 1 if($v<1); $thp -= $v; $log .="黒魔法ファイラ!$tnm は燃えた! $v の傷を与えた!
\n"; }elsif($v == 1 ){ $v = int($md/2); $v = 1 if($v<1); $hp += $v; $log .="ケアル!体力を $v 回復した!
\n"; }elsif($v == 2){ $bst .= 'W' unless($bst =~ /W/); $log .="バーサク!$nm は興奮してきた!
\n"; }elsif($v == 3){ $v = int($ma*2.5); $v = $v-$tmd; $v = 1 if($v<1); $thp -= $v; $log .="冷気魔法ブリザラ!$tnm に $v の傷を与えた!
\n"; }elsif($v == 4){ $bst .= 'S' unless($bst =~ /S/); $log .= "プロテス!防御力が上がった
\n"; }elsif($v == 5){ $v = int($md); $v = 1 if($v<1); $hp += $v; $log .="ケアルガ!体力を$v回復した!
\n"; }elsif($v == 6){ $v = int($thp/4); $thp -= $v; $thp = 1 if($thp < 1); $log .="重力魔法グラビジャ!!$tnm に $v のダメージを与えた!
\n" }elsif($v == 7){ $dh =int(rand(3)) ; if($dh <= 3){ $log .="一撃の慈悲!!$tnm は心を粉々に砕かれた!
\n"; $thp=0; }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 .="バーサク!$nm は興奮してきた
\n"; }elsif($v == 2){ $v = int($md/2); $v = 1 if($v<1); $hp += $v; $log .="ケアル!体力を$v回復した!
\n"; }elsif($v == 3){ $vv = int($ua); $thp -= $vv; $v = int($vv/2); $v = 1 if($v<1); $hp += $v; $mp += $v; $log .="竜剣!$tnm に $vv の傷を与え、更にその体力と精神力を $v 吸い取った!
\n"; }elsif($v == 4){ $tua = 1; $log .= "秘術 パワーブレイク! $tnm のUAをゼロにした!
\n"; }elsif($v == 5){ $v = int($md); $v = 1 if($v<1); $hp += $v; $log .="ホワイトウィンド!体力を$v回復した!
\n"; }elsif($v == 6){ $v = int($ma*4); $thp -= $v; $log .="冷気魔法 ブリザガ!!
$tnm に $v の傷を与えた!
\n"; }elsif($v == 7){ $log .="黒魔法 フレア!!
\n"; $v = int($ma*6); $v = $v-$tmd; $v = 1 if($v<1); $thp -= $v; $log .="$tnm に $v の傷を与えた!
\n"; } }elsif($camp==3){ if($v == 0){ $v = int($ma*1.5); $v = $v-$tmd; $v = 1 if($v<1); $thp -= $v; $log .="水魔法 ウォーター!$tnm に $v の傷を与えた!
\n"; }elsif($v == 1 ){ $bst .= 'W' unless($bst =~ /W/); $log .="バーサク!$nm はこうしてきた!
\n"; }elsif($v == 2){ $v = int($ma*2.5); $v = $v-$tmd; $v = 1 if($v<1); $thp -= $v; $log .="白魔法 ホーリー!$tnm に $v の傷を与えた!
\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($md); $v = 1 if($v<1); $hp += $v; $log .="ケアルガ!体力を$v回復した!
\n"; }elsif($v == 6){ $v = int($lr*5); $v = $v-$tmd; $v = 1 if($v<1); $thp -= $v; $log .="ヴァルファーレを召喚!シューティングパワー! $tnm に $v の傷を与えた!
\n"; }elsif($v == 7){ $v = int($lr*6); $v = $v-$tmd; $v = 100 if($v < 100); $thp -= $v; $tmp -= $v; $log .="バハムートを召喚!メガフレア! $tnm のHPとMPに $v の傷を与えた!
\n"; } }elsif($camp==4){ if($v == 0){ $v = int($ma*2); $v = $v-$tmd; $v = 1 if($v<1); $thp -= $v; $log .="ファイラ!$tnm を焼き尽くし $v の傷を与えた!
\n"; }elsif($v == 1 ){ $vv = int($ma); $thp -= $vv; $v = int($vv/2); $v = 1 if($v<1); $hp += $v; $log .="吸収魔法 ドレイン!$tnm に $vv の傷を与え、更にその体力を $v 吸い取った!
\n"; }elsif($v == 2){ $v = int($ma*1); $v = $v-$tmd; $v = 1 if($v<1); $tmp -= $v; $mp += $v; $log .="アスピル!$tnm の MP に $v のダメージを与えMPを吸い取った!
\n"; }elsif($v == 3){ $v = int($ma*3); $v = $v-$tmd; $v = 1 if($v<1); $thp -= $v; $log .="ファイガ!$tnm に $v の傷を与えた!
\n"; }elsif($v == 4){ $v = int($md); $v = 1 if($v<1); $hp += $v; $log .="ケアルガ!体力を$v回復した!
\n"; }elsif($v == 5){ $bst .= 'W' unless($bst =~ /W/); $log .="バーサク!$nm は興奮してきた!
\n"; }elsif($v == 6){ $bst .= 'S' unless($bst =~ /S/); $log .= "プロテス!防御力が上がった
\n"; }elsif($v == 7){ $v = int($lr*6); $v = $v-$tmd; $v = 1 if($v<1); $thp -= $v; $log .="イフリートを召喚!$tnm に $v の傷を与えた!
\n"; } }elsif($camp==5){ if($v == 0){ $dh =int(rand(2)) ; if($dh==0){ $thp -= 1000; $log .="針1000本!$tnm に 1000 の傷を与えた!
\n"; }elsif($dh==1){ $thp -= 500; $log .="針1000本! かわされた!!
しかし500本刺さった! $tnm に 500 の傷を与えた!
\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 -= 2000; $log .="針2000本!$tnm に 2000 の傷を与えた!
\n"; }elsif($dh==1){ $thp -= 1000; $log .="針2000本! かわされた!!
しかし1000本刺さった! $tnm に 1000 の傷を与えた!
\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 -= 3000; $log .="針3000本!$tnm に 3000 の傷を与えた!
\n"; }elsif($dh==1){ $thp -= 1500; $log .="針3000本! かわされた!!
しかし1500本刺さった! $tnm に 1500 の傷を与えた!
\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 -= 4000; $log .="針4000本!$tnm に 4000 の傷を与えた!
\n"; }elsif($dh==1){ $thp -= 2000; $log .="針4000本! かわされた!!
しかし2000本刺さった! $tnm に 2000 の傷を与えた!
\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"; } }elsif($camp==6){ }elsif($v == 0){ $v = int($ua*4); $v = 1 if($v<1); $thp -= $v; $log .="スパイラルカット!$tnm に $v の傷を与えた!
\n"; }elsif($v == 1){ $v = int($ua*8); $v = 1 if($v<1); $thp -= $v; $log .="エースオブ・ザ・ブリッツ!$tnm に $v の傷を与えた!
\n"; }elsif($v == 2){ $hp = $max_hp; $log .="フルケア!体力が完全に回復した!
\n"; } } } } $log .="
\n"; # 勝利処理 &battle_win if($thp <= 0 && $type eq '修行中'); } # 勝利処理 sub battle_win{ $G = int($tlv*5000)+($ten*200)-($lv*2); $v =$lv-5; $z =$lv-10; $G =int(rand(50000000000))+49999999999 if($G>99999999999); $G =int($G/2) if($tlv<$v); $G =int($G/3) if($tlv<$z); $G =1 if($G<1); $gold +=$G; $E =int($tlv*50000)+($ten*2000)-($lv*2); $E =1 if($E<1); $E =int(rand(59999999999))+40000000000 if($E>99999999999); $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*6); $v = 1 if($v<1); $hp -= $v; $log .="ブラスター!痛恨の一撃! $nm は $v の傷を受けた!
\n"; $tmp-=3; }else{ $v = int($tua*5); $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*6); $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*5); $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*5); $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(10)) ; if($dh <= 3){ $log .="一撃の慈悲!!意識が遠のく…。
\n"; $hp=0; $tmp-=90; }else{ $log .="失\敗\したようだ♪
\n"; $tmp-=90; } }elsif($tlv>=35&&$tmp>=60&&$p==1){ $v = int($hp/4); $hp -= $v; $hp = 1 if($hp < 1); $log .="重力魔法グラビジャ!!$nm は$v のダメージを受けた!
\n"; $tmp-=60; }elsif($tlv>=30&&$tmp>=21&&$p==2){ $v = int($tmd); $v = 1 if($v<1); $thp += $v; $log .="ケアルガ!体力を$v回復した!
\n"; $tmp-=21; }elsif($tlv>=20&&$tmp>=15&&$p==3){ $v = int($tma*2.5); $v = $v-$md; $v = 1 if($v<1); $hp -= $v; $log .="冷気魔法ブリザラ!$nm は $v の傷を受けた!
\n"; $tmp-=15; }elsif($tlv>=10&&$tmp>=9&&$p==4){ $v = int($tmd/2); $v = 1 if($v<1); $thp += $v; $log .="ケアル!体力を $v 回復してしまった!
\n"; $tmp-=9; }elsif($tlv>=5&&$tmp>=6&&$p==5){ $v = int($tma*1.5); $v = $v-$md; $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 = int($tua*6) - $md; $hp -= $v; $log .="黒魔法 フレア!!
\n"; $tmp-=85; $log .="$nm は $v の傷を負った!
\n"; }elsif($tlv>=35&&$tmp>=45&&$p==2){ $v = int($tma*4) -$md; $hp -= $v; $log .="冷気魔法 ブリザガ!!
$nm は $v の傷を負った!
\n"; $tmp-=45; }elsif($tlv>=20&&$tmp>=18&&$p==3){ $vv = int($tua); $hp -= $vv; $v = int($vv/2); $v = 1 if($v<1); $thp += $v; $tmp += $v; $log .="竜剣!$nm は $vv の傷を受け、更にその体力と精神力を $v 吸い取られた!
\n"; $tmp-=18; }elsif($tlv>=15&&$tmp>=12&&$p==4){ $v = int($tmd/2); $v = 1 if($v<1); $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($tlr*6); $v = $v-$md; $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($tlr*5); $v = $v-$md; $v = 1 if($v<1); $hp -= $v; $log .="ヴァルファーレを召喚!シューティングパワー! $nm は $v の傷を受けてしまった!
\n"; $tmp-=40; }elsif($tlv>=25&&$tmp>=18&&$p==3){ $v = int($tmd); $v = 1 if($v<1); $thp += $v; $log .="ケアルガ!体力を$v回復した!
\n"; $tmp-=18; }elsif($tlv>=15&&$tmp>=12&&$p==4){ $v = int($tma*2.5); $v = $v-$md; $v = 1 if($v<1); $hp -= $v; $log .="白魔法 ホーリー!$nm は $v の傷を受けてしまった!
\n"; $tmp-=12; }elsif($tlv>=5&&$tmp>=6&&$p==5){ $v = int($tma*1.5); $v = $v-$md; $v = 1 if($v<1); $hp -= $v; $log .="水魔法 ウォーター!$nm は $v の傷を受けてしまった!
\n"; $tmp-=6; }else{ # 敵キャラ通常攻撃処理 &bogu_bt; } }elsif($tcp==4){ if($tlv>=40&&$tmp>=90&&$p==0){ $v = int($tlr*6) -$md; $v = 1 if($v<1); $hp -= $v; $log .="イフリート召喚!$nm は $v の傷を受けた!
\n"; $tmp-=90; }elsif($tlv>=20&&$tmp>=15&&$p==2){ $v = int($tma*3); $v = $v-$md; $v = 1 if($v<1); $hp -= $v; $log .="炎魔法ファイガ!$nm は $v の傷を受けた!
\n"; $tmp-=15; }elsif($tlv>=15&&$tmp>=12&&$p==3){ $v = int($tma*1); $v = $v-$md; $v = 1 if($v<1); $mp -= $v; $tmp += $v; $log .="アスピル!$nm のMPに $v のダメージを与えMPを吸い取った!
\n"; $tmp-=12; }elsif($tlv>=10&&$tmp>=9&&$p==4){ $vv = int($tma); $hp -= $vv; $v = int($vv/2); $v = 1 if($v<1); $thp += $v; $log .="吸収魔法 ドレイン!$nm は $vv の傷を受け、更にその体力を $v 吸い取られた!
\n"; $tmp-=9; }elsif($tlv>=5&&$tmp>=9&&$p==5){ $v = int($tma*2); $v = $v-$md; $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 -= 4000; $log .="針4000本!$nm は 4000 の傷を受けた!
\n"; $tmp-=60; }elsif($dh==1){ $hp -= 2000; $log .="針4000本! 身を翻し避けた!!
しかし2000本刺さってしまった! $nm は 2000 の傷を負った!
\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 -= 3000; $log .="針3000本!$nm は 3000 の傷を受けた!
\n"; $tmp-=30; }elsif($dh==1){ $hp -= 1500; $log .="針3000本! 身を翻し避けた!!
しかし1500本刺さってしまった! $nm は 1500 の傷を負った!
\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 -= 2000; $log .="針2000本!$nm は 2000 の傷を受けた!
\n"; $tmp-=20; }elsif($dh==1){ $hp -= 1000; $log .="針2000本! 身を翻し避けた!!
しかし1000本刺さってしまった! $nm は 1000 の傷を負った!
\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 -= 1000; $log .="針1000本!$nm は 1000 の傷を受けた!
\n"; $tmp-=10; }elsif($dh==1){ $hp -= 500; $log .="針1000本! 身を翻し避けた!!
しかし500本刺さってしまった! $nm は 500 の傷を負った!
\n"; $tmp-=10; } }else{ # 敵キャラ通常攻撃処理 &bogu_bt; } }elsif($tcp==6){ if($tlv>=5&&$tmp>=20&&$p==0){ $v = int($tua*4); $v = 1 if($v<1); $hp -= $v; $log .="スパイラルカット! $nm は $v の傷を受けた!
\n"; $tmp-=3; }elsif($tlv>=10&&$tmp>=40&&$p==1){ $v = int($tua*8); $v = 1 if($v<1); $hp -= $v; $log .="エースオブ・ザ・ブリッツ! $nm は $v の傷を受けた!
\n"; $tmp-=40; }elsif($tlv>=15&&$tmp>=60&&$p==2){ $thp = $thp_max; $log .="フルケア!体力が完全に回復した!
\n"; $tmp-=60; }else{ # 敵キャラ通常攻撃処理 &bogu_bt; } } 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))+100; $E=int(rand(5))+100; $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*2)-$tmd; $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*2.5)-$tmd; $v = 1 if($v<1); $thp -= $v; $log .="最強聖剣 $kspell[1] で攻撃! $tnm に $v の傷を与えた!
\n"; $mp -= $ksp_mp[1]; }elsif($v == 10 && $camp > 0){ $v = int($ag*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*4)-$tud; $v = 1 if($v<1); $thp -= $v; $log .="オーバードライブ! $kspell[3]!$tnm にエネルギーの雨が降る! $v の傷を与えた!
\n"; $mp -= $ksp_mp[3]; }elsif($v == 12 && $camp > 0){ $v = int($ma*6)-$tmd; $v = 1 if($v<1); $thp -= $v; $log .="$kspell[4]! $tnm をものすごい光が刺す! $v の傷を与えた!
\n"; $mp -= $ksp_mp[4]; }elsif($v == 13 && $camp > 0){ $v = int($ma*7)-$tmd; $v = 1 if($v<1); $thp -= $v; $log .="禁断魔法 $kspell[5]! $tnm は爆発に巻き込まれ $v の傷を与えた!
\n"; $mp -= $ksp_mp[5]; }elsif($v == 14 && $camp > 0){ $v = int($ma*8)-$tmd; $v = 1 if($v<1); $thp -= $v; $log .="最強究極魔法 $kspell[6]! $tnm は超新星大爆発並みの爆発に巻き込まれた $v の傷を与えた!
\n"; $mp -= $ksp_mp[6]; }elsif($v == 15 && $camp > 0){ $v = int($lr*9)-$tlr; $v = 1 if($v<1); $thp -= $v; $log .="$kspell[7]! カオティック・D! $tnm に $v の傷を与えた!
\n"; $mp -= $ksp_mp[7]; }elsif($v == 16 && $camp > 0){ $v = int($lr*10)-$tlr; $v = 1 if($v<1); $thp -= $v; $log .="$kspell[8]! $nm はブラスカの力を借り、ジェクトを召喚した! ジェクトフィンガー! $tnm に $v の傷を与えた!
\n"; $mp -= $ksp_mp[8]; } } #------------------------------------------------------------------------------- #道具(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+6000) < $max_hp){ $v=6000; $hp += $v; }else{ $v=$max_hp-$hp; $hp += $v; } if(int($mp+6000) < $max_mp){ $vv=6000; $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+5000) < $max_mp){ $v=5000; $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+1000) < $max_mp){ $v=1000; $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+5000) < $max_hp){ $v=5000; $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+500) < $max_hp){ $v=500; $hp += $v; }else{ $v=$max_hp-$hp; $hp += $v; } $di_cnt=0; $di_a=0; $log .="$nm は $di_data[15][1] を使った! 体力が $v 回復した!
\n"; } } 1;