找回密码
 点一下
查看: 2673|回复: 9

Jass小知识--GetRandomXX和GetLocalPLayer

[复制链接]
发表于 2009-8-31 16:38:00 | 显示全部楼层 |阅读模式
恩。

众所周知,GetLocalPlayer是不同步的。

一般来看,似乎GetRandomXX看上去和同步没有关系。

那么实际上呢?

GetRandomXX的操作中,会引起一个需要同步数据的变化:种子数

那么,种子数是啥呢?这是计算机的一个基本知识,伪随机。

就是游戏中的随机数,并不是随机获得的,而是算出来的,根据你上一个计算的值推算出下一个值。

但是如果你在一台机器上推算了n次,在另外一台机器上推算了m次,就会导致从某次开始,推算出的随机数不同。

而这个东西影响的就是你的所有Jass代码了。。。。于是掉线了。

结论:如果在不同步的函数中使用GetRandomXX,会导致种子数的不同,从而引起不同步掉线。

- 如果非要使用不同步计算方法,请在不同步之前就把随机数算好。

- 附送友情小贴士:如果某个循环Timer在单一机器上被Pause了(其他机器上依然跑的很欢快),而且他执行的代码中没有涉及同步的函数,则不会掉线。
发表于 2009-8-31 16:47:12 | 显示全部楼层
从没听说过!
回复

使用道具 举报

发表于 2009-8-31 16:52:02 | 显示全部楼层
不懂假死的路过...
回复

使用道具 举报

发表于 2009-8-31 16:53:46 | 显示全部楼层
果然不同一般!
回复

使用道具 举报

发表于 2009-8-31 17:01:18 | 显示全部楼层
这个有一段时间wisp同学似乎一直在研究,看怎么样搞可以做到不同步而不掉线……
回复

使用道具 举报

 楼主| 发表于 2009-8-31 18:54:45 | 显示全部楼层
这个随机函数只是容易被忽略的一点。。。
回复

使用道具 举报

发表于 2009-8-31 18:57:22 | 显示全部楼层
居然能看懂eff的帖子真的让人很高兴,但也很懊恼,关于下面这句话有什么特别的含义,我苦苦思索了近一分钟也没想通。


“说时迟,那时快,只见LZ拉开自己那5块钱3条的内裤向内一望,惊叹道 我长大啦 我长大啦!”
回复

使用道具 举报

发表于 2009-8-31 18:59:04 | 显示全部楼层
eff大人看到了什么呢。
回复

使用道具 举报

发表于 2009-8-31 21:01:41 | 显示全部楼层
奇迹!
回复

使用道具 举报

 楼主| 发表于 2009-9-2 09:52:46 | 显示全部楼层
我看到在山的那边和海的那边有个mm等偶去推倒
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-4 16:42 , Processed in 0.072504 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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