AI族崛起,人类大溃败,再也无法站在高处耀武扬威,人类只能沦为AI的附庸,可有可无
1,保命符
RUBY 代码 - #==============================================================================
- # 状态 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,残血赌命
RUBY 代码 - #==============================================================================
- # 技能 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
- # 概率判定
- ifrand(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
- returntrue
- else
- # 其他技能正常处理
- return custom_skill_effect_83(user, skill)
- end
- end
- end
复制代码
血量不满足时,没有伤害,血量低于10%,几率造成最大血量的百分比
3,自爆体
RUBY 代码 - #==============================================================================
- # 自定义技能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
- returntrue
- 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%血量时候,自爆造成自身当前血量的伤害,自己死亡,单体全体都有用,和上面不一样的是,上面可以一直触发,这个会死
本帖来自P1论坛作者y967,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=498981 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。 |