找回密码
 点一下
查看: 923|回复: 25

实在是不好意思麻烦前辈们了,最近问了好多.

[复制链接]
发表于 2016-10-24 16:57:39 | 显示全部楼层 |阅读模式
最近问了好多关于命中和躲闪的问题,我在制作和学习中也是在逐步完善自己的想法或者说改变自己的需求,现在感觉做弹道固定落点,或者攻击效果命中率都不能很好的解决我这个小游戏的需求,请问星际里面有没有像魔兽争霸那样的敏捷决定单位闪避的几率的属性,我不需要二级属性也不需要敏捷其实,我现在就是想要闪避这个属性,我这里做的单位的需求其实很简单,就是大型的单位耐打,小型的单位能躲闪,请问这个能比较灵活的实现吗???
发表于 2016-10-24 17:24:21 | 显示全部楼层
我给你说说做的思路吧
设置一个  增益行为
修改行为  伤害响应 里面的几率和系数
几率和系数1是100%,,你按百分比设置就行了

又或者
吧上面的行为分成2个,一个是几率行为,一个是系数行为,

几率为0.01,系数为0.99,

单位创建的时候添加你想要的行为层数,100层我不知道是不是100%,你要试验,又可能不是
纯属个人意见
回复

使用道具 举报

发表于 2016-10-24 18:09:57 | 显示全部楼层
楼主需要更多的沉淀...

"星际里面有没有像魔兽争霸那样的敏捷决定单位闪避的几率的属性"

我可以这样回答楼主,某撸、dota2、dota1中的所有效果,在星际2里都可以完美的做出来。

完美与不完美的区别只是看你花多大的功夫(大部分的效果用数据编辑器可以实现,但是有瑕疵,100%的效果可以结合触发器完成)。

然而最重要的是,能做出来需要的技术不是某个点,某个方面的,而是对整个编辑器的熟悉。

首先你想做闪避,我是做过很多这类效果的,我觉得可以提供一些思路给你:

第一类闪避:完美的闪避

远程单位的弹道如果被闪避,那么弹道落点会在发射时的目标单位点,而不是目标的当前点(因为单位会移动)
近战单位的攻击如果被闪避,那么不会出现攻击特效(附魔效果,比如攻击燃烧魔法、击晕效果; 受攻击特效,比如dota小小的受攻击概率击晕目标;攻击音效、攻击的轰击模型特效)

这类闪避是无法通过完整系统实现的,也就是说,如果你用默认的一些设定,不能通过之后的修改来完成,但是可以通过修改伤害效果本身来完成。

比如发射物类:每个发射物创建2 个 发射物类型,第一目标类型为单位或点,第二个为目标单位点,并且没有轰击伤害。
                     通过一系列的闪避判定,决定发射时使用的是 普通发射物效果,还是被闪避的发射物效果

近战攻击类同理。

也就是说,你想做一个完美的闪避系统,是不可能的事情,因为工作量太大。除非你结合触发器自己写一套 发射物+伤害的函数,然而这个也是需要从头做起的。
你有这个耐心么?

第二类闪避:实际效果的不完美闪避

修改实际游戏的效果,而不管美术层面的效果。

行为里面可以通过修改伤害系数来修改伤害数值,调整为0 即为闪避。

附魔类效果可以通过最近新加入的行为伤害响应来完成。该次伤害响应,将可以添加分类或者阻止分类。

比如buff1:攻击时 造成 1 秒击晕。 (这个行为可以添加一个 附魔 分类)
buff2:受到攻击时 20% 的概率闪避(这个行为可以添加一个 闪避 的分类,并且添加所有的阻止分类,因为这次伤害并没有产生,所以其他的攻击特效也不应该出现。)

同时,buff2的伤害响应优先级应该设定高于 击晕buff1 的优先级,不然会先判定击晕,后判定闪避,这是不科学的。

这已经是我所知的最灵活的做法了,你只需要改动数据编辑器便可以完成效果,并且操作起来相当轻松。
然后的一点,就是比较重要的,所谓的:动态闪避率。

这个需要结合触发器来完成了。
你可以写一个触发器,在单位受到特定伤害类型时,添加一个百分百闪避概率的行为给该单位,并在这个行为触发闪避后移除这个行为。同时这个行为应该是隐藏的。
这样的话,便可以完成一个自己指定的闪避概率了,而因为闪避行为被隐藏了,实际上你不知道哪次攻击会被闪避,所以实际效果是一样的。

点评

无论是给施法单位还是目标单位套一个修改伤害系数的buff都可能会导致错误响应,感觉这个不是很好。  详情 回复 发表于 2016-10-28 21:14
实在是不好意思,前辈,我研究了几天没弄明白,我基础太差了,你第二段说的那个不改美术更改实际游戏效果的闪避,我没看懂,请问你是不是想要做闪避的单位身上添加一个行为,行为里面用伤害响应修改受到的伤害改成0就相当与  详情 回复 发表于 2016-10-27 21:17
啊,多谢前辈给我的详细讲解,我这种初学菜鸟还需要慢慢体会,如果真的过于复杂的话我想我还是要改变自己现有的需求吧,我先按照你说的再去想想做做看,总之多谢了.  详情 回复 发表于 2016-10-24 18:22
回复

使用道具 举报

 楼主| 发表于 2016-10-24 18:22:52 | 显示全部楼层
东方油瓶 发表于 2016-10-24 18:09
楼主需要更多的沉淀...

"星际里面有没有像魔兽争霸那样的敏捷决定单位闪避的几率的属性"

啊,多谢前辈给我的详细讲解,我这种初学菜鸟还需要慢慢体会,如果真的过于复杂的话我想我还是要改变自己现有的需求吧,我先按照你说的再去想想做做看,总之多谢了.
回复

使用道具 举报

 楼主| 发表于 2016-10-27 21:17:34 | 显示全部楼层
东方油瓶 发表于 2016-10-24 18:09
楼主需要更多的沉淀...

"星际里面有没有像魔兽争霸那样的敏捷决定单位闪避的几率的属性"

实在是不好意思,前辈,我研究了几天没弄明白,我基础太差了,你第二段说的那个不改美术更改实际游戏效果的闪避,我没看懂,请问你是不是想要做闪避的单位身上添加一个行为,行为里面用伤害响应修改受到的伤害改成0就相当与躲闪了.还有如果攻击附带一个减速效果如何实现你说的即闪避了这次伤害又把这次伤害附加的减速效果闪避了呢,您后面说的什么添加,阻止分类我完全看不懂.
回复

使用道具 举报

发表于 2016-10-28 21:14:24 | 显示全部楼层
东方油瓶 发表于 2016-10-24 18:09
楼主需要更多的沉淀...

"星际里面有没有像魔兽争霸那样的敏捷决定单位闪避的几率的属性"

无论是给施法单位还是目标单位套一个修改伤害系数的buff都可能会导致错误响应,感觉这个不是很好。

点评

不想某些效果被响应就不包括哪些效果,不想哪些单位或单位类型响应就用验证器去排除。 总之个人认为现在的伤害响应经过了风暴英雄的优化已经相当成熟了,尤其是可以使用验证器以后,潜力很大。 目前自己做的也  详情 回复 发表于 2016-11-3 03:56
思路没有问题,错误响应属于bug,可以用各种方式去修正。比如验证器。  详情 回复 发表于 2016-11-3 03:52
回复

使用道具 举报

发表于 2016-11-3 03:52:39 | 显示全部楼层
yxxiaobin 发表于 2016-10-28 21:14
无论是给施法单位还是目标单位套一个修改伤害系数的buff都可能会导致错误响应,感觉这个不是很好。

思路没有问题,错误响应属于bug,可以用各种方式去修正。比如验证器。
回复

使用道具 举报

发表于 2016-11-3 03:56:50 | 显示全部楼层
yxxiaobin 发表于 2016-10-28 21:14
无论是给施法单位还是目标单位套一个修改伤害系数的buff都可能会导致错误响应,感觉这个不是很好。

不想某些效果被响应就不包括哪些效果,不想哪些单位或单位类型响应就用验证器去排除。

总之个人认为现在的伤害响应经过了风暴英雄的优化已经相当成熟了,尤其是可以使用验证器以后,潜力很大。

目前自己做的也大规模用伤害响应,并没有发现什么bug,而发现的少量bug,也都是可以修复的。

点评

某些情况可能是:不想某个单位的某次攻击命中。因为可能存在多种同类单位,使用同样的效果树。验证器似乎很难判断“这个单位是那个单位”这种事。当然触发器很容易,但是在星际2里,这个似乎是让人很不爽的事。  详情 回复 发表于 2016-11-6 13:24
回复

使用道具 举报

发表于 2016-11-6 13:24:57 | 显示全部楼层
东方油瓶 发表于 2016-11-3 03:56
不想某些效果被响应就不包括哪些效果,不想哪些单位或单位类型响应就用验证器去排除。

总之个人认为现 ...

某些情况可能是:不想某个单位的某次攻击命中。因为可能存在多种同类单位,使用同样的效果树。验证器似乎很难判断“这个单位是那个单位”这种事。当然触发器很容易,但是在星际2里,这个似乎是让人很不爽的事。

点评

没办法,静态的结构肯定无法做到触发器这样的层面的。  详情 回复 发表于 2016-11-6 23:55
回复

使用道具 举报

发表于 2016-11-6 23:55:42 | 显示全部楼层
yxxiaobin 发表于 2016-11-6 13:24
某些情况可能是:不想某个单位的某次攻击命中。因为可能存在多种同类单位,使用同样的效果树。验证器似乎 ...

没办法,静态的结构肯定无法做到触发器这样的层面的。

点评

所以单纯的使用验证器无法避免误发动。这个问题我曾经思考过好久,始终没有一个简单而完美的实现方案。而使用触发器的话,要想精确控制也并不是很容易的一件事,一不小心就要出bug。总之这是很恶心人的一件事,后来  详情 回复 发表于 2016-11-7 20:29
回复

使用道具 举报

发表于 2016-11-7 20:29:51 | 显示全部楼层
东方油瓶 发表于 2016-11-6 23:55
没办法,静态的结构肯定无法做到触发器这样的层面的。

所以单纯的使用验证器无法避免误发动。这个问题我曾经思考过好久,始终没有一个简单而完美的实现方案。而使用触发器的话,要想精确控制也并不是很容易的一件事,一不小心就要出bug。总之这是很恶心人的一件事,后来就放弃了。

点评

其实可以使用转折的办法,只用行为去完成伤害修正,判定由触发器来做。 目前遇到的比较难的问题就是,某些需要即时改变的伤害量(比如根据属性去修正) 可以通过数据模板来修改,然后每次应用前去改变这个量,可  详情 回复 发表于 2016-11-8 13:52
回复

使用道具 举报

发表于 2016-11-8 13:52:32 | 显示全部楼层
yxxiaobin 发表于 2016-11-7 20:29
所以单纯的使用验证器无法避免误发动。这个问题我曾经思考过好久,始终没有一个简单而完美的实现方案。而 ...

其实可以使用转折的办法,只用行为去完成伤害修正,判定由触发器来做。

目前遇到的比较难的问题就是,某些需要即时改变的伤害量(比如根据属性去修正)
可以通过数据模板来修改,然后每次应用前去改变这个量,可是这有一个问题。
那就是触发器的响应是在数据之后的,修改伤害量→伤害响应效果出现→触发器事件启动。
因此不能在判定的瞬间去修正,必须在之前修正。

而静态的修正量,个人认为,没有什么可以去阻挡的啊。
完全可以用触发器代判定,然后在条件完成时添加0.0625秒的响应行为,或者一次触发延迟 0.0625秒后移除行为。总之很多种做法呀。行为只是一个修改的方法。

当然,如果需要制作非常完善并且大型的地图,那么还是全伤害由触发器给予比较稳妥,当然这是地图已经发展起来之后考虑的事情了...曾经就是这样做的,但是感觉然并卵,因为不是每张地图都有发展潜力的...所以用现在的行为判定来完成一些有小瑕疵的效果,感觉也是可行的不是么~。

点评

尽管原理并不复杂,演示也可以很简单,但是真正用于一个复杂的游戏地图时,一套完善的触发器伤害控制系统是很难实现的,至少需要大量的调校和测试。我感觉自己真没这耐心来完成它。尤其是这种系统很难做成普适的,单  详情 回复 发表于 2016-11-8 14:49
回复

使用道具 举报

发表于 2016-11-8 14:49:33 | 显示全部楼层
东方油瓶 发表于 2016-11-8 13:52
其实可以使用转折的办法,只用行为去完成伤害修正,判定由触发器来做。

目前遇到的比较难的问题就是, ...

尽管原理并不复杂,演示也可以很简单,但是真正用于一个复杂的游戏地图时,一套完善的触发器伤害控制系统是很难实现的,至少需要大量的调校和测试。我感觉自己真没这耐心来完成它。尤其是这种系统很难做成普适的,单单为一张图开发一个系统成本是很不划算的。我开始其实是想做一个公用mod,但是发现很多问题难以做到普适,甚至是必须要地图作者来迁就mod,这样的mod就没什么意思了。

点评

我感觉最好的mod就是 编辑器本身吧.... 适用不同地图的系统某种层面说根本不存在,因为存在了就代表着创意的枯竭。  详情 回复 发表于 2016-11-8 15:48
回复

使用道具 举报

发表于 2016-11-8 15:48:58 | 显示全部楼层
yxxiaobin 发表于 2016-11-8 14:49
尽管原理并不复杂,演示也可以很简单,但是真正用于一个复杂的游戏地图时,一套完善的触发器伤害控制系统 ...

我感觉最好的mod就是 编辑器本身吧....

适用不同地图的系统某种层面说根本不存在,因为存在了就代表着创意的枯竭。

点评

这话有道理。  发表于 2016-11-10 13:00
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-23 02:32 , Processed in 0.058523 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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