teamplay 发表于 2006-6-20 15:42:29

【求助】希望开发这样一种插件!限制使用队标

现在很多网络战队都用国内,国外知名战队的队标,很讨厌!
所以希望能有一个限制使用队标的插件!

HLGuard 有这样的功能,但是太耗资源!
amxx官方论坛也有一个,但是经过测试,服务器安装后会很卡!而且是写正则表达式的,太麻烦!

teamplay 发表于 2006-6-21 13:09:48

回复: 【求助】希望开发这样一种插件!限制使用队标

我写了一个,但是不起任何作用,而且服务器会有些卡,请高手来看看是哪里的问题,谢谢!


#include <amxmodx>

public plugin_init(){
register_plugin("Restrict Clan Name","0.8","Eric")
}

public client_connect(id){
checkid(id)
return PLUGIN_HANDLED
}

public client_infochanged(id){
checkid(id)
return PLUGIN_HANDLED
}

public checkid(id){
new dyUserIP, dyUserName, line = 1, data, stxtsize
get_user_ip( id, dyUserIP, 31, 1 )
get_user_name( id, dyUserName, 31 )
if( containi( dyUserName,"cheat" )!=-1 ){
if(file_exists("addons/amxmodx/configs/clans.cfg")){
   while((line=read_file("addons/amxmodx/configs/clans.cfg",line,data,31,stxtsize))!=0){
    if(line < 449 && line > -1){
   if( containi( dyUserName,data )!=-1 ){
      if(get_user_flags(id)&ADMIN_ADMIN){
       console_print(id, "*提示信息*您所使用的战队名称已经被保护, 不允许使用, 请立即更换...")
       console_print(id, "*提示信息*如果您是该战队成员请与管理员联系, 否则将被踢出联赛服务器")
      }else{
       server_cmd("kick #%d 您所使用的战队名称已经被保护, 不允许使用, 请立即更换", get_user_userid(id))
       //server_cmd( "banip ^"%d^" ^"%s^" writeip, 0, dyUserIP" )
       //log_amx( "玩家 '%s' 已经被永久封禁!", dyUserName )
       //new User
       //new AUTHID
       //new IPAddy
       //new idlog
       //new filename
       //get_time("admin_logs/id_logs/%Y-%m-%d--id.log",filename,99)
       //get_user_authid(id,AUTHID,31)
       //get_user_name(id,User,31)
       //get_user_ip(id,IPAddy,31,1)
       //format(idlog, 191, "%s %s%s", AUTHID,IPAddy, User)
       //log_to_file(filename,idlog)
       return PLUGIN_CONTINUE
      }
   }
    }
   }
}
}
return PLUGIN_CONTINUE
}


clans.cfg 格式,每行一个:

wNv
wNv.gm
wNv.cn
3D|
3D |
SK|
SK |
SK.swe
NiP|
NiP |
NiP-
fnatic.
arCade_
Hacker.PK
Hacker.
ALTERNATE aTTaX
mTw |
mouz Levicom BenQ |
coL.
eclipse.
NoA.

ahcat 发表于 2006-6-21 13:58:55

回复: 【求助】希望开发这样一种插件!限制使用队标

把名称读取到内存中吧
你这样
不卡死你才怪

kinsprite 发表于 2006-6-21 19:38:46

回复: 【求助】希望开发这样一种插件!限制使用队标

要在client_infochanged(id)函数中判断玩家是否改名字!因为该函数不只在玩家改名字时調用。
同时,按照楼上的思路,把读取文件内容到内存放在plugin_init()中。


#define MAX_TNAMES 128
#define MAX_STRLEN 16

new tName
new total_teams

public plugin_init()
{
                register_plugin("Restrict Clan Name","0.8","Eric")
                set_task(2.0, "read_teamname")
                return PLUGIN_CONTINUE
}

public read_teamname()
{
                //读取文件内容到 tName , 同时把对名总数保存到 total_teams
}

public client_putinserver(id)
{
                checkid(id)
                return PLUGIN_CONTINUE
}

public client_infochanged(id)
{
                new newname, oldname
                get_user_info(id, "name", newname,31)
                get_user_name(id,oldname,31)
       
                if (!equal(oldname,newname))
                {
                                checkid(id)
                }

                return PLUGIN_CONTINUE
}

public checkid(id)
{
    //你的代码
   // 如果名字中包含那些名字中的一个,set_user_info(id,"name",newname)
}


同时,注意一下函数的返回值。
#define PLUGIN_CONTINUE                0        /* Results returned by public functions */
#define PLUGIN_HANDLED                1        /* stop other plugins */
#define PLUGIN_HANDLED_MAIN        2        /* to use in client_command(), continue all plugins but stop the command */

wzj16 发表于 2006-6-21 21:12:49

回复: 【求助】希望开发这样一种插件!限制使用队标

有这么复杂吗!说的不就是队标保护!
AMX和MAXX都可以实现啊,跟保护自己F里用队标一样。
例如禁止使用队标 ABCD
在amxx/config/user.ini里写入
"ABCD' "EFGH" "z" "ab"

EFGH为密码 怕被破解就搞的N复杂不就完了。也不知道你们讨论的是不是这个东西。

kinsprite 发表于 2006-6-21 22:39:16

回复: 【求助】希望开发这样一种插件!限制使用队标

Post by wzj16
有这么复杂吗!说的不就是队标保护!
AMX和MAXX都可以实现啊,跟保护自己F里用队标一样。
例如禁止使用队标 ABCD
在amxx/config/user.ini里写入
"ABCD' "EFGH" "z" "ab"

EFGH为密码 怕被破解就搞的N复杂不就完了。也不知道你们讨论的是不是这个东西。

恩,是可以保护。只是别人被踢出不明不白。:)

landyhsu 发表于 2006-6-22 11:41:19

回复: 【求助】希望开发这样一种插件!限制使用队标

AMXX官方好像发布过这样的插件??

见习土匪 发表于 2006-6-23 11:07:17

回复: 【求助】希望开发这样一种插件!限制使用队标

学习了.我也很讨厌挂别人队标的猪
页: [1]
查看完整版本: 【求助】希望开发这样一种插件!限制使用队标