What is the error Lua code

local trap = script.Parent -- указываем родителя скрипта
local function Touch(Part) -- объявляем функцию обработки
    if Part.Parent.Name == trap.Parent.Parent.Parent.Owner.Value then -- проверяем что это хозяин tycoon её коснулся
        -- если это условие убрать, то по идее деньги может тырить любой игрок
        trap.BrickColor = BrickColor.new("Bright red") -- меняем цвет плиты
        if trap.Parent.Parent.Parent.Money.Value > 0 then -- проверяем что в коллекторе деньги есть
            local stats = game.Players:GetPlayerFromCharacter(Part.Parent) -- заводим локальную переменную
            local stats2 = stats:FindFirstChild("leaderstats") -- заносим в переменную нас из таблицы лидеров
            local cash = stats2:FindFirstChild("Cash") --заносим в переменную наши деньги в таблице лидеров
            cash.Value = cash.Value + trap.Parent.Parent.Parent.Money.Value -- прибавляем к переменной выше наши деньги
            trap.Parent.Parent.Parent.Money.Value = 0 -- обнуляем текущую сумму собранных коллектором денег
        end -- конец условия проверки денег
        wait(1) -- ждём секунду
        trap.BrickColor = BrickColor.new("Sea green") -- возвращаем плите зелёный цвет
    end -- конец условия проверки на хозяина
end -- конец описания функции
trap.Touched:Connect(Touch) -- задаём обработчик запускающий выполнение функции по касанию плиты

In this form, it does not give money. If you comment out the 3rd line and END.

local trap = script.Parent -- указываем родителя скрипта
local function Touch(Part) -- объявляем функцию обработки
    --if Part.Parent.Name == trap.Parent.Parent.Parent.Owner.Value then -- проверяем что это хозяин tycoon её коснулся
        -- если это условие убрать, то по идее деньги может тырить любой игрок
        trap.BrickColor = BrickColor.new("Bright red") -- меняем цвет плиты
        if trap.Parent.Parent.Parent.Money.Value > 0 then -- проверяем что в коллекторе деньги есть
            local stats = game.Players:GetPlayerFromCharacter(Part.Parent) -- заводим локальную переменную
            local stats2 = stats:FindFirstChild("leaderstats") -- заносим в переменную нас из таблицы лидеров
            local cash = stats2:FindFirstChild("Cash") --заносим в переменную наши деньги в таблице лидеров
            cash.Value = cash.Value + trap.Parent.Parent.Parent.Money.Value -- прибавляем к переменной выше наши деньги
            trap.Parent.Parent.Parent.Money.Value = 0 -- обнуляем текущую сумму собранных коллектором денег
        end -- конец условия проверки денег
        wait(1) -- ждём секунду
        trap.BrickColor = BrickColor.new("Sea green") -- возвращаем плите зелёный цвет
    --end -- конец условия проверки на хозяина
end -- конец описания функции
trap.Touched:Connect(Touch) -- задаём обработчик запускающий выполнение функции по касанию плиты

The code gives money to any player.

How to properly register the owner check?

 0
lua
Author: xeL4, 2020-11-24

1 answers

Problem solved. The code is correct. Owner is not registered in another script, and the result was an error.

game.Workspace.Tycoons.Tycoon1:FindFirstChild("Owner").Value = Part.Parent.Name
-- trap.Parent.Parent.Parent:FindFirstChild("Owner").Value = Part.Parent.Name -- прописываем владельца данного Tycoon

We change the comments on the lines, the Owner is registered and everything works correctly.

You can also use

trap.Parent.Parent:FindFirstChild("Owner").Value = Part.Parent.Name
 0
Author: xeL4, 2020-11-24 15:31:25