module State_Skill
#--------------------------------------------------------------------------
# ● 參考數組取得
#--------------------------------------------------------------------------
Data = []
$data_skills ||= load_data("Data/Skills.rxdata")
$data_states ||= load_data("Data/States.rxdata")
# 查找「基本同名」的「狀態」與「技能」
for i in 1...$data_states.size
next unless $data_states.name =~ /^skill(\D*)/
for i2 in 1...$data_skills.size
Data.push [i,i2] if ($data_skills[i2].name == $1)
end
end
end
#----------------------------------------------------------------------------
# ● 召喚原方法
#----------------------------------------------------------------------------
class Game_Battler
alias oxox_add_state add_state
alias oxox_remove_state remove_state
#--------------------------------------------------------------------------
# ● 附加状态
# state_id : 状态 ID
# force : 强制附加标志 (处理自动状态时使用)
#--------------------------------------------------------------------------
def add_state(state_id, force = false)
oxox_add_state(state_id, force)
State_Skill::Data.each{|i|
if i[0] == state_id
if i[1] != 0
learn_skill(i[1])
end
end}
end
#--------------------------------------------------------------------------
# ● ステートの解除
# state_id : ステート ID
# force : 強制解除フラグ (オートステートの処理で使用)
#--------------------------------------------------------------------------
def remove_state(state_id, force = false)
oxox_remove_state(state_id, force)
State_Skill::Data.each{|i|
if i[0] == state_id
if i[1] != 0
forget_skill(i[1])
end
end}
end
end
module State_Skill
#--------------------------------------------------------------------------
# ● 參考數組取得
#--------------------------------------------------------------------------
Data = {}
$data_skills ||= load_data("Data/Skills.rxdata")
$data_states ||= load_data("Data/States.rxdata")
# 查找「基本同名」的「狀態」與「技能」
for i in 1...$data_states.size
next unless $data_states.name =~ /^skill(\D*)from(\D*)/
Data=[nil,nil]
for i2 in 1...$data_skills.size
Data[0] = i2 if ($data_skills[i2].name == $1)
Data[1] = i2 if ($data_skills[i2].name == $2)
end
end
end
#----------------------------------------------------------------------------
# ● 召喚原方法
#----------------------------------------------------------------------------
class Game_Battler
alias oxox_add_state add_state
alias oxox_remove_state remove_state
#--------------------------------------------------------------------------
# ● 附加状态
# state_id : 状态 ID
# force : 强制附加标志 (处理自动状态时使用)
#--------------------------------------------------------------------------
def add_state(state_id, force = false)
oxox_add_state(state_id, force)
State_Skill::Data.each{|i,s|
if i == state_id
learn_skill(s[0]) if s[0] != nil
forget_skill(s[1]) if s[1] != nil
end}
end
#--------------------------------------------------------------------------
# ● ステートの解除
# state_id : ステート ID
# force : 強制解除フラグ (オートステートの処理で使用)
#--------------------------------------------------------------------------
def remove_state(state_id, force = false)
oxox_remove_state(state_id, force)
State_Skill::Data.each{|i,s|
if i == state_id
forget_skill(s[0]) if s[0] != nil
learn_skill(s[1]) if s[1] != nil
end}
end
end
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |