查看: 4310|回复: 16

[已经过期] 请问类似于战斗续行的效果如果实现

[复制链接]
梦石
2
星屑
3034
在线时间
398 小时
注册时间
2016-8-16
回帖
92

开拓者

发表于 2017-11-18 14:59:25 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
如题,我想做一个战斗续行的技能,就是在死亡时解除死亡状态并回血。我的思路是这样,给一个战斗
续行的状态,用公共事件并行处理。当角色拥有着战续这一状态且死亡时,解除死亡状态在回血最后解
除战续状态。可是到最后却没用,角色还是该死的死。这该如何解决?
梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2017-11-18 19:08:12 | 显示全部楼层
你的意思是不是这样的技能(来自DOTA2):

虚妄之诺
暂时篡改队友的命运,技能期间受到的任何治疗和伤害效果将在虚妄之诺结束后结算,其中治疗效果加倍结算。施放时将移除目标身上大部分的负面状态效果。 驱散类型:强驱散敌人和虚妄的先知一样常常会编造他人的命运。
持续时间:8 9 10
影响:友方英雄
技能:单位目标

魔法消耗 100
冷却时间 100 65 30

tips: 伤害和治疗效果虽然被延缓结算,但是结算时依然会考虑护甲和魔法抗性的减免。
经过延缓的伤害和治疗效果在目标失去本技能效果后立刻结算。




如果是这样的技能,可以在计算致死伤害的时候判定,持有某状态时不会受到致死的伤害(但是要用另外的变量计算受到的伤害和期间得到的治疗效果,在状态移除时用剩余生命和变量进行计算,如果变量是负的就受到结算伤害死亡,是正的就回血)
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
2
星屑
3034
在线时间
398 小时
注册时间
2016-8-16
回帖
92

开拓者

 楼主| 发表于 2017-11-18 19:43:20 | 显示全部楼层
chd114 发表于 2017-11-18 19:08
你的意思是不是这样的技能(来自DOTA2):

虚妄之诺

感谢大佬的回复,但是我想要的效果是使用了这个技能后会给使用者附加一个状态,在这个状态下如果使用者死亡的话,会自动复活并回复一定的血量。这个效果触发后就会消除这个状态。望大佬解答
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2017-11-18 21:28:45 | 显示全部楼层
卫宫白 发表于 2017-11-18 19:43
感谢大佬的回复,但是我想要的效果是使用了这个技能后会给使用者附加一个状态,在这个状态下如果使用者死 ...

这样的话,不管是先死再复活还是跳过致死伤害强制改变血量都能达到你要的效果
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
2
星屑
3034
在线时间
398 小时
注册时间
2016-8-16
回帖
92

开拓者

 楼主| 发表于 2017-11-18 21:32:38 | 显示全部楼层
chd114 发表于 2017-11-18 21:28
这样的话,不管是先死再复活还是跳过致死伤害强制改变血量都能达到你要的效果 ...

但是当只有一个人的时候死亡还是会gameover啊
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2017-11-18 21:46:34 | 显示全部楼层
卫宫白 发表于 2017-11-18 21:32
但是当只有一个人的时候死亡还是会gameover啊

那就做成不受致死伤害就行了(不管用哪种方式你都要动脚本)
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
2
星屑
3034
在线时间
398 小时
注册时间
2016-8-16
回帖
92

开拓者

 楼主| 发表于 2017-11-18 22:02:32 | 显示全部楼层
chd114 发表于 2017-11-18 21:46
那就做成不受致死伤害就行了(不管用哪种方式你都要动脚本)

哦,脑壳痛啊!!!脚本渣渣啊
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2017-11-18 22:28:12 | 显示全部楼层
本帖最后由 chd114 于 2017-11-19 14:30 编辑
卫宫白 发表于 2017-11-18 22:02
哦,脑壳痛啊!!!脚本渣渣啊

Game_Battler里面找到处理伤害的部分,修改self.hp -= @result.hp_damage

改成
  1. if self.state?(x) and self.hp<=@result.hp_damage#x号状态持有并且这次伤害是致死伤害时
  2. self.hp=self.mhp#被作用单位生命强制变为最大生命
  3. self.remove_state(x)#移除x号状态
  4. else
  5. self.hp -= @result.hp_damage
  6. end
复制代码
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
2
星屑
3034
在线时间
398 小时
注册时间
2016-8-16
回帖
92

开拓者

 楼主| 发表于 2017-11-19 07:54:03 | 显示全部楼层
chd114 发表于 2017-11-18 22:28
Game_Battler里面找到处理伤害的部分,修改self.hp -= @result.hp_damage

改成

我试了下的,貌似大佬你的写法和我的其他脚本有冲突,一进行攻击时就报错了。是和横版脚本有冲突么?
回复

使用道具 举报

梦石
0
星屑
1626
在线时间
193 小时
注册时间
2016-10-22
回帖
80
发表于 2017-11-19 09:08:38 | 显示全部楼层
角色不是死亡而是变成零血可以吗?如果可以请往下看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部