hash 发表于 2012-3-13 09:33:56

效率榜问题

我接了一个10小时测试,10小时以后榜上没有,是不是被抓了随机采样就会把前一次的挑战冲掉?

北大侠客行MUD,中国最好的MUD

labaz 发表于 2012-3-13 09:41:24

喜爷这是要脱离龟速党?

hepat 发表于 2012-3-13 09:41:35

是效率榜把你屏蔽了

hash 发表于 2012-3-13 09:47:00

10小时榜亚军本来一直空着的,我想做几千经验就能上榜,结果还没成功,被八科抢了先

lkyun 发表于 2012-3-13 10:08:26

我啥时会在线十小时?

hash 发表于 2012-3-13 10:13:33

我啥时会在线十小时?
lkyun 发表于 2012-3-13 10:08 AM http://pkuxkx.com/forum/images/common/back.gif

『十小时』自我挑战玩家记录         
|名次|      姓名      |      id      |获得经验记录|经验/小时 |
| 第一名 |    星宿老仙    |   (laoxian)|   5004920|      500492|
| 第二名 |      八某      |    (l****)   |      8406|         840|

zine 发表于 2012-3-13 10:47:17

效率榜主动上榜和被动上榜用了两种不同的统计方式。
被动上榜只要断线就失效不再统计,主动上榜中途可以quit,但也带来一个mudos固有的问题,找玩家,find_player()函数,在某种情况下无法找到玩家,比如睡觉,这个情况导致了10小时后,寻找玩家失败而统计无法跟进的情况。
其实这种情况在各种用到find_player()的命令都存在,暂时无法解决。

labaz 发表于 2012-3-13 10:55:49

回复 7# zine
不能先判断玩家是否在线么,在线而找不到,那么过会接着判断在线&找

zine 发表于 2012-3-13 11:03:57

回复 8# labaz

接着继续找多久扫描一次呢?
1秒?太占资源,如果每个id(不是同时在线id,而是每天上线过的不同id)上线start一次,那么可能带来很多个call_out().
如果时间跨度拉大,比较出来的效率可能并不准确。
比如5分钟,可能再次扫描玩家,找到时候已经又做了一次任务了。

我觉得这个问题解决方法,应从根源入手,find_player()函数只查询了在线符合某种状态的玩家,而不是全部。用修补的方法解决会带来更多需要修补的东西。

labaz 发表于 2012-3-13 11:12:32

回复 9# zine
能根源解决最好了,不过刚才你也说了不太好搞。不知道是不是只有睡觉和晕倒才会如此,能否用醒来做主动事件通知,之前查不到就先切换到等待状态,等事件再次触发
页: [1] 2
查看完整版本: 效率榜问题