赞 | 46 |
VIP | 0 |
好人卡 | 0 |
积分 | 315 |
经验 | 0 |
最后登录 | 2024-10-24 |
在线时间 | 249 小时 |
Lv5.捕梦者
- 梦石
- 24
- 星屑
- 7497
- 在线时间
- 249 小时
- 注册时间
- 2020-12-4
- 帖子
- 306
|
本帖最后由 纯属小虫 于 2022-6-28 12:52 编辑
第一,角色无法攻击敌人
第一种方法比较简单,就是直接在对应状态里选择“什么都不做”,就行了
但不知道你所谓的“无法攻击敌人”是不是这个意思
如果要实现无法使用“攻击”,以及一切“攻击技能”,那估计有的调的了....
有一个思路,可能要在技能的can_use?里面动手脚,添加条件:actor拥有这个状态,且技能的威力>0,则该技能判定不可使用
第二,不会受到敌人的伤害
如果只是“不会受到敌人攻击或技能的伤害”
在Game_Battler 3 里面找到 “HP 的伤害计算”注释 ————注意,有三处这个判定::一个是普通攻击判定,一个是特技判定,一个是使用物品判定;这种情况应该只要改前两者的就行
self.hp -= self.damage
在其【前面】添加
if self.states.include?(状态id)
self.damage = 0
end
如果还要添加,毒之类的持续伤害免疫的话
还要在slip_damage_effect 定义(应用连续伤害效果)里修改
在self.hp -= self.damage 之前添加
if self.states.include?(状态id)
self.damage = 0
end
如果不想显示伤害数字或者想要魔改伤害数字的话
把红字部分改成 self.damage = "" 或 self.damage = "I am your dad!"
然后把橙字改成 self.hp -= self.damage unless self.damage.is_a?(String)
如果还要考虑是否对【恢复】性质的技能免疫的话
则对 self.damage 再进行一个>=0 和 <0 的判断;
self.damage >=0 的时候才会执行
if self.states.include?(状态id)
self.damage = 0
end
这样一来,无敌状态不会扣血,但是能够回血 |
评分
-
查看全部评分
|