中国星际RPG联盟

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6458|回复: 11
打印 上一主题 下一主题

消除玩家空缺而互相攻击的BUG

[复制链接]
跳转到指定楼层
楼主
发表于 2014-1-8 15:52:17 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
作者:castelu

经常可以看到,玩配合类的操作图,如果人没有满就开了,那么本来自己队伍的单位会变成电脑的,而且还会打自己人
这是一个很经典又苦恼的BUG,经典地图Impossible系列基本每张图都有这个BUG
问题产生的原因是,一般这些地图,都会在每关的开始,通过Create Units给玩家实现分配兵种
但是,如果玩家空缺,这些单位就会有电脑接管,而这个空缺玩家的所有结盟设置都没有执行过,所以这些单位就是见人就打

如何修正呢?有两种方法
首先,设置1个同盟的电脑玩家
先把单位Create给电脑(或者事先在地图上摆放)
第一种方法,你手动用若干个位置层把电脑的单位分隔开,然后用Give Units分别把每个位置层中的单位分别给到玩家即可
当然,你要判断好哪些玩家还在游戏中,如果玩家不在,则不Give
这种方法的优点是,可以确定每个玩家得到的单位是制图者事先确定的,而不是随机分配的,比较公平,缺点是,如果有玩家不在,那些兵还是电脑的,不受控制
第二种方法,直接用一个大位置层把所有需要Give的单位框起来,然后在你玩家那个Force里面,写上Give x units owned by 电脑盟友 to current player,然后循环触发
其中x表示每批量电脑玩家给到玩家的单位数量
我举个例子,你创造了12个Zealot,3个Dragoon给电脑
如果你写Give 2 units to current player,循环触发
那么前2个Zealot会给Player1,接下来2个Zealot会给Player2,……
如果Zealot给完了,会给Dragoon
如果玩家循环完了,会从头开始再循环
这种方法的优点是,你只用做一个位置层即可解决问题,比较方便,缺点是,兵种的分配可能会随机化,一般是从地图的左上角开始往下Give

当然,如果你结合了两种方法,那么就是完美的了
也就是,先手动分配,如果有玩家不在,那么剩余部分用随机分配

做了一张演示图,只用了第二种方法,你可以试一下玩家人数不同的时候,电脑如何给兵到玩家

Give Units Test.scm

39 KB, 下载次数: 0, 下载积分: 水晶 -2 克

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 顶 踩
回复

使用道具 举报

沙发
 楼主| 发表于 2014-1-11 11:07:59 | 显示全部楼层
在事先摆放在地图上的单位上,每个玩家分配好,并给予一个位置层
要Give之前,先判断该玩家是否存在
可以利用Deaths计数
在游戏一开始就设置每个玩家的Deaths为1,假如中途有玩家退出,则将该玩家的Deaths设置为0(判断条件是该玩家commands或者brings至多0个单位)
然后利用Deaths的值来确定玩家是否存在
比如Deaths=1,则把电脑的兵Give给他,Deaths=0,则不Give

当然,如果你觉得麻烦,可以跳过不使用Deaths,直接用command或者bring条件
例如:
条件:current player commands/brings at least ...
触发:give ... to current player

其实,如果你把Give的触发归属权给每一个玩家,那么如果玩家不在,那些触发都是不会执行的
也就是说,条件:current player commands/brings at least ...都可以省掉

但是为了不混淆两种方法,你必须要有一个先后级,肯定是先按照你画的位置层来分配,然后再随机分配吧?

所以,你在上面触发结束以后,让开关=on

再接下来,当开关=on的时候,再利用随机Give去判断

这样的效果,最终是如果有玩家存在,电脑的兵会根据你在地图上摆放的进行Give,当玩家空缺时,剩下部分再按照随机原则Give
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2014-1-12 13:23:04 | 显示全部楼层
不用这么复杂
你直接把Give触发的归属权给每个玩家,这样,如果这个玩家在,它就会执行,不在就不会执行
不执行,这些兵就是电脑的
那么再第二轮随机分配中,会得到分配
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2014-1-12 20:49:19 | 显示全部楼层
善于利用触发的复制,只修改关键部分
50条触发应该还是比较少了,大的图会有上百上千触发
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2014-1-14 13:41:43 | 显示全部楼层
你再试试
或者你在地图上摆放单位的时候规律一点,从左到右,这样只需要用第二种方法即可
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|网站统计|手机版|小黑屋|中国星际RPG联盟    

GMT+8, 2024-5-15 13:13 , Processed in 1.250000 second(s), 22 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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