找回密码
 点一下
查看: 1408|回复: 18

关于多面板

[复制链接]
发表于 2012-7-5 20:51:39 | 显示全部楼层 |阅读模式
请问使用本地玩家 让多面板只对玩家1显示或者玩家2显示时,是不是这样:

IF 本地玩家 等于 玩家1
THEN 设置DuoMianBan=最后创建的多面板
           显示DuoMianBan(1)
           设置DuoMianBan(1)的第1行 第1列的项目图标为……
Else 不做任何动作

这个Else不做任何动作的话,会不会有问题呢?他们说使用完本地玩家,Else这里要设置别的东西
 楼主| 发表于 2012-7-5 21:30:46 | 显示全部楼层
现在我的地图跟朋友打联网,一选英雄就掉线,昨天还打着的,自从昨晚做了多面板后,就出现掉线情况了。
我的多面板是创建之后,然后判断10次本地玩家是否为玩家1-玩家10,然后设置变量DuoMianBan(1-10)等于 最后创建的多面板。因为多面板上有英雄属性的数据,所以每个多面板都不一样的。

在玩家召唤完英雄之后,我开启了一个相应的数组型计算器(比如触发玩家等于玩家4那就是Time(4),玩家7就是Time(7)),计算器是循环的,时间为1秒,我要的效果就是每过1秒计算器到期,然后更改每个玩家他们多面板上的数据,比如英雄的移动速度、暴击几率等等。我的用法如下:
IF 到期的计算器等于Time(1)
动作 设置DuoMianBan(1)第X行第X列的项目文本为Hero(1)的当前移动速度……

总之就是这样的,其他比如金钱、复活倒计时,我都是用1秒计算器,然后计时器到期循环整数从1-10,设置DuoMianBan(循环整数A)的第X行第X列的项目文本为XXX……
击杀、补兵、死亡次数,都是用循环整数从1-10更改DuoMianBan(循环整数A)的数据。

我不知道掉线是不是本地玩家没用好的缘故,请大侠或有经验的人士解答一下。
回复

使用道具 举报

发表于 2012-7-6 09:50:33 | 显示全部楼层
比较安全的做法是,先创建好多面板。然后把显示/隐藏多面板这句动作放进“IF 本地玩家 等于 玩家1”的结构里。
回复

使用道具 举报

 楼主| 发表于 2012-7-6 10:29:54 | 显示全部楼层
我的多面板是数组型的,每个玩家都有一个独立的多面板,这样使用这些多面板的时候,要不要判断本地玩家 然后再对这个玩家显示呢?
回复

使用道具 举报

 楼主| 发表于 2012-7-6 10:30:53 | 显示全部楼层
我的意思是说,是不是任何一个需要使用这些独立的多面板的时候,都要使用本地玩家去单独显示
回复

使用道具 举报

发表于 2012-7-6 11:05:23 | 显示全部楼层
lsltdz42:我的多面板是数组型的,每个玩家都有一个独立的多面板,这样使用这些多面板的时候,要不要判断本地玩家 然后再对这个玩家显示呢? (2012-07-06 10:29)
比如你创建12个多面板分别给12个玩家,那么实际是给每个玩家创建了12个多面板,如果不用异步显示,那么将会同时给12个玩家显示或隐藏;如果用了异步创建,那么由于每个玩家拥有的多面板(及其数量,比如给玩家一创建了两个、玩家二创建了一个)不同步而掉线
回复

使用道具 举报

 楼主| 发表于 2012-7-6 11:24:40 | 显示全部楼层
那么应该注意哪些呢?我要单独修改某一玩家的数据的时候,是不是其他玩家的多面板也要顾及到?
回复

使用道具 举报

 楼主| 发表于 2012-7-6 11:33:55 | 显示全部楼层
1.png 2.png

我貌似是使用了这些动作而导致了掉线?
回复

使用道具 举报

发表于 2012-7-6 11:47:43 | 显示全部楼层
lsltdz42:那么应该注意哪些呢?我要单独修改某一玩家的数据的时候,是不是其他玩家的多面板也要顾及到? (2012-07-06 11:24)
直接修改该多面板即可,这个多面板是所有玩家都拥有的,唯一的不同是只有一个玩家能看到而已

所以LZ若只对能看到这个面板的玩家进行多面板修改的话,由于其他玩家的该多面板没有修改而导致数据不同步,于是掉线
回复

使用道具 举报

 楼主| 发表于 2012-7-6 12:15:55 | 显示全部楼层
数据不同步的意思是 数据不一样 还是 没有同时作修改?你的意思是说,我如果修改过了玩家1的多面板,那么其他11个玩家的全部要做相应的修改?
回复

使用道具 举报

 楼主| 发表于 2012-7-6 12:20:10 | 显示全部楼层
IF    本地玩家 等于 玩家1
THEN    For 循环整数A,从1-12,修改DuoMianBan(循环整数A)的X行X列的项目文本为……


这样就可以了吧?
回复

使用道具 举报

发表于 2012-7-7 00:04:35 | 显示全部楼层

回 lsltdz42 的帖子

lsltdz42:IF    本地玩家 等于 玩家1
THEN    For 循环整数A,从1-12,修改DuoMianBan(循环整数A)的X行X列的项目文本为……


这样就可以了吧? (2012-07-06 12:20)
LZ没有完全理解呢……

数据不同步是指数据不一样

LZ这样的写法仍旧只为玩家1修改了多面板,其它玩家由于判断本地玩家不是玩家1根本就不会运行修改动作,所以数据不同步

正确的做法是不用判断本地玩家直接修改多面板,于是所有玩家的该多面板都进行了统一修改~ 数据同步~
而每个玩家的多面板不同实际是玩家1只能看到多面板1,玩家2只能看到多面板2,……
但所有玩家(假设一共12个玩家)都拥有多面板1-12,且所有玩家的多面板1-12里的内容完全一样,并且是同一时间进行修改

所以应该是创建了多面板后,IF 本地玩家==玩家XX,显示多面板,之后修改的动作全都不用判断本地玩家
回复

使用道具 举报

 楼主| 发表于 2012-7-7 17:43:48 | 显示全部楼层
我知道,但是每个玩家多面板上的某些数据不一样,岂不是会引起数据不同步吗?比如攻击力、移动速度这些数据,我也想在多面板上显示,这些数据本来就因不同的英雄而异的
回复

使用道具 举报

 楼主| 发表于 2012-7-7 17:46:13 | 显示全部楼层
多面板在使用某些 每个玩家都不一致的数据时,应该如何执行动作?
回复

使用道具 举报

发表于 2012-7-7 20:44:28 | 显示全部楼层
你的图里玩家到底能看到几个多面板……

如果是只能看到自己的多面板,那么只要创建玩家数的多面板然后异步显示,后面的全部统一修改即可(即不用判断本地玩家)~
回复

使用道具 举报

 楼主| 发表于 2012-7-9 12:44:05 | 显示全部楼层
哦明白了明白了,以后要改某个玩家的多面板上的数据的时候只需要 直接修改 最后创建的多面板就行了
回复

使用道具 举报

 楼主| 发表于 2012-7-10 16:13:55 | 显示全部楼层
另外我想借问一下哈,排行榜跟多面板是不是同理呢?
回复

使用道具 举报

发表于 2012-7-10 20:42:19 | 显示全部楼层
lsltdz42:另外我想借问一下哈,排行榜跟多面板是不是同理呢? (2012-07-10 16:13)
类似~
回复

使用道具 举报

 楼主| 发表于 2012-7-10 21:16:13 | 显示全部楼层
比如我用排行榜做复活倒计时显示,如果同时有2个或两个以上的英雄死亡,那么这几个英雄都进入了复活倒计时。
很好,排行榜上的数据没问题,每过1秒,每个玩家的排行榜上的复活时间就缩短1秒
一旦有某个玩家的复活时间到期(也就是计算器到期),我就会执行删除排行榜这个动作,但是这样做其他玩家的排行榜也会从屏幕上消失掉……

怎么会这样啊,我的排行榜变量是数组型的,我给12个玩家每个都设置了一个相应的变量啊,我删除PaiHangBang(1)——也就是玩家1的排行榜,其他玩家正在使用的排行榜变量也会被删除?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 10:48 , Processed in 0.036214 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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