Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Help with colors repeating in a script?

Asked by 4 years ago
Edited 4 years ago

Hi, so I've been working at this for about an hour trying to fix or figure out why it doesn't work... I definitely need some help from someone else.

What I'm trying to make is a script that makes every part named raveFloor turn into a random color from the rainbow. It's supposed to not be able to have the same color for more than one cycle, but I'm seeing colors still repeat themselves when I test them... Please, help. (And if you want extra fun points, suggest a better indigo; it just looks gray.) If I can improve anywhere else in the script, please tell about that as well :)

Here's my code

--[[

this script makes whatever is named "raveFloor" just go into a rave mode,
randomly choosing a color and making said part that color

--]]

local victim = "raveFloor";
-- this is what you name anything you want to rave

local noLoops = 0;
-- just made for makin sure theres not the same color :)

local folder = game:FindFirstChild("PartsHolder",true)
-- finds the partsholder folder for performance

local num = 0;

local function RAVE(part)
    num = math.random(1,7);
    -- random rolly 1-7

    if (num == 1) then
        if(noLoops == 1) then
            RAVE(part)
        else
            part.BrickColor = BrickColor.new(1,0,0)
            -- red
            noLoops = 1
        end
    end 
    if (num == 2) then
        if(noLoops == 2) then
            RAVE(part)
        else
            part.BrickColor = BrickColor.new(1,.5,0)
            -- orange
            noLoops = 2
        end
    end 
    if (num == 3) then
        if(noLoops == 3) then
            RAVE(part)
        else
            part.BrickColor = BrickColor.new(1,1,0)
            -- yellow
            noLoops = 3
        end
    end 
    if (num == 4) then
        if(noLoops == 4) then
            RAVE(part)
        else
            part.BrickColor = BrickColor.new(0,1,0)
            -- green
            noLoops = 4
        end
    end 
    if (num == 5) then
        if(noLoops == 5) then
            RAVE(part)
        else
            part.BrickColor = BrickColor.new(0,0,1)
            -- blue
            noLoops = 5
        end
    end 
    if (num == 6) then
        if(noLoops == 6) then
            RAVE(part)
        else
            part.BrickColor = BrickColor.new(.67,.84,.9)
            -- indigo
            noLoops = 6
        end
    end
    if (num == 7) then
        if(noLoops == 7) then
            RAVE(part)
        else
            part.BrickColor = BrickColor.new(1,0,1)
            -- violet
            noLoops = 7
        end
    end
end


local function findParty(obj)
    for _, child in pairs(obj:GetChildren()) do 
        if (child.Name == victim) then      
            RAVE(child)     
        end
        findParty(child)    
    end
end

---------------------------------------------------------------------------------

while true do
    findParty(workspace)
    wait(.5)
end
0
Why don't you just math.random the r, g, and b components of the BrickColor? darkelementallord 686 — 4y
0
We only want those seven colors, not just random colors. However, we couldn't get the colors to stop repeating in the other script either.. aintnorambo 0 — 4y

Answer this question