Please be aware that #help-and-feedback:scripting-support is designed so you can get assistance not ask for scripts - you should at least make some attempt previously and show where you are stuck. If you are looking for someone to script it for you then please refer to #collaboration:recruitment and not here.
Solution
Your solution, without actually writing the code for you would be to use Click Detectors to which this link will also show you demonstrations on how to use them. To make the shower work, you would be advised to use a particle emitter which you can flip it Enabled/Disabled to trigger the water particles - with a nice water particle decal you could therefore make a good shower.
A lot of your solution can be met by actually reading the relevant API documentation on the things and then scripting said functionality in:
Example Code which might help:
-- store the state
local activated = false
activated = not activated -- this is a toggle, you can run this to flip the state
-- To handle your sound
local Sound = workspace.SoundObject -- a pointer
Sound:Play() -- enable the sound, we'd do this when activated -> true
Sound:Stop() -- disable the sound, we'd do this when activated -> false
-- Particle emitters
local ParticleEmitter = workspace.ParticleObject -- a pointer
ParticleEmitter.Enabled = true -- enable the water, we'd do this when activated -> true
ParticleEmitter.Enabled = false -- disable the water, we'd do this when activated -> false
-- To click stuff
local ClickDetector = workspace.Part.ClickDetector
function onMouseClick()
print("You clicked me!")
end
ClickDetector .MouseClick:connect(onMouseClick)