Advertisement
kilcrafter

Uber Shield

Sep 21st, 2019
395
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  2. local Player,Mouse,mouse,UserInputService,ContextActionService = owner
  3. do
  4. print("Fixed by kilcrafter (crift_games1)")
  5. script.Parent = Player.Character
  6.  
  7. --RemoteEvent for communicating
  8. local Event = Instance.new("RemoteEvent")
  9. Event.Name = "UserInput_Event"
  10.  
  11. --Fake event to make stuff like Mouse.KeyDown work
  12. local function fakeEvent()
  13. local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
  14. t.connect = t.Connect
  15. return t
  16. end
  17.  
  18. --Creating fake input objects with fake variables
  19. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  20. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  21. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  22. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  23. end}
  24. --Merged 2 functions into one by checking amount of arguments
  25. CAS.UnbindAction = CAS.BindAction
  26.  
  27. --This function will trigger the events that have been :Connect()'ed
  28. local function te(self,ev,...)
  29. local t = m[ev]
  30. if t and t._fakeEvent and t.Function then
  31. t.Function(...)
  32. end
  33. end
  34. m.TrigEvent = te
  35. UIS.TrigEvent = te
  36.  
  37. Event.OnServerEvent:Connect(function(plr,io)
  38. if plr~=Player then return end
  39. if io.isMouse then
  40. m.Target = io.Target
  41. m.Hit = io.Hit
  42. else
  43. local b = io.UserInputState == Enum.UserInputState.Begin
  44. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  45. return m:TrigEvent(b and "Button1Down" or "Button1Up")
  46. end
  47. for _,t in pairs(CAS.Actions) do
  48. for _,k in pairs(t.Keys) do
  49. if k==io.KeyCode then
  50. t.Function(t.Name,io.UserInputState,io)
  51. end
  52. end
  53. end
  54. m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  55. UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
  56. end
  57. end)
  58. Event.Parent = NLS([==[
  59. local Player = game:GetService("Players").LocalPlayer
  60. local Event = script:WaitForChild("UserInput_Event")
  61.  
  62. local UIS = game:GetService("UserInputService")
  63. local input = function(io,a)
  64. if a then return end
  65. --Since InputObject is a client-side instance, we create and pass table instead
  66. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
  67. end
  68. UIS.InputBegan:Connect(input)
  69. UIS.InputEnded:Connect(input)
  70.  
  71. local Mouse = Player:GetMouse()
  72. local h,t
  73. --Give the server mouse data 30 times every second, but only if the values changed
  74. --If player is not moving their mouse, client won't fire events
  75. while wait(1/30) do
  76. if h~=Mouse.Hit or t~=Mouse.Target then
  77. h,t=Mouse.Hit,Mouse.Target
  78. Event:FireServer({isMouse=true,Target=t,Hit=h})
  79. end
  80. end]==],Player.Character)
  81. Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
  82. end
  83.  
  84. wait()
  85. script.Name = "_.:| E-Shield |:._"
  86. --script.Parent = _EShield_
  87. local LocalPlayer = owner
  88. local b, Platform = nil
  89. local PlayerOnly = false
  90. local Touched = {}
  91. local ShiftDown, CtrlDown, MouseDown, Mouse2Down, MouseDeb, Mouse2Tick = false, false, false, false, false, 0
  92.  
  93. function Create()
  94. if b then pcall(function() b:Destroy() end) end
  95. if Platform then pcall(function() Platform:Destroy() end) end
  96. local t = LocalPlayer.Character:FindFirstChild("Torso")
  97. local posit = Vector3.new(0, 50, 0)
  98. if t then posit = t.Position end
  99. Platform = Instance.new("Part")
  100. Platform.formFactor = "Custom"
  101. Platform.Size = Vector3.new(10, 1, 10)
  102. Platform.Transparency = 1
  103. Platform.Anchored = true
  104. Platform.CanCollide = true
  105. b = Instance.new("Part", game:service'Workspace')
  106. b.Position = posit
  107. b.Shape = "Ball"
  108. b.Transparency = 0
  109. b.Anchored = true
  110. b.Reflectance = 0.3
  111. b.Size = Mouse2Down and Vector3.new(25, 25, 25) or Vector3.new(15, 15, 15)
  112. b.Color = Mouse2Down and Color3.new(1, 0, 0) or Color3.new(0, 0, 1)
  113. b.TopSurface = "Smooth"
  114. b.BottomSurface = "Smooth"
  115. b.Locked = true
  116. b.CanCollide = false
  117. b.Changed:connect(function(w)
  118. if w == "Parent" then
  119. Create()
  120. end
  121. end)
  122. b.Touched:connect(function(obj)
  123. if obj.Name ~= "WillNotBeRemoved" and not TouchedStatus(obj) and not obj:IsDescendantOf(LocalPlayer.Character) and not obj:IsDescendantOf(game:service'Workspace'.CurrentCamera) and obj.Name ~= "Base" and obj.className == "Part" then
  124. table.insert(Touched, obj)
  125. if PlayerOnly then
  126. if GetPlayer(obj) then
  127. Destroying(obj)
  128. end
  129. else
  130. Destroying(obj)
  131. end
  132. end
  133. end)
  134. end
  135.  
  136. function GetRecursiveChildren(Parent)
  137. local ret = {}
  138. for i, v in pairs(Parent:GetChildren()) do
  139. if #v:GetChildren() > 0 then
  140. local childs = GetRecursiveChildren(v)
  141. for i1, v1 in pairs(childs) do
  142. ret[#ret + 1] = v1
  143. end
  144. end
  145. ret[#ret + 1] = v
  146. end
  147. return ret
  148. end
  149.  
  150. function GetPlayer(Target)
  151. for _,v in pairs(game:service'Players':GetPlayers()) do
  152. if v.Character ~= nil and Target:IsDescendantOf(v.Character) then
  153. return v
  154. end
  155. end
  156. return nil
  157. end
  158.  
  159. function TouchedStatus(Target)
  160. for _,v in pairs(Touched) do
  161. if v == Target then
  162. return true
  163. end
  164. end
  165. return false
  166. end
  167.  
  168. function Destroying(obj)
  169. local ran, err = coroutine.resume(coroutine.create(function()
  170. if not Mouse2Down then
  171. obj:BreakJoints()
  172. obj.CanCollide = false
  173. obj.Anchored = false
  174. obj.formFactor = "Custom"
  175. obj.Size = obj.Size * Vector3.new(math.random(), math.random(), math.random())
  176. local bp = Instance.new("BodyPosition")
  177. bp.maxForce = Vector3.new(1/0,1/0,1/0)
  178. bp.Parent = obj
  179. local X, Y, Z = nil, nil, nil
  180. coroutine.wrap(function()
  181. while obj and obj.Parent do
  182. X, Y, Z = math.random(-5, 5), math.random(-5, 5), math.random(-5, 5)
  183. wait(0.3)
  184. end
  185. end)()
  186. coroutine.wrap(function()
  187. while obj and obj.Parent do
  188. bp.position = LocalPlayer.Character.Torso.Position + Vector3.new(X, Y, Z)
  189. wait()
  190. end
  191. end)()
  192. coroutine.wrap(function()
  193. local transp = 0
  194. for i = 1, 50 do
  195. transp = transp + 0.02
  196. obj.Transparency = transp
  197. wait(0.05)
  198. end
  199. game:service'Debris':AddItem(obj, 0)
  200. end)()
  201. elseif Mouse2Down then
  202. local selbox = Instance.new("SelectionBox", obj)
  203. selbox.Adornee = obj
  204. selbox.Color = BrickColor.new("Really red")
  205. selbox.Transparency = 0
  206. wait(2)
  207. coroutine.wrap(function()
  208. local transp = 0
  209. local Size, Position = obj.Size, obj.Position
  210. local brickTable = {}
  211. game:service'Debris':AddItem(obj, 0)
  212. for i = 1, math.random(2, 4) do
  213. local x, y, z = math.random(), math.random(), math.random()
  214. local Brick = Instance.new("Part")
  215. Brick.Name = "WillNotBeRemoved"
  216. Brick.Parent = game:service'Workspace'
  217. Brick.BrickColor = BrickColor.new("White")
  218. Brick.Size = Size * Vector3.new(x, y, z)
  219. Brick.CFrame = CFrame.new(Position) * CFrame.Angles( x * 180, y * 180, z * 180)
  220. Brick.Locked = true
  221. Brick.Anchored = false
  222. Brick.CanCollide = false
  223. local Selection = Instance.new("SelectionBox", Brick)
  224. Selection.Adornee = Brick
  225. Selection.Color = BrickColor.new("White")
  226. Selection.Transparency = 0
  227. local BodyVelo = Instance.new("BodyVelocity", Brick)
  228. BodyVelo.maxForce = Vector3.new(1/0, 1/0, 1/0)
  229. BodyVelo.velocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10))
  230. brickTable[#brickTable + 1] = {Brick, Selection}
  231. end
  232. for i = 1, 50 do
  233. transp = transp + 0.02
  234. for i1, v in pairs(brickTable) do
  235. v[1].Transparency = transp
  236. v[2].Transparency = transp
  237. end
  238. wait(0.05)
  239. end
  240. --for i, v in pairs(brickTable) do game:service'Debris':AddItem(v[1], 0) game:service'Debris':AddItem(v[2], 0) end
  241. end)()
  242. end
  243. end))
  244. if not ran then print(".:| EShield |:. " .. err) end
  245. end
  246.  
  247. Create()
  248.  
  249. Mouse.Button1Down:connect(function()
  250. MouseDown = true
  251. end)
  252.  
  253. Mouse.Button1Up:connect(function()
  254. MouseDown = false
  255. end)
  256.  
  257. Mouse.KeyDown:connect(function(key)
  258. local key = type(key) == "string" and key:lower() or ""
  259. if key == "r" then
  260. print = function() end
  261. script:Destroy()
  262. for i, v in pairs(getfenv()) do pcall(function() v:Destroy() end) getfenv()[i] = nil end
  263. end
  264. end)
  265.  
  266. Mouse.Button2Down:connect(function()
  267. if not Mouse2Down then
  268. Mouse2Tick = tick()
  269. Mouse2Down = true
  270. coroutine.wrap(function()
  271. for i = 1.1, 0, -0.1 do if Mouse2Down then b.Color = Color3.new(0, 0, i) end wait(0.01) end
  272. for i = 0, 1.1, 0.1 do if Mouse2Down then b.Color = Color3.new(i, 0, 0) end wait(0.01) end
  273. end)()
  274. coroutine.wrap(function()
  275. for i = 15, 25 do if Mouse2Down then b.Size = Vector3.new(i, i, i) b.CFrame = CFrame.new(LocalPlayer.Character.Torso.Position) end wait(0.05) end
  276. end)()
  277. end
  278. end)
  279.  
  280. Mouse.Button2Up:connect(function()
  281. if Mouse2Down then
  282. if math.floor(tick() - Mouse2Tick) > 1 then
  283. Mouse2Down = false
  284. coroutine.wrap(function()
  285. for i = 1.1, 0, -0.1 do if not Mouse2Down then b.Color = Color3.new(i, 0, 0) end wait(0.01) end
  286. for i = 0, 1.1, 0.1 do if not Mouse2Down then b.Color = Color3.new(0, 0, i) end wait(0.01) end
  287. end)()
  288. coroutine.wrap(function()
  289. for i = 25, 15, -1 do if not Mouse2Down then b.Size = Vector3.new(i, i, i) b.CFrame = CFrame.new(LocalPlayer.Character.Torso.Position) end wait(0.05) end
  290. end)()
  291. end
  292. end
  293. end)
  294.  
  295. Mouse.KeyDown:connect(function(key)
  296. if key == "0" then
  297. ShiftDown = true
  298. elseif key == "1" or key == "2" then
  299. CtrlDown = true
  300. end
  301. end)
  302.  
  303. Mouse.KeyUp:connect(function(key)
  304. if key == "0" then
  305. ShiftDown = false
  306. elseif key == "1" or key == "2" then
  307. CtrlDown = false
  308. end
  309. end)
  310.  
  311. coroutine.wrap(function()
  312. while wait(0.05) do
  313. for i = 0.2, 0.8, 0.1 do
  314. b.Transparency = i
  315. wait(0.05)
  316. end
  317. for i = 0.7, 0.1, -0.1 do
  318. b.Transparency = i
  319. wait(0.05)
  320. end
  321. end
  322. end)()
  323.  
  324. game:service'RunService'.Stepped:connect(function()
  325. coroutine.resume(coroutine.create(function()
  326. b.CFrame = CFrame.new(LocalPlayer.Character.Torso.Position)
  327. end))
  328. coroutine.resume(coroutine.create(function()
  329. for i, v in pairs(Touched) do
  330. if v.Parent == nil or v == nil then
  331. table.remove(Touched, i)
  332. end
  333. end
  334. end))
  335. coroutine.resume(coroutine.create(function()
  336. local Height = LocalPlayer.Character.Torso.CFrame.y - 3.5
  337. if ShiftDown then
  338. Height = Height - 0.25
  339. if CtrlDown then
  340. Height = Height - 0.75
  341. end
  342. end
  343. local TargetCFrame = LocalPlayer.Character.Torso.CFrame
  344. local TargetAngle = LocalPlayer.Character.Torso.CFrame.lookVector
  345. Platform.Parent = game:service'Workspace'.CurrentCamera
  346. Platform.CFrame = CFrame.new(TargetCFrame.x, Height, TargetCFrame.z)
  347. Platform.CanCollide = true
  348. LocalPlayer.Character.Torso.CFrame = TargetCFrame * CFrame.new(0, -(TargetCFrame.y) + Height + 3.5, 0)
  349. end))
  350. coroutine.resume(coroutine.create(function()
  351. if LocalPlayer.Parent ~= nil then
  352. for i, v in pairs(GetRecursiveChildren(LocalPlayer.Character)) do
  353. if v.className == "Part" then v.CanCollide = false end
  354. end
  355. end
  356. end))
  357. coroutine.resume(coroutine.create(function()
  358. if MouseDown and not MouseDeb and not Mouse2Down then
  359. MouseDeb = true
  360. coroutine.wrap(function() wait(1) MouseDeb = false end)()
  361. local dist = Instance.new("Part")
  362. dist.CFrame = CFrame.new(LocalPlayer.Character.Torso.Position)
  363. dist.formFactor = "Custom"
  364. dist.Shape = "Ball"
  365. dist.Name = "WillNotBeRemoved"
  366. dist.Transparency = 0
  367. dist.Reflectance = 0.1
  368. dist.Size = Vector3.new(10, 10, 10)
  369. dist.BrickColor = BrickColor.new("New Yeller")
  370. dist.TopSurface = "Smooth"
  371. dist.Anchored = true
  372. dist.BottomSurface = "Smooth"
  373. dist.Locked = true
  374. dist.CanCollide = false
  375. dist.Parent = game:service'Workspace'
  376. dist.Touched:connect(function(obj)
  377. coroutine.resume(coroutine.create(function()
  378. local Player = GetPlayer(obj)
  379. if Player and Player ~= LocalPlayer and Player.Character and Player.Character:FindFirstChild("Torso") then
  380. local BV = Instance.new("BodyVelocity", Player.Character.Torso)
  381. BV.maxForce = Vector3.new(1/0, 1/0, 1/0)
  382. BV.velocity = ((LocalPlayer.Character.Torso.Position - Player.Character.Torso.Position).unit * -50)
  383. game:service'Debris':AddItem(BV, 1)
  384. elseif not Player and obj ~= b and obj.Name ~= "Base" and not obj:IsDescendantOf(game:service'Workspace'.CurrentCamera) then
  385. obj:BreakJoints()
  386. obj.Anchored = false
  387. obj.CanCollide = false
  388. local BV = Instance.new("BodyVelocity", obj)
  389. BV.maxForce = Vector3.new(1/0, 1/0, 1/0)
  390. BV.velocity = ((LocalPlayer.Character.Torso.Position - obj.Position).unit * -50)
  391. game:service'Debris':AddItem(BV, 1)
  392. end
  393. end))
  394. end)
  395. coroutine.wrap(function()
  396. for i = 1, 100 do
  397. dist.Transparency = dist.Transparency + 0.01
  398. dist.Size = dist.Size + Vector3.new(1, 1, 1)
  399. dist.CFrame = CFrame.new(LocalPlayer.Character.Torso.Position)
  400. wait()
  401. end
  402. game:service'Debris':AddItem(dist, 0)
  403. end)()
  404. end
  405. end))
  406. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement