・概要

 攻撃(バスターセイバーなど)との接触判定がある場合の処理に関して解説する。
 敵によって処理が異なるが、ここでは、典型的な2つのパターンに関して解説する。

 攻撃との接触判定の付加に関しては、バスターの「・敵との接触判定」などを参照。
 連鎖値、属性、攻撃の方向・角度も参照。

・loadの処理

・・攻撃との接触判定

 「・攻撃との接触判定があり、連鎖値が大きい場合(1)」を参照。

ASのファイル:enemy_load_hit_attack_chain_invincible.txt
 
enemy_hit_attack_type="none"	//敵が受けた攻撃の種類(バスター,セイバー)
enemy_hit_attack=0	//敵と攻撃との接触判定(敵が受けた攻撃のダメージ)
 
enemy_hit_attack_element="none"	//敵の属性攻撃接触判定
 

・・連鎖値

 「・攻撃との接触判定があり、連鎖値が大きい場合(1)」を参照。

ASのファイル:enemy_load_hit_attack_chain_invincible.txt
 
enemy_chain=0	//敵の連鎖値
enemy_chain_old=0	//敵の連鎖値(保存用)
 

・攻撃との接触判定があり、連鎖値が大きい場合(1)

・・概要

 大半の敵(ビッタアクアなど)に採用している、典型的な処理に関して解説する。

・・ダメージを受ける前提となる条件

 敵がダメージを受ける前提となる条件は、以下の通りとなる。
攻撃との接触判定がある
「敵の連鎖値(保存用)」よりも「ゼロの攻撃の連鎖値」が大きい

ASのファイル:enemy_hit_attack_universal_1.txt
 
if(enemy_hit_attack_type!="none" and enemy_chain>enemy_chain_old){}
 

・・セイバーのヒットストップの判定

 「敵が受けた攻撃の種類」が「セイバー」であり、「特定の連鎖値未満」(=セイバー本体による攻撃)の場合、セイバーのヒットストップの判定を付加する。「・セイバーのヒットストップ」も参照。

ASのファイル:enemy_hit_attack_universal_1.txt
 
	if(enemy_hit_attack_type=="saber" and enemy_chain<400){_root.saber_hitstop=1}	//セイバーのヒットストップの判定
 

・・エフェクトの判定の付加

 「ダメージエフェクトの判定」「属性攻撃のエフェクトの判定」を付加する。

ASのファイル:enemy_hit_attack_universal_1.txt
 
	enemy_effect=enemy_hit_attack_type	//ダメージエフェクトの判定を付加
 

 「属性攻撃のエフェクトの判定」に関しては、例えば、「敵が雷属性」であり、「ゼロの攻撃の属性が氷属性」の場合は、「属性攻撃のエフェクトの判定」は「氷属性」となる。

ASのファイル:enemy_hit_attack_element.txt
 
if(enemy_element=="thunder" and enemy_hit_attack_element=="ice"){enemy_element_effect="ice"}	//敵が雷属性の場合
︙
 

・・敵のライフの減少、破壊判定

 敵のライフを減少させる
 敵のライフが0以下の場合は、破壊判定を付加する

ASのファイル:enemy_hit_attack_universal_1.txt
 
	_root.enemy_identify[number_enemy-1]-=Math.abs(enemy_hit_attack)	//敵のライフを減少させる
	if(_root.enemy_identify[number_enemy-1]<=0){enemy_break=enemy_hit_attack_type}	//敵のライフが0以下の場合,破壊判定
 
・「Math.abs(enemy_hit)」:「敵が受けた攻撃のダメージ」の絶対値。「敵が受けた攻撃のダメージ」には、「攻撃の方向による符号の補正」が行われているため、絶対値で計算する必要がある。連鎖値、属性、攻撃の方向・角度の「・攻撃の方向による符号の補正」も参照。
・「enemy_break=enemy_hit_type」:破壊判定(バスター・セイバー)の付加。破壊判定の種類により、敵の破壊の挙動が異なる(原作準拠)。

 一部の敵(荒巻ボールなど)は、破壊判定を「その他」に変換している。

ASのファイル:一部の敵のAS
 
if(enemy_break!="none"){enemy_break="other"}
 

・・無敵時間、連鎖値

 無敵時間の判定を付加し、無敵時間のカウントをリセットする
 連鎖値を保存する。この処理により、以降は、連鎖値がリセットされるまで、この連鎖値以下の攻撃に対して、処理を行わなくなる

 無敵時間(敵)も参照。

ASのファイル:enemy_hit_attack_universal_1.txt
 
	enemy_invincible=1;count_enemy_invincible_time=0	//無敵時間の判定,カウントをリセット
	enemy_chain_old=enemy_chain	//連鎖値を保存
 

・攻撃との接触判定があり、連鎖値が大きい場合(2)

・・概要

 一部の「破壊不可能な敵」(ギコのソニックなど)に採用している処理に関して解説する。
 「・攻撃との接触判定があり、連鎖値が大きい場合(1)」と重複している解説は省略する。

・・エフェクトの判定の付加

 ガードエフェクトの判定を付加する。

ASのファイル:enemy_hit_attack_universal_2.txt
 
	enemy_effect="guard"	//ガードエフェクトの判定を付加
 

・・敵のライフの減少、破壊判定

 処理を行わない

・セイバーのヒットストップ

 セイバーが敵にヒットした際に、ヒットストップするように設定している(原作準拠)。処理は、ボードにおいて行っている。

セイバーのヒットストップ。比較のために、(敵を破壊したため)ヒットストップがない場合も示す。

・・loadの処理

・・・判定、カウント

 「・・セイバーのヒットストップ」を参照

ASのファイル:board_load_saber_hitstop.txt
 
_root.saber_hitstop=0	//セイバーのヒットストップの判定
count_saber_hitstop=0	//セイバーのヒットストップのカウント
count_saber_hitstop_max=4	//セイバーのヒットストップのカウントの最大値
 

・・セイバーのヒットストップ

 セイバーのヒットストップの判定がある場合、セイバーのヒットストップのカウントを増加させる。
 カウントが1の場合、一時停止判定を付加する一時停止、イベント停止も参照。
 カウントが最大値の場合、ヒットストップの判定・ヒットストップのカウント・一時停止判定をリセットする。

ASのファイル:board_saber_hitstop.txt
 
if(_root.saber_hitstop==1){
	count_saber_hitstop++	//セイバーのヒットストップのカウントを増加させる
	if(count_saber_hitstop==1){_root.start_pause=1}	//カウントが1の場合,一時停止判定
	else if(count_saber_hitstop==count_saber_hitstop_max){_root.saber_hitstop=0;count_saber_hitstop=0;_root.start_pause=0}	//カウントが最大値の場合,判定をリセット,カウントをリセット,一時停止判定をリセット
}
 

最終更新:2020年12月19日 08:58
添付ファイル