





共存不可ステート
他のステートと共存できないステートを作成するスクリプトです。
例えば、眠り状態のときには混乱状態にならないようにするといったことができるようになります。
コード: 全て選択
=begin
共存不可ステート ver1.0
byうなぎおおとろ(Twitter http://twitter.com/unagiootoro8388)
他のステートと共存できないステートを作成するスクリプトです。
例えば、眠り状態のときには混乱状態にならないようにするといったことができるようになります。
[使用方法]
ステートID3のステートはステートID4のステートと共用できないようにする場合、
ステートID3のステートのメモ欄に
<共存不可ステートID 4>
と記述し、ステートID4のステートのメモ欄に
<共存不可ステートID 3>
と記述してください。共存不可の設定が片方のステートだけにならないように注意してください。
また、
<共存不可ステートID 5, 6>
というように記述することで、複数のステートと共存できないようにすることも可能です。
=end
class RPG::State
def not_coexistence_state_id
if @not_coexistence_state_id == nil
if note =~ /<共存不可ステートID (.+)>/
@not_coexistence_state_id = $1.gsub(/[\s\r\n]/, "").split(",").map(&:to_i)
else
@not_coexistence_state_id = []
end
end
@not_coexistence_state_id
end
end
class Game_Battler
alias not_coexistance_state__add_state add_state
private :not_coexistance_state__add_state
def add_state(state_id)
not_coexistence_state_id = $data_states[state_id].not_coexistence_state_id
now_states_id = states.map(&:id)
not_coexistence_state_id.each do |id|
return if now_states_id.include?(id)
end
not_coexistance_state__add_state(state_id)
end
end
上位ステート
毒状態のときに毒攻撃を受けると、猛毒状態になる、というようなことができるようになるスクリプトです。
このスクリプトを使用するには、「共存不可ステート」の導入が必要です。
「共存不可ステート」は「上位ステート」よりも上にしてください。
コード: 全て選択
=begin
上位ステート ver1.0
byうなぎおおとろ(Twitter http://twitter.com/unagiootoro8388)
毒状態のときに毒攻撃を受けると、猛毒状態になる、というようなことができるようになるスクリプトです。
このスクリプトを使用するには、「共存不可ステート」の導入が必要です。
「共存不可ステート」は「上位ステート」よりも上にしてください。
[使用方法]
ステートID3のステートときに当該ステートにする攻撃を受けた時、当該ステートを
ステートID4のステートにしたい場合、
ステートID3のステートのメモ欄に
<上位ステートID 4>
<共存不可ステートID 4>
と記述し、ステートID4のステートのメモ欄に
<共存不可ステートID 3>
と記述してください。
=end
class RPG::State
def super_state_id
if @super_state == nil
if note =~ /^<上位ステートID (\d+)>/
@super_state_id = $1.to_i
else
@super_state_id = false
end
end
@super_state_id
end
end
class Game_Battler
alias super_state__add_state add_state
private :super_state__add_state
def add_state(state_id)
if state?(state_id)
super_state_id = $data_states[state_id].super_state_id
if super_state_id
erase_state(state_id)
super_state__add_state(super_state_id)
end
else
super_state__add_state(state_id)
end
end
end