I would like that when there are more than 3 zombies in the game the barrier becomes transparent and when there are less than 3 it comes back to 0.8 transparency but my script not work and I dont understand why. Can you help me please?
Sorry I dont speak english i'm Québecker and I have 16 years old so I don't perfectly speak in english:/
"/900" because the "i" return +10100 value
while wait() do local ZombiesInGame = workspace.Zombies_Folder:GetChildren() local safezone = true if #ZombiesInGame > 3 and safezone then safezone = false workspace.GamePlayersStats.SafeZone.Script.Disabled = true for _, v in pairs(workspace.GamePlayersStats.Laser_SafeZone:GetChildren()) do for i = 0,25 do v.Transparency = v.Transparency - i/900 print(i) wait() end end elseif #ZombiesInGame < 3 and not safezone then safezone = true workspace.GamePlayersStats.SafeZone.Script.Disabled = false for _, v in pairs(workspace.GamePlayersStats.Laser_SafeZone:GetChildren()) do for i = 0,25 do v.Transparency = v.Transparency + i/900 print(i) wait() end end end end
Okay, first of all...
You don't have to use the safezone
value. I see no use for it in the script other than a marker. Unless it is for debugging, I advise you to remove it.
Second - your fade in/out loops are incorrect. The correct code (without safezone
):
while wait() do local ZombiesInGame = workspace.Zombies_Folder:GetChildren() if #ZombiesInGame > 3 and safezone then workspace.GamePlayersStats.SafeZone.Script.Disabled = true for _, v in pairs(workspace.GamePlayersStats.Laser_SafeZone:GetChildren()) do for i = 0,24 do v.Transparency = v.Transparency - 0.032 -- This is how much it should fade out in each iteration print(i) wait() end end elseif #ZombiesInGame < 3 and not safezone then workspace.GamePlayersStats.SafeZone.Script.Disabled = false for _, v in pairs(workspace.GamePlayersStats.Laser_SafeZone:GetChildren()) do for i = 0,24 do v.Transparency = v.Transparency + 0.032 -- This is how much it should fade in each iteration print(i) wait() end end end end