Roblox Admin Commandoscript

Ik probeer momenteel een nieuw admin-opdrachtscript te maken; alles wat ik tot nu toe heb is het kill-commando … alles wat ik (tot nu toe) heb geprobeerd, werkt tenzij ik de parameter “:* me” gebruik (“*” is een willekeurig commando en “:” is het herkenningsteken. Ik don begrijp niet helemaal waarom dit niet werkt.

Ik heb een paar gekke dingen geprobeerd om dit te laten werken, dus de code kan worden afgeslacht van hoe ik het oorspronkelijk had…

admins = {"FakeNameHereSoNoStalkers"}
function kill(target)
    for i=1,#target do
        game.Players.target[i].Character:BreakJoints()
    end
end
function isadmin(source)
    for i=1,#admins do
        if admins[i]:lower()==source:lower() then return true end
    end
end
function findplayer(msg, source)
    people = {}
    c = game.Players:GetChildren()
    if msg:lower()=="me" then
        table.insert(people, source)
        return people
    elseif msg:lower()=="all" then
        for i=1,#c do
            table.insert(people, c[i])
        end
        return people
    else
        local length = msg:len()
        for i=1,#c do
            if c[i].Name:lower():sub(1, length)==msg:lower() then
                table.insert(people, c[i])
            end
        end
        return people
    end
end
game.Players.PlayerAdded:connect(function(player)
    source = player.Name
    if isadmin(source) == true then
        player.Chatted:connect(function(msg, player)
            if msg:lower():sub(1,6)==":kill " then
                msg = msg:sub(7)
                target = findplayer(msg, source)
                kill(target)
            end
        end)
    end
end)

Antwoord 1

for i=1,#target do
    game.Players.target[i].Character:BreakJoints()
end

is onjuist, indien “doel” bevat “fakenamehereesonostalkers” , dan zou de runtcode zijn:

game.Players.target.1.Character:BreakJoints()

die volledig onjuist is.


c = game.Players:GetChildren()

Gebruik nooit “spelers: Getchildren ()” , het is niet gegarandeerd alleen spelers terug.

Gebruik in plaats daarvan:

c = Game.Players:GetPlayers()

if msg:lower()=="me" then
    table.insert(people, source)
    return people

Hier voegt u de naam van de speler in de lijst “Mensen” , waar u op de andere plaatsen het spelerobject toevoegt.


Vaste code:

local Admins = {"FakeNameHereSoNoStalkers"}
function Kill(Players)
    for i,Player in ipairs(Players) do
        if Player.Character then
            Player.Character:BreakJoints()
        end
    end
end
function IsAdmin(Player)
    for i,AdminName in ipairs(Admins) do
        if Player.Name:lower() == AdminName:lower() then return true end
    end
    return false
end
function GetPlayers(Player,Msg)
    local Targets = {}
    local Players = Game.Players:GetPlayers()
    if Msg:lower() == "me" then
        Targets = { Player }
    elseif Msg:lower() == "all" then
        Targets = Players
    elseif Msg:lower() == "others" then
        for i,Plr in ipairs(Players) do
            if Plr ~= Player then
                table.insert(Targets,Plr)
            end
        end
    else
        for i,Plr in ipairs(Players) do
            if Plr.Name:lower():sub(1,Msg:len()) == Msg then
                table.insert(Targets,Plr)
            end
        end
    end
    return Targets
end
Game.Players.PlayerAdded:connect(function(Player)
    if IsAdmin(Player) then
        Player.Chatted:connect(function(Msg)
            if Msg:lower():sub(1,6) == ":kill " then
                Kill(GetPlayers(Player,Msg:sub(7)))
            end
        end)
    end
end)

Other episodes