说说CSSTATS的数据问题。
cvar_t init_csstats_maxsize ={"csstats_maxsize","3500", 0 , 3500.0 };cvar_t init_csstats_reset ={"csstats_reset","0"};
cvar_t init_csstats_rank ={"csstats_rank","0"};
从源代码知道。
我说明下。
csstats_maxsize 是设置csstats.dat文件大小,不是maxman。
csstats_reset 是重新开始csstats,整个TOP数据都清零。
csstats_rank 是重新计算rank数据。
有的时候,大家一定会奇怪,为何kills多的反而在top15的尾部。其实答案在
csstats.sma里面。
public get_score( stats , body )
return stats - stats // kills - deaths
OLO定义TOP15排名是 得分-死亡 ,以次为TOP15的排位。
如果,我们改成
public get_score( stats , body )
return stats // kills
就是以 得分高低轮排名了。
:43: 恩!不错!!1 这个我研究过了,amx的排名系统很不科学,金老弟的只用杀人数来排名就更不科学了。
相反,statsme的排名更复杂,更合理,它包括了武器难度系数,比如杀同一个人用刀杀和用枪杀得分是不同的,还有,杀的人是菜鸟(排名靠后的),你自己的排名是不会提高的,杀的是高手,他排名越靠前,你得分越高,排名升得越快。
还有放包不放包,拆不拆弹,爆头率,连杀,都会影响排名。。
amx中的排行部分做的太烂了。。 一个菜鸟玩的时间长,杀100死1000
一个高手玩的时间少,杀99死0
按杀人数排名太不合理了 Post by kindzhon
这个我研究过了,amx的排名系统很不科学,金老弟的只用杀人数来排名就更不科学了。
相反,statsme的排名更复杂,更合理,它包括了武器难度系数,比如杀同一个人用刀杀和用枪杀得分是不同的,还有,杀的人是菜鸟(排名靠后的),你自己的排名是不会提高的,杀的是高手,他排名越靠前,你得分越高,排名升得越快。
还有放包不放包,拆不拆弹,爆头率,连杀,都会影响排名。。
amx中的排行部分做的太烂了。。
不是吧!
statsme和AMX的排名都是OLO写的,不会有差别的,
你所说的是那个排名应该是PsychoStats的。 是谁写的我不知道,但大家看看这里:
http://www.100acrebloodbath.com/statarch/1/smstats/index.php?ID=10
就知道statsme的排名绝不是按照杀人数-被杀人数多少来排的。 不过UA的statsme,真的很占资源。
如果大家都不用AMX,我当然推荐用UA了。 :12: 这是statsme.cpp,从这里可以看出它的缺省排名方法。
p->acc = ACCURACY_FORMULA(p->shots,p->hits);
p->eff = EFFEC_FORMULA(p->kills,p->deaths);
for (int i=0;i<20;i++)
p->userdefined += a->userdefined;
if ( *sm_rankscore->string ) {
sm.rank = p;
p->points = atof(smv_putvars(sm_rankscore->string)); // formula from cvar settings
}
else {
p->points = p->eff + p->acc + ( p->hs / 2 );
//if ( p->kills < sm_killsforrank->value )
// p->points /= 3;
}
p->points += 1000; statsme原来确实是OLO写的,有可能经过UA修改后再加强了.
有了原代码就好改了. 闪闪兄:
我有一个很头疼的问题,相信大家以前也一定遇到过的,那就是TOP15过一段时间
后自动清零重新开始统计。我不知道该修改什么文件和如何修改才能使TOP15的排名永远
都统计下去而不会清零,我的TOP15是7月2号开始的,到昨天晚上(15号)我看的时候
就已经被清零重新开始统计了,请闪闪兄和知道如何解决这个问题的朋友帮帮我这个忙!
页:
[1]
2