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

Project1

 找回密码
 注册会员
搜索
查看: 595|回复: 5
打印 上一主题 下一主题

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
33
在线时间
19 小时
注册时间
2022-11-21
帖子
25
跳转到指定楼层
1
发表于 2024-1-19 22:18:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
30星屑
我想设计一个攻击时又有火属性,又有水属性的武器,于是就分别在那个武器特性栏的加了两条相对应的“攻击时属性。”

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

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

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

Lv4.逐梦者

梦石
0
星屑
7180
在线时间
1317 小时
注册时间
2018-9-29
帖子
504
2
发表于 2024-1-19 23:03:45 | 只看该作者
我就只講原生的情況
他會計算最有優勢的屬性

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

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

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

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

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

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
33
在线时间
19 小时
注册时间
2022-11-21
帖子
25
3
 楼主| 发表于 2024-1-19 23:06:11 | 只看该作者
sunhihi 发表于 2024-1-19 23:03
我就只講原生的情況
他會計算最有優勢的屬性

好滴,我去看看
回复

使用道具 举报

Lv3.寻梦者

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

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

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

使用道具 举报

Lv1.梦旅人

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

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

使用道具 举报

Lv3.寻梦者

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

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

我给你举个例子吧:
你将一个技能做成下面这样


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

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

公共事件清除状态就是一行事件:


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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 23:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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