找回密码
 点一下
楼主: 拜里热就脱

为什么有个触发开启后,另一个触发会在两次事件后才被触发

[复制链接]
发表于 2012-4-15 21:54:26 | 显示全部楼层
  如果我是你的话,出现这种没头脑的问题我宁愿重新把技能写一遍。

  对触发熟悉还是很重要啊
回复

使用道具 举报

 楼主| 发表于 2012-4-15 22:00:28 | 显示全部楼层
喔厚厚 ,我把触发改成这样,貌似就行了:
[trigger]SP1
    事件
        单位 - 任意单位 发动技能效果
    条件
        ((施法单位) 的 碎片导弹  技能等级) 等于 1
        (施放技能) 等于 碎片导弹
    动作
        特殊效果 - 在 (((施法单位) 的位置) 坐标位移 (300.00, 300.00)处) 创建特效: Abilities\\Spells\\Human\\Flare\\FlareTarget.mdl
        特殊效果 - 在 2.00 秒后删除 最后创建的特效 <New>
        点 - 清除 (((施法单位) 的位置) 坐标位移 (300.00, 300.00)处)
        特殊效果 - 在 (((施法单位) 的位置) 坐标位移 (-300.00, 300.00)处) 创建特效: Abilities\\Spells\\Human\\Flare\\FlareTarget.mdl
        特殊效果 - 在 2.00 秒后删除 最后创建的特效 <New>
        点 - 清除 (((施法单位) 的位置) 坐标位移 (-300.00, 300.00)处)
        特殊效果 - 在 (((施法单位) 的位置) 坐标位移 (-300.00, -300.00)处) 创建特效: Abilities\\Spells\\Human\\Flare\\FlareTarget.mdl
        特殊效果 - 在 2.00 秒后删除 最后创建的特效 <New>
        点 - 清除 (((施法单位) 的位置) 坐标位移 (-300.00, -300.00)处)
        特殊效果 - 在 (((施法单位) 的位置) 坐标位移 (300.00, -300.00)处) 创建特效: Abilities\\Spells\\Human\\Flare\\FlareTarget.mdl
        特殊效果 - 在 2.00 秒后删除 最后创建的特效 <New>
        点 - 清除 (((施法单位) 的位置) 坐标位移 (300.00, -300.00)处)
        等待 1.00 秒(游戏时间)
        单位组 - 选取 (半径为 1000.00 圆心为 ((施法单位) 的位置) 且满足 ((((匹配单位) 是 ((施法单位) 的所有者) 的敌对单位) 等于 TRUE) 且 (((匹配单位) 是存活的) 等于 TRUE)) 的所有单位) 内所有单位做动作
            Loop - 动作
                特殊效果 - 创建并绑定特效到 origin 对 (选取单位) ,使用模型: Abilities\\Weapons\\SteamTank\\SteamTankImpact.mdl
                特殊效果 - 在 0.00 秒后删除 最后创建的特效 <New>
                单位 - 命令 (施法单位) 对 (选取单位) 造成 280.00 点伤害(是 攻击伤害, 不是远程攻击) 攻击类型: 英雄 伤害类型: 普通 武器类型: 无
                系统<YDWE> - 设置 (选取单位) 的附加 攻击 减少 36
                系统<YDWE> - 设置 (选取单位) 的附加 防御  减少 3
                单位 - 为 (选取单位) 添加 碎片导弹 1
                单位 - 设置 (选取单位) 打开 碎片导弹 1 永久性
        点 - 清除 ((施法单位) 的位置)
        等待 8.00 秒(游戏时间)
        单位组 - 选取 (半径为 1000000000.00 圆心为 ((可用地图区域) 的中心点) 且满足 (((匹配单位) 的 碎片导弹 1 技能等级) 等于 1) 的所有单位) 内所有单位做动作
            Loop - 动作
                系统<YDWE> - 设置 (选取单位) 的附加 攻击 增加 36
                系统<YDWE> - 设置 (选取单位) 的附加 防御  增加 3
                单位 - 为 (选取单位) 删除 碎片导弹 1
                单位 - 删除 碎片导弹  从 (选取单位)
        点 - 清除 ((可用地图区域) 的中心点)
[/trigger]
[trigger]SP3
    事件
        单位 - 任意单位 发动技能效果
    条件
        ((触发单位) 的 碎片导弹  技能等级) 等于 1
        (施放技能) 等于 碎片导弹
    动作
        触发器 - 关闭 SP3 <预设>
        单位组 - 选取 ((可用地图区域) 内满足 (((匹配单位) 的 碎片导弹 1 技能等级) 等于 1) 的所有单位) 内所有单位做动作
            Loop - 动作
                检查 ((((可用地图区域) 内存在 (选取单位)) 等于 FALSE) or (((选取单位) 拥有 碎片导弹 ) 等于 FALSE)) 每隔 1.00 秒(直到条件成立)
                系统<YDWE> - 设置 (选取单位) 的附加 攻击 增加 36
                系统<YDWE> - 设置 (选取单位) 的附加 防御  增加 3
                单位 - 为 (选取单位) 删除 碎片导弹 1
        等待 1.00 秒(游戏时间)
        触发器 - 运行 (当前触发) (无视条件)
       [/trigger]
特效就能和伤害,减攻击护甲,增技能一起触发了,不过这样好吗
回复

使用道具 举报

发表于 2012-4-15 22:15:48 | 显示全部楼层
你的图 打开了 没法测试会报错的 但同一个事件就不能整合吗 加个条件限制一下就行了吧
回复

使用道具 举报

 楼主| 发表于 2012-4-15 22:20:24 | 显示全部楼层
我的是YDWE1.2.1
回复

使用道具 举报

发表于 2012-4-15 22:44:26 | 显示全部楼层
好吧。。效果能用了吗~
那么恭喜了~
准备好接受冷水的洗礼了吗~
   

SP1里
[trigger]特殊效果 - 在 (((施法单位) 的位置) 坐标位移 (300.00, 300.00)处) 创建特效: ……
…………
点 - 清除 (((施法单位) 的位置) 坐标位移 (300.00, 300.00)处)
[/trigger]
这样根本就没有排泄,LZ一共创建了两个点,然后删了其中一个
(((施法单位) 的位置) 坐标位移 (300.00, 300.00)处) 这个动作会创建点,于是在特效那里创建一个点,在点清除动作里又创建了一个,然后删除后创建的这个点,而特效里创建的点没排泄

所以正确的应该用变量记录,然后删变量
[trigger]设置 P=(((施法单位) 的位置) 坐标位移 (300.00, 300.00)处)[/trigger]
然后特效创建在P,点 - 清除P
这样特效里创建的和点清除的都是同一点

后面都是这样的问题,包括可用地图的中心点那个也是
如果按照LZ的写法,这个技能使用一次(即SP1运行一遍,SP3没有创建点)就会造成六个点泄漏(用的是21楼的触发,即前面那些看起来像是为了测试加的特效动作也算)

[trigger]特殊效果 - 创建并绑定特效到 origin 对 (选取单位) ,使用模型: Abilities\\Weapons\\SteamTank\\SteamTankImpact.mdl
特殊效果 - 在 0.00 秒后删除 最后创建的特效[/trigger]
反正都是创建就删除的,何不写成:
[trigger]特殊效果 - 删除(创建并绑定特效到 …… )[/trigger]

[trigger]单位组 - 选取 (半径为 1000000000.00 圆心为 ((可用地图区域) 的中心点) ……[/trigger]
这个就已经是全图了吧,为什么不用“可用地图范围”?

SP3里
[trigger]检查 ((((可用地图区域) 内存在 (选取单位)) 等于 FALSE) or (((选取单位) 拥有 碎片导弹 ) 等于 FALSE)) 每隔 1.00 秒(直到条件成立)[/trigger]
如果这个动作如喵呜所说是等待的话,那么不能用在单位组动作里;
LZ去看下YD的演示图,如果里面有这么用的话,那么就可以这么用,这样的话这动作应该是用的中心计时器

[trigger]((可用地图区域) 内存在 (选取单位)) 等于 FALSE) [/trigger]
如果这个条件成立,那么单位已经不在地图里了,之后就算重新进入地图一般来说也是重新创建的一个单位,所以把这个单位的攻防加回来没有意义

然后,我真的不知道SP3到底是干嘛的。。触发一次之后就整个游戏里不停地运作,每运行一遍还是遍历全图单位,这个真的很耗效率啊
为什么不在SP1里将选出来的单位加入单位组,然后对该单位组做动作?
回复

使用道具 举报

 楼主| 发表于 2012-4-15 23:04:01 | 显示全部楼层
aaaaaaaaaaaaaaa 看不过来啊
回复

使用道具 举报

 楼主| 发表于 2012-4-15 23:18:10 | 显示全部楼层
((可用地图区域) 内存在 (选取单位)) 等于 FALSE)
主要是如果是英雄被添加了技能,并在持续时间内死亡,持续时间结束,如果没有这个的话,在复活后攻防都不会还原。
回复

使用道具 举报

 楼主| 发表于 2012-4-15 23:28:37 | 显示全部楼层
变量什么的还是不懂
回复

使用道具 举报

发表于 2012-4-16 01:55:24 | 显示全部楼层
拜里热就脱:((可用地图区域) 内存在 (选取单位)) 等于 FALSE)
主要是如果是英雄被添加了技能,并在持续时间内死亡,持续时间结束,如果没有这个的话,在复活后攻防都不会还原。 (2012-04-15 23:18)
这个是没用的哦~

英雄死亡后英雄仍旧在地图内,所以“可用地图区域 内存在某个英雄”永远是true
LZ可以自建一个触发将英雄杀死,然后等待N秒后判断该英雄是否在地图内~
当然也有可能是魔兽清理周期比较长,总之任何单位死亡后(尸骨消失后)短期内仍旧在地图里

这条件的用途……比如可以判断正在训练的单位是否训练完了,如果中途因各种原因取消了,那么这个条件就是false 。。。。
回复

使用道具 举报

 楼主| 发表于 2012-4-16 07:54:54 | 显示全部楼层
不是的,英雄死后,就判定不在地图里了,我测试过的
回复

使用道具 举报

发表于 2012-4-16 08:02:21 | 显示全部楼层
英雄死亡是隐藏了 单位组没法选取隐藏的单位
回复

使用道具 举报

发表于 2012-4-16 08:04:02 | 显示全部楼层
拜里热就脱:不是的,英雄死后,就判定不在地图里了,我测试过的 (2012-04-16 07:54)
为什么我试的时候仍在地图里……
T很简单,看下就知道了~
   

额。。。难道是因为变量记录着句柄的关系……

以前看到过一篇帖子说马甲弄多了也是泄漏神马的。。
但是也看到过说单位死后是过一段时间才被完全清除的。。

之前纯属2B了……
回复

使用道具 举报

 楼主| 发表于 2012-4-16 08:12:57 | 显示全部楼层
为什么英雄还没召唤出来,输入a还是判定英雄是存在的呢
回复

使用道具 举报

发表于 2012-4-16 08:13:59 | 显示全部楼层
拜里热就脱:为什么英雄还没召唤出来,输入a还是判定英雄是存在的呢 (2012-04-16 08:12)
可能开始训练的时候就已经创建了吧,不过是隐藏的……
回复

使用道具 举报

发表于 2012-4-16 08:15:18 | 显示全部楼层
再加个条件U是存活的 英雄死亡会留着地图上
回复

使用道具 举报

 楼主| 发表于 2012-4-16 08:15:46 | 显示全部楼层
就算没训练,输入a还是判定在地图范围内啊
回复

使用道具 举报

发表于 2012-4-16 08:18:51 | 显示全部楼层
好吧…………我错了……

区域内存在 没有单位  的判定是true。。。
回复

使用道具 举报

发表于 2012-4-16 08:19:14 | 显示全部楼层
不知道 U变量一创建 他会认为在地图上 不管U里面有没有装单位
回复

使用道具 举报

发表于 2012-4-16 08:33:55 | 显示全部楼层
唉  还在判断里面加U是存活的 可能比较好吧
回复

使用道具 举报

 楼主| 发表于 2012-4-16 12:32:48 | 显示全部楼层
现在我把触发精简成这样了:
[trigger]SP1
    事件
        单位 - 任意单位 发动技能效果
    条件
        ((施法单位) 的 碎片导弹  技能等级) 等于 1
        (施放技能) 等于 碎片导弹
    动作
        设置 DIAN1 = (((施法单位) 的位置) 坐标位移 (300.00, 300.00)处)
        特殊效果 - 在 DIAN1 创建特效: Abilities\\Spells\\Human\\Flare\\FlareTarget.mdl
        特殊效果 - 在 0.00 秒后删除 最后创建的特效 <New>
        点 - 清除 DIAN1
        设置 DIAN2 = (((施法单位) 的位置) 坐标位移 (-300.00, 300.00)处)
        特殊效果 - 在 DIAN2 创建特效: Abilities\\Spells\\Human\\Flare\\FlareTarget.mdl
        特殊效果 - 在 0.00 秒后删除 最后创建的特效 <New>
        点 - 清除 DIAN2
        设置 DIAN3 = (((施法单位) 的位置) 坐标位移 (-300.00, -300.00)处)
        特殊效果 - 在 DIAN3 创建特效: Abilities\\Spells\\Human\\Flare\\FlareTarget.mdl
        特殊效果 - 在 0.00 秒后删除 最后创建的特效 <New>
        点 - 清除 DIAN3
        设置 DIAN4 = (((施法单位) 的位置) 坐标位移 (300.00, -300.00)处)
        特殊效果 - 在 DIAN4 创建特效: Abilities\\Spells\\Human\\Flare\\FlareTarget.mdl
        特殊效果 - 在 0.00 秒后删除 最后创建的特效 <New>
        点 - 清除 DIAN4
        等待 1.00 秒(游戏时间)
        单位组 - 为 SP1 添加以 ((施法单位) 的位置) 为圆心,1000.00 为半径的圆范围内,满足 ((((匹配单位) 是 ((施法单位) 的所有者) 的敌对单位) 等于 TRUE) 且 (((匹配单位) 是存活的) 等于 TRUE)) 的单位
        单位组 - 选取 SP1 内所有单位做动作
            Loop - 动作
                特殊效果 - 创建并绑定特效到 origin 对 (选取单位) ,使用模型: Abilities\\Weapons\\SteamTank\\SteamTankImpact.mdl
                特殊效果 - 在 0.00 秒后删除 最后创建的特效 <New>
                系统<YDWE> - 设置 (选取单位) 的附加 攻击 减少 36
                系统<YDWE> - 设置 (选取单位) 的附加 防御  减少 3
                单位 - 命令 (施法单位) 对 (选取单位) 造成 280.00 点伤害(是 攻击伤害, 不是远程攻击) 攻击类型: 英雄 伤害类型: 普通 武器类型: 无
                单位 - 为 (选取单位) 添加 碎片导弹 1
                单位 - 设置 (选取单位) 打开 碎片导弹 1 永久性
        点 - 清除 ((施法单位) 的位置)
        等待 8.00 秒(游戏时间)
        单位组 - 选取 SP1 内所有单位做动作
            Loop - 动作
                系统<YDWE> - 设置 (选取单位) 的附加 攻击 增加 36
                系统<YDWE> - 设置 (选取单位) 的附加 防御  增加 3
                单位 - 为 (选取单位) 删除 碎片导弹 1
                单位 - 删除 碎片导弹  从 (选取单位)
        单位组 - 清空 SP1 内所有单位
[/trigger]
现在我才知道变量这么方便
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-26 06:50 , Processed in 0.070416 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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