Advertisement
danielaust

Flood

Apr 19th, 2019
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.84 KB | None | 0 0
  1. --https://github.com/Mokiros/roblox-FE-compatibility
  2. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  3. local Player,game,owner = owner,game
  4. local RealPlayer = Player
  5. do print("FE Compatibility code V2 by Mokiros")local RealPlayer=RealPlayer;script.Parent=RealPlayer.Character;local a=function(b)b[1].f[b[2]]=nil end;local c={__index={disconnect=a,Disconnect=a}}local d={__index={Connect=function(b,e)local f=tostring(math.random(0,10000))while b.f[f]do f=tostring(math.random(0,10000))end;b.f[f]=e;return setmetatable({b,f},c)end}}d.__index.connect=d.__index.Connect;local function g()return setmetatable({f={}},d)end;local h={Hit=CFrame.new(),KeyUp=g(),KeyDown=g(),Button1Up=g(),Button1Down=g(),Button2Up=g(),Button2Down=g()}h.keyUp=h.KeyUp;h.keyDown=h.KeyDown;local i={InputBegan=g(),InputEnded=g()}local CAS={Actions={},BindAction=function(self,j,k,l,...)CAS.Actions[j]=k and{Name=j,Function=k,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function m(self,n,...)for o,e in pairs(self[n].f)do e(...)end end;h.T=m;i.T=m;local p=Instance.new("RemoteEvent")p.Name="UserInput_Event"p.OnServerEvent:Connect(function(q,r)if q~=RealPlayer then return end;h.Target=r.e;h.Hit=r.d;if not r.f then local s=r.c==Enum.UserInputState.Begin;if r.b==Enum.UserInputType.MouseButton1 then return h:T(s and"Button1Down"or"Button1Up")end;if r.b==Enum.UserInputType.MouseButton2 then return h:T(s and"Button2Down"or"Button2Up")end;for o,t in pairs(CAS.Actions)do for o,u in pairs(t.Keys)do if u==r.a then t.Function(t.Name,r.c,r)end end end;h:T(s and"KeyDown"or"KeyUp",r.a.Name:lower())i:T(s and"InputBegan"or"InputEnded",r,false)end end)p.Parent=NLS([==[local a=script:WaitForChild("UserInput_Event")local b=owner:GetMouse()local c=game:GetService("UserInputService")local d=function(e,f)if f then return end;a:FireServer({a=e.KeyCode,b=e.UserInputType,c=e.UserInputState,d=b.Hit,e=b.Target})end;c.InputBegan:Connect(d)c.InputEnded:Connect(d)local g,h;local i=game:GetService("RunService").Heartbeat;while true do if g~=b.Hit or h~=b.Target then g,h=b.Hit,b.Target;a:FireServer({f=1,Target=h,d=g})end;for j=1,2 do i:Wait()end end]==],script)local v=game;local w={__index=function(self,u)local x=rawget(self,"_RealService")if x then return typeof(x[u])=="function"and function(o,...)return x[u](x,...)end or x[u]end end,__newindex=function(self,u,y)local x=rawget(self,"_RealService")if x then x[u]=y end end}local function z(t,A)t._RealService=typeof(A)=="string"and v:GetService(A)or A;return setmetatable(t,w)end;local B={GetService=function(self,x)return rawget(self,x)or v:GetService(x)end,Players=z({LocalPlayer=z({GetMouse=function(self)return h end},Player)},"Players"),UserInputService=z(i,"UserInputService"),ContextActionService=z(CAS,"ContextActionService"),RunService=z({_btrs={},RenderStepped=v:GetService("RunService").Heartbeat,BindToRenderStep=function(self,j,o,k)self._btrs[j]=self.Heartbeat:Connect(k)end,UnbindFromRenderStep=function(self,j)self._btrs[j]:Disconnect()end},"RunService")}rawset(B.Players,"localPlayer",B.Players.LocalPlayer)B.service=B.GetService;z(B,game)game,owner=B,B.Players.LocalPlayer end
  6.  
  7. local Sea = Instance.new("Part")
  8. Sea.FormFactor = "Custom"
  9. Sea.BrickColor = BrickColor.new("Bright blue")
  10. Sea.Transparency = 0.4
  11. Sea.Reflectance = 0
  12. Sea.Size = Vector3.new(1, 1, 1)
  13. Sea.Anchored = true
  14. Sea.CanCollide = false
  15. Sea.Name = "Sea"
  16. local Mesh = Instance.new("SpecialMesh")
  17. Mesh.MeshType = "Brick"
  18. Mesh.Parent = Sea
  19. Sea.Parent = Workspace
  20. local tideWaver = 0
  21. local tideWaverMult = 50
  22. local tideLow = 100
  23. local tideHigh = 250
  24. local tidePosition = 0
  25. tide = math.random(tideLow, tideHigh)
  26. while true do
  27. if Sea == nil then break end
  28. if Sea.Parent == nil then break end
  29. if math.random(1, 500) == 1 then tide = math.random(tideLow, tideHigh) end
  30. if tidePosition < tide then
  31. tidePosition = tidePosition + 0.1
  32. elseif tidePosition > tide then
  33. tidePosition = tidePosition - 0.1
  34. else
  35. tidePosition = tide
  36. end
  37. tideWaver = tideWaver + 0.01
  38. Sea.CFrame = CFrame.new(0, (tidePosition / 2) + ((math.sin(tideWaver) * tideWaverMult) / 2), 0)
  39. Mesh.Scale = Vector3.new(10000, tidePosition + (math.sin(tideWaver) * tideWaverMult), 10000)
  40. for _, p in pairs(game:GetService("Players"):GetPlayers()) do
  41. if p.Character ~= nil then
  42. if p.Character:FindFirstChild("Head") ~= nil then
  43. local pg = p:FindFirstChild("PlayerGui")
  44. if pg == nil then pg = Instance.new("PlayerGui", p) end
  45. if p.Character.Head.Position.y < tidePosition + (math.sin(tideWaver) * tideWaverMult) then
  46. if pg:FindFirstChild("Sea") == nil then
  47. local s = Instance.new("ScreenGui")
  48. s.Name = "Sea"
  49. f = Instance.new("Frame")
  50. f.BackgroundTransparency = 1
  51. f.BackgroundColor3 = Color3.new(0, 0, 1)
  52. f.Size = UDim2.new(2, 0, 2, 0)
  53. f.Position = UDim2.new(-1, 0, -1, 0)
  54. f.Parent = s
  55. s.Parent = pg
  56. coroutine.resume(coroutine.create(function()
  57. local t = Sea.Transparency
  58. for x = 1, t, -0.05 do
  59. f.BackgroundTransparency = x
  60. wait()
  61. end
  62. f.BackgroundTransparency = t
  63. end))
  64. end
  65. else
  66. if pg:FindFirstChild("Sea") ~= nil then
  67. coroutine.resume(coroutine.create(function()
  68. local s = pg.Sea
  69. for x = s.Frame.BackgroundTransparency, 1, 0.05 do
  70. s.Frame.BackgroundTransparency = x
  71. wait()
  72. end
  73. s:Remove()
  74. end))
  75. end
  76. end
  77. end
  78. if p.Character:FindFirstChild("Torso") ~= nil then
  79. if p.Character.Torso.Position.y + 0.5 < tidePosition + (math.sin(tideWaver) * tideWaverMult) then
  80. p.Character.Torso.Velocity = p.Character.Torso.Velocity + Vector3.new(0, 7.5 * (function() local vel = (math.abs(p.Character.Torso.Velocity.y - tidePosition) / 30) if vel > 25 then return 25 else return vel end end)(), 0)
  81. end
  82. end
  83. end
  84. end
  85. wait()
  86. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement