找回密码
 点一下
查看: 1001|回复: 12

贴一段触发,求高手解释下这段触发什么意思

[复制链接]
发表于 2012-7-17 11:53:36 | 显示全部楼层 |阅读模式
看图

1.png
发表于 2012-7-17 12:15:33 | 显示全部楼层
事件:
不解释
条件:
1.判断布尔值
2.不解释
3.不解释
动作:
1.创建局部变量
2.设置整数变量
3.设置局部变量
4.不解释
5.设置布尔值变量
6.不解释
7.设置局部变量
8.设置布尔值变量

我猜你只想问自定义代码的意思,光是这一段触发完全不能解释触发的作用。
回复

使用道具 举报

 楼主| 发表于 2012-7-17 16:30:47 | 显示全部楼层
这个触发的作用是这样的:每次普通攻击获得8点怒气值,就跟魔兽世界里的战士一样。但是这个触发用被攻击事件来触发回蓝,而且能做到阻止 利用攻击前摇狂按S键来无限获得蓝 的BUG,通常战士的怒气我们都是通过接受伤害事件来捕捉的吧?为什么这个能无BUG通过被攻击事件来获得怒气值?
回复

使用道具 举报

 楼主| 发表于 2012-7-17 16:32:12 | 显示全部楼层
你知道的,被攻击事件触发的动作,在单位攻击没打下去之前我狂按 S 键,那么这个动作就会无限触发,不需要造成伤害就能触发
回复

使用道具 举报

发表于 2012-7-17 18:16:59 | 显示全部楼层
你可以完全无视自定义代码这东西来看...
作者加上自定义代码只是为了暂存里面用到的那个整数,来躲避0.9秒等待可能造成的bug
回复

使用道具 举报

发表于 2012-7-17 18:18:13 | 显示全部楼层

布尔值的功劳

攻击之后立即恢复魔法值,若0.9秒内再次触发了被攻击事件,则这次事件并不会恢复魔法值
并不完美的方法,如果单位自身的攻击速度超过0.9秒一次的话,这触发就会悲剧……
回复

使用道具 举报

发表于 2012-7-18 10:21:13 | 显示全部楼层
既然不懂这段代码估计你也是copy下来的吧  
建议搜索捕捉物理攻击   也许会对你有帮助
回复

使用道具 举报

发表于 2012-7-20 13:56:41 | 显示全部楼层
看了一排,就这个值得回答。

[trigger]
事件
        单位 - 任意单位 被攻击
条件
        (计时器数组[(攻击单位)的所有者 的玩家索引号)的剩余时间)   等于   0.00
        (((被攻击单位) 的所有者) 是 ((攻击单位) 的所有者) 的敌人) 等于 TRUE
        任一条件成立
            条件
                ((攻击单位) 的类型) 等于 圣骑士
                ((攻击单位) 的类型) 等于 大魔法师
动作
        计时器 - 运行:计时器数组[(((攻击单位) 的所有者) 的玩家索引号)],循环:一次性,间隔:0.90秒
        单位 - 设置 (攻击单位) 的魔法值为 (((攻击单位) 的 魔法值) + 8.00)
[/trigger]



触发事件不太好,但也没关系,建议用动态捕捉的单位受到伤害或者捕捉法球。

条件建议先判断单位类型和单位敌对,成立后再判断整数,可能还要加一个判断计时器剩余时间。

动作,没必要那么麻烦。
增加8点魔法
开始一个计时器并绑定到单位身上,计时器间隔0.9秒
下一次触发这个事件的时候判断计时器剩余时间,剩余时间等于0才运行动作,不成立就无视。





使用计时器远远比布尔值来的可靠的多,计时器剩余=0就是技能可以使用,计时器剩余时间>0就是技能正在冷却中。
回复

使用道具 举报

发表于 2012-7-20 15:42:17 | 显示全部楼层

回 『四裤全输』 的帖子

『四裤全输』:看了一排,就这个值得回答。

[trigger]
事件
唀位 - 任意单位 被攻击
.......(2012-07-20 13:56)嬀/color]
那如果  那个单位在0.9秒之内成功攻击次数大于1次呢...
回复

使用道具 举报

发表于 2012-7-20 16:16:08 | 显示全部楼层

回 tonylishi0 的帖子

tonylishi0:

那如果  那个单位在0.9秒之内成功攻击次数大于1次呢...

单位每发布一次攻击命令,触发一次事件,这个好理解吧。
你可以把计时器当做一个有冷却的被动技能,单位每次攻击都会试图发动这个技能,如果在冷却中,就不做任何动作。
如果冷却完毕,就发动技能并进入冷却状态。

这么做的好处是可以用哈希表或者游戏缓存+ReturnBug实现多玩家任意单位技能不冲突。
当然用全局变量就可以简单的实现多玩家不冲突了。

大致思路:
单位触发事件
开始计时器
如果计时器剩余时间>0,也就是说技能在冷却中,那么不做任何动作。
如果计时器时间=0,也就是说冷却完毕,那么就增加8点魔法值并让技能进入冷却。

举例说明:
攻击速度1.0
0.0秒 - 攻击并发动效果
0.9秒 - 技能冷却完毕
1.0秒 - 攻击并发动效果
1.9秒 - 技能冷却完毕
2.0秒 - 攻击并发动效果
…………………………

攻击速度0.01
0.00秒 - 攻击并发动效果
0.01秒 - 攻击,但是计时器剩余时间0.89秒,所以不发动技能效果
0.02秒 - 攻击,但是计时器剩余时间0.88秒,所以不发动技能效果
0.89秒 - 攻击,但是计时器剩余时间0.01秒,所以不发动技能效果
0.90秒 - 攻击,计时器剩余时间=0,发动效果并重新开始计时器。
1.79秒 - 攻击,但是计时器剩余时间0.01=(0.9*2-(0.9+0.89))秒,所以不发动技能效果
1.80秒 - 攻击,计时器剩余时间=0=(0.9*2-(0.9+0.9)),发动效果并重新开始计时器。
回复

使用道具 举报

发表于 2012-7-21 02:37:53 | 显示全部楼层
『四裤全输』:看了一排,就这个值得回答。
裤子又黑化了吗。。。
回复

使用道具 举报

发表于 2012-7-21 07:43:17 | 显示全部楼层

回 『四裤全输』 的帖子

『四裤全输』:单位每发布一次攻击命令,触发一次事件,这个好理解吧。
你可以把计时器当做一个有冷却的被动技能,单位每次攻击都会试图发动这个技能,如果在冷却中,就不做任何动作。
如果冷却完毕,就发动技能并进入冷却状态。
.......(2012-07-20 16:16)嬀/color]
我能看懂你触发的意思   可是根据3楼的描述   人家要的效果是每次攻击都恢复8点魔法值  那么单位的攻击频率是有提升空间的  所以  你举例的第二个  就满足不了人家的需求了
回复

使用道具 举报

发表于 2012-7-21 09:24:31 | 显示全部楼层

回 tonylishi0 的帖子

tonylishi0:

我能看懂你触发的意思   可是根据3楼的描述   人家要的效果是每次攻击都恢复8点魔法值  那么单位的攻击频率是有提升空间的  所以  你举例的第二个  就满足不了人家的需求了   
早说就是了。
直接法球模拟,或者动态注册单位收伤害事件。

法球模拟简单,单位受到伤害的时候捕捉法球buff。
动态注册事件参照DOTA食尸鬼盛宴。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-5 14:25 , Processed in 0.069359 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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