フィールド無効について 以下のファイルを変更します。 ・battlelib.pl ・dmg_calc.pl
前提として フィールド無効の特殊能力番号は -150 である。
以下のファイルをDLして行つきエディタで開いてもらえると一層分かりやすくなると思います(行番号はこれを元にしています)
http://www.geocities.jp/seirei454/dmg_calc.pl http://www.geocities.jp/seirei454/battlelib.pl
コードの変更は以下
==battlelib.pl==
19行目 @afield=();を追加 sub
battle_logic { @shield=();@sakuchk=(0,0);@afield=();
#
戦闘前変数修正
40行目 afield[$_]を追加 #基本計算 $calcdat =
&damage_calc($sou[$_],$un[$_],$saku[$_],$en[$_],$maxen[$_],$n_6[$_],$n_8[$_],$n_13[$_],$syokuno[$_],$item[$_],$item2[$_],$weight[$_]); ($idou[$_],$range[$_],$sou[$_],$un[$_],$saku[$_],$en[$_],$maxen[$_],$i_dmg[$_],$i_en[$_],$kshield,$shieldname[$_],$i_tama[$_],$eshield,$i_hani[$_],$i_tokusyu[$_],$i_syurui[$_],$i_hani2[$_],$i_tokusyu2[$_],$i_syurui2[$_],$idou[$_],$wunit_tokusyu,$i_short[$_],$i_long[$_],$unit_lv[$_],$afield[$_])
=
split(/<>/,$calcdat);
859行目から891行目 ビーム防御のところを纏めてフィールド無効が有った場合発動しないように変更
#ビーム防御 if(
$i_syurui[1-$_] == 1 || $i_syurui2[1-$_] == 1
) { if($item[1-$_] && $i_tama[1-$_] > 0
&& $en[1-$_] >= $i_en[1-$_] && $kyori >=
$i_short[1-$_] && $kyori <= $i_long[1-$_]
) { if($beamdmgflg > 0) { $i_dmg[1-$_] =
int($i_dmg[1-$_] / $beamdmgflg); } foreach $tokusyu (
@{$u_tokusyu[$_]} ) { if($afield[1-$_] == 0){ if($tokusyu
== -3 && $en[$_] >= 100 && $dmg[1-$_] >
0) { $en[$_] = $en[$_] - 20; $kawasi[$_] .=
"$name[$_]はビームバリアを展開した"; if( $dmg[1-$_] < $en[$_] ){
$dmg[1-$_] = 0; $kawasi[$_] .= "!!<br>"; } else{
$dmg[1-$_] = int($dmg[1-$_] / 2); $kawasi[$_] .=
"が防ぎきれなかった!!<br>"; } }
==dmg_calc.pl== 84行目
my($ant_field = 0;を追加 #計算準備 my($unit_tokusyu) =
""; foreach $tokusyu ( @u_tokusyu ) { $unit_tokusyu .=
"##$tokusyu"; } my($idou) = 0; my($c_dmg) =
$itm_dmg[0]; my($c_en) = $itm_en[0]; my($shield) =
0; my($shieldname) = ""; my($ant_field) = 0; my($c_tama)
= $itm_tama[0]; my($eshield) =
0; my($ntmem)=0;
213行目から219行目 -150が有った場合$ant_fieldに1を立てる
if($tokusyu
== -33 ) { #索敵向上 $saku = $saku *
2; }
if($tokusyu == -150
) { #敵フィールド無効 $ant_field=1; }
#
NT修正
312行目 戻り値に$ant_fieldを追加、追加場所に注意 #戻り値設定 $return =
"$idou<>$range<>$sou<>$un<>$saku<>$en<>$maxen<>$c_dmg<>$c_en<>$shield<>$shieldname<>$c_tama<>$eshield<>$itm_hani[0]<>$itm_tokusyu[0]<>$itm_syurui[0]<>$itm_hani[1]<>$itm_tokusyu[1]<>$itm_syurui[1]<>$idou<>$unit_tokusyu<>$itm_short[0]<>$itm_long[0]<>$unit_lv<>$ant_field<>$itm_name[0]<>$itm_name[1]<>";
return($return);
以上です。
なお、終了した後はお手数ですが削除をお願いします。 削除キー:000000
|