Как заставить скрипт Roblox искать рюкзак игрока - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь создать скрипт, который ищет рюкзак игрока, когда он касается двери, чтобы он мог определить, есть ли у игрока карта-ключ.Если у игрока есть ключ-карта, он должен сказать «Да», но по какой-то причине он продолжает выдавать ошибку.Вот мой код:

function onTouched(m)
p = m.Parent:findFirstChild("Humanoid")
if p ~= nil then
        n = p.parent
        local letin = game.Players(n).Backpack:FindFirstChild("Key Card")
        if letin then
        print("Yes")
        else
        print("No")
        end
    end
end

script.Parent.Touched:connect(onTouched)

Ошибка:

Trying to call method on object of type: 'Player' with incorrect arguments.

Кто-нибудь знает, почему это может не работать?

1 Ответ

0 голосов
/ 05 февраля 2019

Я думаю, у вас есть две проблемы:

  • Похоже, вы пытаетесь получить доступ к индексу массива, но вы используете () вместо [].

  • Игра game.Players является классом обслуживания, а не массивом.Но вы можете вызвать game.Players: GetPlayers () , чтобы получить этот массив игроков.

Поскольку вы уже получаете объект игрока, вы можете просто взятьимя игрока и используйте его для поиска игрока из игры. Играющие.

Ваш сценарий почти работает, вот исправление для вас:

function onTouched(m)

    -- get the player in game that touched the thing
    local p = m.Parent:findFirstChild("Humanoid")
    if p ~= nil then

        -- grab the player's name
        local n = p.parent.Name

        -- find the player in the player list, escape if something goes wrong
        local player = game.Players:FindFirstChild(n, false)
        if player == nil then
            return
        end

        -- search the player's backpack for the keycard
        local keycard = player.Backpack:FindFirstChild("Key Card")
        if keycard then
            print("Yes")
        else
            print("No")
        end
    end
end

script.Parent.Touched:connect(onTouched)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...