找回密码
 点一下
楼主: Renee

纯数据编辑器版通用致命一击[作废]

[复制链接]
发表于 2010-12-23 20:05:10 | 显示全部楼层
在最小的时间片内 是否有爆击Buff  就是循环的意义了
每次都要Remove每次都要按照一定几率添加 且必须是0.0625的最小时间片 保证了完整性
回复

使用道具 举报

发表于 2010-12-23 20:12:08 | 显示全部楼层
这样的话,我有一个疑问,飞弹塔每次攻击有两次效果,间隔是0.1秒,显然会被划分到两个时间段内。

可是头目的测试结果是飞弹塔的攻击一定是同时出现两次暴击的,那么这是怎么回事呢?
回复

使用道具 举报

 楼主| 发表于 2010-12-23 20:16:14 | 显示全部楼层
引用第21楼cccty1l于2010-12-23 20:12发表的  :
这样的话,我有一个疑问,飞弹塔每次攻击有两次效果,间隔是0.1秒,显然会被划分到两个时间段内。

可是头目的测试结果是飞弹塔的攻击一定是同时出现两次暴击的,那么这是怎么回事呢?

对,怎么回事呢?~~-hmmm~~

这是这个帖子的另外一个要点~~
回复

使用道具 举报

发表于 2010-12-23 20:28:18 | 显示全部楼层
还用猜的话,我心里过意不去呀,不过现在实在是没有办法测试呀

难道这是CEffectCreatePersistent的特性?跟演示无关?
回复

使用道具 举报

 楼主| 发表于 2010-12-23 20:33:54 | 显示全部楼层
其实“为什么两个都会暴击?”这个理由正是我用触发器实现动态几率暴击的基本原理之一。

大家可以看到,数据版我是用0.0625s的。这样高频率的操作显然不能用在触发器上,否则真的要卡死人的。所以才需要更高效的原理。
回复

使用道具 举报

 楼主| 发表于 2010-12-23 20:35:30 | 显示全部楼层
不过从这个例子上可以明显看出触发器和xml的执行效率差距。
回复

使用道具 举报

发表于 2010-12-23 20:46:23 | 显示全部楼层
我只能认为,武器发射的瞬间传达了武器树状效果的所有信息
回复

使用道具 举报

发表于 2010-12-23 21:06:28 | 显示全部楼层
每次Weapon的发动,在Persistent发动完之前,绝不会发动下一次Weapon

停止Weapon就会停止Persistent



记得好像有个地方可以设置,即使停止了Weapon,接下来的Persistent依然会发射出来
回复

使用道具 举报

 楼主| 发表于 2010-12-23 21:10:50 | 显示全部楼层
其实你们应该记得我的buff有效性是限定在攻击时。如果最终的伤害值是发动时再获取单位的攻击力的话,那就会变得毫无意义,因为无法保证命中时我的导弹塔还在攻击状态。

所以显然获取时机不会是在伤害时才获取。

那么,接下去就是,能准确说出效果树状结构获取它们的数据的时机么?利用这个时机我们可以用触发器来怎么实现几率致命一击呢?既不需要每0.0625秒操作一次,又能最大限度减少致命buff的存在时间但是又让它能发挥完全作用呢?
回复

使用道具 举报

 楼主| 发表于 2010-12-23 21:17:33 | 显示全部楼层
对了,前面一个地方补充一下。由于删除buff和添加buff是连续进行的操作,两者之间没有插入其余操作的余地。

具体SC2的时序运作方式我由于时间关系可能需要以后再讲了,这里就暂且先作为结论说下吧。
回复

使用道具 举报

 楼主| 发表于 2010-12-23 21:23:23 | 显示全部楼层
引用第15楼cccty1l于2010-12-23 19:42发表的  :
我才发现我对RemoveValidatorArray 和DisableValidatorArray 的理解完全错了,正好是相反的...

按照猫锅兄的说法,头目演示中的方法“并非在攻击的瞬间进行暴击判定”,而是只要攻击命令在命令队列第一位,就不断的执行ApplyCritSet,从而将是否暴击划分为一个个的时段,会造成暴击的时段占总时段的30%,这样不管攻击间隔大于、小于或者等于0.0625,暴击率都不受影响。

即使这个周期是10秒或者以上,在一个大时间段来看,暴击率还是30%,不过周期越短,暴击的分布越分散吧。


再说一下这个问题。按照这样的说法,整体几率是30%没错了,但是每次攻击之间失去了几率独立性。所以是不行。暴击需要的是每次攻击30%几率暴击才成。
回复

使用道具 举报

发表于 2010-12-23 21:33:42 | 显示全部楼层
但是(ApplyCritSet的周期)/(武器周期) > 1话,还是会造成这样的问题吧。

要造成每次攻击之间有“几率独立性”的假象的话,还是需要满足武器周期远大于ApplyCritSet的周期这个前提吧。
回复

使用道具 举报

 楼主| 发表于 2010-12-23 21:39:20 | 显示全部楼层
你看前面不是已经有人测试过了么。攻击频率=附加周期的情况。这时候早就不是远大于了。而且确实是几率独立的,又不是假象。

另外,武器攻击频率永远也不可能比我设定的0.0625还高,最多也只能相等。前面已经说过了,这就是SC2的时间单位。非但不会有比0.0625小的攻击间隔,而且任何单位的任何攻击间隔必定是0.0625的整数倍。
回复

使用道具 举报

发表于 2010-12-23 21:43:52 | 显示全部楼层
明白,这点我牢记了。
回复

使用道具 举报

 楼主| 发表于 2010-12-23 21:44:55 | 显示全部楼层
于是回到那个飞弹塔的问题吧~~
回复

使用道具 举报

发表于 2010-12-23 21:54:42 | 显示全部楼层
脚本的关联结构不是特别清晰~坐等他人了~嗯嗯

原子化的0.0625确实是亮点~
爆击和闪避都是自身属性这样去做感觉应该不会有什么问题~命中如何做呢...随便问问~突然想到的~
回复

使用道具 举报

发表于 2010-12-24 00:50:34 | 显示全部楼层
哎呀,还没有公布答案吗,想来看现成的说。

头目,还有一个问题,纯数据编辑器版的暴击我稍稍理解了原理了,但是对里面用到了CEffectRemoveBehavior不是很理解,单纯的给CritDamage加一个持续时间可以么?

修改为这样
[codes=xml]
行为
&#160;&#160;&#160;&#160;<CBehaviorBuff id="CritChance">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<DisableValidatorArray value="CasterIsAttacking"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<Period value="0.0625"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<InitialEffect value="ChanceApplyCrit"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<PeriodicEffect value="ChanceApplyCrit"/>
&#160;&#160;&#160;&#160;</CBehaviorBuff>
&#160;&#160;&#160;&#160;<CBehaviorBuff id="CritDamage">
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<Modification>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<DamageDealtFraction index="Melee" value="1"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<DamageDealtFraction index="Ranged" value="1"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<DamageDealtFraction index="Splash" value="1"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</Modification>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<RemoveValidatorArray value="CasterIsAttacking"/>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<Duration value="0.0625"/>
&#160;&#160;&#160;&#160;</CBehaviorBuff>
[/codes]

这样修改之后和之前会有什么不一样么?
回复

使用道具 举报

 楼主| 发表于 2010-12-24 03:52:07 | 显示全部楼层
完全不一样。要的就是删除和添加之间的无缝连接。用这法子就做不到。
回复

使用道具 举报

发表于 2010-12-24 04:41:59 | 显示全部楼层
意思是buff的持续时间不准?
回复

使用道具 举报

 楼主| 发表于 2010-12-24 05:02:29 | 显示全部楼层
不是不准。而是无法保证两个操作之间没有其它操作。

不要误会了最低间隔0.0625秒的意思。最低间隔0.0625秒并不是说我每0.0625秒执行一条动作。那是DOS时代的游戏。


有间隔的情况下,最低间隔是0.0625秒。但是操作可以没有间隔,也就是经过0的游戏时间。虽然就cpu时间来说不存在0时间间隔的说法,但是对游戏时间来说两个连续操作之间的经过的游戏时间是0。

虽然间隔是0,但不是同时,因为依然有先后顺序存在。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 08:52 , Processed in 0.127163 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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