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