tomonaoboys

dubstepgun script remake

Mar 22nd, 2018 (edited)
431
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 10.63 KB | None | 0 0
  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,game,owner = owner,game
  3. local RealPlayer = Player
  4. do
  5.     print("FE Compatibility code V2 by Mokiros")
  6.     local RealPlayer = RealPlayer
  7.     script.Parent = RealPlayer.Character
  8.  
  9.     --Fake event to make stuff like Mouse.KeyDown work
  10.     local Disconnect_Function = function(this)
  11.         this[1].Functions[this[2]] = nil
  12.     end
  13.     local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
  14.     local FakeEvent_Metatable = {__index={
  15.         Connect = function(this,f)
  16.             local i = tostring(math.random(0,10000))
  17.             while this.Functions[i] do
  18.                 i = tostring(math.random(0,10000))
  19.             end
  20.             this.Functions[i] = f
  21.             return setmetatable({this,i},Disconnect_Metatable)
  22.         end
  23.     }}
  24.     FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
  25.     local function fakeEvent()
  26.         return setmetatable({Functions={}},FakeEvent_Metatable)
  27.     end
  28.  
  29.     --Creating fake input objects with fake variables
  30.     local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
  31.     FakeMouse.keyUp = FakeMouse.KeyUp
  32.     FakeMouse.keyDown = FakeMouse.KeyDown
  33.     local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  34.     local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  35.         CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  36.     end}
  37.     --Merged 2 functions into one by checking amount of arguments
  38.     CAS.UnbindAction = CAS.BindAction
  39.  
  40.     --This function will trigger the events that have been :Connect()'ed
  41.     local function TriggerEvent(self,ev,...)
  42.         for _,f in pairs(self[ev].Functions) do
  43.             f(...)
  44.         end
  45.     end
  46.     FakeMouse.TriggerEvent = TriggerEvent
  47.     UIS.TriggerEvent = TriggerEvent
  48.  
  49.     --Client communication
  50.     local Event = Instance.new("RemoteEvent")
  51.     Event.Name = "UserInput_Event"
  52.     Event.OnServerEvent:Connect(function(plr,io)
  53.         if plr~=RealPlayer then return end
  54.         FakeMouse.Target = io.Target
  55.         FakeMouse.Hit = io.Hit
  56.         if not io.isMouse then
  57.             local b = io.UserInputState == Enum.UserInputState.Begin
  58.             if io.UserInputType == Enum.UserInputType.MouseButton1 then
  59.                 return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
  60.             end
  61.             if io.UserInputType == Enum.UserInputType.MouseButton2 then
  62.                 return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
  63.             end
  64.             for _,t in pairs(CAS.Actions) do
  65.                 for _,k in pairs(t.Keys) do
  66.                     if k==io.KeyCode then
  67.                         t.Function(t.Name,io.UserInputState,io)
  68.                     end
  69.                 end
  70.             end
  71.             FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  72.             UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
  73.         end
  74.     end)
  75.     Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
  76.     local Mouse = owner:GetMouse()
  77.     local UIS = game:GetService("UserInputService")
  78.     local input = function(io,RobloxHandled)
  79.         if RobloxHandled then return end
  80.         --Since InputObject is a client-side instance, we create and pass table instead
  81.         Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
  82.     end
  83.     UIS.InputBegan:Connect(input)
  84.     UIS.InputEnded:Connect(input)
  85.     local h,t
  86.     --Give the server mouse data every second frame, but only if the values changed
  87.     --If player is not moving their mouse, client won't fire events
  88.     local HB = game:GetService("RunService").Heartbeat
  89.     while true do
  90.         if h~=Mouse.Hit or t~=Mouse.Target then
  91.             h,t=Mouse.Hit,Mouse.Target
  92.             Event:FireServer({isMouse=true,Target=t,Hit=h})
  93.         end
  94.         --Wait 2 frames
  95.         for i=1,2 do
  96.             HB:Wait()
  97.         end
  98.     end]==],script)
  99.  
  100.     ----Sandboxed game object that allows the usage of client-side methods and services
  101.     --Real game object
  102.     local RealGame = game
  103.  
  104.     --Metatable for fake service
  105.     local FakeService_Metatable = {
  106.         __index = function(self,k)
  107.             local s = rawget(self,"_RealService")
  108.             if s then
  109.                 return typeof(s[k])=="function"
  110.                 and function(_,...)return s[k](s,...)end or s[k]
  111.             end
  112.         end,
  113.         __newindex = function(self,k,v)
  114.             local s = rawget(self,"_RealService")
  115.             if s then s[k]=v end
  116.         end
  117.     }
  118.     local function FakeService(t,RealService)
  119.         t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
  120.         return setmetatable(t,FakeService_Metatable)
  121.     end
  122.  
  123.     --Fake game object
  124.     local FakeGame = {
  125.         GetService = function(self,s)
  126.             return rawget(self,s) or RealGame:GetService(s)
  127.         end,
  128.         Players = FakeService({
  129.             LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
  130.         },"Players"),
  131.         UserInputService = FakeService(UIS,"UserInputService"),
  132.         ContextActionService = FakeService(CAS,"ContextActionService"),
  133.         RunService = FakeService({
  134.             _btrs = {},
  135.             RenderStepped = RealGame:GetService("RunService").Heartbeat,
  136.             BindToRenderStep = function(self,name,_,fun)
  137.                 self._btrs[name] = self.Heartbeat:Connect(fun)
  138.             end,
  139.             UnbindFromRenderStep = function(self,name)
  140.                 self._btrs[name]:Disconnect()
  141.             end,
  142.         },"RunService")
  143.     }
  144.     rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
  145.     FakeGame.service = FakeGame.GetService
  146.     FakeService(FakeGame,game)
  147.     --Changing owner to fake player object to support owner:GetMouse()
  148.     game,owner = FakeGame,FakeGame.Players.LocalPlayer
  149. end
  150.  
  151. --Instant Dubstep gun (main code)
  152. warn(".id (assetid) : change sound id to something \n.vol (volume) : change volume to desired value")
  153. local function NewPart(prnt)local p=Instance.new("Part");p.Parent=(prnt or nil) return p end
  154. sound=nil local range=4000 local stype=script.ClassName
  155. owner=owner or game:service'Players'.tomonaoboys
  156. local tool=Instance.new("Tool",owner:FindFirstChildOfClass("Backpack"))
  157. tool.Name="DubStepGun2"hold=false tool.RequiresHandle=nil sound=nil
  158. ID="130768080"local part=nil local pos=CFrame.new(0,0,0)local oldp=pos local MotBLaser=false local RES=10
  159. local Handle=Instance.new("Part",tool)Handle.Name="Handle"Handle.CanCollide=false
  160. local equip=false local Effects=Instance.new("Folder",workspace)
  161. local time=0 local Vol=1
  162. local PL=owner
  163. local function FindHumanoid(Part)local humanoid=nil if Part.Parent then if Part.Parent~=PL.Character and Part.Parent:FindFirstChildOfClass("Humanoid")~=nil then humanoid=Part.Parent:FindFirstChildOfClass("Humanoid")else if Part.Parent.Parent then if Part.Parent.Parent:FindFirstChildOfClass("Humanoid")and Part.Parent.Parent~=PL.Character then humanoid=Part.Parent.Parent:FindFirstChildOfClass("Humanoid")end end end end return humanoid end
  164. local KILLTEXT="This player was killed by insanely huge ear rip loud sound."
  165. local w=function(t)
  166. if t then for i=1,t do game:service'RunService'.Heartbeat:wait()end
  167. else game:service'RunService'.Heartbeat:wait()
  168. end return 1 end
  169. local Col=Color3.new(1)
  170. local Mouse = PL:GetMouse()
  171. tool.Equipped:connect(function()
  172. equip=true
  173. hold=nil
  174. tool.Activated:connect(function()hold=1 end)
  175. tool.Deactivated:connect(function()hold=nil end)
  176.  
  177. while w()and equip do
  178. if Mouse and equip then oldp=pos pos=Mouse.Hit end -- if stype~="Script"then end
  179. if owner:FindFirstChild"MousePointCF"then oldp=pos pos=owner.MousePointCF.Value
  180. end
  181.  
  182. end
  183.  
  184. end)
  185.  
  186. tool.Unequipped:connect(function()equip=false hold=nil end)
  187. owner.Chatted:connect(function(m)
  188. if m:sub(1,3)==".id"then ID=tostring(m:sub(4))print("id set to : "..tostring(m:sub(4)))time=0 end
  189. if m:sub(1,4)==".vol"then Vol=tonumber(m:sub(5))print("vol set to : "..tostring(m:sub(5)))end
  190. if m:sub(1,8)==".MotionB"then MotBLaser=not MotBLaser end
  191. if m:sub(1,5)==".MRES"then RES=tonumber(m:sub(6))or RES end
  192. end)
  193. game:service'RunService'.Heartbeat:connect(function()
  194.     if not Effects.Parent then Effects=Instance.new("Folder",workspace) end Effects:ClearAllChildren()
  195.     if hold then
  196.     local h,p=workspace:FindPartOnRayWithIgnoreList(Ray.new(Handle.CFrame.p,CFrame.new(Handle.CFrame.p,pos.p).lookVector*range),{owner.Character,Effects},nil,1)
  197.     if (p-Handle.CFrame.p).magnitude<2000 then
  198.     pcall(function()
  199.     if not MotBLaser then -- Instance.new("Part",owner.Character)
  200.     local part=NewPart(owner.Character) part.Material="ForceField"part.CanCollide=false part.Anchored=true
  201.     local mesh=Instance.new("BlockMesh",part)part.Size=Vector3.new(.5,.5,(p-Handle.CFrame.p).magnitude)
  202.     mesh.Scale=part.Size*1000 part.Size=Vector3.new()part.Color=Col
  203.     part.CFrame=CFrame.new(Handle.CFrame.p,p)*CFrame.new(0,0,-(p-Handle.CFrame.p).magnitude/2)
  204.     spawn(function()for i=0,1,.2 do part.Transparency=i w()end part:Destroy()end)
  205.     else
  206.     local h2,p2=workspace:FindPartOnRayWithIgnoreList(Ray.new(Handle.CFrame.p,CFrame.new(Handle.CFrame.p,oldp.p).lookVector*range),{owner.Character,Effects},nil,1)
  207.     for i=0,1,1/RES do --Instance.new("Part",Effects)
  208.     local part=NewPart(Effects) part.Material="Neon"part.CanCollide=false part.Anchored=true
  209.     local mesh=Instance.new("BlockMesh",part)part.Size=Vector3.new(.5,.5,((p:lerp(p2,i))-Handle.CFrame.p).magnitude)
  210.     mesh.Scale=part.Size*1000 part.Size=Vector3.new()part.Color=Col
  211.     part.CFrame=CFrame.new(Handle.CFrame.p,p:lerp(p2,i))*CFrame.new(0,0,-((p:lerp(p2,i))-Handle.CFrame.p).magnitude/2)
  212.     part.Transparency=i
  213.     end
  214.     end
  215.     end)end
  216. if h then local hu=FindHumanoid(h)
  217. if hu then
  218. if hu.MaxHealth==1/0 or hu.Health==1/0 then hu.MaxHealth=100 hu.Health=.5 end
  219. local dmg=hu.MaxHealth/100
  220. if hu.Health-dmg<=0 and hu.Health>0 then if hu.Parent then hu.Parent:BreakJoints()end hu.Health=0 print("rip")
  221. pcall(function()local pa=Instance.new("Part",workspace)pa.Transparency=1 pa.Size=Vector3.new()pa.CFrame=CFrame.new(p)pa.Anchored=1
  222. local b=Instance.new("BillboardGui",pa)b.AlwaysOnTop=1 b.Size=UDim2.new(64,0,5,0)
  223. local t=Instance.new("TextBox",b)t.Text=KILLTEXT
  224. t.BackgroundTransparency=1 t.TextScaled=1 t.Size=UDim2.new(1,0,1,0)
  225. t.TextStrokeTransparency=0 t.TextColor3=Color3.new(1,1,1)spawn(function()for i=0,1,.005 do t.TextTransparency=i t.TextStrokeTransparency=i w()end pa:Destroy()end)end)end hu.Health=hu.Health-dmg
  226. end end --Instance.new("Part",owner.Character)
  227. local part=NewPart(owner.Character) part.Material="Neon"part.CanCollide=false part.Anchored=true
  228.     local mesh=Instance.new("BlockMesh",part)part.Size=Vector3.new(2,2,2)
  229.     mesh.Scale=part.Size*1000 part.Size=Vector3.new()part.Color=Col
  230.     part.CFrame=CFrame.new(p)*CFrame.Angles(math.rad(math.random(360)),math.rad(math.random(360)),0)
  231.     spawn(function()for i=0,1,.05 do part.Transparency=i w()end part:Destroy()end)
  232.     if not sound then sound=Instance.new("Sound",Handle)sound.TimePosition=time sound.Looped=1 sound.SoundId="rbxassetid://"..ID sound.Volume=Vol sound:Play()else time=sound.TimePosition end
  233.     else
  234.     if sound then sound:Destroy()sound=nil end
  235.     end
  236.  
  237. end)
Add Comment
Please, Sign In to add comment