为什么我无法解禁玩家? [Roblox 工作室,LUA]

问题描述 投票:0回答:1

我是初学者程序员,正在尝试制作包含踢、禁止、取消禁止命令的管理系统。成功禁止后,按取消禁止按钮后,它告诉我该用户已被取消禁止,但是当我从被禁止的用户加入游戏时,它仍然说我被禁止了。

代码:

game.Players.PlayerAdded:Connect(function(plr)
    local ng = game.Workspace:FindFirstChild(plr.Name .. " / Banned")
    if ng:IsA("WedgePart") then
        plr:Kick("Banned")
        print(plr.Name .. " tried to join while banned")
    end
end)


script.Parent["Kick/Ban"].OnServerEvent:Connect(function(plr, plrname, reason, kb)
    if game.Players:FindFirstChild(plrname) then
        local target = game.Players:FindFirstChild(plrname)
        if kb == "Kick" then
            if reason ~= "" then
                target:Kick(reason)
            elseif reason == "" then
                target:Kick()
            end
        elseif kb == "Ban" then
            local part = Instance.new("WedgePart")

            print(target.Name .. " has been banned")

            part.Parent = game.Workspace
            part.Name = target.Name .. " / Banned"
            part.CanCollide = false
            part.Transparency = 1
            part.Anchored = true
            
            target:Kick("Banned")
        elseif kb == "Unban" then
            local tn = plrname .. " / Banned"
            local part2 = game.Workspace:FindFirstChildOfClass("WedgePart")

            while part2 do
                if part2.Name:lower() == tn:lower() then
                    part2:Destroy()
                    print(target.Name .. " has been unbanned")
                    break
                end
                part2 = game.Workspace:FindFirstChildOfClass("WedgePart", part2)
            end

            if not part2 then
                print(target.Name .. " is not banned")
            end
        end
    end
end)

尝试请人工智能帮助我,但一无所获。我认为主要问题是在 game.Players.PlayerAdded 等等。请帮我。 [对不起我的英语]

roblox roblox-studio
1个回答
0
投票

我看了下,没发现什么问题。我尝试稍微调整一下,尝试一下这段代码,看看它是否有效:

script.Parent["Kick/Ban"].OnServerEvent:Connect(function(plr, plrname, 
reason, kb)
    if game.Players:FindFirstChild(plrname) then
        local target = game.Players:FindFirstChild(plrname)
        if kb == "Kick" then
            if reason ~= "" then
                target:Kick(reason)
            elseif reason == "" then
                target:Kick()
            end
        elseif kb == "Ban" then
            local part = Instance.new("WedgePart")

            print(target.Name .. " has been banned")

            part.Parent = game.Workspace
            part.Name = target.Name .. " / Banned"
            part.CanCollide = false
            part.Transparency = 1
            part.Anchored = true
        
            target:Kick("Banned")
        elseif kb == "Unban" then
            local tn = plrname .. " / Banned"
            local part2 = game.Workspace:FindFirstChild(tn)

            if part2 then
                part2:Destroy()
                print(target.Name .. " has been unbanned")
            else
                print(target.Name .. " is not banned")
            end
        end
    end
end)
© www.soinside.com 2019 - 2024. All rights reserved.