查看: 1343|回复: 5

[有事请教] 关于多属性问题

[复制链接]
梦石
0
星屑
33
在线时间
19 小时
注册时间
2022-11-21
回帖
13
发表于 2024-1-19 22:18:00 | 显示全部楼层 |阅读模式
悬赏30星屑未解决
我想设计一个攻击时又有火属性,又有水属性的武器,于是就分别在那个武器特性栏的加了两条相对应的“攻击时属性。”

然后我又发现,原来技能却只能设定单一的属性。

那么我想请教一下大佬们,在上述的情况下,武器攻击的多属性如何计算?是均摊分别计算还是攻击时仅生效当前最有利的属性?

另外就是我如果我想把战斗技能做成多属性的复合体,应该怎么做?仅用事件可以实现:合计一段的多属性伤害/分别为不同属性的多段伤害吗?,能实现二者中的一种就行,我想拓展一下可玩性和表现力

梦石
0
星屑
8580
在线时间
1499 小时
注册时间
2018-9-29
回帖
543
发表于 2024-1-19 23:03:45 | 显示全部楼层
我就只講原生的情況
他會計算最有優勢的屬性

如果你的武器是火屬性
身上被附加水屬性的攻擊屬性

敵人弱水的情況 就會直接用水屬性去計算

如果你使用的技能是雷屬性
既使武器是火屬性
身上被附加了水屬性

打在敵人身上也是以雷屬性計算

如果你想要實現多段技能不同屬性
原生環境做不到巴

你去找能夠實現追擊的插件
並且還要能夠指定追擊技能的插件
然後使用兩種不同屬性的技能做追擊
就可以達到你想要的效果
回复

使用道具 举报

梦石
0
星屑
33
在线时间
19 小时
注册时间
2022-11-21
回帖
13
 楼主| 发表于 2024-1-19 23:06:11 | 显示全部楼层
sunhihi 发表于 2024-1-19 23:03
我就只講原生的情況
他會計算最有優勢的屬性

好滴,我去看看
回复

使用道具 举报

梦石
0
星屑
955
在线时间
84 小时
注册时间
2018-12-18
回帖
83
发表于 2024-1-23 16:22:28 | 显示全部楼层
普通攻击属性是取你当前身上所有属性中伤害比率最高的
技能属性是无视普通攻击属性,只以技能设定的属性为主
当然你可以把技能属性设置成普通攻击,那么这个技能就按照普通攻击的属性方式计算

另外就设计的角度来讲,好像很难设计一种单一伤害但吃多种属性克制的效果,因为这种其实是不合理的,比如怪弱水,但抗火(指火属性完全不受伤害),此时你释放一个技能同时拥有两种属性,那这个时候怪到底掉不掉血呢?
正常情况下大部分游戏都是一段伤害只有一段属性来计算的,想要实现多种属性的攻击一般都是以多段数的伤害来实现,像物法混伤,很多游戏都是将伤害分成两次来分别计算物理和法术来结算的

最后就是事件实现多属性伤害的问题,理论上这个属性的计算是需要修改底层的核心机制了,不改代码的情况下是没办法从根本改变这个的,也就是说只能通过取巧的方式,比如技能本身只有一种属性,甚至是没有属性,但你在技能伤害那一栏手动获取b的属性比率来计算,这种方式我不清楚会不会遇到什么大问题,但就效果来说应该能满足这个需求,因为本质上技能伤害就是在拿a的攻击力和b的防御力进行计算,你完全可以在里面再加上a的攻击属性和b的属性抗性一起计算,不过切记这个计算结果还是会走一遍底层的属性比率,所以一定要把双方的属性有效度控制在1
回复

使用道具 举报

梦石
0
星屑
33
在线时间
19 小时
注册时间
2022-11-21
回帖
13
 楼主| 发表于 2024-1-23 17:08:30 | 显示全部楼层
蹲厕所的女孩 发表于 2024-1-23 16:22
普通攻击属性是取你当前身上所有属性中伤害比率最高的
技能属性是无视普通攻击属性,只以技能设定的属性为 ...

那请问如果我只想做多段结算的伤害,应该怎么做呢?可以用事件做吗?
回复

使用道具 举报

梦石
0
星屑
955
在线时间
84 小时
注册时间
2018-12-18
回帖
83
发表于 2024-1-23 18:29:19 | 显示全部楼层
绅士兔 发表于 2024-1-23 17:08
那请问如果我只想做多段结算的伤害,应该怎么做呢?可以用事件做吗? ...

上面不是说了吗,用技能伤害写判断啊,用状态来作为技能阶段数来判定,纯用事件我想不到有什么很好的办法

我给你举个例子吧:
你将一个技能做成下面这样
QQ截图20240123182331.png

技能伤害那一栏是这个:b.isStateAffected(4) ? 20 * b.elementRate(2) : 20 * b.elementRate(3);
这个原理就是判断目标身上是否拥有中毒状态(默认新工程4号状态就是中毒),如果有,就计算20*火属性抗性,如果没有,就计算20*水属性抗性

这个技能意思就是打两次,第一次会判断目标身上没有中毒状态,因此就计算水属性抗性,然后附加中毒状态
第二次会判断目标身上有中毒状态,就计算火属性抗性
最后再调用公共事件移除所有敌人的中毒状态即可
这个中毒状态你可以单独做成一个新的属于该技能对应的状态,没有任何效果即可,如果不想显示状态图标也可以直接把状态图标设置成空白就行了

公共事件清除状态就是一行事件:
QQ截图20240123182818.png

以上应该已经很清楚了吧,三段四段五段N段都是一样的
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部