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

The transparency of the frame changes twice! What to do?

Asked by 4 years ago

How do I change the transparency outside the frame?

Code:

    for i,v in pairs(game.Players:GetPlayers()) do
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.9
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.8
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.7
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.6
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.5
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.4
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.3
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.2
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.1
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0
    wait(5)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.1
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.2
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.3
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.4
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.5
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.6
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.7
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.8
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 0.9
    wait(0.1)
    v.PlayerGui.ScreenGui.Shadow.BackgroundTransparency = 1
    end

Transparency changes for all players twice. (If two players) Help please

0
Most likely because you're using a normal script. Try changing it to a localscript instead. ScuffedAI 435 — 4y

1 answer

Log in to vote
0
Answered by
pwx 1581 Moderation Voter
4 years ago

This is because you are looping through players, so it will continue to loop through your code per player it find. You should really be using a LocalScript and be using a function. Also, to make it easier instead of continuously typing out your transparency, use a loop to determine when it should begin/stop.

-- [[ SERVICES ]] --

Players = game:GetService('Players')

-- [[ VARIABLES ]] --

Player = Players.LocalPlayer

-- [[ MAIN SCRIPT ]] --

function transparencyStuff()
    local Shadow = Player.PlayerGui:WaitForChild('ScreenGui').Shadow

    repeat wait()
        Shadow.BackgroundTransparency = Shadow.BackgroundTransparency - .05
    until Shadow.BackgroundTransparency <= 0 -- wait until fully visible
    wait(5)
    repeat wait()
        Shadow.BackgroundTransparency = Shadow.BackgroundTransparency + .05
    until Shadow.BackgroundTransparency >= 1 -- wait until not visible
end

-- [[ CONNECTIONS ]] --

wait(5) -- wait for however long before transparency happens
transparencyStuff()
Ad

Answer this question