-- SOLVED -- I had made a stupid mistake with "Pack1 = script.Parent" because the numbered TextButtons are actually script.Parent.Pack1!
Hi guys. I have this script that changes a decal depending on if a player has completed a level. All of the children of Pack1 are numbered 1 through to 12. This script has broken as I have commented down below.
Help much appreciated!
while true do wait(2) LevelsCompleted = game.Players.LocalPlayer.LevelsCompleted Pack1 = script.Parent:GetChildren() for i,child in pairs(Pack1) do Level = tonumber(child.Name) if Level <= LevelsCompleted.Value then -- this line errors. It says "cannot compare string with a number" or something similar. child.ImageLabel.Image = "http://www.roblox.com/asset?id=173263900" elseif (Level + 1) == LevelsCompleted.Value then child.ImageLabel.Image = "http://www.roblox.com/asset?id=173701607" else child.ImageLabel.Image = "http://www.roblox.com/asset?id=173701600" end end end
Check if the child's name is not a string...
while true do wait(2) LevelsCompleted = game.Players.LocalPlayer.LevelsCompleted Pack1 = script.Parent:GetChildren() for i,child in pairs(Pack1) do if tonumber(child.Name) ~= nil then --Checks if the name is not a string. Level = tonumber(child.Name) if Level <= LevelsCompleted.Value then -- this line errors. It says "cannot compare string with a number" or something similar. child.ImageLabel.Image = "http://www.roblox.com/asset?id=173263900" elseif (number + 1) == LevelsCompleted.Value then child.ImageLabel.Image = "http://www.roblox.com/asset?id=173701607" else child.ImageLabel.Image = "http://www.roblox.com/asset?id=173701600" end end end end
Sorry if this doesn't work, if it doesn't then i'll try look for a solution.