设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

无敌状态

查看数: 1772 | 评论数: 2 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-6-26 14:32

正文摘要:

如何做一个状态,有该状态的角色无法攻击敌人,也不会受到敌人的伤害~

回复

纯属小虫 发表于 2022-6-26 21:58:27
本帖最后由 纯属小虫 于 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 14:13
我上次忽略的恢复技能的情况,后面补上了!  发表于 2022-6-28 11:19
那你可以把self.damage= 0 改成 self.damage = "" 或者 self.damage = "I am your dad!" self.hp -= self.damage 同行后面跟上unless self.damage.is_a(String)  发表于 2022-6-28 11:14
这样做是打不出伤害了,但是会显示伤害数字0,能不能把这个0弄成看不见  发表于 2022-6-27 18:25

评分

参与人数 3星屑 +80 +3 收起 理由
RyanBern + 80 + 1 认可答案
taeckle + 1 大神威武!
小怪兽奇奇侠 + 1 精品文章

查看全部评分

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-28 10:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表