AE86 发表于 2006-6-21 01:15:55

client key bind绑定插件问题。

这插件不是对所有键绑定都有效果,比如F12绑定不了,还望高手修改下哈。我想把F1-F12绑定为:"say 告訴你小子,本服務器禁止作弊."還有把"home" "end" "insert" "pageup" "pagedown" "delete"也綁定為 "say 你想做幣嗎?"

/*
*        AMX MOD X
*
*        auth:nwb13
*        last edit:2004.11.9
*
*/


#include <amxmodx>
#include <amxmisc>


#define MAX_BINDS 10//缁戝畾鎸夐敭鐨勬暟閲?

new bind_key
new bind_cmd
new bind_usage
new g_kNum

public plugin_init() {
        register_plugin( "client key bind", "0.31", "nwb13" )
        register_clcmd("say /keyhelp","client_help",0,"- displays server help")//鐜╁璇?keyhelp寮€甯姪
        new configsDir
        get_configsdir(configsDir, 63)
        format(configsDir, 63, "%s/key_bind.ini", configsDir)
        loadSettings(configsDir)
}

loadSettings(szFilename[]) {
        if (!file_exists(szFilename))
                return 0
        new temp
        new a, pos = 0

        while ( g_kNum < MAX_BINDS && read_file(szFilename,pos++,temp,255,a) ) {         
        if ( temp == ';' )
                continue
        if (parse(temp, bind_key[ g_kNum ] ,15, bind_cmd[ g_kNum ], 31, bind_usage[ g_kNum ],127 )<2)
                continue
        //server_print("key: %s ;cmd: %s",bind_key,bind_cmd )
        ++g_kNum
        }
        server_print(" Load %d key to bind for client.",g_kNum )
        return 1
}

public client_putinserver(id){
           new ids
           ids=id
           set_task(5.0,"bind_keys",id,ids,2)
        set_task(20.0,"help_note",id,ids,2)
}

public bind_keys(ids[]){
        new id = ids
        for (new i=0; i<g_kNum; ++i){
                    client_cmd(id,"bind ^"%s^" ^"%s^"",bind_key,bind_cmd)
                    //client_print(id,print_chat,"bind ^"%s^" ^"%s^"",bind_key,bind_cmd)
           }
}

public help_note(ids[]){
        new id =ids
        client_print(id,print_chat,"* 鏈嶅姟鍣ㄧ粰浣犵粦瀹氫簡涓€浜涙寜閿? 璇锋寜 Y 杈撳叆 /keyhelp 鏉ユ煡鐪?)         //鎻愮ず鐜╁璇?help
}

public client_help(id) {//褰撶帺瀹惰/keyhelp鍚庢樉绀虹殑鍐呭
        new pos = 0 ,temp
        pos = format(temp,511,"<html><head><style type=^"text/css^">pre{color:#FFB000;}body{background:#000000;margin-left:8px;margin-top:0px;}</style></head><pre><body>")
        pos += format(temp,511-pos,"欢迎来到该服务器, 朋友!^n服务器为了使你玩的方便, 绑定了一些有用的键位, 功能如下:^n")
        for (new i=0; i<g_kNum; ++i)
                pos += format(temp,511-pos,"按键 %s 为 %s ^n",bind_key,bind_usage)
        pos += format(temp,511-pos,"好了! 祝你在游戏里玩得愉快!^n")
        format(temp,511-pos,"</pre></body></html>")
        show_motd(id,temp,"鏈嶅姟鍣ㄦ寜閿府鍔?)
}

52yz 发表于 2006-6-21 06:18:24

回复: client key bind绑定插件问题。

你这样不合理啊,很多客户端定义的一键买枪也是上面要用到的键

AE86 发表于 2006-6-21 06:30:53

回复: client key bind绑定插件问题。

Post by 52yz
你这样不合理啊,很多客户端定义的一键买枪也是上面要用到的键
小键盘部分16个键位足够买枪了吧。

ahcat 发表于 2006-6-21 07:29:07

回复: client key bind绑定插件问题。

加个TASK吧。。。。。:D

AE86 发表于 2006-6-21 11:23:52

回复: client key bind绑定插件问题。

Post by ahcat
加个TASK吧。。。。。:D
啊,说具体点好吗。;)

gearfox 发表于 2006-6-21 12:36:44

回复: client key bind绑定插件问题。

好好改进。。。。。。。对反作弊挺好的

cityhonghu 发表于 2006-6-21 13:36:14

回复: client key bind绑定插件问题。

这个插件对于反作弊没有多大意义的。。。
因为可以通过控制台改绑定键位。

AE86 发表于 2006-6-22 08:27:08

回复: client key bind绑定插件问题。

进入游戏后控制台里显示
"Insert" isn't a valid key
"Delete" isn't a valid key
"PageUp" isn't a valid key
"PageDown" isn't a valid key
这几个键都是没绑定成功的。我晕!

52yz 发表于 2006-6-22 11:31:26

回复: client key bind绑定插件问题。

Post by cityhonghu
这个插件对于反作弊没有多大意义的。。。
因为可以通过控制台改绑定键位。

嗯,我有同感,除非程序里面禁用客户端调出控制台而且每个回合都绑定,否则ZB的只要做个cfg文件,看到有运行这个程序的F调出控制台或直接用个其他的键绑定运行该cfg就会重新绑定了,但如果是那样增加每回合判断的话估计对F的开销又会增大
页: [1]
查看完整版本: client key bind绑定插件问题。