Помощь по скриптингу LUA
От тех кто разбирается в роблокс студио
У меня возникает ошибка:
Unable to assign property TextColor3. Color3 expected, got table
Вот код:
local replicatedStorage = game:GetService("ReplicatedStorage")
local remotes = replicatedStorage:WaitForChild("Remotes")
local tweenService = game:GetService("TweenService")
local info = TweenInfo.new(.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local function animateText(text1,text2,rolledNumber)
local rolledNumber = remotes.RollFunction:InvokeServer()
text1.Position = UDim2.fromScale(.5, .35)
text1.TextColor3 = rolledNumber[3]
text1.Text = rolledNumber[1]
text2.Text =`1 in {tostring(rolledNumber[2])}`
tweenService:Create(text1, info, {Position = UDim2.fromScale(.5, .5)}):Play()
wait(.2)
end
return {
rollAnimation = function(animationFolder: fold, rolledNumber)
local background = animationFolder:WaitForChild("Background")
local title = animationFolder:WaitForChild("Title")
background.Visible = true
title.Visible = true
for i, Table in ipairs(rolledNumber) do
animateText(title,y, Table)
end
wait(1)
background.Visible = false
title.Visible = false
end,
}
Вот код с редкостями:
return {
{"Common", 3, Color3.fromRGB(53, 151, 255)};
{"Rare", 5, Color3.fromRGB(133, 255, 245)};
{"Epic", 10, Color3.fromRGB(169, 94, 255)};
}
Очень благодарен тем кто поможет!
Твоя ошибка "Color3 expected, got table" возникает в text1.TextColor3 = rolledNumber[3] внутри animateText, потому что переменная rolledNumber (после remotes.RollFunction:InvokeServer()) содержит таблицу, где третий элемент – это другая таблица, а не готовый объект Color3. Тебе нужно либо изменить то, что возвращает сервер, либо правильно извлекать сам Color3 из этой вложенной таблицы на клиенте, и пересмотреть логику цикла в rollAnimation, чтобы он анимировал одну выпавшую редкость, а не все подряд.
йандере дэв ахахахха я такой оргинальный!
luanti.org
Ошибка возникает потому что вы пытаетесь присвоить `TextColor3` значение из таблицы `rolledNumber[3]`, но система ожидает объект `Color3`, а получает таблицу.
Проблема в том, что в функции `rollAnimation` вы передаете `Table` (элемент из `rolledNumber`), но внутри `animateText` вы снова вызываете `remotes.RollFunction:InvokeServer()`, который возвращает новое значение и перезаписывает переданное `rolledNumber`.
Вот исправленный код:
```lua
local replicatedStorage = game:GetService("ReplicatedStorage")
local remotes = replicatedStorage:WaitForChild("Remotes")
local tweenService = game:GetService("TweenService")
local info = TweenInfo.new (.2, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local function animateText(text1, text2, rolledNumber)
text1.Position = UDim2.fromScale(.5, .35)
text1.TextColor3 = rolledNumber[3] -- Используем переданное значение
text1.Text = rolledNumber[1]
text2.Text = `1 in {tostring(rolledNumber[2])}`
tweenService:Create(text1, info, {Position = UDim2.fromScale(.5, .5)}):Play()
wait(.2)
end
return {
rollAnimation = function(animationFolder: folder, rolledNumber)
local background = animationFolder:WaitForChild("Background")
local title = animationFolder:WaitForChild("Title")
local y = animationFolder:WaitForChild("Y") -- Добавьте эту строку, если 'y' это другой TextLabel
background.Visible = true
title.Visible = true
for i, Table in ipairs(rolledNumber) do
animateText(title, y, Table) -- Передаем текущий элемент таблицы
end
wait(1)
background.Visible = false
title.Visible = false
end,
}
```
Основные изменения:
1. Убрал повторный вызов `remotes.RollFunction:InvokeServer()` внутри `animateText`
2. Добавил поиск объекта `y` (если это TextLabel, который должен отображать шанс)
3. Используем переданный параметр `rolledNumber` (который на самом деле текущий элемент таблицы)
Также убедитесь, что:
1. В таблице с редкостями все цвета действительно созданы через `Color3.fromRGB()`
2. Параметр `animationFolder` действительно является folder'ом с нужными элементами
3. Объект `y` существует в animationFolder (если он используется)
Попробуй цифровую цветовую палитру (от 0 до F)