cityhonghu 发表于 2005-11-20 00:29:13

【讨论】比赛插件导致大面积用户掉线原因 !

最近试用了amx_match_delux V6.01版的插件。
环境:winxppro+CS1.6+amxx1.6+maxplayer24

通过最近2天的观察发现,自从装了比赛插件之后用户大面积(几乎全部)掉线的频率非常高。这2天来在比赛开始之后,从未有大面积掉线现象。大面积掉线的情况,全部是在上半场或则下半场开始的时候出现的。而在每半场开始的时候都会有大量信息显示比赛的开始。以下为客户端掉线的时候出现的一部分信息。

Error: server failed to transmit file 'AY&SY}'

所以,估计是服务器向客户端输出过量信息导致大面积掉线的。

看了一下源码,太长了,无法靠个人的能力去修改信息的输出量。请问如何通过修改源码以减少每半场开具的时候的信息量?
或则此插件有无控制显示信息的简单命令?

liuhui81626868 发表于 2005-11-20 01:11:19

回复: 【讨论】比赛插件导致大面积用户掉线原因 !

导致服务器踢人问题的原因
我也做出了猜测
估计不是插件那么简单的原因

cityhonghu 发表于 2005-11-20 01:52:05

回复: 【讨论】比赛插件导致大面积用户掉线原因 !

你的帖子我也看过,不过好像没有解决此问题。
刚在又仔细观察了一阵子,掉线的准确时间为开局的时候的自动刷新瞬间。
restartround 1 ->restartround 1->restartround 3
上面的是服务器刷新的过程1 。1 。3,请问如何把这个改为3.3.3或则5.5.5?
一楼附上源码,请大大修改一下。
还有在比赛开始的时候,向客户端输出的信息 [比赛开始]重复显示6次,即屏幕中间显示3个和左底部显示3个。希望这个部分也修改一下,只显示各1个信息。

非常感谢,
能不能解决掉线问题,只好一个一个试一试了。

cityhonghu 发表于 2005-11-20 04:32:45

【分享and讨论】比赛插件大面积掉线的初步解决!

虽然不成功,至少你努力了。保留在这里,让大家参考。
经过个人的简单修改(修改方法也许并不正确)改善了比赛插件大面积掉线。在修改之前几乎每个图的每个半场开始的时候都有大面积掉线,修改之后观察了5个地图没有发生掉线的情况。
服务器环境:winxp pro+amxx1.6+cs1.6+match_dulex V6.01。
修改过程:
1。修改R3,restartround从1.1.3改为3.3.3。
   修改部分
――――――――
        client_print(0,print_chat,"* %L !...", LANG_PLAYER, "SWITCHING_TEAMS")
        set_cvar_string("mp_limitteams","0")
        set_cvar_string("mp_autoteambalance","1")
        restart_round("1")   //改为3       
                swap()
        restart_round("1")   //改为3       
return PLUGIN_CONTINUE
――――――――
        client_print(0,print_chat,"* %L", LANG_PLAYER,"GOING_LIVE")
        client_print(0,print_chat,"* %L", LANG_PLAYER,"GOING_LIVE")
        set_task(2.0,"restart_round",0,"1",1)//中间1改为3
        set_task(4.0,"set_rules")
        set_task(4.0,"restart_round",0,"1",1)//中间1改为3
        set_task(6.0,"restart_round",0,"3",1)
        set_task(11.0,"live_msg")
――――――――
此部分修改本意为,restartround 1-1-3改为3-3-3。由于修改方法过于单纯无法实现restartround3-3-3。实际效果为屏幕上虽然有3次的restartround 3,但是只执行了一次restartround3。

2。修改向用户输出的每半场开局显示的信息。
   修改部分
――――――――
public live_msg()
{
        match_inprogress++
        set_hudmessage(0, 255, 255, -1.0, 0.32, 0, 2.0, 6.0, 0.8, 0.8, 2)
        show_hudmessage(0,"--[ %L ]--^n--[ %L ]--^n--[ %L ]--",LANG_PLAYER,"LIVE",LANG_PLAYER,"LIVE",LANG_PLAYER,"LIVE")
        client_print(0,print_chat,"* %L", LANG_PLAYER,"AMX_LIVE")
        client_print(0,print_chat,"* %L", LANG_PLAYER,"AMX_LIVE")
        client_print(0,print_chat,"* %L", LANG_PLAYER,"AMX_LIVE")
       
        return PLUGIN_CONTINUE
}
――――――――
改为
――――――――
public live_msg()
{
        match_inprogress++
        set_hudmessage(0, 255, 255, -1.0, 0.32, 0, 2.0, 6.0, 0.8, 0.8, 2)
        show_hudmessage(0,"--[ %L ]--",LANG_PLAYER,"LIVE")
        client_print(0,print_chat,"* %L", LANG_PLAYER,"AMX_LIVE")

       
        return PLUGIN_CONTINUE
}
――――――――

此部分修改本意为,向用户输出的比赛开始的6条相同信息改为2条相同信息。即原来在屏幕中间显示的3条相同信息改为1条,在右下角显示的3条信息改为1条信息。经本人简单修改之后,实际效果为,屏幕中间的信息没了,右下角显示的信息为2条。

3。求:修改其他的多余输出信息。请看图,希望把图里的4条信息取消掉。

4。求:取消比赛开始的时候,向客户端的控制台输出服务器设置变更的各种信息。

结论:经过本人的简单修改之后,即RR1-1-3改为RR3和减少比赛开始的显示信息之后,大面积掉线的情况得到明显的改善。经仔细观察之后发现绝大部分的掉线现象都是出现在restartroun 1-1的瞬间。

特求此插件的以上4个部分的正确修改之后的插件。希望取消其他重复的信息和多余的信息,向客户端输出的信息越少越好。附上原始插件。

cityhonghu 发表于 2005-11-20 08:55:28

回复: 【分享and讨论】比赛插件大面积掉线的初步解决!

1楼贴的第4部分


"sv_restartround" changed to "8"
"mp_timelimit" changed to "60"
"mp_maxrounds" changed to "12"
"mp_timelimit" changed to "0"
"mp_maxrounds" changed to "0"
"sv_restartround" changed to "0"
The game will restart in 8 SECONDS
* Taking a screenshot... Smile!
BlueJ-s071015 died
FGA died
P.L.A.No.23@FuKuOKa died
FGA is joining the Terrorist force
P.L.A.No.23@FuKuOKa is joining the Counter-Terrorist force
BlueJ-s071015 is joining the Terrorist force
F_C is joining the Counter-Terrorist force
NO is joining the Counter-Terrorist force
pt.wolf is joining the Terrorist force
Alex*** is joining the Counter-Terrorist force
Www.Esai.Cn is joining the Counter-Terrorist force
Who is joining the Terrorist force
As Long As You Love Me is joining the Counter-Terrorist force
zhuangsha fei 1 23 is joining the Terrorist force
www.****.com is joining the Counter-Terrorist force
(2)www.****.com is joining the Terrorist force
cai niao is joining the Terrorist force
John-Cena is joining the Counter-Terrorist force
uuukkk110 is joining the Counter-Terrorist force
big boss is joining the Terrorist force
(1)Www.Esai.Cn is joining the Terrorist force
"sv_restartround" changed to "3"
"sv_restartround" changed to "0"
The game will restart in 3 SECONDS
* Executing match config file (ecup.cfg + default.cfg)
yicaire*x.k* is joining the Terrorist force
"mp_maxrounds" changed to "14"
"sv_restartround" changed to "3"
"sv_restartround" changed to "0"
The game will restart in 3 SECONDS
ADMIN TEST!warning:dont join the serv: forced the start of a half
"sv_restartround" changed to "3"
"sv_restartround" changed to "0"
The game will restart in 3 SECONDS
* 2nd half starting
Error: server failed to transmit file 'AY&SYٍR'
Host_Error: DispatchUserMsg:User Msg ServerName/90 sent too much data (247 bytes), 192 bytes max.


此为,大面积掉线的时候客户端显示的信息。看最后一句话,估计是服务器信息输出过量导致的。
请大大通过修改插件,不向客户端输出一下服务器信息 !

"sv_restartround" changed to "8"
"mp_timelimit" changed to "60"
"mp_maxrounds" changed to "12"
"mp_timelimit" changed to "0"
"mp_maxrounds" changed to "0"
"sv_restartround" changed to "0"
The game will restart in 8 SECONDS
* Taking a screenshot... Smile!
"sv_restartround" changed to "3"
"sv_restartround" changed to "0"
The game will restart in 3 SECONDS
* Executing match config file (ecup.cfg + default.cfg)
"mp_maxrounds" changed to "14"
"sv_restartround" changed to "3"
"sv_restartround" changed to "0"
The game will restart in 3 SECONDS
ADMIN TEST!warning:dont join the serv: forced the start of a half
"sv_restartround" changed to "3"
"sv_restartround" changed to "0"


:cry::cry::cry:
页: [1]
查看完整版本: 【分享and讨论】比赛插件大面积掉线的初步解决!