找回密码
 点一下
查看: 1005|回复: 15

为什么这个触发在多人用的时候就不灵了。。。

[复制链接]
发表于 2011-11-23 21:36:02 | 显示全部楼层 |阅读模式
RT。。。菜鸟一个。。。希望各位解释得详细一点

测试-属性.w3x

14 KB, 下载次数: 9

发表于 2011-11-23 22:07:06 | 显示全部楼层
对战初始化里无法捕捉(触发单位)的,所以初始化那个T的最后两个动作是没用的

不能多人是因为LZ仅仅对触发单位用了数组,对话框和按钮都没有用数组,于是第一个还没选好第二个又放技能了于是变量赋值成了第二个的对话框,也就是第一个的对话框不会触发对话框事件了……
回复

使用道具 举报

 楼主| 发表于 2011-11-25 12:32:11 | 显示全部楼层

回 1楼(chyj4747) 的帖子

chyj4747:对战初始化里无法捕捉(触发单位)的,所以初始化那个T的最后两个动作是没用的

不能多人是因为LZ仅仅对触发单位用了数组,对话框和按钮都没有用数组,于是第一个还没选好第二个又放技能了于是变量赋值成了第二个的对话框,也就是第一个的对话框不会触发对话框事件了…… (2011-11-23 22:07)
那该我如何解决,我对变量还是初步了解而已。。。
回复

使用道具 举报

发表于 2011-11-25 13:47:00 | 显示全部楼层
这都隔了一两天了我有点忘了。。。


。。。大致就是对话框也用数组记录,数组的下标用玩家的索引,这样就是每个玩家对应一个变量,就不会冲突了~
另外按钮也要用玩家索引作为数组下标~

PS:对话框的变量如果带数组要设置好大小,也就是游戏中大致需要多少个对话框就要将大小设置成多少……
回复

使用道具 举报

发表于 2011-11-25 18:31:59 | 显示全部楼层
测试完毕 - -
发现点对话框后  木材(属性点 - .-) 根本不会减少 问题在于 触发2中
[trigger]未命名触发器 002
    事件
        对话框 - UU 被点击
    条件
    动作
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                (点击的对话框按钮) 等于 UD[1]
            Then - 动作
                玩家 - 设置 ((触发单位) 的所有者) 的 现有木材 为 ((((触发单位) 的所有者) 现有木材) - 1)
            Else - 动作
                无动作
[/trigger]   对话框被点击  哪来的触发单位     是触发玩家还差不多

测试-属性.w3x (15 KB, 下载次数: 5)   然后 再添加个升级加木头
[trigger]未命名触发器 003
    事件
        单位 - 任意单位 提升等级
    条件
        ((触发单位) 是 英雄) 等于 TRUE
        (((触发单位) 的所有者) 的控制者) 不等于 电脑
    动作
        玩家 - 设置 ((触发单位) 的所有者) 的 现有木材 为 ((((触发单位) 的所有者) 现有木材) + 10)
        游戏 - 对 (所有玩家) 发送文本信息: (恭喜 + (((触发单位) 的名字) + 升级并获得10点属性点!!))
[/trigger] 应该就没什么问题 了吧  应该支持多玩家单英雄的 (没试过 - -)
回复

使用道具 举报

 楼主| 发表于 2011-11-25 18:34:19 | 显示全部楼层

回 3楼(chyj4747) 的帖子

chyj4747:这都隔了一两天了我有点忘了。。。

。。。大致就是对话框也用数组记录,数组的下标用玩家的索引,这样就是每个玩家对应一个变量,就不会冲突了~
另外按钮也要用玩家索引作为数组下标~

....... (2011-11-25 13:47)
如果把对话框用玩家索引号的话,第二个捕抓点击对话框的触发的事件貌似用不了。。。
回复

使用道具 举报

发表于 2011-11-25 18:36:53 | 显示全部楼层
。。。。。。。

还有  不是  为什么这个触发在多人用的时候就不灵了。。。      是单人的时候就不灵的   木头根本不会减少
回复

使用道具 举报

发表于 2011-11-25 22:25:09 | 显示全部楼层
黑夜王子:如果把对话框用玩家索引号的话,第二个捕抓点击对话框的触发的事件貌似用不了。。。 (2011-11-25 18:34)
动态添加事件。。
触发器-添加事件


另外楼上的仍旧不能多人,只要第一个人不点,第二个人一触发UU和UD[1]之类的就会被覆盖
回复

使用道具 举报

发表于 2011-11-26 08:56:17 | 显示全部楼层
哦哦  原来是这样  - -
哎哎  那换一个思路吧
弄什么对话框点击获得属性咯
给单位添加个魔法书技能 用施法里面的技能获得属性也是一样的嘛 - -
或者...



离线551155

UID:1552
    [li]注册时间2006-08-27 [/li][li]最后登录2011-11-25 [/li][li]在线时间555小时 [/li]
    [li]发帖1568 [/li][li]搜Ta的帖子 [/li][li]精华2 [/li][li]金钱742[/li][li]威望36[/li][li]互助14 [/li]
访问TA的空间加好友用道具
上一级是在说谎


发帖1568金钱742威望36互助14



只看该作者 10楼 发表于: 2008-03-29
演示9,通用自定义属性分配

  这个演示,是我自己最满意的Trigger演示,此演示可添加在任何数量玩家控制的任何数量英雄的地图中,虽然称不上完美,但实用性也是满好的哦。


事件
单位 - 任意单位 提升等级
条件
((触发单位) 是 英雄) 等于 TRUE
动作
单位 - 设置 (触发单位) 的自定义值为 (((触发单位) 的自定义值) + 2)
游戏 - 对 ((触发单位) 的所有者) 在屏幕位移(0.00,0.00)处显示文本: (((触发单位) 的称谓) + 增加了2个属性点!)
  在这个触发中,我们设定了单位属性点的来源,该单位的自定义数,每提升一级增加2点,当然你也可以利用其它方式进行奖励,而具体的加点就是围绕单位自定义数来进行的。


事件
单位 - 任意单位 开始施放技能
条件
(施放技能) 等于 属性增强 (修正版)
动作
如果所有条件成立则做动作1,否则做动作2 If - 条件
((触发单位) 的自定义值) 大于 0 Then - 动作
设置 HERO[(((触发单位) 的所有者) 的玩家索引号)] = (触发单位)
对话框 - 清空 UU
对话框 - 设置 UU 的标题为 (你需要添加 + (((触发单位) 的称谓) + (的属性吗? + ([ + ((转换 ((触发单位) 的自定义值) 为字符串) + ])))))
对话框 - 为 UU 添加按钮,按钮标题为: 力量
设置 UD[1] = (最后创建的对话框按钮)
对话框 - 为 UU 添加按钮,按钮标题为: 敏捷
设置 UD[2] = (最后创建的对话框按钮)
对话框 - 为 UU 添加按钮,按钮标题为: 智慧
设置 UD[3] = (最后创建的对话框按钮)
对话框 - 为 UU 添加按钮,按钮标题为: 放弃
设置 UD[4] = (最后创建的对话框按钮)
对话框 - 显示 UU 对 ((触发单位) 的所有者) Else - 动作
游戏 - 对 ((触发单位) 的所有者) 在屏幕位移(0.00,0.00)处显示文本: (((触发单位) 的称谓) + 没有多余的属性点!)
  在这个触发2中,是利用技能来运行属性加点的,然后通过判断该单位是否还有自定义数来决定是否执行加点动作。然后利用对话框显示该单位的名字以及剩余点数,并提供选择框。


事件
对话框 - UU 被点击
条件
动作
。。。。。。。。。。。。。。

 在这个演示中,变量组hero[?]的应用是重点,大家可以看到,在触发2中,有赋值语句HERO[(((触发单位) 的所有者) 的玩家索引号)] = (触发单位),这个语句就是将使用了技能的触发单位进行变量保存,而在触发3中,使用了语句英雄 - 修改 力量 对 HERO[((触发玩家) 的玩家索引号)] : 添加 10 点对该变量保存的单位增加属性,这里分别使用了“触发单位的所有者”和“触发玩家”,区别在于,触发2中是因为单位引发的事件,所以我们需要使用“触发单位的所有者”的索引号来进行变量组的设定,因为每一个玩家的索引号是独立的,而对话框产生的情况下,一个玩家不可能控制第二个英雄引发触发器的,所以这个变量正常保留到了触发3执行的时候,因为触发3点击按钮的“触发玩家”实际上就是前一个引发对话框触发的单位所属玩家,因此这个变量值还是不变,而对这个变量值进行属性增加也就是正确的了。[ 此贴被551155在2008-03-29 22:14重新编辑 ]


附件: 自定义属性.w3x (14 K) 下载次数:308
共条评分





难道551155 这不可以多人使用??! 啊  我也只这样学着551155这样弄对话框的啊  楼主的也是这样的啊...
回复

使用道具 举报

发表于 2011-11-26 09:49:54 | 显示全部楼层
居然能这样弄过来…………

表示551155大大的这个最多只能多人单玩家多英雄用呢……
多人一起用的时候UU和UD[ ]必然会被覆盖掉。。
于是导致“对话框被点击”事件无法触发。。所以要动态注册~
额。。当然也不一定要动态,事先为每个玩家准备一个对话框也是可以的,说不定效率更高~
回复

使用道具 举报

发表于 2011-11-26 11:35:59 | 显示全部楼层
由于该用户察觉到自己的发现毫无根据,所以自行删除了
[table=100%,#ffff00][/table]
回复

使用道具 举报

 楼主| 发表于 2011-11-26 12:46:36 | 显示全部楼层

回 8楼(xiokingsing) 的帖子

xiokingsing:哦哦  原来是这样  - -
哎哎  那换一个思路吧
弄什么对话框点击获得属性咯
给单位添加个魔法书技能 用施法里面的技能获得属性也是一样的嘛 - -
或者...
....... (2011-11-26 08:56)
这位兄弟说的好有深度。。。看不懂。。。
回复

使用道具 举报

 楼主| 发表于 2011-11-26 12:47:47 | 显示全部楼层

回 9楼(chyj4747) 的帖子

chyj4747: 居然能这样弄过来…………

表示551155大大的这个最多只能多人单玩家多英雄用呢……
多人一起用的时候UU和UD[ ]必然会被覆盖掉。。
于是导致“对话框被点击”事件无法触发。。所以要动态注册~
....... (2011-11-26 09:49)
我去试一下,不行再找你~~~~
回复

使用道具 举报

 楼主| 发表于 2011-11-26 13:03:31 | 显示全部楼层

回 3楼(chyj4747) 的帖子

chyj4747:这都隔了一两天了我有点忘了。。。

。。。大致就是对话框也用数组记录,数组的下标用玩家的索引,这样就是每个玩家对应一个变量,就不会冲突了~
另外按钮也要用玩家索引作为数组下标~

....... (2011-11-25 13:47)
我把对话框变成使用数组,下标是“触发单位所有者的玩家索引号”,至于按钮,如果使用玩家索引,那就分不开那个按钮被点击了,。。。求解。。。
回复

使用道具 举报

发表于 2011-11-26 14:07:57 | 显示全部楼层
黑夜王子:我把对话框变成使用数组,下标是“触发单位所有者的玩家索引号”,至于按钮,如果使用玩家索引,那就分不开那个按钮被点击了,。。。求解。。。
(2011-11-26 13:03)
动态数组或者多按钮变量。。

比如有三个按钮,如果只用玩家索引的话的确只能一个玩家对应一个,那么弄成每个按钮对应一个变量的话就能区分了,比如U1[ ]、U2[ ]、U3[ ]分别对应三个按钮,下标是玩家索引~

另外一种就是单变量+动态数组(额。。到底应不应该叫动态呢……)~
已知玩家一的索引为1,玩家二的索引为2,以此类推……
那么1*3=3,2*3=6,中间的差值正好是3(即按钮个数)~
于是玩家一的索引*3+0为玩家一的第一个按钮,+1为第二个按钮,+2为第三个;
与玩家二的索引*3+0,+1,+2是完全不同的下标~
由此区分不同玩家的不同变量~

不过用动态数组注意一个问题,就是数组初始化是从0开始的,不管你怎么设置。
所以上面的做法会浪费0-2这三个按钮变量(按钮数越多浪费越多,计算下就知道了),每个变量都是会被分配内存空间的,所以应该尽可能节省~
如果LZ用的原版或接近原版的WE,那么只能用玩家索引-1的办法使数组下标从0开始
如果LZ用的YDWE或者其他比较强的UI,那么应该能找到直接获取0-15玩家索引的动作(应该跟普通WE的玩家索引在同一个地方),在YD里的后缀为<CJ>
嘛。。其实不止动态需要这样,其它地方也应该要这样做才能使图比较节省资源,毕竟魔兽变量总数是固定的~
回复

使用道具 举报

 楼主| 发表于 2011-11-26 19:00:09 | 显示全部楼层

回 14楼(chyj4747) 的帖子

chyj4747:动态数组或者多按钮变量。。

比如有三个按钮,如果只用玩家索引的话的确只能一个玩家对应一个,那么弄成每个按钮对应一个变量的话就能区分了,比如U1[ ]、U2[ ]、U3[ ]分别对应三个按钮,下标是玩家索引~

....... (2011-11-26 14:07)
我觉得第一种方法简单。。。因为至看懂第一种方法。。。至于WE。。。我表面上用的事YDWE。。。骑士我只是贪YDWE可以使用比较大尺寸的地图。我再去试一下,依然是那句:不懂我再找你~~~~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 04:58 , Processed in 0.042342 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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