Rulzy 发表于 2007-12-12 05:04:38

回复: 求禁外网指定ID

在users.ini把那个ID加上密码,然后再加一个以IP段为帐号的ID,这个IP段在users.ini中的位置要排在那个ID的前面,如:
"192.168." "" "z" "de"
"要禁用的ID" "随便设置一个密码" "z" "a"

Rulzy 发表于 2007-12-12 05:09:54

回复: 求禁外网指定ID

Post by zwfgdlc
以下代码没测试过,理论上应该可以,自己测试下,先在configs文件夹建立一个player.ini文件,在这个文件里写上你想要限制的ID,一行一个,默认局域网IP为192.168段

#include <amxmodx>
#include <amxmisc>
#define PLUGIN_NAME "New Plug-In"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "zwfgdlc"
new player
new configsD...
下面这一行要改一下,否则,类似于154.192.168.4这样的IP也会认为是内网:
if(containi(ip,netbarip)==-1 && containi(player,name)!=-1)

应改为:
if(containi(ip,netbarip)!=0 && containi(player,name)!=-1)

zwfgdlc 发表于 2007-12-12 14:44:18

回复: 求禁外网指定ID

谢谢版主指点,今天看看了下,发现个很严重的问题,少了个客户端信息改变的判断,又重新增加了客户端信息变更检测

#include <amxmodx>
#include <amxmisc>
#define PLUGIN_NAME "New Plug-In"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "zwfgdlc"
new player
new configsDir
new netbarip
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
get_configsdir(configsDir, 63)
format(configsDir, 63, "%s/player.ini", configsDir)
loadSettings(configsDir)
register_cvar("amx_netbarip","192.168")
get_cvar_string("amx_netbarip",netbarip,15)
}
loadSettings(szFilename[])
{
if (!file_exists(szFilename))
return 0
new len, pos = 0,temp
while (read_file(szFilename,pos++,temp,31,len) )
{
if(temp||len==0)
continue
format(player,511,"%s %s",player,temp)
}
return 1
}
public client_connect(id)
{
new name,ip
get_user_name(id,name,31)
get_user_ip(id,ip,1)
if(containi(ip,netbarip)!=0 && containi(player,name)!=-1)
{
server_cmd("kick #%d ^"%s^"",get_user_userid(id),"对不起,此ID禁止在外网登陆")
}
}
public client_infochanged(id)
{
new oldname,newname,ip
get_user_name(id,oldname,31)
get_user_info(id,"name",newname,31)
get_user_ip(id,ip,15)
if(!equal(oldname,newname))
{
if(containi(ip,netbarip)!=0 && containi(player,newname)!=-1)
server_cmd("kick #%d ^"%s^"",get_user_userid(id),"对不起,此ID禁止在外网登陆")
}
}

baihypm 发表于 2007-12-14 21:51:26

回复: 求禁外网指定ID

测试中,有结果再来报告!谢谢各位大大。再问个我把上面代码用文本文件保存成UTF-8的sma文件用compile.exe不能转换成amxx,保存成ANSI就可以。要不别人CS出现一行乱码不知道啥意思。

coolsikeer 发表于 2007-12-14 22:34:43

回复: 求禁外网指定ID

这样他还可换个ID进来作弊!直接封他IP就行了呀!!!!
我也遇到这样的人!也是外网自己家里面的!他每次重起都不一样的IP!
第一次连接 61.145.110.25
第二次连接 61.145.139.110
第三次连接 61.145.61.54
第四次连接 61.145.73.61
第五次连接 61.145.85.41
他的IP前2段始终不变....
你只要在HLSW里面禁封 "61.145."就搞定了!
他再怎么重起都进不来了!
感谢我吧~这招最有用!

zwfgdlc 发表于 2007-12-15 04:52:31

回复: 求禁外网指定ID

AMXX1.76C下编译没问题,你自己试下

Rulzy 发表于 2007-12-15 07:37:42

回复: 求禁外网指定ID

Post by baihypm
测试中,有结果再来报告!谢谢各位大大。再问个我把上面代码用文本文件保存成UTF-8的sma文件用compile.exe不能转换成amxx,保存成ANSI就可以。要不别人CS出现一行乱码不知道啥意思。 估计你是使用Windows的记事本来保存为UTF8的,是吧?如果是这样,你下载我在发布区上发布的修改过的compile.exe,用它覆盖原来的compile.exe就可正常编辑了,或者你不要用记事本来保存,下载个UE,将其保存为无BOM的UTF8格式。

baihypm 发表于 2007-12-16 15:56:11

回复: 求禁外网指定ID

Rulzy谢谢啦~发现我越来越爱点通了,哈哈~

baihypm 发表于 2007-12-17 16:50:36

回复: 求禁外网指定ID

zwfgdlc ,你发的sma和后面发代码我都试过了,貌似不行啊!虽然Rulzy vbmenu_register("postmenu_288058", true);大大的方法可行,但是还是期望你的这个插件。

zwfgdlc 发表于 2007-12-17 21:54:28

回复: 求禁外网指定ID

你再试下............
页: 1 [2] 3
查看完整版本: 求禁外网指定ID