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

关于判断主机之失败

[复制链接]
发表于 2006-12-28 19:18:13 | 显示全部楼层 |阅读模式
如图  进入游戏后  无论主机在哪个位置  都显示主机为0  

ps:图中(本地的玩家)就是GetLocalPlayer()
host.JPG
 楼主| 发表于 2006-12-28 19:18:56 | 显示全部楼层
图片点击放大
回复

使用道具 举报

发表于 2006-12-28 19:26:33 | 显示全部楼层
貌似少了给全局变量udg_cache赋值...
回复

使用道具 举报

 楼主| 发表于 2006-12-28 19:30:21 | 显示全部楼层
已经创建全局变量cache 类型游戏缓存
回复

使用道具 举报

发表于 2006-12-28 19:34:00 | 显示全部楼层
你创建了缓存米把它赋值给udg_cache有什么用?
cache.w3v和udg_cache不素一个概念...
回复

使用道具 举报

 楼主| 发表于 2006-12-28 19:35:40 | 显示全部楼层
哦 谢谢 我去试一下
回复

使用道具 举报

发表于 2006-12-28 19:39:00 | 显示全部楼层
而且多人模式下储存缓存素无效的
不知道在这里这2条有什么用...
回复

使用道具 举报

 楼主| 发表于 2006-12-28 19:39:25 | 显示全部楼层
再弱弱的问一句  赋值是set udg_cache="cache.w3v" 吗?
回复

使用道具 举报

发表于 2006-12-28 19:42:21 | 显示全部楼层
不要加那句储存~~可能会导致断线~~
我原文里是没有保存这项的~~
回复

使用道具 举报

 楼主| 发表于 2006-12-28 19:47:37 | 显示全部楼层
哦  我是测试不成功才加的那两个存储

现在把udg_cache去了换成GetLastCreatedGameCacheBJ()已经成功了  谢谢大大们
回复

使用道具 举报

 楼主| 发表于 2007-1-4 16:23:47 | 显示全部楼层
貌似判断得不是很准确啊  经常判断错误
回复

使用道具 举报

发表于 2007-1-4 16:42:26 | 显示全部楼层
同步10次~~取最频繁值~~
回复

使用道具 举报

 楼主| 发表于 2007-1-4 22:49:45 | 显示全部楼层
看来是我同步次数太少了  我就同步了五次  

同步一次大概要多久呢?
回复

使用道具 举报

 楼主| 发表于 2007-1-4 22:50:51 | 显示全部楼层
出现误差的原因是什么呢?
回复

使用道具 举报

发表于 2007-1-5 09:41:29 | 显示全部楼层
http://www.wc3jass.com/viewtopic.php?t=2726
PipeDream
Wed Mar 29, 2006 11:11 am

I tried to use this to measure game latency

[jass] function GetHost takes nothing returns nothing
    local timer t = CreateTimer
    local real dt
    call TimerStart(t,20.,false,null)
    set dt = TimerGetElapsed(t)

    call StoreInteger(udg_MedalCache, "Alpha", "Beta", GetPlayerId(GetLocalPlayer()) + 1)
    call TriggerSyncStart()
    call SyncStoredInteger(udg_MedalCache, "Alpha", "Beta")
    call TriggerSyncReady()
    set udg_GameHost = Player(GetStoredInteger(udg_MedalCache, "Alpha", "Beta") - 1)
    call FlushStoredMission(udg_MedalCache,"Alpha")

    set dt = TimerGetElapsed(t) - dt    //dt is now max latency, I think
    call PauseTimer(t)
    call DestroyTimer(t)
    set t = null
    call DisplayTextToPlayer(GetLocalPlayer(),0,0,"Game latency: "+I2S(R2I(dt*1000))+"ms")
endfunction [/jass]




also tried SyncSelections() instead of TriggerSyncStart/TriggerSyncReady()

Didn't work out. TriggerSyncStart/ready always consumed 500ms, SyncSelections() 250ms. Possibly all sync commands do a 250ms sleep and SyncStoredInteger really does sync by itself.

Anyone got other ideas?

这些历史资料我都不知道是从哪里挖出来的。。。
回复

使用道具 举报

 楼主| 发表于 2007-1-5 15:46:37 | 显示全部楼层
楼上这个好像并没有解决误差的问题啊
回复

使用道具 举报

 楼主| 发表于 2007-1-8 08:50:30 | 显示全部楼层
初步研究结果  不能一开始就判断  要等几秒再判断   但是不完全  偶尔还会出现判断错误的情况   据测试的人说判断的时候不能聊天  一聊就判断错误   真是奇怪
回复

使用道具 举报

 楼主| 发表于 2007-1-11 08:50:04 | 显示全部楼层
貌似1.20e能判断  1.20  1.20d等判断不出来
回复

使用道具 举报

发表于 2007-1-11 11:00:10 | 显示全部楼层
此方法非官方功能。所以出错很正常。嗯嗯。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 00:49 , Processed in 0.079425 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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