想你宝贝 发表于 2008-12-15 18:05:23

请教个问题

各位好;
   早就听说经典二战游戏:胜利之日DoD俱乐部,技术力量雄厚,人才聚集。今天特意申请了一个。
我是新来的,请多关照。
    我的DOD服务器名字叫想你,我把DOD当成我的宝贝,所以我叫想你宝贝。
    我很喜欢做DOD服务器,但是有太多的知识不懂了,我十分想结交对DOD痴迷的朋友。有意的加我QQ958815881.
   有个问题想问一下各位,怎么限制延时,延时超过200的将自动踢出,在哪个文件里做限制。呵呵。先谢了。

Jack 发表于 2008-12-15 18:16:27

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)
}

Jack 发表于 2008-12-15 18:17:36

用4156+3266版本里默认都有的

想你宝贝 发表于 2008-12-16 09:13:57

十分的感谢,flytiger12 谢谢了。实在是太详细了
页: [1]
查看完整版本: 请教个问题