人类大溃败之AI崛起
AI族崛起,人类大溃败,再也无法站在高处耀武扬威,人类只能沦为AI的附庸,可有可无1,保命符
RUBY 代码
#==============================================================================
# 状态 19:保命符
# 效果:拥有该状态的角色/敌人在 HP 变为 0 时:
# · 播放动画 25
# · HP 恢复至最大 HP 的一半
# · 状态 19 消耗后消失(可自定义是否移除)
# 插入位置:Main 之前任意处。
# 注意:未使用 alias,直接覆盖原有 hp= 方法。
#==============================================================================
# 角色处理
class Game_Actor
def hp=(hp)
# 限制 HP 范围
hp = [.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 = [.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在线咨询功能删除,谢谢。
页:
[1]