找回密码
 点一下
查看: 3710|回复: 20

也是同步机制问题 你能答对么。。

[复制链接]
发表于 2009-11-29 10:34:06 | 显示全部楼层 |阅读模式
func B takes nothing return nothing

local integer i = GetStoredInteger(GC,'1',"1")

call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,10,I2S(i))

endfunc


func A takes nothing return nothing

local integer i = 0

if GetLocalPlayer==2 then

call StoreInteger(GC,"1","1",1)
call SyncStoredInteger(GC,"1","1",)  

call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,10,I2S(GetStoredInteger(GC,'1',"1") ))

endif

call StoreInteger(GC,"1","1",0)

call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,10,I2S(i))

call B()

endfunc


联机模式下
你是本地玩家2  触发func A
请问你屏幕上出现的结果是什么。。。

后面还有几题 有人答对了 继续出

- = 我的错。。写错东西了。。尴尬   已经改正。。
发表于 2009-11-29 12:36:25 | 显示全部楼层
0
0
回复

使用道具 举报

 楼主| 发表于 2009-11-29 15:48:51 | 显示全部楼层
额。。。。很遗憾。。你答错了。。
一共有3个地方输出了数值。。。
回复

使用道具 举报

发表于 2009-11-29 15:58:07 | 显示全部楼层
那就是0,0,0.。。
回复

使用道具 举报

 楼主| 发表于 2009-11-30 12:28:42 | 显示全部楼层
错类。。。
嘎嘎~~~
应该是1 , 0 , 1

我个人猜测是。。。有2个池储存缓存。。
一个本地 一个共享(估计在主机那)
回复

使用道具 举报

发表于 2009-11-30 22:40:07 | 显示全部楼层
我是J盲一个也对了两个。。。
1。1。1
回复

使用道具 举报

发表于 2009-11-30 23:30:20 | 显示全部楼层
这个I2S(i)管Store什么事情。。。
回复

使用道具 举报

发表于 2009-12-1 14:18:15 | 显示全部楼层
'1' 等于啥?49?
回复

使用道具 举报

发表于 2009-12-1 15:55:56 | 显示全部楼层
哦,我错了,这段代码应该是编译不过的
回复

使用道具 举报

发表于 2009-12-1 18:35:31 | 显示全部楼层
“错类。。。
嘎嘎~~~
应该是1 , 0 , 1”
明显是LZ自己错了。
在function A一开始声明的i的初始化的值为0。
然后到第一次打印i的数字之前,i没有被赋值操作。
也就是说,i根本没变,又何来1这一说呢?
然后
“endif

call StoreInteger(GC,"1","1",0) ”
这里是所有玩家都会执行的代码。也就是说不管同步问题,在这之后,GameCache里的值就是0。
然后再执行B,打印出来的必然会是0。
回复

使用道具 举报

发表于 2009-12-1 23:26:05 | 显示全部楼层
syncStore应该是在某段代码执行完毕以后0秒的存储操作了,而且延时并不确定
回复

使用道具 举报

发表于 2009-12-1 23:55:29 | 显示全部楼层
为咩我认为的结果是0 0 0……

测试貌似也是阿

1是哪里跳出来的?
回复

使用道具 举报

发表于 2009-12-13 23:06:13 | 显示全部楼层
阿门 这么多天才看到。。。。。
0,0,0
前两次没啥好解释的 i 一直都是0  至于第三次如果本地测试应该是0
同步存储函数 是异步执行的 由于网络情况的不确定性 有可能是1
回复

使用道具 举报

发表于 2009-12-13 23:48:58 | 显示全部楼层
楼主在娱乐众神...
回复

使用道具 举报

发表于 2009-12-15 22:09:55 | 显示全部楼层
..12楼的.
1 是哪来的.
回复

使用道具 举报

 楼主| 发表于 2009-12-16 22:22:02 | 显示全部楼层
SORRY  一开始写错了。。。已经改好
回复

使用道具 举报

发表于 2009-12-27 13:57:18 | 显示全部楼层
if GetLocalPlayer==2 then

依然语法错误= =不用看下去了
回复

使用道具 举报

发表于 2009-12-27 14:31:10 | 显示全部楼层
12-16的改动之后,应该是1 0 0。
回复

使用道具 举报

 楼主| 发表于 2010-1-2 23:22:39 | 显示全部楼层
还是错的哦~~

我说正确答案吧  应该是1 ,0, 1

第1个1不用解释
第2个0似乎也没疑问。。

关键是在第3个数字。。为什么是1 而不是0呢?  最后存入的明明是0   但是实验后结果却是1
回复

使用道具 举报

发表于 2010-1-4 04:03:12 | 显示全部楼层
楼主别逗了~~~ 我实验了,改了以后也是 1 0 0

test.w3m

17 KB, 下载次数: 2

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 19:24 , Processed in 0.245912 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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