找回密码
 点一下
查看: 1896|回复: 21

救命啊~触发器语法错误?

[复制链接]
发表于 2011-4-15 21:58:19 | 显示全部楼层 |阅读模式
用头目做的演示:获取武器速度。然后新建了一个变量(实数)-算法,想让这个武器速度乘以一个常数,结果报错了,可能是小弟做法上有错误,各位帮忙看一下啊。另外如果能把这个速度乘以15,然后我怎么才能把它跟武器联系起来呢,想让每次武器开火时候如果命中施法者就回复一定生命值。用“单位开始攻击”试了一下,好像只能触发一次。
发表于 2011-4-15 23:17:54 | 显示全部楼层
没太看明白。。。汗。。。unit?还是uint....
变量还能这么初始化。。。汗,我一直用修改变量的函数。。。
回复

使用道具 举报

发表于 2011-4-15 23:22:49 | 显示全部楼层
看明白了,你是通过一个函数Unit Weapon Speed,取得一个单位的武器速度。

unit是单位变量

可是你这里用 进行触发的单位 能用吗?

不在函数体内,如何获得触发的单位变量?
回复

使用道具 举报

发表于 2011-4-15 23:23:45 | 显示全部楼层
好复杂,等大大来吧
回复

使用道具 举报

 楼主| 发表于 2011-4-15 23:45:50 | 显示全部楼层
我也不太懂,原来进行触发的单位只有在函数内有用
那么变量中是不是该用“无单位”呢?就因为这个才会报错说:“语法错误”的吧
事件中怎么设置才能让单位每次攻击命中都执行动作?
回复

使用道具 举报

发表于 2011-4-15 23:47:32 | 显示全部楼层
事件的触发设置成 单位开始攻击
回复

使用道具 举报

发表于 2011-4-15 23:49:00 | 显示全部楼层
我明白了,你要让单位根据攻击量来进行比例吸血对吧。。。
回复

使用道具 举报

 楼主| 发表于 2011-4-16 00:05:52 | 显示全部楼层
对的,单位开始攻击是不是只能一次性执行动作啊?如果单位一直在攻击,貌似不会每次攻击都执行一次动作。也可能是我自己搞错了。。。
回复

使用道具 举报

发表于 2011-4-16 00:07:23 | 显示全部楼层
汗,,,如果能获得每次伤害就好了。。。没研究过。魔兽WE这方面资料挺多
回复

使用道具 举报

发表于 2011-4-16 00:20:58 | 显示全部楼层
呐个,unit weapon speed是神马,简体中文版的话貌似没有这个函数,试试看武器冷却时间(UnitWeaponPeriod)
回复

使用道具 举报

发表于 2011-4-16 00:26:40 | 显示全部楼层
那是他自定义的一个接口函数
回复

使用道具 举报

发表于 2011-4-16 00:37:19 | 显示全部楼层
直觉告诉我,错误可能是因为那个接口函数
回复

使用道具 举报

发表于 2011-4-16 00:41:53 | 显示全部楼层
人家已经搞定啦。。。是变量设置错误了
回复

使用道具 举报

发表于 2011-4-16 01:20:23 | 显示全部楼层

回 12楼(狼不归) 的帖子

好吧...不过刚刚试了下,如果是自定义的接口函数就会报错,用内建的话不会
回复

使用道具 举报

发表于 2011-4-16 06:39:22 | 显示全部楼层
这里报错的原因在于自定义函数的声明实际上是在全局变量赋初值语句的后面的。所以在GUI里是无法给全局变量赋初值时使用自定义函数。

不过触发单位,触发XXXX这些东西,只有在触发器内才能使用。就算你编辑器不报错,到了游戏里还是一样报错。无意义。


另外UnitWeaponSpeed是我在另一个帖子里发的自定义函数,用来获得武器速度的,就是武器界面上显示的那个。和UnitWeaponPeriod()是完全不同的两个函数。冷却和速度是两样的。
回复

使用道具 举报

发表于 2011-4-16 07:42:15 | 显示全部楼层
至于楼主的另外一个问题,下面这段触发可以实现机枪兵命中目标后回当前攻击间隔15倍的血的效果。



[trigger]
WeaponDamage
    Events
        Environment - Player Any Player uses Effect Marine - Guass Rifle (Damage)
    Local Variables
        life = 0.0 <Real>
        Period = 0.0 <Real>
        Caster = (Triggering Effect Unit(Caster)) <Unit>
    Conditions
        (Triggering Effect Amount (Real)(Damaged, false)) > 0.0
    Actions
        Variable - Set life = (Caster Life (Current))
        Variable - Set Period = (Unit Weapon Speed(Caster, 1))
        Variable - Set life = (life + (Period * 15.0))
        Unit - Set Caster Life to life
[/trigger]

实现注册好武器对应的伤害效果。另外SC2里的闪避是用将伤害减为0实现的。因此就加个伤害>0判断是否命中吧。

Weapon Speed.SC2Map

213 KB, 下载次数: 6

回复

使用道具 举报

 楼主| 发表于 2011-4-16 19:13:56 | 显示全部楼层
如果机枪兵本来没武器,从商店买各种武器,这个时候不能用某一个武器的伤害效果来做成事件,是不是要把所有能用到的武器效果都列在这里呢?还是有更好的办法?
有没有“当前武器所用的伤害效果”呢,没有看到啊
回复

使用道具 举报

发表于 2011-4-16 19:20:27 | 显示全部楼层
这是做不出通用函数的。虽然可以查catalog得知某个武器会关联到哪些效果。但是哪个效果是主要的伤害效果是不能知道的。因为这是作者主观问题。比方说,一个武器是aoe效果。其中对两种目标造成两种不同伤害。那伤害效果算哪个。并非所有的武器都是单纯的直接伤害。

所以你还不如事先就自己做一张表,记下哪个武器对应哪个效果。
回复

使用道具 举报

 楼主| 发表于 2011-4-16 19:26:04 | 显示全部楼层
恩,好的了解了谢谢头目帮我又解决一道难题~
回复

使用道具 举报

 楼主| 发表于 2011-4-16 19:54:14 | 显示全部楼层
关于此项最后一个问题~~~发现事件中只能选择一个效果,想把所有能用到的效果列举出来要怎么做?不知道怎么多选啊。。。要用到哪个函数能够多选效果值?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 06:43 , Processed in 0.071715 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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