类似魔兽自带毒球
首先需要的两个参数为技能持续时间和毒伤害的间隔时间
普通的运行计时器肯定是不行的
一般普通的持续伤害算法无非以下两种:
1.运行计时器1秒,然后每秒给伤害
2.先给一次伤害,然后运行计时器1秒每秒给伤害
这种方法在面对毒刷新较快的时候就不对了
比如伤害间隔1秒 单位攻击间隔小于1时 一直打一个目标就会造成:
1.一直打就没有毒伤害了
2.每次攻击都有一次额外毒伤害
所以这里需要采取一种特殊的算法
1.当单位没有buff时 开启计时器循环伤害(这里可以通过判断有无对应计时器来检测)
2.当单位有buff时,仅增加buff持续时间
3.计时器循环到单位没有buff时 自我销毁
这样一来就可以比较完美的叠加毒的持续时间 而不至于造成以上不合理的现象
使用注意:
1.建议持续时间设置成毒伤害间隔时间的倍数+0.5倍毒伤害间隔时间(为什么?自己思考)
2.建议将毒伤害的计时器与buff的计时器分开(当模拟buff时)
首先需要的两个参数为技能持续时间和毒伤害的间隔时间
普通的运行计时器肯定是不行的
一般普通的持续伤害算法无非以下两种:
1.运行计时器1秒,然后每秒给伤害
2.先给一次伤害,然后运行计时器1秒每秒给伤害
这种方法在面对毒刷新较快的时候就不对了
比如伤害间隔1秒 单位攻击间隔小于1时 一直打一个目标就会造成:
1.一直打就没有毒伤害了
2.每次攻击都有一次额外毒伤害
所以这里需要采取一种特殊的算法
1.当单位没有buff时 开启计时器循环伤害(这里可以通过判断有无对应计时器来检测)
2.当单位有buff时,仅增加buff持续时间
3.计时器循环到单位没有buff时 自我销毁
这样一来就可以比较完美的叠加毒的持续时间 而不至于造成以上不合理的现象
使用注意:
1.建议持续时间设置成毒伤害间隔时间的倍数+0.5倍毒伤害间隔时间(为什么?自己思考)
2.建议将毒伤害的计时器与buff的计时器分开(当模拟buff时)










