Как в моем сценарии работает «Найти первого ребенка»? - (Студия Роблокс)

Пытаюсь создать сценарий: при столкновении ракеты с кирпичом стрелку выдаются деньги. Однако скрипт не работает, и я считаю, что это из-за FindFirstChild.

Сценарий на данный момент:

    function touched(Hit)
        print(Hit)
        if Hit.Name == "Rocket" then
            print("Money")
            print(Hit.creator.Value)
            local Creator = Hit.creator.Value
            local plr = game.Players:FindFirstChild(Hit.creator.Value)
            if plr then
                print(plr)
                plr.leaderstats.Cash.Value = plr.leaderstats.Cash.Value + 10
            end
                end
            end



    script.Parent.Touched:Connect(touched)

При запуске скрипт ничего не печатает за local plr = game.Players:FindFirstChild(Hit.creator.Value), что заставляет меня думать, что это ошибка. Кто-нибудь сталкивался с подобной проблемой?


person pop gaming    schedule 07.10.2019    source источник
comment
Ваш код для FindFirstChild выглядит нормально. Ваши ракеты работают правильно? Когда вы распечатываете creator.Value, совпадает ли имя с именем игрока, запустившего ракету?   -  person Kylaaa    schedule 09.10.2019
comment
Да, когда вы стреляете в него ракетой, деталь обнаруживает его, но я думаю, что у него недостаточно времени для сканирования значения, поэтому он называет его nill Cuase, я проверил, есть ли у него значение, и оно имеет, и это мое имя пользователя для roblox.   -  person pop gaming    schedule 09.10.2019
comment
Да, и да, значение такое же, как у игроков, которые его запустили.   -  person pop gaming    schedule 09.10.2019


Ответы (2)


function touched(Hit)
    print(Hit)
    if Hit.Name == "Rocket" then
        print("Money")
        print(Hit.Creator.Value)
        local Creator = Hit.creator.Value
        local plr = game.Players:FindFirstChild(Hit.Creator.Value)
        if plr then
            print(plr)
            plr.leaderstats.Cash.Value = plr.leaderstats.Cash.Value + 10
        end
    end
end

script.Parent.Touched:Connect(touched)

Я уверен, что это сработает для вас. (Надеюсь, это поможет.)

person Doggo    schedule 29.11.2019
comment
Вкратце я бы добавил, о чем ваше предложение, иначе автору нужно найти разницу. Например, в этом случае - верхний регистр для Creator. Также обратите внимание, что вы также используете в своем коде строчные буквы (Hit.creator.Value). Так что это довольно запутанно. - person nickolay.laptev; 30.11.2019

Скорее всего, происходит то, что ракета удаляется слишком быстро, что вы можете сделать, так это сделать ракету моделью вместо нее и иметь тег создателя внутри модели вместо детали.

person steffen pedersen    schedule 03.02.2021