#_/ ◆无敌状态 - KGC_Invincible◆ #_/---------------------------------------------------------------------------- #_/ 在状态中设置个“无敌”二字的状态即可使用。 #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ $imported = {} if $imported == nil $imported["Invincible"] = true if $game_special_states == nil $game_special_states = {} $data_states = load_data("Data/States.rxdata") end # 無敵状態ステートIDa取得 state = $data_states.compact.find { |s| s.name == "回避" } $game_special_states["invincible"] = state != nil ? state.id : 0 #============================================================================== # ■ Game_Battler (分割定義 2) #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● ステート [無敵] 判定 # act : 処理対象 #-------------------------------------------------------------------------- def invincible?(act = nil) # ステート[無敵]が付加されている場合 if self.states.include?($game_special_states["invincible"]) # 処理対象で分岐 case act when RPG::Skill return true if act.scope == 1 || act.scope == 2 when RPG::Item return true if act.scope == 1 || act.scope == 2 when nil return true end end return false end end #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ #============================================================================== # ■ Game_Battler (分割定義 3) #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 通常攻撃の効果適用 #-------------------------------------------------------------------------- alias attack_effect_KGC_Invincible attack_effect def attack_effect(attacker) # 無敵状態の場合 if self.invincible? # ダメージに "Miss" を設定 self.damage = "Miss" # クリティカルフラグをクリア self.critical = false # 偽を返す return false end # 元の処理を実行 return attack_effect_KGC_Invincible(attacker) end #-------------------------------------------------------------------------- # ● スキルの効果適用 #-------------------------------------------------------------------------- alias skill_effect_KGC_Invincible skill_effect def skill_effect(user, skill) # 無敵状態の場合 if self.invincible?(skill) # ダメージに "Miss" を設定 self.damage = "Miss" # クリティカルフラグをクリア self.critical = false # 偽を返す return false end # 元の処理を実行 return skill_effect_KGC_Invincible(user, skill) end #-------------------------------------------------------------------------- # ● アイテムの効果適用 #-------------------------------------------------------------------------- alias item_effect_KGC_Invincible item_effect def item_effect(item) # 無敵状態の場合 if self.invincible?(item) # ダメージに "Miss" を設定 self.damage = "Miss" # クリティカルフラグをクリア self.critical = false # 偽を返す return false end # 元の処理を実行 return item_effect_KGC_Invincible(item) end end
class Game_Battler def add_state_nonresistance(target,item) nonresistance = item.plus_state_set.select {|id| $data_states[id].nonresistance} target.states_plus nonresistance end end
魔法丶小肉包 发表于 2025-8-31 14:00
这个状态一点也不无敌呀,如果自己有无敌状态的话也可以自己给自己投毒的,只是敌人没法给你投毒 XD
class ...
soulsaga 发表于 2025-9-1 02:04
照道理这个可能用事件就能解除
无忧谷主幻 发表于 2025-8-31 22:55
呃,这样的话其他增益状态都无法附加上了
如果直接施加无敌状态,有时候就会报错(也有时候暂时不报错, ...
class Game_Battler def add_state_nonresistance(target,item) return unless item nonresistance = item.plus_state_set.select {|id| $data_states[id].nonresistance} target.states_plus nonresistance end end
魔法丶小肉包 发表于 2025-9-1 15:22
忘记考虑角色不拿武器的情况了,改成这样
class Game_Battler
def add_state_nonresistance(target,ite ...
class Scene_Battle attr_accessor :active_battler attr_accessor :target_battlers end
soulsaga 发表于 2025-9-2 06:39
class Scene_Battle
attr_accessor :active_battler
attr_accessor :target_battlers
#_/ ◆无敌状态 - KGC_Invincible◆ #_/---------------------------------------------------------------------------- #_/ 在状态中设置个“无敌”二字的状态即可使用。 #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ $imported = {} if $imported == nil $imported["Invincible"] = true if $game_special_states == nil $game_special_states = {} $data_states = load_data("Data/States.rxdata") end # 無敵状態ステートIDa取得 state = $data_states.compact.find { |s| s.name == "回避" } $game_special_states["invincible"] = state != nil ? state.id : 0 #============================================================================== # ■ Game_Battler (分割定義 2) #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● ステート [無敵] 判定 # act : 処理対象 #-------------------------------------------------------------------------- def invincible?(act = nil) # ステート[無敵]が付加されている場合 if self.states.include?($game_special_states["invincible"]) # 処理対象で分岐 case act when RPG::Skill return true if act.scope == 1 || act.scope == 2 when RPG::Item return true if act.scope == 1 || act.scope == 2 when nil return true end end return false end end #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ #============================================================================== # ■ Game_Battler (分割定義 3) #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● 通常攻撃の効果適用 #-------------------------------------------------------------------------- alias attack_effect_KGC_Invincible attack_effect def attack_effect(attacker) # 無敵状態の場合 if self.invincible? effective=true # ダメージに "Miss" を設定 self.damage = "Miss" # クリティカルフラグをクリア self.critical = false effective |= states_plus(attacker.plus_state_set) effective |= states_minus(attacker.minus_state_set) return effective end # 元の処理を実行 return attack_effect_KGC_Invincible(attacker) end #-------------------------------------------------------------------------- # ● スキルの効果適用 #-------------------------------------------------------------------------- alias skill_effect_KGC_Invincible skill_effect def skill_effect(user, skill) # 無敵状態の場合 if self.invincible?(skill) effective=true # ダメージに "Miss" を設定 self.damage = "Miss" # クリティカルフラグをクリア self.critical = false effective |= states_plus(skill.plus_state_set) effective |= states_minus(skill.minus_state_set) return effective end # 元の処理を実行 return skill_effect_KGC_Invincible(user, skill) end #-------------------------------------------------------------------------- # ● アイテムの効果適用 #-------------------------------------------------------------------------- alias item_effect_KGC_Invincible item_effect def item_effect(item) # 無敵状態の場合 if self.invincible?(item) effective=true # ダメージに "Miss" を設定 self.damage = "Miss" # クリティカルフラグをクリア self.critical = false effective |= states_plus(item.plus_state_set) effective |= states_minus(item.minus_state_set) return effective end # 元の処理を実行 return item_effect_KGC_Invincible(item) end end
soulsaga 发表于 2025-9-2 07:38
其实只要照抄默认的脚本过来就可以了[
quote]无忧谷主幻 发表于 2025-9-2 07:10
无忧谷主幻 发表于 2025-9-2 07:52
效果如何暂未测试,因为连状态都没办法加上了
soulsaga 发表于 2025-9-2 07:56
你用普攻对吧?照抄抄错了..已修
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |