|
发表于 2024-7-31 00:02:48
|
显示全部楼层
来自 中国–香港–新界–荃湾区
本帖最后由 BliaNe 于 2024-7-31 22:47 编辑
开源,是一种互联网精神。本着取之于民用之于民的原则,本人将代码开源在DT-CLUB上。
强烈鄙视拿着别人的代码成果进行商业盈利的现状。
以下代码实现玩家进服时,仅匹配 config 中 setinfo 相应字段的密码,就能获得权限。
如果不使用 user.ini 来分配权限,使用本插件后就可不用再开启admin.amxx。
代码提供3个自定义参数
//自定义setinfo密码前缀
amx_adminfield "_adminpw" //自定义获取权限的密码
amx_adminpassword "password" //自定义获取的权限
amx_adminflags "abcdefghijklmnopqrstuv"
玩家食用方法:
打开Cs1.6控制台并输入 setinfo "_adminpw" "password" 前缀和密码需要与自定义参数保持一致,然后进服就能获取服务器 amx_adminflags 参数设定的权限。
如果已经在服务器中,输入 setinfo "_adminpw" "password" 后重新进服就可以获得权限。
没有输入密码或者密码错误时不会被服务器kick,只是没有权限。
- #include <amxmodx>
- new g_AdminField, g_AdminPassword, g_AdminFlags
- public plugin_init()
- {
- register_plugin("Admin Connect", "1.0", "BliaNe")
- g_AdminField = register_cvar("amx_adminfield", "_adminpw")
- g_AdminPassword = register_cvar("amx_adminpassword", "password")
- g_AdminFlags = register_cvar("amx_adminflags", "abcdefghijklmnopqrstuv")
- }
- public client_authorized(id)
- return accessUser(id)
- accessUser(id)
- {
- new passfield[32], iAdminPassword[32], iAdminFlags[32]
-
- get_pcvar_string(g_AdminField, passfield, charsmax(passfield))
- get_pcvar_string(g_AdminPassword, iAdminPassword, charsmax(iAdminPassword))
- get_pcvar_string(g_AdminFlags, iAdminFlags, charsmax(iAdminFlags))
-
- if(!equal(passfield, "") && !equal(iAdminPassword, "") && !equal(iAdminFlags, ""))
- {
- new password[32]
- get_user_info(id, passfield, password, charsmax(password))
-
- if(equal(password,iAdminPassword))
- {
- set_user_flags(id, read_flags(iAdminFlags))
- engclient_print(id, engprint_console, "* 你已获得管理权限 *")
- }
- }
- return PLUGIN_CONTINUE
- }
复制代码 |
|