找回密码
 点一下
查看: 1508|回复: 26

关于如何判断玩家数量。

[复制链接]
6 GA币 回复本帖可获得 1 GA币奖励! 每人限 2 次(中奖概率 30%)
发表于 2014-6-20 18:05:15 | 显示全部楼层 |阅读模式
本帖最后由 尹枫 于 2014-6-20 18:06 编辑

目前的思路是想做一个竞技场模式。
一个玩家则无法触发竞技场功能。
要一个以上的玩家才可以触发竞技场。
问题是我绞尽脑汁也无法判断玩家数量.....
有一次成功了,但是单人模式和局域网模式一个人玩又是两个不同的概念..........
求一个完美的触发...
谢谢各位大神了~爱你们~
发表于 2014-6-20 18:12:18 | 显示全部楼层
条件里面不是有个实数么   用那个可能行    如:玩家组内玩家数量等于5
因为没开编辑器   所以也不太清楚   参考下吧、、

点评

我这里面还有电脑玩家 中立玩家.... 你这个思路我试了 不行  详情 回复 发表于 2014-6-20 18:26
回复

使用道具 举报

 楼主| 发表于 2014-6-20 18:26:28 | 显示全部楼层
kirito 发表于 2014-6-20 18:12
条件里面不是有个实数么   用那个可能行    如:玩家组内玩家数量等于5
因为没开编辑器   所以也不太清楚  ...

我这里面还有电脑玩家 中立玩家....  你这个思路我试了 不行
回复

使用道具 举报

发表于 2014-6-20 18:28:55 | 显示全部楼层
那  再加个条件  玩家组内玩家等于电脑   实在不行两条触发。。

点评

我的意思是只要用户玩家的数量,在线玩的。中途退出的不算。  详情 回复 发表于 2014-6-20 18:33
回复

使用道具 举报

 楼主| 发表于 2014-6-20 18:33:46 | 显示全部楼层
kirito 发表于 2014-6-20 18:28
那  再加个条件  玩家组内玩家等于电脑   实在不行两条触发。。

我的意思是只要用户玩家的数量,在线玩的。中途退出的不算。
回复

使用道具 举报

发表于 2014-6-20 19:03:26 | 显示全部楼层

回帖奖励 +1 GA币

简介
    事件
        地图初始化
    条件
    动作
        逆天[YDWE] - 设置 [整数] loc_i = 0
        循环动作[循环整数A]从 1 到 12, 运行 (Loop - 动作)
            Loop - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        ((玩家 循环整数A [R]) 的游戏状态) 等于 正在游戏
                        ((玩家 循环整数A [R]) 的控制者) 等于 用户
                    Then - 动作
                        逆天[YDWE] - 设置 [整数] loc_i = ((loc_i) + 1)
                    Else - 动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                (loc_i) 小于 2
            Then - 动作
                循环动作[循环整数A]从 1 到 12, 运行 (Loop - 动作)
                    Loop - 动作
                        游戏 - 设置 (玩家 循环整数A [R]) 失败并显示失败信息: 失败!
            Else - 动作

点评

有人中途退出怎么办?  详情 回复 发表于 2014-6-20 19:15
回复

使用道具 举报

 楼主| 发表于 2014-6-20 19:15:25 | 显示全部楼层
o0木子0o 发表于 2014-6-20 19:03
简介
    事件
        地图初始化

有人中途退出怎么办?
回复

使用道具 举报

发表于 2014-6-20 19:49:46 | 显示全部楼层

回帖奖励 +1 GA币

未命名触发器 001
    事件
        地图初始化
    条件
    动作
        设置 i[0] = 0
        循环动作[循环整数A]从 1 到 12, 运行 (Loop - 动作)
            Loop - 动作
                设置 i[循环整数A [R]] = 0
        循环动作[循环整数A]从 1 到 12, 运行 (Loop - 动作)
            Loop - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        ((玩家 循环整数A [R]) 的控制者) 等于 用户
                        ((玩家 循环整数A [R]) 的游戏状态) 等于 正在游戏
                    Then - 动作
                        设置 i[0] = (i[0] + 1)
                        设置 i[循环整数A [R]] = 1
                    Else - 动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                i[0] 小于 2
            Then - 动作
                循环动作[循环整数A]从 1 到 12, 运行 (Loop - 动作)
                    Loop - 动作
                        游戏 - 设置 (玩家 循环整数A [R]) 失败并显示失败信息: 失败!
            Else - 动作
                触发器 - 运行 未命名触发器 002 <预设> (检查条件)
                触发器 - 为 未命名触发器 002 <预设> 添加事件: (时间 - 每当游戏逝去 1.00 秒)




未命名触发器 002
    事件
    条件
    动作
        循环动作[循环整数A]从 1 到 12, 运行 (Loop - 动作)
            Loop - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        i[循环整数A [R]] 等于 1
                    Then - 动作
                        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                            If - 条件
                                ((玩家 循环整数A [R]) 的游戏状态) 等于 已离开游戏
                            Then - 动作
                                设置 i[0] = (i[0] - 1)
                                设置 i[循环整数A [R]] = 0
                            Else - 动作
                    Else - 动作
        循环动作[循环整数A]从 1 到 12, 运行 (Loop - 动作)
            Loop - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        i[0] 小于 2
                    Then - 动作
                        循环动作[循环整数A]从 1 到 12, 运行 (Loop - 动作)
                            Loop - 动作
                                游戏 - 设置 (玩家 循环整数A [R]) 失败并显示失败信息: 失败!
                    Else - 动作



测试.w3x (17.08 KB, 下载次数: 2)


点评

未命名触发器 038 事件 地图初始化 条件 动作 设置zhengshu=0 未命名触发器 039 事件 单位 - 任意单位 获得物品 条件 ((被操作物品) 的类型) 等于 申请玩家竞技  详情 回复 发表于 2014-6-20 20:36
回复

使用道具 举报

 楼主| 发表于 2014-6-20 20:36:58 | 显示全部楼层
o0木子0o 发表于 2014-6-20 19:49
未命名触发器 001
    事件
        地图初始化

未命名触发器 038
事件
     地图初始化
条件
动作
    设置zhengshu=0

未命名触发器 039
    事件
        单位 - 任意单位 获得物品
    条件
        ((被操作物品) 的类型) 等于 申请玩家竞技
    动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                ((触发单位) 是 英雄) 等于 TRUE
            Then - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        ((触发单位) 的等级) 大于或等于 500
                    Then - 动作
                        循环动作[循环整数A]从 1 到 12, 运行 (Loop - 动作)
                            Loop - 动作
                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                    If - 条件
                                        ((玩家 循环整数A [R]) 的游戏状态) 等于 正在游戏
                                        ((玩家 循环整数A [R]) 的控制者) 等于 用户
                                    Then - 动作
                                        设置 zhengshu = (zhengshu + 1)
                                    Else - 动作
                                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                                    If - 条件
                                        zhengshu 小于 2
                                    Then - 动作
                                        游戏 - 对 ((触发单位) 的所有者) 在屏幕位移(0.00,0.00)处显示文本: |cffffd700玩家太...
                                        触发器 - 删除 (当前触发)
                                    Else - 动作
                                        游戏 - 对 ((触发单位) 的所有者) 在屏幕位移(0.00,0.00)处显示文本: |cffffd700申请成功
                                        游戏 - 对 (玩家 循环整数A [R]) 在屏幕位移(0.00,0.00)处显示文本: (((触发单位) 的名字) + |cffff0000申请竞技赛成功,5分钟之后开始,请其他玩家做好准备!|r)
                                        等待 1.00 秒(游戏时间)
                                        触发器 - 开启 未命名触发器 050 <预设>
                                        触发器 - 开启 未命名触发器 058 <预设>
                                        触发器 - 删除 (当前触发)
                    Else - 动作
                        游戏 - 对 ((触发单位) 的所有者) 在屏幕位移(0.00,0.00)处显示文本: |cffffd700等级不可申请
            Else - 动作
                游戏 - 对 ((触发单位) 的所有者) 在屏幕位移(0.00,0.00)处显示文本: |cffffd700非英雄不能申请
你看看我这样写可以吗?
我试了 但是进游戏点申请竞技 就会一次触很多次,成功与否,都会发很多次,屏幕显示的文本出来好多次。。。
回复

使用道具 举报

发表于 2014-6-20 21:11:28 | 显示全部楼层
会触发12次
因为 QQ截图20140620210948.png 这个if嵌套在loop里了

点评

太感谢你了 已经解决了 现在我把两个触发分开 就没有再触发12次了。非常感谢。但是我现在有一个新问题就是,我竞技场有了一个设定,每杀一个人就记一分具体触发思路就是设置一个整数变量,任意单位死亡,死亡单位是  详情 回复 发表于 2014-6-20 23:27
回复

使用道具 举报

 楼主| 发表于 2014-6-20 23:27:12 | 显示全部楼层
o0木子0o 发表于 2014-6-20 21:11
会触发12次
因为这个if嵌套在loop里了

太感谢你了 已经解决了 现在我把两个触发分开 就没有再触发12次了。非常感谢。但是我现在有一个新问题就是,我竞技场有了一个设定,每杀一个人就记一分具体触发思路就是设置一个整数变量,任意单位死亡,死亡单位是英雄,凶手单位是英雄,设置zhengshu(1)=zhengshu(1)+1,玩家2就是设置zhengshu(2)=zhengshu(2)+1.
数据是统计出来了,可是怎么比较5个(我是最高5个玩家PK)整数变量的大小,来取最大的数相对应的玩家为最终胜利者呢?求教。

点评

我用的是多面板记录杀人数..... 求一个取最大值的完美触发~ 爱你们~@o0木子0o  详情 回复 发表于 2014-6-21 22:54
用循环进行22比较,用一个变量保存最大的值,就可以判断出来了,如果要确定是哪个玩家,再用另一个玩家变量在保存最大值的时候绑定玩家,还有一个更简单的方式是用排行榜……  发表于 2014-6-21 11:17
回复

使用道具 举报

 楼主| 发表于 2014-6-21 22:54:41 | 显示全部楼层
尹枫 发表于 2014-6-20 23:27
太感谢你了 已经解决了 现在我把两个触发分开 就没有再触发12次了。非常感谢。但是我现在有一个新问题就 ...

我用的是多面板记录杀人数.....   求一个取最大值的完美触发~ 爱你们~@o0木子0o
回复

使用道具 举报

发表于 2014-6-22 10:47:44 | 显示全部楼层

回帖奖励 +1 GA币

整数 有一个排行榜排名……你取一个排名第一的就可以了。

点评

.... 我说我用的是多面板... 貌似@o0木子0o的可行... 可就是看不懂思路~  详情 回复 发表于 2014-6-22 22:41
回复

使用道具 举报

发表于 2014-6-22 13:19:58 | 显示全部楼层
简介
    事件
    条件
    动作
        设置 ii = i[1]
        循环动作[循环整数A]从 1 到 12, 运行 (Loop - 动作)
            Loop - 动作
                如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
                    If - 条件
                        i[循环整数A [R]] 等于 ii
                    Then - 动作
                        设置 ii = i[循环整数A [R]]
                    Else - 动作
技术指导:面码酱

点评

以上是试了22比较的思路~ 完全没用啊~  详情 回复 发表于 2014-6-22 22:50
瞬间有点看不懂思路啊.... 能小小的提示一下么?  详情 回复 发表于 2014-6-22 22:39
回复

使用道具 举报

 楼主| 发表于 2014-6-22 22:39:46 | 显示全部楼层
o0木子0o 发表于 2014-6-22 13:19
简介
    事件
    条件

瞬间有点看不懂思路啊....   能小小的提示一下么?

点评

以上是试了22比较的思路~ 完全没用啊~  详情 回复 发表于 2014-6-22 22:50
回复

使用道具 举报

 楼主| 发表于 2014-6-22 22:41:03 | 显示全部楼层
551155 发表于 2014-6-22 10:47
整数 有一个排行榜排名……你取一个排名第一的就可以了。

....   我说我用的是多面板...  貌似@o0木子0o的可行...  可就是看不懂思路~
回复

使用道具 举报

 楼主| 发表于 2014-6-22 22:48:55 | 显示全部楼层
@o0木子0o  大大 你看看 昨天我试着做了这么个触发,可貌似完全没用啊~
麻烦你讲解一下你的触发,再看看我的....
未命名触发器 038
    事件
    条件
    动作
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                sharenshu[(玩家1(红色) 的玩家索引号)] 小于 (玩家2(蓝色) 的玩家索引号)
            Then - 动作
                设置 sharenshu[(玩家1(红色) 的玩家索引号)] = 0
            Else - 动作
                设置 sharenshu[(玩家2(蓝色) 的玩家索引号)] = 0
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                sharenshu[(玩家1(红色) 的玩家索引号)] 小于 (玩家3(青色) 的玩家索引号)
            Then - 动作
                设置 sharenshu[(玩家1(红色) 的玩家索引号)] = 0
            Else - 动作
                设置 sharenshu[(玩家3(青色) 的玩家索引号)] = 0
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                sharenshu[(玩家1(红色) 的玩家索引号)] 小于 (玩家4(紫色) 的玩家索引号)
            Then - 动作
                设置 sharenshu[(玩家1(红色) 的玩家索引号)] = 0
            Else - 动作
                设置 sharenshu[(玩家4(紫色) 的玩家索引号)] = 0
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                sharenshu[(玩家1(红色) 的玩家索引号)] 小于 (玩家5(黄色) 的玩家索引号)
            Then - 动作
                设置 sharenshu[(玩家1(红色) 的玩家索引号)] = 0
            Else - 动作
                设置 sharenshu[(玩家5(黄色) 的玩家索引号)] = 0
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                sharenshu[(玩家2(蓝色) 的玩家索引号)] 小于 (玩家3(青色) 的玩家索引号)
            Then - 动作
                设置 sharenshu[(玩家2(蓝色) 的玩家索引号)] = 0
            Else - 动作
                设置 sharenshu[(玩家3(青色) 的玩家索引号)] = 0
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                sharenshu[(玩家2(蓝色) 的玩家索引号)] 小于 (玩家4(紫色) 的玩家索引号)
            Then - 动作
                设置 sharenshu[(玩家2(蓝色) 的玩家索引号)] = 0
            Else - 动作
                设置 sharenshu[(玩家4(紫色) 的玩家索引号)] = 0
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                sharenshu[(玩家2(蓝色) 的玩家索引号)] 小于 (玩家5(黄色) 的玩家索引号)
            Then - 动作
                设置 sharenshu[(玩家2(蓝色) 的玩家索引号)] = 0
            Else - 动作
                设置 sharenshu[(玩家5(黄色) 的玩家索引号)] = 0
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                sharenshu[(玩家3(青色) 的玩家索引号)] 小于 (玩家4(紫色) 的玩家索引号)
            Then - 动作
                设置 sharenshu[(玩家3(青色) 的玩家索引号)] = 0
            Else - 动作
                设置 sharenshu[(玩家4(紫色) 的玩家索引号)] = 0
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                sharenshu[(玩家3(青色) 的玩家索引号)] 小于 (玩家5(黄色) 的玩家索引号)
            Then - 动作
                设置 sharenshu[(玩家3(青色) 的玩家索引号)] = 0
            Else - 动作
                设置 sharenshu[(玩家5(黄色) 的玩家索引号)] = 0
        如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
            If - 条件
                sharenshu[(玩家4(紫色) 的玩家索引号)] 小于 (玩家5(黄色) 的玩家索引号)
            Then - 动作
                设置 sharenshu[(玩家4(紫色) 的玩家索引号)] = 0
            Else - 动作
                设置 sharenshu[(玩家5(黄色) 的玩家索引号)] = 0
        玩家组 - 选取 (所有符合 (sharenshu[((匹配玩家) 的玩家索引号)] 大于 0) 的玩家) 内所有玩家做动作
            Loop - 动作
                设置 shengliwanjia = (选取玩家)
        触发器 - 删除 (当前触发)
回复

使用道具 举报

 楼主| 发表于 2014-6-22 22:50:10 | 显示全部楼层
尹枫 发表于 2014-6-22 22:39
瞬间有点看不懂思路啊....   能小小的提示一下么?

以上是试了22比较的思路~  完全没用啊~
回复

使用道具 举报

 楼主| 发表于 2014-6-22 22:50:30 | 显示全部楼层
o0木子0o 发表于 2014-6-22 13:19
简介
    事件
    条件

以上是试了22比较的思路~  完全没用啊~

点评

抱歉,最近几天没空。。。 今天试试可不可以做个演示给你吧  详情 回复 发表于 2014-6-24 16:55
回复

使用道具 举报

发表于 2014-6-24 16:55:16 | 显示全部楼层
尹枫 发表于 2014-6-22 22:50
以上是试了22比较的思路~  完全没用啊~

抱歉,最近几天没空。。。
今天试试可不可以做个演示给你吧
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 06:04 , Processed in 1.158141 second(s), 40 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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