找回密码
 点一下
查看: 1119|回复: 3

如何做到随机分配队伍?

[复制链接]
发表于 2011-8-28 12:31:24 | 显示全部楼层 |阅读模式
动作
  设置 wjz[0] = (新建空玩家组)
    设置 wjz[1] = (新建空玩家组)
    玩家组 - 选取 (所有符合 (((匹配玩家) 的游戏状态) 等于 正在游戏) 的玩家) 内所有玩家做动作
        Loop - 动作
            如果所有条件成立则做动作1,否则做动作2
                If - 条件
                    (随机整数,最小值: 1 最大值: 100) 大于或等于 50
                Then - 动作
                    如果所有条件成立则做动作1,否则做动作2
                        If - 条件
                            (wjz[0] 中的玩家数量) 不等于 6
                        Then - 动作
                            玩家组 - 为 wjz[0] 添加 (选取玩家)
                        Else - 动作
                            玩家组 - 为 wjz[1] 添加 (选取玩家)
                Else - 动作
                    如果所有条件成立则做动作1,否则做动作2
                        If - 条件
                            (wjz[1] 中的玩家数量) 不等于 6
                        Then -
                            玩家组 - 为 wjz[1] 添加 (选取玩家)
                        Else - 动作
                            玩家组 - 为 wjz[0] 添加 (选取玩家)
    玩家组 - 命令 wjz[0] 设置对 wjz[0] 的联盟状态为 结盟并共享视野
    玩家组 - 命令 wjz[0] 设置对 wjz[1] 的联盟状态为 敌对
    玩家组 - 命令 wjz[1] 设置对 wjz[1] 的联盟状态为 结盟并共享视野
    玩家组 - 命令 wjz[1] 设置对 wjz[0] 的联盟状态为 敌对


首先以上是我写的随机的触发,我测试时是用电脑玩家和用UP键触发来测试的

假如在满玩家的情况下,A队伍和B队伍可以正确随机分配12个玩家

但是没办法做到两队玩家人数平均化,或者说我现在绕进了个死胡同,不知道怎么解了

要怎么样改才能比如:四个游戏玩家,随机的话1.2.3.4玩家可以是1.4或2.1这样随机分配到A队伍.

而3,5,7之类的奇数玩家则接受其中一队多一个人
发表于 2011-8-28 12:38:22 | 显示全部楼层
为每个在线的玩家创建一个小企鹅,然后把企鹅添加进单位组
循环整数A从1到(企鹅数/2)做动作
选取单位组中随机单位,清除出单位组

于是剩下的,和已经清出去的就是两队了……
回复

使用道具 举报

 楼主| 发表于 2011-8-28 13:31:30 | 显示全部楼层
动作
    设置 LMMS = TRUE
    设置 WJZ[0] = (新建空玩家组)
    设置 WJZ[1] = (新建空玩家组)
    玩家组 - 选取 (所有符合 (((匹配玩家) 的游戏状态) 等于 正在游戏) 的玩家) 内所有玩家做动作
        Loop - 动作
            玩家组 - 为 WJZ[0] 添加 (选取玩家)
    游戏 - 对 玩家1(红色) 在屏幕位移(0.00,0.00)处显示文本: (转换 (WJZ[0] 中的玩家数量) 为字符串)
    设置 WJZ_Z_SHU = ((WJZ[0] 中的玩家数量) / 2)
    游戏 - 对 玩家1(红色) 在屏幕位移(0.00,0.00)处显示文本: (转换 WJZ_Z_SHU 为字符串)
    For循环整数B从 1 到 WJZ_Z_SHU, 做动作
        Loop - 动作
            玩家组 - 为 WJZ[1] 添加 (WJZ[0] 中随机抽取的一名玩家.)
    玩家组 - 选取 WJZ[1] 内所有玩家做动作
        Loop - 动作
            玩家组 - 为 WJZ[0] 移除 (选取玩家)
    玩家组 - 命令 WJZ[0] 设置对 WJZ[0] 的联盟状态为 结盟并共享视野
    玩家组 - 命令 WJZ[0] 设置对 WJZ[1] 的联盟状态为 敌对
    玩家组 - 命令 WJZ[1] 设置对 WJZ[1] 的联盟状态为 结盟并共享视野
    玩家组 - 命令 WJZ[1] 设置对 WJZ[0] 的联盟状态为 敌对
    触发器 - 运行 multidoar <预设> (无视条件)



我蛋疼了,按你的做法写出来了

但是测试的时候好奇怪啊

测试时是安排四个玩家

整数显示4/2=2没错啊

可是居然会出现循环三次做动作,也就是1V3的情况

这是怎么回事...
回复

使用道具 举报

 楼主| 发表于 2011-8-28 13:34:11 | 显示全部楼层
可以了,我加了条玩家组中随机玩家的变量才能正常运行
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 11:02 , Processed in 0.031257 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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