在Lua中搜索表格(白名单)。
2015-9-24 7:44:53
收藏:0
阅读:163
评论:2
我一直在尝试为我的Garry's Mod服务器编写一个白名单附加组件。我对LUA还比较陌生,因此非常感谢任何帮助。我有一个想法,但我不知道该如何在其中搜索。比如我有一个表格:
local Table = { Player1, Player2, Player3 }
hook.Add( "PlayerConect", "Connect", function(ply)
if ply:Nick() != Table then
ply:Kick( "Reason here" )
end
end)
这是我能理解如何做的范围之内。 谢谢你的宝贵时间。
点赞
用户4273199
创建一个白名单SteamID的表格(不要使用名称! 它们不是唯一的)
local WhitelistedIDs = {
["STEAM_0:0:52031589"] = true,
["STEAM_0:0:109379505"] = true,
["STEAM_0:0:115441745"] = true
}
然后编写你的代码,应该像这样
hook.Add( "PlayerInitialSpawn", "MyAwesomeWhitelist", function( --[[ Player ]] player)
if (~WhitelistedIDs[player::SteamID()]) then
player:Kick( "Sorry! You are not Whitelisted!" )
end)
注意,我没有使用PlayerConnect钩子。我没有使用它,因为我们只有玩家的名字,但我们需要一个完整的玩家对象。
来源:我的经验和GMod Wiki
注:在示例中使用的SteamIDs都是我自己的有效帐户
代码未经测试,请在出现意外情况时留下评论
2015-06-22 12:35:39
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
我对 Garry's Mod 不是很熟悉,但如果你只需要检查玩家的昵称是否在表格中,你可以这样做:
local Table = { "Player1", "Player2", "Player3" } hook.Add( "PlayerConect", "Connect", function(ply) local notfound = true -- 遍历表格中的所有元素 for index, nick in ipairs(Table) do if ply:Nick() == nick then notfound = false break end end if notfound then ply:Kick( "Reason here" ) end end)如果你使用一个略微不同的表格来存储玩家的昵称,那么检查就会变得更简单(
Table现在被用作哈希表):local Table = { Player1 = true, Player2 = true, Player3 = true } hook.Add( "PlayerConect", "Connect", function(ply) -- 检查昵称是否在表格中存在 if not Table[ply:Nick()] then ply:Kick( "Reason here" ) end end)