请教个问题
各位好;早就听说经典二战游戏:胜利之日DoD俱乐部,技术力量雄厚,人才聚集。今天特意申请了一个。
我是新来的,请多关照。
我的DOD服务器名字叫想你,我把DOD当成我的宝贝,所以我叫想你宝贝。
我很喜欢做DOD服务器,但是有太多的知识不懂了,我十分想结交对DOD痴迷的朋友。有意的加我QQ958815881.
有个问题想问一下各位,怎么限制延时,延时超过200的将自动踢出,在哪个文件里做限制。呵呵。先谢了。 addons\amxmodx\configs
amxx.cfg文件里设置
//////////////////////////踢高Ping设置/////////////////////////
// Ping高于多少则踢
amx_hpk_ping 250
// 多少秒检查一次
amx_hpk_check 12
// 至少测试次数
amx_hpk_tests 5
//玩家进入服务器多少秒后开始检查,如果设为0,则一进入服务器就开始检查
amx_hpk_delay 60
源码
/* AMX Mod X
*
* (c) Copyright 2004, datang
*
* This file is part of AMX Mod X.
*
*/
#include <amxmodx>
new g_Ping
new g_Samples
new pamx_hpk_ping
new pamx_hpk_check
new pamx_hpk_tests
new pamx_hpk_delay
public plugin_init()
{
register_plugin("High Ping Kicker","1.0","datang")
register_dictionary("high_ping_kicker.txt")
pamx_hpk_ping = register_cvar("amx_hpk_ping","200")
pamx_hpk_check = register_cvar("amx_hpk_check","5")
pamx_hpk_tests = register_cvar("amx_hpk_tests","5")
pamx_hpk_delay = register_cvar("amx_hpk_delay","60")
if ( get_pcvar_num( pamx_hpk_check ) < 5 ) set_pcvar_num( pamx_hpk_check , 5 )
if ( get_pcvar_num( pamx_hpk_tests ) < 3 ) set_pcvar_num( pamx_hpk_tests , 3 )
}
public client_disconnect(id)
remove_task( id )
public client_putinserver(id)
{
g_Ping = 0
g_Samples = 0
if ( !is_user_bot(id) )
{
new param
param = id
set_task( 10.0 , "showWarn" , id , param , 1 )
if (get_pcvar_num(pamx_hpk_delay) != 0) {
set_task( float(get_pcvar_num(pamx_hpk_delay)), "taskSetting", id, param , 1)
}
else {
set_task( float(get_pcvar_num( pamx_hpk_check )) , "checkPing" , id , param , 1 , "b" )
}
}
}
public showWarn(param[]) {
client_print( param ,print_chat,"* %L",LANG_SERVER,"PING", get_pcvar_num( pamx_hpk_ping ) )
console_print( param,"* %L",LANG_SERVER,"PING", get_pcvar_num( pamx_hpk_ping ) )
}
public taskSetting(param[]) {
set_task( float(get_pcvar_num( pamx_hpk_check )) , "checkPing" , param , param , 1 , "b" )
}
kickPlayer( id )
{
new name,authid
new userid = get_user_userid(id)
get_user_name(id,name,31)
get_user_authid(id,authid,31)
client_print(0,print_chat,"* %L", id, "KICKED", name)
log_amx("^"%s<%d><%s><>^" has been kicked due to high ping.", name, userid, authid)
client_cmd(id, "echo ^"* %L^"", id, "HPK")
client_cmd(id, "disconnect")//Has no effects in CS1.5
server_cmd("kick #%d", userid)//So kicked
remove_task(id)
}
public checkPing(param[])
{
new id = param[ 0 ]
if ( get_user_flags(id) & ADMIN_IMMUNITY || get_user_flags(id) & ADMIN_RESERVATION ) return
new p, l
get_user_ping( id , p , l )
g_Ping[ id ] += p
++g_Samples[ id ]
if ( (g_Samples[ id ] >= get_pcvar_num( pamx_hpk_tests )) && (g_Ping / g_Samples > get_pcvar_num( pamx_hpk_ping )) )
kickPlayer(id)
}
用4156+3266版本里默认都有的 十分的感谢,flytiger12 谢谢了。实在是太详细了
页:
[1]