如何实现玩家改了名字之后重新认证一次权限?
如何实现玩家改了名字之后重新认证一次权限?client_infochanged(id)
回复: 如何实现玩家改了名字之后重新认证一次权限?
稍微查看下admin.sma就可以明白了,就是在 client_infochanged(id) 事件中重新认证权限。回复: 如何实现玩家改了名字之后重新认证一次权限?
public client_infochanged(id){
if (!is_user_connected(id) || !get_cvar_num("amx_mode"))
return PLUGIN_CONTINUE
new newname, oldname
get_user_name(id, oldname, 31)
get_user_info(id, "name", newname, 31)
if (!equal(newname, oldname))
accessUser(id, newname)
return PLUGIN_CONTINUE
}
:brick::burn: :burn:
回复: 如何实现玩家改了名字之后重新认证一次权限?
Post by baili1258:brick::burn: :burn:
我写了这个函数了,就少了accessUser(id, newname)
昨天折腾好久,忘记去看admin.sma了:)
回复: 如何实现玩家改了名字之后重新认证一次权限?
哇,我回来看代码,发现代码要加好多啊。。想写一个队标保护的代码,下载官方网站上的插件发现不太好使。
回复: 如何实现玩家改了名字之后重新认证一次权限?
其实应该在客户端认证后进行名字检测!就可以了
这个时候的玩家有权限的,应该都有提示的..
public client_putinserver(id)
{
}
这个时候检测的话...应该可以的
回复: 如何实现玩家改了名字之后重新认证一次权限?
Post by baili1258其实应该在客户端认证后进行名字检测!
就可以了
这个时候的玩家有权限的,应该都有提示的..
public client_putinserver(id)
{
}
这个时候检测的话...应该可以的
这里检测我肯定加了哈,这个是玩家进入服务器的时候验证id。
我要解决的问题是在游戏里面改名字,那就要重新认证一下权限。不想用set_task定期检测。
就像netbar最终版本的那样。
回复: 如何实现玩家改了名字之后重新认证一次权限?
用类似这个的accessUser(id, newname)
自己做一个试下了
就是检测客户端改名字后,检测新名字的权限。。。
修改下,就是accessUser(id, newname)权限后,
获得用户权限后,设置个5分钟后的 set_task,检测下iD就行了!
/* 本插件由 AMXX-Studio 中文版自动生成*/
/* UTF-8 func by www.DT-Club.net */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN_NAME "New Plug-In"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "Administrator"
new g_motdFile
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
get_configsdir(g_motdFile, 63)
format(g_motdFile, 63, "%s/clanname.ini", g_motdFile)
//在此处添加您的代码...
}
public client_putinserver(id){
if (file_exists(g_motdFile)){
if (get_user_flags(id)&ADMIN_VOTE) //排除有权限的
return PLUGIN_CONTINUE
new name,usrip,message, len, line = 0
get_user_name( id, name, 31)
get_user_ip( id, usrip, 31, 1)
while(read_file( g_motdFile, line++, message, 191, len)){
if( containi( name, message) != -1 ){
new userid = get_user_userid( id)
server_cmd( "kick #%d; wait;addip 5 ^"%s^";wait;writeip",userid,usrip)
}
}
}
return PLUGIN_CONTINUE
}
参照了"禁止 改名 名称 长度"的代码修改的!
回复: 如何实现玩家改了名字之后重新认证一次权限?
Post by baili1258用类似这个的
accessUser(id, newname)
自己做一个试下了
就是检测客户端改名字后,检测新名字的权限。。。
修改下,就是accessUser(id, newname)权限后,
获得用户权限后,设置个5分钟后的 set_task,检测下iD就行了!
/* 本插件由 AMXX-Studio 中文版自动生成*/
/* UTF-8 func by www.DT-Club.net */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN_NAME "New Plug-In"
...
呵呵,感谢你的帮忙,不过你可能没明白我的意思。
我的代码中已经有client_putinserver(id),已经实现了玩家进入服务器的id检测,也就是在玩家连接服务器后进入服务器选择队伍后检测玩家的id是否为受包含的id。
而我想解决的是玩家在游戏中改名字,改了名字就要先取消权限,再读取user.ini文件,看看新id是否在这个文件中(这个文件中至少有b这个权限),如果没有就踢出服务器或者名字仍然是以前的名字,改名不成功。
我再试试看吧。
回复: 如何实现玩家改了名字之后重新认证一次权限?
先用remove_user_flags(id)移除权限,然后再用set_user_flags(id,read_flags("abcd"))设置权限.
页:
[1]
2