#==============================================================================
# ■ 沈黙の拡張 By 貪藻矢射妥←
# - Silent Extend Service from the Diamond -
#
# ・沈黙を拡張します。
# ツクールのデフォルト、魔法が使えないステートを拡張し、物理攻撃が使えない
# ステートやスキル事態仕えないステートを作成します。
#
#==============================================================================
# 更新っぽいもの
#
# 2017:11:03
# ・沈黙種別追加に伴う沈黙の変更
#
# 2019:03:02
# ・能力依存を全部リストに変更
# ・属性依存を三個固定から複数指定可能に変更
#
# 2025:06:01
# ・マジックナンバーの定義化対応
$OuterFlgs = {} if $OuterFlgs == nil
$OuterFlgs["Silent_Extend"] = true
module DIAMOND
# 沈黙種別
# 0:能力依存
SILENCE_TYPE_ABILITY = 0
# 1:属性依存
SILENCE_TYPE_ELEMENT = 1
#
SILENCE_KIND = SILENCE_TYPE_ABILITY
##### 能力依存の場合
# スキルに必要な能力因子に依存した沈黙
# 魔法スキル用沈黙ステート
MAG_SILENCE_ID = [15]
# 物理スキル用沈黙ステート
PHY_SILENCE_ID = [16]
# 魔法/物理両方沈黙ステート
ALL_SILENCE_ID = [5, 9]
##### 属性依存の場合 [属性ID, ステートID]
# スキルに付与されている属性に依存した沈黙
# 頭封じ
HED_SILENCE_ID = [68, 186]
# 腕封じ
ARM_SILENCE_ID = [69, 187]
# 足封じ
LEG_SILENCE_ID = [70, 188]
#
ELM_SILENCD_SET = [HED_SILENCE_ID,
ARM_SILENCE_ID,
LEG_SILENCE_ID]
end
#==============================================================================
# ■ Game_Battler (分割定義 1)
#------------------------------------------------------------------------------
# バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ
# スのスーパークラスとして使用されます。
#==============================================================================
class Game_Battler
include DIAMOND
#--------------------------------------------------------------------------
# ● 沈黙判定
# skill_id : スキル ID
#--------------------------------------------------------------------------
def user_is_silence?(skill_id)
if self.restriction == Def_Num::REST_PTN_NO_MAGIC
if SILENCE_KIND == SILENCE_TYPE_ABILITY # 能力依存の沈黙の場合
# 沈黙状態[黙]の場合、魔法スキルは使用不可
for i in 0...MAG_SILENCE_ID.size
if $data_skills[skill_id].pdef_f == 0 &&
self.states.include?(MAG_SILENCE_ID[i])
return false
end
end
# 沈黙状態[縛]の場合、物理スキルは使用不可
for i in 0...PHY_SILENCE_ID.size
if $data_skills[skill_id].mdef_f == 0 &&
self.states.include?(PHY_SILENCE_ID[i])
return false
end
end
# 沈黙状態[封]の場合、物理、魔法スキルは使用不可
for i in 0...ALL_SILENCE_ID.size
if self.states.include?(ALL_SILENCE_ID[i])
return false
end
end
elsif SILENCE_KIND == SILENCE_TYPE_ELEMENT # 属性依存の沈黙の場合
for silen_set in ELM_SILENCD_SET
if $data_skills[skill_id].element_set.include?(silen_set[0]) &&
self.states.include?(silen_set[1])
return false
end
end
else
p "沈黙種別が異常です"
return false
end
end
return true
end
#--------------------------------------------------------------------------
# ● スキルの使用可能判定
# skill_id : スキル ID
#--------------------------------------------------------------------------
★★★ 特殊消費スキル 参照 ★★★
end
|