|
發表於 3-11-2009 05:06:29
|
顯示全部樓層
本帖最後由 又畀cs板主ban左 於 3-11-2009 05:29 編輯
改個cvar名加幾行就扮原創
訓啦 _ _- #include <amxmodx>
- #include <amxmisc>
-
- #define BAN_CMD "amx_banip"
-
- new msg_say
- new g_maxplayers
-
- new bool:has_joinedteam[33]
- new bool:checked[33]
-
- new c_onoff,c_type,c_bantime
- public plugin_init() {
- register_plugin("Anti CD Hack","0.9","Sh!nE")
-
- register_event("TeamInfo","join_team","a")
-
- c_onoff = register_cvar("amx_acd","1")
- c_type = register_cvar("amx_acd_punishment","1") //0 - kick, 1 - ban
- c_bantime = register_cvar("amx_acd_bantime","0")
-
- g_maxplayers = get_maxplayers()
-
- msg_say = get_user_msgid("SayText")
-
- }
-
- public client_disconnect(id) {
- checked[id]=false
- has_joinedteam[id]=false
- }
-
- public join_team() {
- new id = read_data(1)
-
- if(has_joinedteam[id] || is_user_bot(id) || is_user_hltv(id)) return PLUGIN_CONTINUE
-
- new team[2]
- read_data(2,team,1)
-
- if((team[0]=='S' && is_user_admin(id)) || team[0]=='U') return PLUGIN_CONTINUE
-
- set_task(1.0,"check_cd",id)
- has_joinedteam[id]=true
-
- return PLUGIN_CONTINUE
- }
-
- public check_cd(id) {
- client_cmd(id,"cd_version")
- set_task(1.0,"check_cmd",id)
- }
-
- public check_cmd(id) {
- if(!checked[id]) {
- new glb_msg[192],name[33],num
- new userid = get_user_userid(id)
-
- get_user_name(id,name,32)
-
- num=is_user_admin(id) ? 0 : get_pcvar_num(c_type)
-
- switch(num) {
- case 0:{
- format(glb_msg,191,"^x04[ACD]^x03 %s^x01 was kicked for ^x04 CD Hack^x01.",name)
- server_cmd("kick #%d ^"CD Hack Detected^"",userid)
- }
- case 1:{
- new str[24]
-
- if(get_pcvar_num(c_bantime)<1)
- format(str,23,"^x03permanently^x01")
- else
- format(str,23,"^x03 %d^x01 min%s.",get_pcvar_num(c_bantime),get_pcvar_num(c_bantime)==1 ? "" : "s")
-
- format(glb_msg,191,"^x04[ACD]^x03 %s^x01 was banned for CD Hack (Bantime:%s).",name,str)
-
- replace(str,23,"^x03","")
- replace(str,23,"^x01","")
-
- server_cmd("%s #%d %d ^"CD Hack Detected(%s).^"",BAN_CMD,userid,get_pcvar_num(c_bantime),str)
- }
- }
-
- for(new i=0;i < g_maxplayers;i++) if(is_user_connected(i)) color_print(i,glb_msg)
- }
- }
-
- public client_command(id) {
- if(!get_pcvar_num(c_onoff) || checked[id]) return PLUGIN_CONTINUE
-
- new cmd[33]
- read_argv(0,cmd,32)
-
- if(equal(cmd,"cd_version")) checked[id]=true
-
- return PLUGIN_CONTINUE
- }
-
- color_print(id,text[]) {
- message_begin(MSG_ONE_UNRELIABLE,msg_say,_,id)
- write_byte(id)
- write_string(text)
- message_end()
- }
複製代碼  |
|