找回密码
 点一下
楼主: baoyutianqi1

求指点,召唤物超过一定数量后,先前召唤的会自动消失。

[复制链接]
发表于 2011-6-28 18:22:12 | 显示全部楼层
其实直接用幽灵狼做技能不就可以了?
回复

使用道具 举报

发表于 2011-6-28 21:16:52 | 显示全部楼层
这样的触发也要用到变量,无语了。。。。
40楼如果有更好的方法可以分享一下。

这个是限制召唤数量为5的触发。
如果你要更改为限制数量为20,请把所有的5更替为20,4更替为19,6更替为21。
以此类推
当然你也可以直接绑定变量。
[trigger]Elemental
    事件
        单位 - 任意单位 被召唤(召唤单位)
    条件
        ((触发单位) 的类型) 等于 水元素 (等级 3)
    动作
        For a 从 1 到 5, 做动作
            Loop - 动作
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        Hero_Amg_Unit[a] 等于 没有单位
                    Then - 动作
                        设置 Hero_Amg_Unit[a] = (触发单位)
                        单位 - 设置 (触发单位) 的自定义值为 a
                        跳过剩余动作
                    Else - 动作
                        无动作
        设置 Hero_Amg_Unit[6] = (触发单位)
        单位 - 设置 (触发单位) 的自定义值为 6
        单位 - 杀死 Hero_Amg_Unit[1]
[/trigger]

[trigger]ElementalCount
    事件
        单位 - 任意单位 死亡
    条件
        ((触发单位) 的类型) 等于 水元素 (等级 3)
    动作
        设置 a = ((触发单位) 的自定义值)
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                Hero_Amg_Unit[(a + 1)] 不等于 没有单位
                a 小于 5
            Then - 动作
                For b 从 a 到 4, 做动作
                    Loop - 动作
                        设置 Hero_Amg_Unit = Hero_Amg_Unit[(b + 1)]
                        单位 - 设置 Hero_Amg_Unit 的自定义值为 b
                设置 Hero_Amg_Unit[5] = Hero_Amg_Unit[6]
                单位 - 设置 Hero_Amg_Unit[5] 的自定义值为 5
                设置 Hero_Amg_Unit[6] = 没有单位
            Else - 动作
                设置 Hero_Amg_Unit[a] = Hero_Amg_Unit[6]
                单位 - 设置 Hero_Amg_Unit[a] 的自定义值为 a
                设置 Hero_Amg_Unit[6] = 没有单位
[/trigger]

另外,你一次同时召唤多少只并不会影响整个触发。
因为它们并不是“同时”被召唤出来的。
电脑再厉害,就算是5核,也不会有“同时”这种能力的。
回复

使用道具 举报

发表于 2011-6-28 21:44:23 | 显示全部楼层
其实还有其他方法,用到的变量少得多,但是还没测试……等我先研究了……
回复

使用道具 举报

发表于 2011-6-28 21:50:57 | 显示全部楼层
引用第45楼lo于2011-06-28 21:44发表的  :
其实还有其他方法,用到的变量少得多,但是还没测试……等我先研究了……
一个全局变量组不算多吧?作为循环用的a和b我是不认为算是变量的。因为那是用局部就可以替掉的东西。

只是可惜了自定义值,不过作为召唤物自定义值一般没大用。可以用进制法。
引用第46楼kwyj于2011-06-28 21:48发表的  :

……那个常数是确定循环次数以及单位组判断的依据的~
是的,只是为了具体一点,没有用变量替换掉。
回复

使用道具 举报

发表于 2011-6-28 22:07:18 | 显示全部楼层
好吧,透露一点,删除单位组的第一单位,不过排列的时候最后排进去的才是第一单位,所以,要重新排顺序……能省掉一个数组了……有时间你们就研究一下吧,我处于备考状态,有点忙……
回复

使用道具 举报

发表于 2011-6-28 23:27:09 | 显示全部楼层
好吧,我发这个给你,直接又简单。地图也附上吧,不过我用的是1。22E老狼UI的,希望你能打开
没有变量,直接复制就可以用了
以下是触发

A1
    事件
        单位 - 玩家1(红色) 的单位 被召唤(召唤单位)
    条件
    动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                (((召唤单位) 的类型) 等于 水元素 (等级 1)) and ((水元素 (等级 1) 的数量对 玩家1(红色)) 大于 20)
            Then - 动作
                单位 - 隐藏 (召唤单位)
                单位 - 杀死 (召唤单位)
            Else - 动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                (((召唤单位) 的类型) 等于 水元素 (等级 2)) and ((水元素 (等级 2) 的数量对 玩家1(红色)) 大于 20)
            Then - 动作
                单位 - 隐藏 (召唤单位)
                单位 - 杀死 (召唤单位)
            Else - 动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                (((召唤单位) 的类型) 等于 水元素 (等级 3)) and ((水元素 (等级 3) 的数量对 玩家1(红色)) 大于 20)
            Then - 动作
                单位 - 隐藏 (召唤单位)
                单位 - 杀死 (召唤单位)
            Else - 动作


限制召唤数量.w3x (13 KB, 下载次数: 2)
回复

使用道具 举报

 楼主| 发表于 2011-6-29 08:34:04 | 显示全部楼层

回 43楼(kwyj) 的帖子

不好意思   我看了      我再改改吧   把所有召唤五只的拢在一起    召唤一个的拢在一起     召唤两个的拢在一起等等    多做几个触发吧
回复

使用道具 举报

 楼主| 发表于 2011-6-29 08:34:51 | 显示全部楼层
还有  触发多了   会不会有冲突啊
比如
回复

使用道具 举报

 楼主| 发表于 2011-6-29 08:49:44 | 显示全部楼层

回 43楼(kwyj) 的帖子

还有如果改成召唤物召唤1个     这个触发是不是要改很多东西啊

还有那个48   也必须得改吧      
如果改成召唤2个   是不是也是这样以此类推?
毕竟有的召唤物召唤的多  有的召唤物召唤的少吧
回复

使用道具 举报

发表于 2011-6-29 11:44:53 | 显示全部楼层
[trigger]

Init
    事件
        地图初始化
    条件
    动作
        设置 integer = 0
[/trigger]
[trigger]
1
    事件
        单位 - 任意单位 被召唤(召唤单位)
    条件
        Or - 任意条件成立
            条件
                ((触发单位) 的类型) 等于 水元素 (等级 1)
                ((触发单位) 的类型) 等于 水元素 (等级 2)
                ((触发单位) 的类型) 等于 水元素 (等级 3)
    动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                integer 等于 5
            Then - 动作
                单位 - 删除 unit[1]
                循环动作[循环整数A]从 1 到 4, 运行 (Loop - 动作)
                    Loop - 动作
                        设置 unit[(循环整数A)] = unit[((循环整数A) + 1)]
                设置 unit[5] = (触发单位)
            Else - 动作
                设置 unit[integer] = (触发单位)
                设置 integer = (integer + 1)

[/trigger]
[trigger]
2
    事件
        单位 - 任意单位 死亡
    条件
        Or - 任意条件成立
            条件
                ((触发单位) 的类型) 等于 水元素 (等级 1)
                ((触发单位) 的类型) 等于 水元素 (等级 2)
                ((触发单位) 的类型) 等于 水元素 (等级 3)
    动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                (触发单位) 等于 unit[5]
            Then - 动作
                设置 integer = (integer - 1)
            Else - 动作
                循环动作[循环整数A]从 1 到 4, 运行 (Loop - 动作)
                    Loop - 动作
                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                            If - 条件
                                (触发单位) 等于 unit[(循环整数A)]
                            Then - 动作
                                循环动作[循环整数B]从 (循环整数A) 到 integer, 运行 (Loop - 动作)
                                    Loop - 动作
                                        设置 unit[(循环整数B)] = unit[((循环整数B) + 1)]
                                        设置 integer = (integer - 1)
                            Else - 动作

[/trigger]


integer是整数型变量,unit是单位型变量
回复

使用道具 举报

发表于 2011-6-29 12:29:42 | 显示全部楼层
其实我们都错了,召唤兽为十九怎么办?战斗中总会有那么一两个挂掉的。只能办法把多召唤出来的杀掉了
回复

使用道具 举报

发表于 2011-6-29 12:33:43 | 显示全部楼层
引用第49楼3xivw于2011-06-28 23:27发表的  :
好吧,我发这个给你,直接又简单。地图也附上吧,不过我用的是1。22E老狼UI的,希望你能打开
没有变量,直接复制就可以用了
以下是触发

A1
.......
召唤了20个1级水元素然后升级水元素技能,再召唤20个2级水元素,再升级为3级,召唤20个3级水元素,于是乎我有了60个水元素

另外,杀掉最先召唤和和杀掉最后召唤的还是有区别的,至少我觉得点了召唤技能毫无反应是一件很纠结的事情

刮刮卡哦:如果除去尸体限制这东西的话,我还是感觉用腐尸甲虫方便
回复

使用道具 举报

发表于 2011-6-29 12:39:33 | 显示全部楼层
引用第55楼3xivw于2011-06-29 12:29发表的  :
其实我们都错了,召唤兽为十九怎么办?战斗中总会有那么一两个挂掉的。只能办法把多召唤出来的杀掉了

请看35楼。或者44楼。
回复

使用道具 举报

发表于 2011-6-29 14:22:48 | 显示全部楼层
单位组第一单位的实验失败……不知道是触发错了还是怎么了……到底单位组第一单位的判定是怎样的……
回复

使用道具 举报

发表于 2011-6-29 16:23:37 | 显示全部楼层
引用第58楼kwyj于2011-06-29 13:39发表的  :
……很明显我的触发已经完美解决楼主要求了啊……似乎44lou后面的触发都是不正确的啊~那个·兄……变量的默认初始就是0所以不用设置~
44楼是我自己在地图里测试OK才复制出来的。似乎、好像之类的词语是很含糊的。请慎用。
另外。因为我自己的地图里用的并不是变量记录,而是用HT来记录。所以我的例子的确是不支持多玩家的。
这个我相信真的理解了的人,更改起来应该是不难的。
但是实现“限制召唤数量,超过数量最先召唤的死亡”、之类的功能是完全可以胜任。不说完美。但是触发已经够简单了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 11:58 , Processed in 0.040977 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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