找回密码
 点一下
查看: 1928|回复: 25

求教大佬怎么设置队伍1的全部单位进去区域结束游戏

[复制链接]
发表于 2018-12-5 19:39:47 来自手机 | 显示全部楼层 |阅读模式
比如一张图里8个玩家,每个玩家只有一个火车,触发器设置队伍1中的4个玩家的火车进入区域1以队伍1获胜结束游戏,触发器里事件用任意单位进入区域吗?那条件怎么写,想了很久不知道怎么下手。
发表于 2018-12-5 20:10:29 | 显示全部楼层
进入区域的单位类型=火车
进入区域单位的玩家属于队伍1
统计区域不同玩家序号的计数=队伍1玩家数量

队伍1胜利

点评

这样会不会如果队伍1有个玩家火车死了,其他三个进入了区域不触发胜利啊  详情 回复 发表于 2018-12-5 20:22
回复

使用道具 举报

 楼主| 发表于 2018-12-5 20:22:26 来自手机 | 显示全部楼层
hzmwe 发表于 2018-12-5 20:10
进入区域的单位类型=火车
进入区域单位的玩家属于队伍1
统计区域不同玩家序号的计数=队伍1玩家数量

这样会不会如果队伍1有个玩家火车死了,其他三个进入了区域不触发胜利啊
回复

使用道具 举报

发表于 2018-12-5 20:34:47 | 显示全部楼层
如果你想3个玩家的火车进入区域也能胜利
最后的条件改为
统计区域不同玩家序号的计数>=3

同理>=2或>=1
都可以,看你具体的需求

点评

大佬,条件里区域内的单位类型这个看不太懂,能不能详细点啊  详情 回复 发表于 2018-12-5 20:52
回复

使用道具 举报

 楼主| 发表于 2018-12-5 20:52:45 来自手机 | 显示全部楼层
hzmwe 发表于 2018-12-5 20:34
如果你想3个玩家的火车进入区域也能胜利
最后的条件改为
统计区域不同玩家序号的计数>=3

大佬,条件里区域内的单位类型这个看不太懂,能不能详细点啊
回复

使用道具 举报

发表于 2018-12-5 21:28:06 | 显示全部楼层
有个函数叫单位的单位类型
而这个单位是进入区域的触发单位

接下来,机智聪明的你应该能搞定了啊...........
回复

使用道具 举报

发表于 2018-12-5 21:49:34 来自手机 | 显示全部楼层
其实有更简单的方法 定义变量a 用个间隔1秒的循环 挑选目标区域(可以用点加半径)单位类型:火车 玩家:在队伍1中的玩家 数量任意 执行动作:修改变量a+1,if a=在队伍1中的玩家数量 then结束循环,结束游戏

点评

补充:else 设置a=0  详情 回复 发表于 2018-12-5 21:53
回复

使用道具 举报

发表于 2018-12-5 21:53:15 来自手机 | 显示全部楼层
超级007x 发表于 2018-12-5 21:49
其实有更简单的方法 定义变量a 用个间隔1秒的循环 挑选目标区域(可以用点加半径)单位类型:火车 玩家:在队伍 ...

补充:else 设置a=0
回复

使用道具 举报

发表于 2018-12-5 22:09:09 | 显示全部楼层
007方案也是对的,就是个人觉的,火车是在队伍1中的玩家做条件去修改变量a,也许不符合楼主的本意
比如:有3个火车冲进了区域,而这3个火车的所有者都是玩家1,这样就取得胜利可能不符合楼主需要3个玩家进入区域.....

点评

我不建议用检测单位进入区域后进行计数比较判断,应该实时检测区域内单位数量,因为如果先有单位进入区域了,然后离开或者死亡了,计数却不会减少,会导致有人离开位置依然结束游戏  详情 回复 发表于 2018-12-5 23:10
修改版:区域内的单位数量为a 整张地图内的单位数量为b a=b则结束游戏  详情 回复 发表于 2018-12-5 22:48
回复

使用道具 举报

发表于 2018-12-5 22:48:51 来自手机 | 显示全部楼层
hzmwe 发表于 2018-12-5 22:09
007方案也是对的,就是个人觉的,火车是在队伍1中的玩家做条件去修改变量a,也许不符合楼主的本意
比如: ...

修改版:区域内的单位数量为a 整张地图内的单位数量为b a=b则结束游戏
回复

使用道具 举报

发表于 2018-12-5 23:01:54 来自手机 | 显示全部楼层
其实逻辑上很简单,判断单位进入某区域不好弄,但是判断区域内满足条件的单位数量等于整张地图内满足条件的单位数量很容易,当满足次条件时就代表全部单位进入目标区域,而且就算有玩家死亡或者一个玩家控制多个也没问题。
回复

使用道具 举报

发表于 2018-12-5 23:10:30 来自手机 | 显示全部楼层
hzmwe 发表于 2018-12-5 22:09
007方案也是对的,就是个人觉的,火车是在队伍1中的玩家做条件去修改变量a,也许不符合楼主的本意
比如: ...

我不建议用检测单位进入区域后进行计数比较判断,应该实时检测区域内单位数量,因为如果先有单位进入区域了,然后离开或者死亡了,计数却不会减少,会导致有人离开位置依然结束游戏

点评

你说的对的,有单位进入区域时,再实时检测区域内符合条件的玩家数量后才能确定是否胜利 否则有可能出现错误的判断........  详情 回复 发表于 2018-12-5 23:44
回复

使用道具 举报

发表于 2018-12-5 23:44:47 | 显示全部楼层
超级007x 发表于 2018-12-5 23:10
我不建议用检测单位进入区域后进行计数比较判断,应该实时检测区域内单位数量,因为如果先有单位进入区域 ...

你说的对的,有单位进入区域时,再实时检测区域内符合条件的玩家数量后才能确定是否胜利
否则有可能出现错误的判断........

点评

这个有点类似于比如沙漠风暴这种游戏,比如说我如果是用玩家的单位组进行建筑检测刷兵,那么就无法完成盟友帮助建造,这时候盟友在我的区域建造并不会把单位刷给我。如果是周期检测玩家所在区域的建筑进行刷兵,就会  详情 回复 发表于 2018-12-6 05:15
回复

使用道具 举报

发表于 2018-12-6 05:15:03 | 显示全部楼层
hzmwe 发表于 2018-12-5 23:44
你说的对的,有单位进入区域时,再实时检测区域内符合条件的玩家数量后才能确定是否胜利
否则有可能出现 ...

这个有点类似于比如沙漠风暴这种游戏,比如说我如果是用玩家的单位组进行建筑检测刷兵,那么就无法完成盟友帮助建造,这时候盟友在我的区域建造并不会把单位刷给我。如果是周期检测玩家所在区域的建筑进行刷兵,就会让盟友建造在我的区域内的建筑也把兵刷在我这,其实跟你这个有点类似

点评

是的,也属于区域类检测,道理都类似的  发表于 2018-12-6 16:07
回复

使用道具 举报

发表于 2018-12-6 20:35:28 | 显示全部楼层
这类问题有一个“标准”的思路:在合适的时候判断一个计数,如果计数达到要求,就通过判断。
具体设计:为队伍1定义一个整数变量。当有队伍1的玩家的火车抵达终点时,该变量+1,如果变量达到4,则表示队伍1的所有人都抵达了终点。那么如果有玩家中途死掉或退出呢?其实很简单,在玩家死亡和退出时,该变量也+1,并进行判断就好了。这样只要队伍1中存活且在线的玩家都抵达了终点,就会获胜。队伍2设计思路一致,所以你直接定义一个整数数组就行了。

点评

挺好的标准通用方法......  发表于 2018-12-7 00:25
回复

使用道具 举报

发表于 2018-12-16 01:56:55 | 显示全部楼层
本帖最后由 茫然之骑士 于 2018-12-16 15:24 编辑

最笨的办法:初始再多设置8个单位(我通常用人类导弹塔)
(8个)事件“某初始单位(比如玩家1的火车)进入某初始区域”,条件无,动作“摧毁某初始单位(比如玩家1的人类导弹塔)”,“设置触发单位无敌”,“设置触发单位不可指挥”;
(8个)周期事件“每10秒(当然你也可以设置的更短)”,条件“某玩家(比如玩家1)游戏状态不等于进行中”,动作“摧毁某初始单位(比如玩家1的火车)”
(8个)事件“某初始单位(比如玩家1的火车)死亡”,条件无,动作“摧毁某初始单位(比如玩家1的人类导弹塔)
(1个)事件:“任意单位死亡”,
  条件:与{“某初始单位(比如队伍1玩家1的人类导弹塔)为活体状态,假”(8个,即所有玩家的导弹塔),或【“某初始单位(比如队伍1玩家1的火车)为活体状体,真”(8个,即至少有一个玩家的火车过关了)}
  动作:(3个)If then do else do[条件:“区域1(队伍1过关区域)单位数量与区域2(队伍2过关区域)单位数量对比”(3种,即大于,等于,小于)”,动作:“玩家游戏结束”(8个,当条件为大于时,玩家1,2,3,4胜利,玩家5,6,7,8失败;小于时反之,等于时8位玩家平局)]
看着挺多的,但是复制粘贴然后修改一下具体数据就行了。
这种思路很适合萌新:每到达终点一辆火车就摧毁指定单位,火车中途翻车也会摧毁指定单位,所有的8个指定单位都摧毁且有一个以上的火车活着时判定过关火车最多的队伍胜利。
当然,有个缺点:当某位玩家挂机时,其他人就算都分出胜负了也不能自动结束游戏,这就很恶心人。你可以做个相关的触发。

点评

很详尽挺好的教程  发表于 2018-12-20 16:08
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 04:37 , Processed in 0.287864 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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