找回密码
 点一下
查看: 4649|回复: 22

求大佬...多人复活触发器冲突【银河编辑器】

[复制链接]
发表于 2018-8-14 13:49:13 | 显示全部楼层 |阅读模式
本帖最后由 miorie 于 2018-8-14 13:54 编辑

多人同时死亡,对话框只为一个人显示,而且怎么存储英雄当前的数据,然后让他复活呢?
我是这样弄的,只能是暂时解决这个问题,而且我弄了个计时器,自己没有死亡但是其他人死了也会显示触发器.........
我看过其他帖子,没有count这个东西.....我又找这个计数的......但是没有找到
tousu.PNG
ts.PNG
tousu.PNG
发表于 2018-8-14 19:56:36 | 显示全部楼层
第一,不建议每次都创建对话框。
第二,合理使用数组来实现多人效果。
回复

使用道具 举报

 楼主| 发表于 2018-8-14 21:02:24 | 显示全部楼层
@yxxiaobin 怎么 合理 使用数组?给我一点提示嘛。。。。教程也可以,么么哒
回复

使用道具 举报

发表于 2018-8-15 08:56:20 来自手机 | 显示全部楼层
你这个不同玩家设置的对话框变量都是一个当然会出问题  我的建议:1为每个玩家都创建一个对话框(此部分可以用为每个整数简略) 2每次不创建新的对话框,而是在游戏开始就创建好,再到目标时刻显示/隐藏对话框 3英雄数据可以储存在数据表
回复

使用道具 举报

 楼主| 发表于 2018-8-16 21:05:22 | 显示全部楼层
@超级007x 但是我的是两个队伍,每个队伍都不一样,一边是特工,有4个类型,一边是拟态虫,一个类型
还有用为每个整数简略是什么意思??
回复

使用道具 举报

 楼主| 发表于 2018-8-16 21:15:23 | 显示全部楼层
就是创建一个对话框,然后用这个【为每个整数】

为从1到10的每个包含增量1的整数【变量】,执行动作

然后我就不用创建很多对话框,它自己会建立10个,对吧?嗯?
回复

使用道具 举报

 楼主| 发表于 2018-8-16 21:17:43 | 显示全部楼层
啊,这真的是太!痛苦了..知识匮乏....
回复

使用道具 举报

发表于 2018-8-16 22:30:36 | 显示全部楼层
1.在初始化时创建一个对话框,并记录它。以后每次调用这一个就好,不必为每个玩家都创建对话框,更不要每次都创建一个。因为对话框可以针对不同玩家组显示不同内容,甚至连部件的排列方式都是可以改变的。
2.如何利用数组,取决于你的设计。举个例子,假设每个玩家操作一个角色,那么你就可以用数组记录这些角色,比如英雄[1]就是玩家1的角色,英雄[2]就是玩家2的角色。这样需要访问某个玩家的角色时,只要访问变量,并用玩家号做下标就好。事实上你的设计不说的很明白,别人也没法子帮你设计一个成品出来。
回复

使用道具 举报

 楼主| 发表于 2018-8-17 14:38:47 | 显示全部楼层
@yxxiaobin 我是这样设计的,一共有12个玩家,两支队伍,一支队伍6个人,两支队伍为敌对状态
--------------------------------------------------------------------------
T:
创建了一个对话框
里面有4个按钮,分别是4个角色,我叫他们 A B C D 君吧
Z:
创建了另外的对话框
里面有一个按钮,一个角色,他就叫 Q 吧
-------------------------------------------------------------------
游戏开始,给 两支 队伍 分别 显示对话框然后显示英雄【都是设置的是:给队伍xxx显示对话框】

然后当A君挂了,给控制 A君 的玩家 再次显示 A B C D君 让他选择,然后选完了等待复活【至于为什么这么做:因为用“等待”这个动作,对话框不会在等待完了后显示】

(附:我后来改成了直接复活A君,但是当两个控制 A君 的玩家同时挂了,只能复活一个A君,有时候会正常复活两个)
(附2:刚开始创建了一个对话框,调用一个对话框的时候后,A君 同时挂了还是不会显示对话框)
回复

使用道具 举报

 楼主| 发表于 2018-8-17 14:49:28 | 显示全部楼层
【我是给队伍显示对话框,然后给对话框创建按钮,是可以正常给每个玩家创建ABCD君还有Q的】
【当A君被选择,然后启动另一个触发器,这个触发器就隐藏 触发玩家 的对话框和按键,并给予触发玩家 A君 】【以上正常运行】


我在想,如果对每个玩家都要弄一个触发的话,我需要弄.....一个玩家有可能在其他队伍,所以是1个对话框,5个按键,5个对应按键的复活触发

所以加上12个玩家,就是132个!
回复

使用道具 举报

 楼主| 发表于 2018-8-17 14:56:57 | 显示全部楼层
我只是想在他们挂了之后能 等待 然后才复活
回复

使用道具 举报

发表于 2018-8-17 23:55:43 来自手机 | 显示全部楼层
每种对话框只需要一个。对话框显示触发:单位死亡 条件:ABCD君等等 动作:if玩家在队伍1 then为触发单位所有者显示对话框t else显示对话框z  按钮触发器:事件:对话框控件被点击 条件:对话框控件为ABCDQ略 动作:if对话框控件为A then为触发玩家隐藏对话框T,给触发玩家A(BCD由于重复内容此处略) if对话框控件为Q then为触发玩家隐藏对话框Z 给玩家Q    比较基础的方法,具体条件和动作自己根据情况设置,可以在按钮触发器的动作中加入启动计时器和显示等等以此做到延时复活
回复

使用道具 举报

发表于 2018-8-17 23:58:14 来自手机 | 显示全部楼层
如果对话框需要为ABCDQ显示不同内容,可以在显示动作那加入调整对话框控件的动作
回复

使用道具 举报

 楼主| 发表于 2018-8-19 13:32:34 | 显示全部楼层
本帖最后由 miorie 于 2018-8-19 14:04 编辑

@超级007x 好像不行诶..........你看看呗
下面这个是A君
A2.PNG A.PNG
——————————————————————————————————————————————————

下面这个是Q君

Q2.PNG Q.PNG ————————————————————————————————————————————————
对话框/控件变量和计时器我都另外建立了
.....那个显示和隐藏控件的动作我删除了




Q2.PNG
回复

使用道具 举报

 楼主| 发表于 2018-8-19 15:10:05 | 显示全部楼层
@超级007x 成功拉!!么么哒!
回复

使用道具 举报

发表于 2018-8-19 15:21:58 来自手机 | 显示全部楼层
1图没明显错误,2图中if条件似乎错了,3图中if条件单位死亡跟被点击的对话框有什么关系?4图的条件死亡类型为移除一般是触发器干的 5图条件问题跟3图一样 细节上的问题:1只在单个触发器中出现的变量可以使用局部变量(常规作用跟全局变量没区别,区别在于只用于单个触发器单次运行) 2你的变量名称最好好好命名一下,我都分不清哪个是哪个了,推荐用英文命名(中文也可以,只是ID不太好分辨) 3分支大于等于3以上的if-then可以使用动作-综合中的if集(具体怎么拼我不记得,记得是M开头的单词+if)
回复

使用道具 举报

 楼主| 发表于 2018-8-19 15:52:45 | 显示全部楼层
@超级007x 我已经解决了...那些错误的触发问题,因为我检查过一遍

还有不添加 死亡类型为移除的条件 的话.......拟态变身也会视为死亡【移除原来的单位,变身新的单位】然后刷复活......
还有原来还可以单次运行啊,我一直搞不清楚局部和全局,有人都开始用连点器刷单位了...
还有确实很乱,我自己都眼花了........
还有谢谢拉~
回复

使用道具 举报

发表于 2018-8-20 18:00:30 | 显示全部楼层
本帖最后由 yxxiaobin 于 2018-8-20 19:19 编辑

建议用一个数组来记录玩家的角色,比如叫做 角色[],那么玩家1的角色就是 角色[1],玩家2的角色就是角色[2],以此类推。
然后在复活触发器中,不要比对死亡单位的单位类型,而是比对死亡单位是不是 角色[触发单位所有者]。这样思路就会清晰很多了。
如果两队复活动作不同,可以再验证一下玩家的队伍,然后决定走哪一个分支,不必弄这么多复活触发器。
帮你做了个演示 简单的角色选择和复活对话框.SC2Map (79.4 KB, 下载次数: 8)
回复

使用道具 举报

 楼主| 发表于 2018-8-22 14:01:36 | 显示全部楼层
本帖最后由 miorie 于 2018-8-22 18:56 编辑

@yxxiaobin 哦!哦!~辛苦你了,谢谢拉!

虽然有些复杂......不过我会认真看的.....
Q.PNG

点评

第一个条件写的不对吧,这么做是无法正确取出玩家的。比如第二队由玩家3、4、5组成,那么当触发玩家为3时,你读到的玩家是“第二队的第三个玩家”,其实是玩家5。 建议使用“玩家在玩家组中”这个条件。  详情 回复 发表于 2018-8-26 09:04
回复

使用道具 举报

发表于 2018-8-26 09:04:21 | 显示全部楼层
miorie 发表于 2018-8-22 14:01
@yxxiaobin 哦!哦!~辛苦你了,谢谢拉!

虽然有些复杂......不过我会认真看的.....

第一个条件写的不对吧,这么做是无法正确取出玩家的。比如第二队由玩家3、4、5组成,那么当触发玩家为3时,你读到的玩家是“第二队的第三个玩家”,其实是玩家5。
建议使用“玩家在玩家组中”这个条件。

点评

嗯嗯,我也修改了变量为局部变量  详情 回复 发表于 2018-8-27 16:13
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 05:21 , Processed in 0.588087 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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