Project1

标题: 无敌状态 [打印本页]

作者: 黑米馒头    时间: 2022-6-26 14:32
标题: 无敌状态
如何做一个状态,有该状态的角色无法攻击敌人,也不会受到敌人的伤害~
作者: 纯属小虫    时间: 2022-6-26 21:58
本帖最后由 纯属小虫 于 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
这样一来,无敌状态不会扣血,但是能够回血
作者: 黑米馒头    时间: 2022-6-28 12:40
纯属小虫 发表于 2022-6-26 21:58
第一,角色无法攻击敌人
第一种方法比较简单,就是直接在对应状态里选择“什么都不做”,就行了
但不知道你 ...

脚本错误

         # 当身上有7号状态【封印】
         if self.states.include?(7)
           # 设置伤害为0
           self.damage = "I am your dad!"#0
         end

         # 设置伤害  
         self.hp -= self.damage unless self.damage.is_a(String)
       end






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1