找回密码
 点一下
查看: 1213|回复: 19

请教一个刷兵问题

[复制链接]
发表于 2009-10-7 23:21:15 | 显示全部楼层 |阅读模式
[trigger]

未命名触发器 543 复制 复制
    事件
        时间 - 游戏开始 1.00 秒
    条件
    动作
        设置 A010[201] = 0
        任务 - 创建一个 主要 任务,标题: 地图说明 任务说明: 本图完成历时... 任务图标: ReplaceableTextures\CommandButtons\BTNKK7Icon.blp
        设置 A010[1] = 0
        设置 A0000 = 0
        设置 A008[1] = 兔子 0063 <预设>
        设置 A008[2] = 兔子 0062 <预设>
        设置 A008[3] = 兔子 0086 <预设>
        设置 A008[4] = 兔子 0085 <预设>
        设置 A008[5] = 兔子 0084 <预设>
        设置 A008[6] = 兔子 0066 <预设>
        设置 A012[1] = (矩形区域 020 <预设> 的中心点)
        设置 A012[2] = (矩形区域 018 <预设> 的中心点)
        设置 A012[3] = (矩形区域 023 <预设> 的中心点)
        设置 A012[4] = (矩形区域 022 <预设> 的中心点)
        设置 A012[5] = (矩形区域 021 <预设> 的中心点)
        设置 A012[6] = (矩形区域 020 <预设> 的中心点)
        自定义代码: call DestroyTrigger( GetTriggeringTrigger() )
[/trigger]

[trigger]
未命名触发器 591
    事件
        单位 - 任意单位 死亡
    条件
        ((死亡单位) 的所有者) 等于 中立敌对
    动作
        设置 A010[200] = 0
        For循环整数A从 1 到 6, 做动作
            Loop - 动作
                设置 A010[200] = (A010[200] + 1)
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        (死亡单位) 等于 A008[A010[200]]
                    Then - 动作
                        单位 - 设置 A008[A010[200]] 的自定义值为 (力量 对 马格罗斯守御者 0134 <预设> (不包括 加成))
                        计时器 - 开启 A002[(A008[A010[200]] 的自定义值)] ,计时方式: 一次性 时间设置: 10.00 秒
                        英雄 - 修改 力量 对 马格罗斯守御者 0134 <预设> : 添加 1 点
                    Else - 动作
                        无动作
[/trigger]
[trigger]
未命名触发器 590
    事件
        时间 - A002[(敏捷 对 马格罗斯守御者 0134 <预设> (不包括 加成))] 到期
    条件
    动作
        For循环整数A从 1 到 6, 做动作
            Loop - 动作
                设置 A010[201] = (A010[201] + 1)
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        (A008[A010[201]] 的自定义值) 等于 A010[201]
                    Then - 动作
                        For循环整数A从 A010[201] 到 A010[201], 做动作
                            Loop - 动作
                                自定义代码: set udg_A008[GetForLoopIndexA()]=null
                        设置 A008[A010[201]] = (新建 中立敌对 的 兔子 在 A012[A010[201]] 面向角度:(随机角度) 度)
                        计时器 - 删除 A002[(敏捷 对 马格罗斯守御者 0134 <预设> (不包括 加成))]
                        For循环整数A从 A010[201] 到 A010[201], 做动作
                            Loop - 动作
                                自定义代码: set udg_A002[GetForLoopIndexA()]=null
                        英雄 - 修改 敏捷 对 马格罗斯守御者 0134 <预设> : 添加 1 点
                    Else - 动作
                        无动作

[/trigger]

我用T做的,定点刷兵,类似于遗失的记忆那种,不过就是有问题,请高手帮忙看看
   感觉上是事件触发不了,额感觉就是超出触发的能力~~~~(>_<)~~~~
       
        我是J盲,所以用J弄不了


  
 楼主| 发表于 2009-10-7 23:22:40 | 显示全部楼层
初始圣骑士力量和敏捷值是50,智力是1,为什么2图的时间到了,为什么不能触发呢???
回复

使用道具 举报

发表于 2009-10-7 23:29:03 | 显示全部楼层
1]学会用触发标签,而不是帖触发图。
2]问问题时说明详细,不要说“就是跟XXX图那种”。你怎么知道那种图大家都玩过啊?说清楚你想要达到的效果。
回复

使用道具 举报

 楼主| 发表于 2009-10-7 23:42:11 | 显示全部楼层
准确而且简单的说就是
   有N个区域,每个区域有一个特定单位,特定区域的特定单位死亡之后,经过一定时间将在特定区域重新刷出来(再死亡之后再复刷)
回复

使用道具 举报

发表于 2009-10-8 00:02:10 | 显示全部楼层
我看不明白····楼主那些变量太那个了···建议楼主说一下自己的思路···我看能不能帮到楼主··

目测T中的一个错误··

触发2中 For A 从 A010[201] 到 A010[201]做动作 ····
回复

使用道具 举报

 楼主| 发表于 2009-10-8 00:13:38 | 显示全部楼层
求救啊,我要疯啦,怎么弄都不对,就是不能正常刷,我搞了10多个小时了
      思路是这样
        假如有A,B,C,D4个点,ABCD上分别都有一个单位(a,b,c,d),假如a死亡,则等待15秒后于A点刷出个新的单位a,假如b死亡,则等待15秒后在B刷出个b。剩下c,d单位也是相同
           而且以上动作要求最好只要2个触发就能完成,并且4个点扩展为N个点
        应该看懂了吧
  另外楼上你说错了,那个地方没有问题的,就类似于循环整数1到1,做动作
回复

使用道具 举报

发表于 2009-10-8 01:10:48 | 显示全部楼层
请不要忽视一个叫做搜索的论坛功能
回复

使用道具 举报

发表于 2009-10-8 04:15:27 | 显示全部楼层
[trigger]
事件
        任意单位死亡
条件
        死亡单位的类型=X (最好给所有的怪物分到一个类别)
动作
        用变量注册怪物
        开启对应的计时器到时刷新
[/trigger]
这样应该可行吧
就是有点麻烦 因为你有几个怪物就要注册几个变量 可以利用自定义值
回复

使用道具 举报

 楼主| 发表于 2009-10-8 06:25:55 | 显示全部楼层
我就是在弄楼上的办法,不过感觉没有错,但是就是不管用啊

上面的触发就是死亡单位为a,那就开启a计时器(因为我怕混乱,用了几个判断条件)
下面个触发就是计时器到期,判断条件A是否成立,成立则然后创建a在A

现在问题是,a计时器到期了,第二个触发器的事件没有响应~~~~(>_<)~~~它貌似读不出来是a计时器

另外我马上去修改下,用自定义值去作判断条件,比我用的这个复杂的方式好得多
回复

使用道具 举报

 楼主| 发表于 2009-10-8 07:11:46 | 显示全部楼层
我修改过了,额,依然没有用。。。。。。。。。。。。   [s:166]  [s:166]  [s:166]



看上面我修改的。。。。是不是哪里又有错?

全线崩溃,死了就没有单位了。。。。。[s:175]
回复

使用道具 举报

发表于 2009-10-8 08:46:57 | 显示全部楼层
时间 - A002[(敏捷 对 马格罗斯守御者 0134 <预设> (不包括 加成))] 到期

这个事件显然是不行的,如果初期敏捷为15,那么相当于只注册了A002[15]到期,即使敏捷再怎么变化也没用
你可以把所有用到得计时器都注册一遍,比如说0-20,那么就把A002[0]到A002[20]到期都添加一遍,然后用循环判断到期的计时器是哪一个

另外计时器数组是否设置了数组大小?

还有,删除之后计时器就失效了,如果需要反复利用,那么不必删除
回复

使用道具 举报

 楼主| 发表于 2009-10-8 12:16:49 | 显示全部楼层
[trigger]
未命名触发器 543 复制 复制
    事件
        时间 - 游戏开始 1.00 秒
    条件
    动作
        For循环整数A从 1 到 10, 做动作
            Loop - 动作
                触发器 - 为 未命名触发器 590 <预设> 添加事件: (时间 - A002[(循环整数A)] 到期)
                设置 A002[(循环整数A)] = (新建的计时器)
        设置 A008[1] = 兔子 0063 <预设>
        设置 A008[2] = 兔子 0062 <预设>
        设置 A008[3] = 兔子 0086 <预设>
        设置 A008[4] = 兔子 0085 <预设>
        设置 A008[5] = 兔子 0084 <预设>
        设置 A008[6] = 兔子 0066 <预设>
        设置 A010[201] = 1
        任务 - 创建一个 主要 任务,标题: 地图说明 任务说明: 本图完成历时... 任务图标: ReplaceableTextures\\CommandButtons\\BTNKK7Icon.blp
        设置 A010[200] = 0
        设置 A010[1] = 0
        设置 A0000 = 0
        设置 A012[1] = (矩形区域 020 <预设> 的中心点)
        设置 A012[2] = (矩形区域 018 <预设> 的中心点)
        设置 A012[3] = (矩形区域 023 <预设> 的中心点)
        设置 A012[4] = (矩形区域 022 <预设> 的中心点)
        设置 A012[5] = (矩形区域 021 <预设> 的中心点)
        设置 A012[6] = (矩形区域 020 <预设> 的中心点)
        自定义代码: call DestroyTrigger( GetTriggeringTrigger() )
[/trigger]
[trigger]

未命名触发器 591
    事件
        单位 - 任意单位 死亡
    条件
        ((死亡单位) 的所有者) 等于 中立敌对
    动作
        For循环整数A从 1 到 6, 做动作
            Loop - 动作
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        (死亡单位) 等于 A008[(循环整数A)]
                    Then - 动作
                        单位 - 设置 A008[(循环整数A)] 的自定义值为 (循环整数A)
                        计时器 - 开启 A002[(循环整数A)] ,计时方式: 一次性 时间设置: 10.00 秒
                        触发器 - 为 未命名触发器 590 <预设> 添加事件: (时间 - A002[(循环整数A)] 到期)
                    Else - 动作
                        无动作

[/trigger]
[trigger]

未命名触发器 590
    事件
    条件
    动作
        For循环整数A从 1 到 6, 做动作
            Loop - 动作
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        (A008[(循环整数A)] 的自定义值) 等于 (循环整数A)
                    Then - 动作
                        For循环整数A从 (循环整数A) 到 (循环整数A), 做动作
                            Loop - 动作
                                自定义代码: set udg_A008[GetForLoopIndexA()]=null
                        设置 A008[(循环整数A)] = (新建 中立敌对 的 兔子 在 A012[(循环整数A)] 面向角度:(随机角度) 度)
                    Else - 动作
                        无动作
[/trigger]


那个计数器数组大小是什么?我大约按照你的思路试了下,刷出2轮,就没有了。。。。。
回复

使用道具 举报

发表于 2009-10-8 13:29:33 | 显示全部楼层
传送门http://bbs.islga.org/read-htm-ti ... C6%CA%B1%C6%F7.html

楼主去看看 应该能帮到你 ···
回复

使用道具 举报

发表于 2009-10-8 15:21:19 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2009-10-8 16:14:10 | 显示全部楼层
在添加变量的地方,你添加的时候如果是数组会让你设置大小的
部分类型如计时器之类需要手动设置,默认是1,那么默认只有数组下标0和1的两个被初始化了,其他的没有,所以也就无效
如果你不设置,那么就自己用函数初始化吧
回复

使用道具 举报

 楼主| 发表于 2009-10-8 16:16:33 | 显示全部楼层
楼上的方法比较好,堪称神迹,我马上去试试
  12楼的那个和我的方法差不多,我仿造了下,毛病同样有,也不知道毛病在哪!!


14楼的是说,计时器不在变量设定那里设定初始值的话,后面用触发器设置会无效,对吧
那么有哪些是需要在设置变量时就设置的呢


[s:191][s:191]

设定个初始值,居然就OK了。。。。。。。原来如此,是这个问题啊,我还以为我触发哪里错了呢
我做图也都4年多了,看来还有很多东西不懂啊
回复

使用道具 举报

 楼主| 发表于 2009-10-8 16:56:03 | 显示全部楼层
专门占一楼为上面的人表示衷心的感谢,这不是灌水,而是作为一个受到帮助的人应该有的礼节
   感谢楼上的几位提点和帮助
回复

使用道具 举报

发表于 2009-10-9 00:13:39 | 显示全部楼层

看到贴我突然有个想法:
1、给那个被干掉的单位加个“诞生刺蛇”(貌似叫这个吧……)的技能,产生单位是它自己;(实现无限刷)
2、开个触发,当任意单位召唤单位时(测试过,貌似诞生刺蛇会响应召唤单位),把那个被召唤的东西给眩晕掉,顺便给他加个跟眩晕时间一样长的隐身;
3、当你的英雄没有反隐形技能,并且那个被刷的单位没有光环类或者凤凰火焰类的技能时,实际效果就像刷出来一样。

个人想法,有空请指正。
回复

使用道具 举报

发表于 2009-10-9 00:31:13 | 显示全部楼层
要用诞生刺蛇,那你就需要至少再准备于单位种类同样数量的技能个数,如果你有100种单位需要刷,那你就要至少另外准备100种技能,这个开销可不小

要做到定时,那么在另外准备一个无模型蝗虫单位,专门来处理真空期好了,死亡后创建一个这种单位,给他相关单位类型的技能,设置好生命周期(也可以用设置生命回复来做),不过这样又需要多准备一种单位
回复

使用道具 举报

发表于 2009-10-9 00:58:31 | 显示全部楼层
说道利用单位刷怪 我就想起来很久以前的一个很粗糙的地图  貌似用单位召唤怪物的刷怪办法也不错啊 而且也不是很麻烦 一个区域只需要准备一个刷怪用的单位就可以
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-22 04:21 , Processed in 0.032270 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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