原创
修改一处逻辑错误,随着时间增加,系数应该直接减去一个数,这个数就是1%*10%*时间。而不是原来的逻辑
之前利用dll是很方便,但是不适合直连。纯xml可以利用替代方案来模拟最大生命值的伤害,但是相对繁琐很多
还是用之前的buff.xml。xml中仅仅有一个<triggered_effect trigger=”onSelfBuffUpdate” action=”ModifyStats” stat=”Health” operation=”multiply” value=”0.99″/>代码可以模拟出每秒造成当前生命值1%的伤害效果。但我们仅需要利用一点数学和excel知识就可以取巧的去实现最大生命值伤害。
已知当前血量为50% 每秒伤害为1%一秒拆分成两次伤害那下0.5秒后你的生命值应该为49.5%,是本秒生命值的0.99倍那么50%和40%的系数差距不大那么我们就可以把生命值拆分为10个区间,计算出每个区间大致的系数然后buff更新时让当前生命值乘以这个系数就行了,由于百分比越小差距越大,所以我们在低生命值时要写密集一点,且在生命值为1%或之下时要直接让敌人生命值为1,然后让火焰伤害烫死。
我们先写出一段效果
<triggered_effect trigger=”onSelfBuffUpdate” action=”ModifyCVar” cvar=”燃烧系数” operation=”set” value=”0.995″><requirement name=”StatComparePercCurrentToMax” stat=”health” operation=”GT” value=”0.9″/><requirement name=”StatComparePercCurrentToMax” stat=”health” operation=”LTE” value=”1″/></triggered_effect>
然后在excel中拆分一下
然后公式写好,往下一拉,批量生成代码,复制进xml就行了
然后让时间系数初始为0每0.5秒加0.05。最后让生命值乘数减少这个时间系数就完成每秒递增效果了。记得每秒乘数变成小于等于0时或低于斩杀值的时候让生命值变成1(别变成0,没经验)
进游戏测试完成。如果想精细一点可以每1%设定一个系数,反正都是excel生成一秒的事儿
隐藏内容需要回复可以看见
感谢大佬的付出,赞一个!
感谢大佬的付出,赞一个!
感谢大佬的付出,赞一个!这个逼装的我给82分,剩下的用666的方式打给你!
感谢大佬的付出,赞一个!
这个逼装的我给82分,剩下的用666的方式打给你!
感谢大佬的付出,赞一个!
感谢大佬的付出,赞一个!这个逼装的我给82分,剩下的用666的方式打给你!