Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PLAYER = owner
- CHARACTER = PLAYER.Character
- Debris = game:GetService("Debris")
- mouse = PLAYER:GetMouse()
- IT = Instance.new
- Torso = CHARACTER.Torso
- fakemouse = NLS([[
- local me = game:service'Players'.localPlayer;
- local mouse = me:GetMouse();
- local UIS = game:service'UserInputService'
- local ch = me.Character;
- local UserEvent = ch:WaitForChild('UserInputEvent',30)
- UIS.InputChanged:connect(function(io,gpe)
- if(io.UserInputType == Enum.UserInputType.MouseMovement)then
- UserEvent:FireServer{Mouse=true,Target=mouse.Target,Hit=mouse.Hit}
- end
- end)
- mouse.Changed:connect(function(o)
- if(o == 'Target' or o == 'Hit')then
- UserEvent:FireServer{Mouse=true,Target=mouse.Target,Hit=mouse.Hit}
- end
- end)
- UIS.InputBegan:connect(function(io,gpe)
- if(gpe)then return end
- UserEvent:FireServer{InputObject=true,KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState}
- end)
- UIS.InputEnded:connect(function(io,gpe)
- if(gpe)then return end
- UserEvent:FireServer{InputObject=true,KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState}
- end)
- mouse.KeyDown:connect(function(k)
- UserEvent:FireServer{KeyEvent='Down',Key=k}
- end)
- mouse.KeyUp:connect(function(k)
- UserEvent:FireServer{KeyEvent='Up',Key=k}
- end)
- local ClientProp = ch:WaitForChild('GetClientProperty',30)
- local sounds = {}
- function regSound(o)
- if(o:IsA'Sound')then
- local lastLoudness = o.PlaybackLoudness
- ClientProp:InvokeServer(o,lastLoudness)
- table.insert(sounds,{o,lastLoudness})
- --ClientProp:InvokeServer(o,o.PlaybackLoudness)
- end
- end
- ClientProp.OnClientInvoke = function(inst,prop)
- if(inst == 'RegSound')then
- regSound(prop)
- for i = 1, #sounds do
- if(sounds[i][1] == prop)then
- return sounds[i][2]
- end
- end
- else
- return inst[prop]
- end
- end
- for _,v in next, workspace:GetDescendants() do regSound(v) end
- workspace.DescendantAdded:connect(regSound)
- me.Character.DescendantAdded:connect(regSound)
- game:service'RunService'.RenderStepped:connect(function()
- for i = 1, #sounds do
- local tab = sounds[i]
- local object,last=unpack(tab)
- if(object.PlaybackLoudness ~= last)then
- sounds[i][2]=object.PlaybackLoudness
- ClientProp:InvokeServer(object,sounds[i][2])
- end
- end
- end)
- ]],script)
- fakemouse.Name = "FakeMouse"
- local FakeMouse = script.FakeMouse:Clone();
- FakeMouse.Parent = PLAYER.Character;
- script.FakeMouse:Destroy()
- do
- local GUID = {}
- do
- GUID.IDs = {};
- function GUID:new(len)
- local id;
- if(not len)then
- id = (tostring(function() end))
- id = id:gsub("function: ","")
- else
- local function genID(len)
- local newID = ""
- for i = 1,len do
- newID = newID..string.char(math.random(48,90))
- end
- return newID
- end
- repeat id = genID(len) until not GUID.IDs[id]
- local oid = id;
- id = {Trash=function() GUID.IDs[oid]=nil; end;Get=function() return oid; end}
- GUID.IDs[oid]=true;
- end
- return id
- end
- end
- local AHB = Instance.new("BindableEvent")
- local FPS = 30
- local TimeFrame = 0
- local LastFrame = tick()
- local Frame = 1/FPS
- game:service'RunService'.Heartbeat:connect(function(s,p)
- TimeFrame = TimeFrame + s
- if(TimeFrame >= Frame)then
- for i = 1,math.floor(TimeFrame/Frame) do
- AHB:Fire()
- end
- LastFrame=tick()
- TimeFrame=TimeFrame-Frame*math.floor(TimeFrame/Frame)
- end
- end)
- function swait(dur)
- if(dur == 0 or typeof(dur) ~= 'number')then
- AHB.Event:wait()
- else
- for i = 1, dur*FPS do
- AHB.Event:wait()
- end
- end
- end
- local oPlayer = PLAYER
- local Player = oPlayer
- local loudnesses={}
- script.Parent = Player.Character
- local CoAS = {Actions={}}
- local Event = Instance.new("RemoteEvent")
- Event.Name = "UserInputEvent"
- Event.Parent = Player.Character
- local Func = Instance.new("RemoteFunction")
- Func.Name = "GetClientProperty"
- Func.Parent = Player.Character
- local fakeEvent = function()
- local t = {_fakeEvent=true,Waited={},Connected={}}
- t.Connect = function(self,f)
- local ft={}
- ft={Disconnected=false;disconnect=function(s) if(self.Function==ft)then self.Function=nil end s.Disconnected=true end}
- ft.Disconnect=ft.disconnect
- ft.Func=function(...)
- for id,_ in next, t.Waited do
- t.Waited[id] = true
- end
- return f(...)
- end;
- table.insert(self.Connected,ft)
- return ft;
- end
- t.connect = t.Connect
- t.Wait = function()
- local guid = GUID:new(25)
- local waitingId = guid:Get()
- t.Waited[waitingId]=false
- repeat swait() until t.Waited[waitingId]==true
- t.Waited[waitingId]=nil;
- guid:Trash()
- end
- t.wait = t.Wait
- return t
- end
- local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
- local UsIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
- local Run = {RenderStepped=fakeEvent()}
- function CoAS:BindAction(name,fun,touch,...)
- CoAS.Actions[name] = {Name=name,Function=fun,Keys={...}}
- end
- function CoAS:UnbindAction(name)
- CoAS.Actions[name] = nil
- end
- local function te(self,ev,...)
- local t = self[ev]
- if t and t._fakeEvent and t.Connected then
- for i,v in next, t.Connected do
- if(v.Func and not v.Disconnected)then
- v.Func(...)
- else
- t.Connected[i]=nil
- end
- end
- end
- end
- m.TrigEvent = te
- UsIS.TrigEvent = te
- Run.TrigEvent = te
- Event.OnServerEvent:Connect(function(plr,io)
- if plr~=Player then return end
- --[[table.foreach(io,print)
- print'---']]
- if io.Mouse then
- m.Target = io.Target
- m.Hit = io.Hit
- MOUSEPOS = m.Hit.p
- elseif io.KeyEvent then
- m:TrigEvent('Key'..io.KeyEvent,io.Key)
- elseif io.UserInputType == Enum.UserInputType.MouseButton1 then
- if io.UserInputState == Enum.UserInputState.Begin then
- m:TrigEvent("Button1Down")
- else
- m:TrigEvent("Button1Up")
- end
- end
- if(not io.KeyEvent and not io.Mouse)then
- for n,t in pairs(CoAS.Actions) do
- for _,k in pairs(t.Keys) do
- if k==io.KeyCode then
- t.Function(t.Name,io.UserInputState,io)
- end
- end
- end
- if io.UserInputState == Enum.UserInputState.Begin then
- UsIS:TrigEvent("InputBegan",io,false)
- else
- UsIS:TrigEvent("InputEnded",io,false)
- end
- end
- end)
- Func.OnServerInvoke = function(plr,inst,play)
- if plr~=Player then return end
- if(inst and typeof(inst) == 'Instance' and inst:IsA'Sound')then
- loudnesses[inst]=play
- end
- end
- function GetClientProperty(inst,prop)
- if(prop == 'PlaybackLoudness' and loudnesses[inst])then
- return loudnesses[inst]
- elseif(prop == 'PlaybackLoudness')then
- return Func:InvokeClient(Player,'RegSound',inst)
- end
- return Func:InvokeClient(Player,inst,prop)
- end
- local oldGame = game;
- function GetFakePlayer()
- local oldPlayer = Player;
- local fakePlayer = newproxy(true)
- getmetatable(fakePlayer).__index = function(s,i)
- if(i == 'GetMouse')then
- return function() return m; end
- end
- return Player[i]
- end
- getmetatable(fakePlayer).__newindex = function(s,i,v)
- Player[i]=v
- end
- getmetatable(fakePlayer).__call=function(self,...)
- if(self == fakePlayer)then self = Player end
- local wh = {...}
- local name = table.remove(wh,1)
- for i,v in next, wh do
- wh[i]=v
- end
- if(name == 'GetMouse')then
- return m;
- end
- return self(name,unpack(wh))
- end
- getmetatable(fakePlayer).__namecall=function(self,...)
- if(self == fakePlayer)then self = Player end
- local tuple={...}
- local name = table.remove(tuple,#tuple)
- if(name == 'GetMouse')then
- return m;
- else
- return self[name](self,unpack(tuple))
- end
- end
- return fakePlayer
- end
- local oll = LoadLibrary;
- function LoadLibrary(libtard)
- local libtarddestroyed=oll(libtard)
- if(libtard=='RbxUtility')then
- local library={Create=function(obj)
- local inst = Instance.new(obj)
- return function(props)
- for prop,valu in next, props do
- inst[prop]=valu
- end
- return inst
- end
- end}
- setmetatable(library,{__index=libtarddestroyed,__newindex=function(s,i,v) libtarddestroyed[i]=v end})
- return library
- else
- return libtarddestroyed
- end
- end
- fakePlayer = GetFakePlayer()
- local function GetService(s,i)
- local service = s:GetService(i)
- if(i == 'Players')then
- local oldService = service;
- local fakeService = newproxy(true)
- getmetatable(fakeService).__index = function(s,i)
- if(s == fakeService)then s=oldService end
- if(i == 'LocalPlayer' or i == 'localPlayer')then
- return fakePlayer
- elseif(i == 'oPlayer')then
- return oPlayer
- else
- return s[i]
- end
- end
- getmetatable(fakeService).__newindex = function(s,i,v)
- if(s == fakeService)then s=oldService end
- s[i]=v
- end
- getmetatable(fakeService).__call=function(self,...)
- if(self == fakeService)then self = oldService end
- local wh = {...}
- local name = table.remove(wh,1)
- for i,v in next, wh do
- wh[i]=v
- end
- return self(name,unpack(wh))
- end
- getmetatable(fakeService).__namecall=function(self,...)
- if(self == fakeService)then self = oldService end
- local tuple={...}
- local name = table.remove(tuple,#tuple)
- return self[name](self,unpack(tuple))
- end
- getmetatable(fakeService).__metatable = 'gay'
- return fakeService
- elseif(i == 'RunService')then
- local oldService = service;
- local fakeService = newproxy(true)
- getmetatable(fakeService).__index = function(s,i)
- if(s == fakeService)then s=oldService end
- return Run[i] or s[i]
- end
- getmetatable(fakeService).__newindex = function(s,i,v)
- if(s == fakeService)then s=oldService end
- s[i]=v
- end
- getmetatable(fakeService).__call=function(self,...)
- if(self == fakeService)then self = oldService end
- local wh = {...}
- local name = table.remove(wh,1)
- for i,v in next, wh do
- wh[i]=v
- end
- return self(name,unpack(wh))
- end
- getmetatable(fakeService).__namecall=function(self,...)
- if(self == fakeService)then self = oldService end
- local tuple={...}
- local name = table.remove(tuple,#tuple)
- return self[name](self,unpack(tuple))
- end
- getmetatable(fakeService).__metatable = 'gay'
- return fakeService
- elseif(i == 'UserInputService')then
- return UsIS
- elseif(i == 'ContextActionService')then
- return CoAS;
- else
- return service
- end
- end
- local new = Instance.new;
- Instance = {}
- Instance.new = function(inst,obje)
- local lp = GetService(oldGame,'Players').localPlayer
- local instance = new(inst)
- if(inst=='ObjectValue')then
- local fake = newproxy(true)
- getmetatable(fake).__index=function(self,index)
- if(self==fake)then self=instance end
- return self[index]
- end
- getmetatable(fake).__newindex=function(self,index,value)
- if(self==fake)then self=instance end
- if(index=='Value' and typeof(value)~='Instance' and value==fakePlayer)then
- self[index]=oPlayer
- else
- self[index]=value
- end
- end
- getmetatable(fake).__call=function(self,...)
- if(self == fake)then self = instance end
- local wh = {...}
- local name = table.remove(wh,1)
- for i,v in next, wh do
- if(v == fake)then v = instance end
- wh[i]=v
- end
- return self(name,unpack(wh))
- end
- getmetatable(fake). __namecall=function(self,...)
- if(self == fake)then self = instance end
- local tuple={...}
- local name = table.remove(tuple,#tuple)
- return self[name](self,unpack(tuple))
- end
- return fake
- elseif(inst=='aaa')then
- local fake = newproxy(true)
- getmetatable(fake).__index=function(self,index)
- if(self==fake)then self=instance end
- if(index=='PlaybackLoudnes')then
- return GetClientProperty(instance,'PlaybackLoudness')
- end
- return self[index]
- end
- getmetatable(fake).__newindex=function(self,index,value)
- if(self==fake)then self=instance end
- self[index]=value
- end
- getmetatable(fake).__call=function(self,...)
- if(self == fake)then self = instance end
- local wh = {...}
- local name = table.remove(wh,1)
- for i,v in next, wh do
- if(v == fake)then v = instance end
- wh[i]=v
- end
- return self(name,unpack(wh))
- end
- getmetatable(fake). __namecall=function(self,...)
- if(self == fake)then self = instance end
- local tuple={...}
- local name = table.remove(tuple,#tuple)
- return self[name](self,unpack(tuple))
- end
- return fake
- else
- instance.Parent = obje
- return instance;
- end
- end
- local serviceFunctions={
- service=true,
- GetService=true,
- }
- local fakeGame = newproxy(true)
- getmetatable(fakeGame).__index = function(s,i)
- if(s == fakeGame)then s=oldGame end
- local serv = GetService(oldGame,i)
- if serviceFunctions[i] then
- return GetService
- elseif(serv)then
- return serv
- else
- return s[i]
- end
- end
- getmetatable(fakeGame).__newindex = function(s,i,v)
- if(s == fakeGame)then s=oldGame end
- s[i]=v
- end
- getmetatable(fakeGame).__call=function(self,...)
- if(self == fakeGame)then self = oldGame end
- local wh = {...}
- local name = table.remove(wh,1)
- for i,v in next, wh do
- if(v == fakeGame)then v = oldGame end
- wh[i]=v
- end
- if serviceFunctions[name] then
- return GetService(self,unpack(wh))
- else
- return self(name,unpack(wh))
- end
- end
- getmetatable(fakeGame). __namecall=function(self,...)
- if(self == fakeGame)then self = oldGame end
- local tuple={...}
- local name = table.remove(tuple,#tuple)
- local funcToCall=self[name]
- if serviceFunctions[name] then
- return GetService(self,unpack(tuple))
- else
- return self[name](self,unpack(tuple))
- end
- end
- getmetatable(fakeGame).__metatable = 'gay'
- coroutine.wrap(function()
- while true do
- Run:TrigEvent('RenderStepped')
- swait()
- end
- end)()
- game=fakeGame
- UserInputService,ContextActionService = UsIS,CoAS
- end
- shake = NLS([[
- ArtificialHB = Instance.new("BindableEvent", script)
- ArtificialHB.Name = "ArtificialHB"
- script:WaitForChild("ArtificialHB")
- frame = 1/60
- tf = 0
- allowframeloss = false
- tossremainder = false
- lastframe = tick()
- script.ArtificialHB:Fire()
- game:GetService("RunService").Heartbeat:connect(function(s, p)
- tf = tf + s
- if tf >= frame then
- if allowframeloss then
- ArtificialHB:Fire()
- lastframe = tick()
- else
- for i = 1, math.floor(tf / frame) do
- ArtificialHB:Fire()
- end
- lastframe = tick()
- end
- if tossremainder then
- tf = 0
- else
- tf = tf - frame * math.floor(tf / frame)
- end
- end
- end)
- function PositiveAngle(NUMBER)
- if NUMBER >= 0 then
- NUMBER = 0
- end
- return NUMBER
- end
- function NegativeAngle(NUMBER)
- if NUMBER <= 0 then
- NUMBER = 0
- end
- return NUMBER
- end
- function Swait(NUMBER)
- if NUMBER == 0 or NUMBER == nil then
- ArtificialHB.Event:wait()
- else
- for i = 1, NUMBER do
- ArtificialHB.Event:wait()
- end
- end
- end
- wait()
- VT = Vector3.new
- MRANDOM = math.random
- local A = script:FindFirstChild("Timer").Value
- local B = script:FindFirstChild("Shake").Value
- local HUMANOID = script.Parent:FindFirstChildOfClass("Humanoid")
- local TIMER = math.ceil(A) or 35
- local SHAKE = math.ceil(B) or 5
- if HUMANOID then
- local FADER = SHAKE/TIMER
- for i = 1, TIMER do
- Swait()
- HUMANOID.CameraOffset = VT(MRANDOM(-(SHAKE-(FADER*i)),(SHAKE-(FADER*i)))/10,MRANDOM(-(SHAKE-(FADER*i)),(SHAKE-(FADER*i)))/10,MRANDOM(-(SHAKE-(FADER*i)),(SHAKE-(FADER*i)))/10)
- end
- HUMANOID.CameraOffset = VT(0,0,0)
- end
- ]],script)
- shake.Name = "CamShake"
- function CameraShake(AREA,RANGE,SHAKE,TIMER)
- for index, CHILD in pairs(workspace:GetChildren()) do
- if CHILD:FindFirstChildOfClass("Humanoid") then
- local HUMAN = CHILD:FindFirstChildOfClass("Humanoid")
- local ROOT = HUMAN.Torso
- if ROOT and game.Players:GetPlayerFromCharacter(CHILD) then
- if (ROOT.Position - AREA).Magnitude <= RANGE then
- if CHILD:FindFirstChild("CamShake") then
- Debris:AddItem(CHILD:FindFirstChild("CamShake"),0.05)
- end
- local CAMSHAKE = script.CamShake:Clone()
- CAMSHAKE.Parent = CHILD
- local TIMER_V = IT("NumberValue",CAMSHAKE)
- TIMER_V.Name = "Timer"
- TIMER_V.Value = TIMER
- local SHAKE_V = IT("NumberValue",CAMSHAKE)
- SHAKE_V.Name = "Shake"
- SHAKE_V.Value = SHAKE
- CAMSHAKE.Disabled = false
- Debris:AddItem(CAMSHAKE,15)
- end
- end
- end
- end
- end
- mouse.Button1Down:connect(function()
- CameraShake(Torso,100,100000,100)
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement