吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 384|回复: 4
收起左侧

[求助] lua判定账号是否有权限

[复制链接]
li2042724 发表于 2023-12-20 10:38
起因:
本人不懂编程,由于情怀,
自己摸索着在云服务器和两三好友弄了个游戏玩,
然后想给大家gm权限,
于是看到了一个大佬写的这个lua文件,
但是只能判定一个账号有gm权限,
我怎么才能给gmid这个变量赋很多个账号的值呢?
由于变量只能赋一个值,
研究了半天也没弄明白,
还请有好心的大佬能帮忙简单说明一下,
万分感谢。

代码如下:
local gmid = 'luchi'

Delegate.RegDelTalkEvent("gmcode_TalkEvent")

function gmcode_TalkEvent(player, msg, color, range, size)

if check_msg(msg,"[nr") then
                if Char.GetData(player,%对象_CDK%) ~= gmid then
                Char.SetData(player,%对象_GM%,0)
                NLG.SystemMessage(player, "你不是GM,无法使用允许范围外的命令.")
                elseif Char.GetData(player,%对象_CDK%) == gmid then
                Char.SetData(player,%对象_GM%,1)
                NLG.SystemMessage(player, "你是GM,系统识别成功。")
                end
                return 1
        end

return 1
end

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

白陌陌 发表于 2023-12-20 16:04
[Lua] 纯文本查看 复制代码
local gmids = {'luchi', 'player2', 'player3'} -- 在这里添加所有拥有GM权限的账号

Delegate.RegDelTalkEvent("gmcode_TalkEvent")

function gmcode_TalkEvent(player, msg, color, range, size)
    if check_msg(msg,"[nr") then
        local isGM = false
        for _, gmid in ipairs(gmids) do
            if Char.GetData(player, %对象_CDK%) == gmid then
                Char.SetData(player, %对象_GM%, 1)
                NLG.SystemMessage(player, "你是GM,系统识别成功。")
                isGM = true
                break
            end
        end
        if not isGM then
            Char.SetData(player, %对象_GM%, 0)
            NLG.SystemMessage(player, "你不是GM,无法使用允许范围外的命令.")
        end
        return 1
    end
    return 1
end



不太懂lua,但是基本逻辑就是遍历所有的GM账号进行判断即可
amorous_pp 发表于 2023-12-20 16:22
本帖最后由 amorous_pp 于 2023-12-20 16:39 编辑

[Lua] 纯文本查看 复制代码
-- local gmid = 'luchi'
-- 将字符串换成表 存储多个 GM 用户名
local gmlist = {'user1','user2','user3'}

-- 遍历GM表检查用户名是否存在表中
function isGm(userid)
    for _,value in ipairs(gmlist) do
        if value == userid then
            return true
        end
    end
    return false
end


Delegate.RegDelTalkEvent("gmcode_TalkEvent")

function gmcode_TalkEvent(player, msg, color, range, size)

if check_msg(msg,"[nr") then
                if not isGm(Char.GetData(player,%对象_CDK%))  then
                    Char.SetData(player,%对象_GM%,0)
                    NLG.SystemMessage(player, "你不是GM,无法使用允许范围外的命令.")
                -- elseif Char.GetData(player,%对象_CDK%) == gmid then
                -- 使用isGM函数判断
                elseif isGm(Char.GetData(player,%对象_CDK%)) then
                    Char.SetData(player,%对象_GM%,1)
                    NLG.SystemMessage(player, "你是GM,系统识别成功。")
                end
                return 1
        end
return 1
end

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
li2042724 + 1 + 1 万分感谢 我去试试 学习一下

查看全部评分

 楼主| li2042724 发表于 2023-12-21 09:41
白陌陌 发表于 2023-12-20 16:04
[mw_shl_code=lua,true]local gmids = {'luchi', 'player2', 'player3'} -- 在这里添加所有拥有GM权限的账 ...

万分感谢  我再学习学习
zhouzheng1201 发表于 2024-2-27 13:36
万分感谢  我再学习学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-4 03:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表