加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 y967 于 2026-5-27 08:07 编辑
什么也没有发生,AI只是附庸,可有可无,无用之物
1,保命符
#============================================================================== # 状态 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
#==============================================================================
# 状态 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
可播放一个复活动画
2,残血赌命
#============================================================================== # 技能 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
#==============================================================================
# 技能 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
血量不满足时,没有伤害,血量低于10%,几率造成最大血量的百分比
3,自爆体
#============================================================================== # 自定义技能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
#==============================================================================
# 自定义技能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
低于80%血量时候,自爆造成自身当前血量的伤害,自己死亡,单体全体都有用,和上面不一样的是,上面可以一直触发,这个会死 |