#============================================================================== # 状态 19:保命符 # 效果:拥有该状态的角色/敌人在 HP 变为 0 时: # · 播放动画 25 # · HP 恢复至最大 HP 的一半 # · 状态 19 消耗后消失(可自定义是否移除) # 插入位置:Main 之前任意处。 # 注意:未使用 alias,直接覆盖原有 hp= 方法。 #============================================================================== # 角色处理 class Game_Actor def hp=(hp) # 限制 HP 范围 hp = [[hp, maxhp].min, 0].max # 触发保命符条件 if hp == 0 && state?(19) self.animation_id = 25 # 播放动画 25 @hp = maxhp / 2 # 恢复一半 HP remove_state(1) if state?(1) # 移除可能被附加的死亡状态 remove_state(19) # 消耗状态(如需保留则注释本行) return end # 以下为默认的死亡状态控制 if hp == 0 add_state(1) unless state?(1) else remove_state(1) if state?(1) end @hp = hp end end # 敌人处理(若敌人也可能拥有此状态) class Game_Enemy < Game_Battler def hp=(hp) hp = [[hp, maxhp].min, 0].max if hp == 0 && state?(19) self.animation_id = 25 @hp = maxhp / 2 remove_state(1) if state?(1) remove_state(19) # 同上,可按需注释 return end if hp == 0 add_state(1) unless state?(1) else remove_state(1) if state?(1) end @hp = hp end end
#============================================================================== # 技能 83:残血赌命 # 当自身血量低于最大血量的 SKILL_83_HP_THRESHOLD% 时, # 有 SKILL_83_CHANCE% 的几率对目标造成 当前血量 * SKILL_83_DAMAGE_HP_PERCENT% 的伤害。 # 条件不满足或几率未触发时,显示 Miss 且不造成伤害。 #============================================================================== SKILL_83_HP_THRESHOLD = 10 # 血量阈值百分比(例如 10 表示 10%) SKILL_83_CHANCE = 40 # 触发概率百分比 SKILL_83_DAMAGE_HP_PERCENT = 80 # 伤害为最大血量的百分比(100 表示 100%) class Game_Battler # 保留原版技能效果方法 alias custom_skill_effect_83 skill_effect unless $@ def skill_effect(user, skill) # 只对技能 83 做特殊处理 if skill.id == 83 # 判断血量是否低于阈值 if user.hp < user.maxhp * SKILL_83_HP_THRESHOLD / 100.0 # 概率判定 if rand(100) < SKILL_83_CHANCE # 成功:伤害 = 使用者当前血量 × 百分比 self.damage = (user.maxhp * SKILL_83_DAMAGE_HP_PERCENT / 100.0).to_i else # 概率失败 self.damage = "Miss" end else # 血量不满足 self.damage = self.damage#"Miss" end self.critical = false return true else # 其他技能正常处理 return custom_skill_effect_83(user, skill) end end end
#============================================================================== # 自定义技能84 · 自爆 #============================================================================== SKILL84_ID = 84 # 技能编号 SKILL84_HP_THRESHOLD = 80 # 当前血量低于最大HP的百分之几时满足触发条件 SKILL84_SUCCESS_RATE = 90 # 触发成功率(百分比) SKILL84_DAMAGE_HP_PERCENT = 100 # 造成的伤害为当前HP的百分之几 #============================================================================== # Game_Battler 技能效果重写 #============================================================================== class Game_Battler alias custom_skill_effect_skill84 skill_effect def skill_effect(user, skill) if skill.id == SKILL84_ID # 血量满足条件且几率判定成功 if user.hp < user.maxhp * SKILL84_HP_THRESHOLD / 100.0 && rand(100) < SKILL84_SUCCESS_RATE # 以第一次对目标造成的伤害为准,并让使用者死亡 if user.instance_variable_get(:@skill84_damage).nil? dmg = (user.hp * SKILL84_DAMAGE_HP_PERCENT / 100.0).to_i user.instance_variable_set(:@skill84_damage, dmg) user.hp = 0 user.instance_variable_set(:@skill84_dead, true) else dmg = user.instance_variable_get(:@skill84_damage) end self.damage = dmg self.hp -= self.damage return true else # 不满足条件或几率失败 → 正常伤害 return custom_skill_effect_skill84(user, skill) end else return custom_skill_effect_skill84(user, skill) end end end #============================================================================== # Scene_Battle 每次使用技能前清除标记 #============================================================================== class Scene_Battle alias custom_make_skill_action_result_84 make_skill_action_result def make_skill_action_result @active_battler.instance_variable_set(:@skill84_damage, nil) @active_battler.instance_variable_set(:@skill84_dead, nil) custom_make_skill_action_result_84 end end
你这个自爆脚本可不能用| 欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |