Top.Mail.Ru
Ответы

Помощь по скриптингу LUA

От тех кто разбирается в роблокс студио
У меня возникает ошибка:
Unable to assign property TextColor3. Color3 expected, got table
Вот код:

123456789101112131415161718192021222324252627282930313233343536
 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, 
}  

Вот код с редкостями:

12345
 return { 
	{"Common", 3, Color3.fromRGB(53, 151, 255)}; 
	{"Rare", 5, Color3.fromRGB(133, 255, 245)}; 
	{"Epic", 10, Color3.fromRGB(169, 94, 255)}; 
} 

Очень благодарен тем кто поможет!

По дате
По рейтингу
Аватар пользователя
Новичок
1мес

Твоя ошибка "Color3 expected, got table" возникает в text1.TextColor3 = rolledNumber[3] внутри animateText, потому что переменная rolledNumber (после remotes.RollFunction:InvokeServer()) содержит таблицу, где третий элемент – это другая таблица, а не готовый объект Color3. Тебе нужно либо изменить то, что возвращает сервер, либо правильно извлекать сам Color3 из этой вложенной таблицы на клиенте, и пересмотреть логику цикла в rollAnimation, чтобы он анимировал одну выпавшую редкость, а не все подряд.

Аватар пользователя
1мес

йандере дэв ахахахха я такой оргинальный!

Аватар пользователя
Мудрец
1мес

luanti.org

Аватар пользователя
Профи
1мес

Ошибка возникает потому что вы пытаетесь присвоить `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 (если он используется)

Аватар пользователя
Ученик
1мес

Попробуй цифровую цветовую палитру (от 0 до F)