Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --https://github.com/Mokiros/roblox-FE-compatibility
- if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
- local Player,game,owner = owner,game
- local RealPlayer = Player
- do
- print("FE Compatibility code V2 by Mokiros")
- local RealPlayer = RealPlayer
- script.Parent = RealPlayer.Character
- --Fake event to make stuff like Mouse.KeyDown work
- local Disconnect_Function = function(this)
- this[1].Functions[this[2]] = nil
- end
- local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
- local FakeEvent_Metatable = {__index={
- Connect = function(this,f)
- local i = tostring(math.random(0,10000))
- while this.Functions[i] do
- i = tostring(math.random(0,10000))
- end
- this.Functions[i] = f
- return setmetatable({this,i},Disconnect_Metatable)
- end
- }}
- FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
- local function fakeEvent()
- return setmetatable({Functions={}},FakeEvent_Metatable)
- end
- --Creating fake input objects with fake variables
- local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
- FakeMouse.keyUp = FakeMouse.KeyUp
- FakeMouse.keyDown = FakeMouse.KeyDown
- local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
- local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
- CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
- end}
- --Merged 2 functions into one by checking amount of arguments
- CAS.UnbindAction = CAS.BindAction
- --This function will trigger the events that have been :Connect()'ed
- local function TriggerEvent(self,ev,...)
- for _,f in pairs(self[ev].Functions) do
- f(...)
- end
- end
- FakeMouse.TriggerEvent = TriggerEvent
- UIS.TriggerEvent = TriggerEvent
- --Client communication
- local Event = Instance.new("RemoteEvent")
- Event.Name = "UserInput_Event"
- Event.OnServerEvent:Connect(function(plr,io)
- if plr~=RealPlayer then return end
- FakeMouse.Target = io.Target
- FakeMouse.Hit = io.Hit
- if not io.isMouse then
- local b = io.UserInputState == Enum.UserInputState.Begin
- if io.UserInputType == Enum.UserInputType.MouseButton1 then
- return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
- end
- if io.UserInputType == Enum.UserInputType.MouseButton2 then
- return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
- end
- for _,t in pairs(CAS.Actions) do
- for _,k in pairs(t.Keys) do
- if k==io.KeyCode then
- t.Function(t.Name,io.UserInputState,io)
- end
- end
- end
- FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
- UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
- end
- end)
- Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
- local Mouse = owner:GetMouse()
- local UIS = game:GetService("UserInputService")
- local input = function(io,RobloxHandled)
- if RobloxHandled then return end
- --Since InputObject is a client-side instance, we create and pass table instead
- Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
- end
- UIS.InputBegan:Connect(input)
- UIS.InputEnded:Connect(input)
- local h,t
- --Give the server mouse data every second frame, but only if the values changed
- --If player is not moving their mouse, client won't fire events
- local HB = game:GetService("RunService").Heartbeat
- while true do
- if h~=Mouse.Hit or t~=Mouse.Target then
- h,t=Mouse.Hit,Mouse.Target
- Event:FireServer({isMouse=true,Target=t,Hit=h})
- end
- --Wait 2 frames
- for i=1,2 do
- HB:Wait()
- end
- end]==],script)
- ----Sandboxed game object that allows the usage of client-side methods and services
- --Real game object
- local RealGame = game
- --Metatable for fake service
- local FakeService_Metatable = {
- __index = function(self,k)
- local s = rawget(self,"_RealService")
- if s then
- return typeof(s[k])=="function"
- and function(_,...)return s[k](s,...)end or s[k]
- end
- end,
- __newindex = function(self,k,v)
- local s = rawget(self,"_RealService")
- if s then s[k]=v end
- end
- }
- local function FakeService(t,RealService)
- t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
- return setmetatable(t,FakeService_Metatable)
- end
- --Fake game object
- local FakeGame = {
- GetService = function(self,s)
- return rawget(self,s) or RealGame:GetService(s)
- end,
- Players = FakeService({
- LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
- },"Players"),
- UserInputService = FakeService(UIS,"UserInputService"),
- ContextActionService = FakeService(CAS,"ContextActionService"),
- RunService = FakeService({
- _btrs = {},
- RenderStepped = RealGame:GetService("RunService").Heartbeat,
- BindToRenderStep = function(self,name,_,fun)
- self._btrs[name] = self.Heartbeat:Connect(fun)
- end,
- UnbindFromRenderStep = function(self,name)
- self._btrs[name]:Disconnect()
- end,
- },"RunService")
- }
- rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
- FakeGame.service = FakeGame.GetService
- FakeService(FakeGame,game)
- --Changing owner to fake player object to support owner:GetMouse()
- game,owner = FakeGame,FakeGame.Players.LocalPlayer
- end
- --[[Dual pistols Frostftw]]
- --
- wait();
- Services = setmetatable({},{__index = function(t,i)
- return game:service(i) or nil
- end})
- plr = Services.Players.LocalPlayer
- char = plr.Character
- Humans = char:findFirstChild("Humanoid")
- BulletTable,Disposables,Lasers = {},{},{}
- Clips,Bullets,CurrentGun = 2500,20,1
- GunShot = {
- Sound = "rbxassetid://132373574",
- Pitch = 1,
- Volume = 1,
- }
- Reloading,FlashLight,LaserLight,Silenced,LockHead,Deselectd,ToolName,LaserColor = false,false,false,false,false,false,"Dual Pistols","Gold"
- V3,BC,CF = Vector3.new,BrickColor.new,CFrame
- for i,v in pairs(plr.Character:GetChildren()) do
- if v:IsA("Model") and v.Name == "MainModel" then
- v:Remove()
- end
- end
- for i,v in pairs(plr.Backpack:GetChildren()) do
- if v.Name == ToolName then
- v:Remove()
- end
- end
- Bin = Instance.new("HopperBin",plr.Backpack)
- Bin.Name = ToolName
- MainModel,GunModelOne,GunModelTwo,SheathOne,SheathTwo,Eff = Instance.new("Model"),Instance.new("Model"),Instance.new("Model"),Instance.new("Model"),Instance.new("Model"),Instance.new("Model")
- MainModel.Name,GunModelOne.Name,GunModelTwo.Name,SheathOne.Name,SheathTwo.Name,Eff.Name = "MainModel","GunModelOne","GunModelTwo","SheathOne","SheathTwo","Eff"
- MainModel.Parent,GunModelOne.Parent,GunModelTwo.Parent,SheathOne.Parent,SheathTwo.Parent,Eff.Parent = char,MainModel,MainModel,MainModel,MainModel,MainModel
- L1,L2,L3,L4 = Instance.new("SpotLight"), Instance.new("SpotLight"), Instance.new("SpotLight"), Instance.new("SpotLight")
- L1.Enabled,L2.Enabled,L3.Enabled,L4.Enabled = false,false,false,false
- L1.Brightness,L2.Brightness,L3.Brightness,L4.Brightness = 60,60,40,40
- L1.Range,L2.Range,L3.Range,L4.Range = 25,25,40,40
- L1.Color,L2.Color,L3.Color,L4.Color = BrickColor.new("Neon orange").Color,BrickColor.new("Neon orange").Color,BrickColor.new("Gold").Color,BrickColor.new("Gold").Color
- L3.Name,L4.Name = "Safe","Safe"
- script.Parent = MainModel
- function AddPart(name,parent,s1,s2,s3,color)
- p=Instance.new("Part",parent)
- p.Name=name
- p.formFactor="Custom"
- p.Anchored=false
- p.Locked=true
- p.CanCollide=false
- p.Size=Vector3.new(s1,s2,s3)
- p.TopSurface = "Smooth"
- p.BottomSurface = "Smooth"
- p.BrickColor=BrickColor.new(color)
- Instance.new("BlockMesh",p).Name = "Mesh"
- p:BreakJoints()
- return p
- end
- function AddWeld(name,parent,p1,p0,c1,c0)
- we=Instance.new("Weld",parent)
- we.Part1=p1
- we.Part0=p0
- we.C1=c0
- we.C0=c1
- return we
- end
- --Gets a bit confusing down below :3
- HandleOne,HandleTwo = AddPart("HandleLeft",GunModelOne,.02,1,.4,"Really black"),AddPart("HandleLeft",GunModelTwo,.02,1,.4,"Really black")
- HandleWeldLeft,HandleWeldRight = AddWeld("Weld",HandleOne,HandleOne,char["Torso"],CF.new(-1,0,-1),CF.Angles(math.rad(45),math.rad(180),0)),AddWeld("Weld",HandleTwo,HandleTwo,char["Torso"],CF.new(1,0,-1),CF.Angles(math.rad(45),math.rad(180),0))
- HandLeft = AddPart("HandLeft",MainModel,1,1,1,"Really black")
- HandRight = AddPart("HandRight",MainModel,1,1,1,"Really black")
- HandLeft.Transparency,HandRight.Transparency = 1,1
- AddWeld("Weld",HandLeft,HandLeft,char["Left Arm"],CF.new(0,-1,0),CF.Angles(math.rad(90),0,0))
- AddWeld("Weld",HandRight,HandRight,char["Right Arm"],CF.new(0,-1,0),CF.Angles(math.rad(90),0,0))
- PA1 = AddPart("Part",GunModelOne,.3,.1,1,"Really black")
- PA1.Mesh.Scale = V3(1,.6,1)
- WPA1 = AddWeld("Weld",PA1,PA1,HandleOne,CF.new(0,0.5,-.3),CF.new(0,0,0))
- PA2 = AddPart("Part",GunModelOne,.1,.5,.1,"Gold")
- PA2.Mesh:Remove()
- Instance.new("CylinderMesh",PA2).Scale = V3(.5,1,.5)
- WPA2 = AddWeld("Weld",PA2,PA2,HandleOne,CF.new(0,.6,-.9),CF.Angles(math.rad(90),0,0))
- PA3 = AddPart("Part",GunModelOne,.1,1.3,.1,"Gold")
- PA3.Mesh:Remove()
- Instance.new("CylinderMesh",PA3).Scale = V3(.7,1,.8)
- WPA3 = AddWeld("Weld",PA3,PA3,HandleOne,CF.new(0,.75,-.6),CF.Angles(math.rad(90),0,0))
- PA4 = AddPart("Part",GunModelOne,.3,.1,1.2,"Really black")
- PA4.Mesh.Scale = V3(1,1,1)
- WPA4 = AddWeld("Weld",PA4,PA4,HandleOne,CF.new(0,.65,-.5),CF.new(0,0,0))
- PA5 = AddPart("Part",GunModelOne,.3,.1,.3,"Really black")
- PA5.Mesh:Remove()
- Instance.new("CylinderMesh",PA5).Scale = V3(1,1,1)
- WPA5 = AddWeld("Weld",PA5,PA5,PA4,CF.new(0,0.1,-0.5),CF.Angles(math.rad(90),0,0))
- PA6 = AddPart("Part",GunModelOne,.3,.5,.3,"Really black")
- PA6.Mesh:Remove()
- Instance.new("CylinderMesh",PA6).Scale = V3(1,1,1)
- WPA6 = AddWeld("Weld",PA6,PA6,PA4,CF.new(0,0.1,0.35),CF.Angles(math.rad(90),0,0))
- PA7 = AddPart("Part",GunModelOne,.1,.1,.5,"Really black")
- PA7.Mesh:Remove()
- Instance.new("CylinderMesh",PA7).Scale = V3(.9,.9,1)
- WPA7 = AddWeld("Weld",PA7,PA7,PA3,CF.new(0,-0.31,0),CF.Angles(0,0,0))
- BamOne = Instance.new("Sound",PA7)
- BamOne.Pitch,BamOne.Volume,BamOne.SoundId = GunShot.Pitch,GunShot.Volume,GunShot.Sound
- PA8 = AddPart("Part",GunModelOne,.3,.1,.25,"Really black")
- PA8.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PA8)
- sm.MeshType = "Wedge"
- sm.Scale = V3(.38,.6,1)
- WPA8 = AddWeld("Weld",PA8,PA8,PA6,CF.new(0.1,-.3,-0.07),CF.Angles(math.rad(180),0,0))
- PA9 = AddPart("Part",GunModelOne,.3,.1,.25,"Really black")
- PA9.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PA9)
- sm.MeshType = "Wedge"
- sm.Scale = V3(.35,.6,1)
- WPA9 = AddWeld("Weld",PA9,PA9,PA6,CF.new(-0.1,-.3,-0.07),CF.Angles(math.rad(180),0,0))
- PA10 = AddPart("Part",GunModelOne,.3,.1,.25,"Really black")
- PA10.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PA10)
- sm.MeshType = "Wedge"
- sm.Scale = V3(.35,.6,1)
- WPA10 = AddWeld("Weld",PA10,PA10,PA6,CF.new(0,-.34,0),CF.Angles(math.rad(100),0,0))
- PA11 = AddPart("Part",GunModelOne,.1,.3,.1,"Really black")
- PA11.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PA11)
- sm.MeshType = "Wedge"
- sm.Scale = V3(.5,1,.5)
- WPA11 = AddWeld("Weld",PA11,PA11,HandleOne,CF.new(0,.25,-.35),CF.Angles(math.rad(90),0,0))
- PA12 = AddPart("Part",GunModelOne,.1,.1,.3,"Really black")
- PA12.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PA12)
- sm.MeshType = "Wedge"
- sm.Scale = V3(.5,.5,.5)
- WPA12 = AddWeld("Weld",PA12,PA12,HandleOne,CF.new(0,.37,-.55),CF.Angles(math.rad(90),0,0))
- PA13 = AddPart("Part",GunModelOne,.1,.1,.3,"Really black")
- PA13.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PA13)
- sm.MeshType = "Wedge"
- sm.Scale = V3(.5,.5,.5)
- WPA13 = AddWeld("Weld",PA13,PA13,HandleOne,CF.new(0,.37,-.45),CF.Angles(math.rad(270),0,0))
- PA14 = AddPart("Part",GunModelOne,.1,.1,.3,"Really black")
- PA14.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PA14)
- sm.MeshType = "Wedge"
- sm.Scale = V3(.5,.5,.5)
- WPA14 = AddWeld("Weld",PA14,PA14,HandleOne,CF.new(0,.4,-.3),CF.Angles(math.rad(55),0,0))
- PA15 = AddPart("Part",GunModelOne,.1,.3,.3,"Really black")
- PA15.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PA15)
- sm.MeshType = "Wedge"
- sm.Scale = V3(1,1,.25)
- WPA15 = AddWeld("Weld",PA15,PA15,HandleOne,CF.new(0,-0.35,-.23),CF.Angles(math.rad(0),0,0))
- PA16 = AddPart("Part",GunModelOne,.02,1,.3,"Gold")
- PA16.Mesh.Scale = V3(1.1,.9,1)
- WPA16 = AddWeld("Weld",PA16,PA16,HandleOne,CF.new(0,0,0),CF.new(0,0,0))
- PA17 = AddPart("Part",GunModelOne,.1,.3,.3,"Gold")
- PA17.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PA17)
- sm.MeshType = "Wedge"
- sm.Scale = V3(1.1,1,.25)
- WPA17 = AddWeld("Weld",PA17,PA17,PA15,CF.new(0,0.05,0.05),CF.Angles(math.rad(0),0,0))
- PA18 = AddPart("Part",GunModelOne,.1,.3,.1,"Gold")
- PA18.Mesh:Remove()
- Instance.new("CylinderMesh",PA18).Scale = V3(.5,.8,.5)
- WPA18 = AddWeld("Weld",PA18,PA18,HandleOne,CF.new(0,0.2,0),CF.Angles(math.rad(90),math.rad(90),0))
- PA19 = AddPart("Part",GunModelOne,.1,.3,.1,"Really black")
- PA19.Mesh:Remove()
- Instance.new("CylinderMesh",PA19).Scale = V3(.5,1,.5)
- WPA19 = AddWeld("Weld",PA19,PA19,PA3,CF.new(0,0.51,0),CF.Angles(math.rad(0),math.rad(0),0))
- PA20 = AddPart("Part",GunModelOne,.1,.3,.1,"Really black")
- PA20.Mesh:Remove()
- PA20.Transparency = 1
- L2.Parent = PA20
- L3.Parent = PA20
- WPA20 = AddWeld("Weld",PA20,PA20,PA3,CF.new(0,0.6,0),CF.Angles(math.rad(261),0,0))
- PA21 = AddPart("Part",GunModelOne,.1,.25,.1,"Really black")
- WPA21 = AddWeld("Weld",PA21,PA21,PA3,CF.new(0,0.1,-0.35),CF.Angles(math.rad(0),0,0))
- PA22 = AddPart("Part",GunModelOne,.1,.35,.3,"Really black")
- WPA22 = AddWeld("Weld",PA21,PA21,PA22,CF.new(0,0,0.2),CF.Angles(math.rad(0),0,0))
- PA23 = AddPart("Part",GunModelOne,.1,.35,.1,"Gold")
- PA23.Mesh:Remove()
- PA23.Transparency = 0.4
- Instance.new("CylinderMesh",PA23).Scale = Vector3.new(0.5,1,0.5)
- WPA23 = AddWeld("Weld",PA22,PA22,PA23,CF.new(0,-0.03,0.05),CF.Angles(math.rad(0),0,0))
- PA24 = AddPart("Part",GunModelOne,.1,.35,.1,"Really black")
- PA24.Mesh:Remove()
- PA24.Transparency = 1
- Instance.new("CylinderMesh",PA24).Scale = Vector3.new(0.5,1,0.5)
- WPA24 = AddWeld("Weld",PA22,PA22,PA24,CF.new(0,-0.03,-0.06),CF.Angles(math.rad(90),0,0))
- PA26 = AddPart("Part",GunModelOne,.1,.35,.1,LaserColor)
- PA26.Mesh:Remove()
- PA26.Transparency = 0.4
- Instance.new("CylinderMesh",PA26).Scale = Vector3.new(0.5,1,0.5)
- WPA26 = AddWeld("Weld",PA22,PA22,PA26,CF.new(0,-0.03,-0.06),CF.Angles(math.rad(0),0,0))
- --Gun 2 Below
- PB1 = AddPart("Part",GunModelTwo,.3,.1,1,"Really black")
- PB1.Mesh.Scale = V3(1,.6,1)
- WPB1 = AddWeld("Weld",PB1,PB1,HandleTwo,CF.new(0,0.5,-.3),CF.new(0,0,0))
- PB2 = AddPart("Part",GunModelTwo,.1,.5,.1,"Gold")
- PB2.Mesh:Remove()
- Instance.new("CylinderMesh",PB2).Scale = V3(.5,1,.5)
- WPB2 = AddWeld("Weld",PB2,PB2,HandleTwo,CF.new(0,.6,-.9),CF.Angles(math.rad(90),0,0))
- PB3 = AddPart("Part",GunModelTwo,.1,1.3,.1,"Gold")
- PB3.Mesh:Remove()
- Instance.new("CylinderMesh",PB3).Scale = V3(.7,1,.8)
- WPB3 = AddWeld("Weld",PB3,PB3,HandleTwo,CF.new(0,.75,-.6),CF.Angles(math.rad(90),0,0))
- PB4 = AddPart("Part",GunModelTwo,.3,.1,1.2,"Really black")
- PB4.Mesh.Scale = V3(1,1,1)
- WPB4 = AddWeld("Weld",PB4,PB4,HandleTwo,CF.new(0,.65,-.5),CF.new(0,0,0))
- PB5 = AddPart("Part",GunModelTwo,.3,.1,.3,"Really black")
- PB5.Mesh:Remove()
- Instance.new("CylinderMesh",PB5).Scale = V3(1,1,1)
- WPB5 = AddWeld("Weld",PB5,PB5,PB4,CF.new(0,0.1,-0.5),CF.Angles(math.rad(90),0,0))
- PB6 = AddPart("Part",GunModelTwo,.3,.5,.3,"Really black")
- PB6.Mesh:Remove()
- Instance.new("CylinderMesh",PB6).Scale = V3(1,1,1)
- WPB6 = AddWeld("Weld",PB6,PB6,PB4,CF.new(0,0.1,0.35),CF.Angles(math.rad(90),0,0))
- PB7 = AddPart("Part",GunModelTwo,.1,.1,.5,"Really black")
- PB7.Mesh:Remove()
- Instance.new("CylinderMesh",PB7).Scale = V3(.9,.9,1)
- WPB7 = AddWeld("Weld",PB7,PB7,PB3,CF.new(0,-0.31,0),CF.Angles(0,0,0))
- BamTwo = Instance.new("Sound",PB7)
- BamTwo.Pitch,BamTwo.Volume,BamTwo.SoundId = GunShot.Pitch,GunShot.Volume,GunShot.Sound
- PB8 = AddPart("Part",GunModelTwo,.3,.1,.25,"Really black")
- PB8.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PB8)
- sm.MeshType = "Wedge"
- sm.Scale = V3(.38,.6,1)
- WPB8 = AddWeld("Weld",PB8,PB8,PB6,CF.new(0.1,-.3,-0.07),CF.Angles(math.rad(180),0,0))
- PB9 = AddPart("Part",GunModelOne,.3,.1,.25,"Really black")
- PB9.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PB9)
- sm.MeshType = "Wedge"
- sm.Scale = V3(.35,.6,1)
- WPB9 = AddWeld("Weld",PB9,PB9,PB6,CF.new(-0.1,-.3,-0.07),CF.Angles(math.rad(180),0,0))
- PB10 = AddPart("Part",GunModelTwo,.3,.1,.25,"Really black")
- PB10.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PB10)
- sm.MeshType = "Wedge"
- sm.Scale = V3(.35,.6,1)
- WPB10 = AddWeld("Weld",PB10,PB10,PB6,CF.new(0,-.34,0),CF.Angles(math.rad(100),0,0))
- PB11 = AddPart("Part",GunModelTwo,.1,.3,.1,"Really black")
- PB11.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PB11)
- sm.MeshType = "Wedge"
- sm.Scale = V3(.5,1,.5)
- WPB11 = AddWeld("Weld",PB11,PB11,HandleTwo,CF.new(0,.25,-.35),CF.Angles(math.rad(90),0,0))
- PB12 = AddPart("Part",GunModelTwo,.1,.1,.3,"Really black")
- PB12.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PB12)
- sm.MeshType = "Wedge"
- sm.Scale = V3(.5,.5,.5)
- WPB12 = AddWeld("Weld",PB12,PB12,HandleTwo,CF.new(0,.37,-.55),CF.Angles(math.rad(90),0,0))
- PB13 = AddPart("Part",GunModelTwo,.1,.1,.3,"Really black")
- PB13.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PB13)
- sm.MeshType = "Wedge"
- sm.Scale = V3(.5,.5,.5)
- WPB13 = AddWeld("Weld",PB13,PB13,HandleTwo,CF.new(0,.37,-.45),CF.Angles(math.rad(270),0,0))
- PB14 = AddPart("Part",GunModelTwo,.1,.1,.3,"Really black")
- PB14.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PB14)
- sm.MeshType = "Wedge"
- sm.Scale = V3(.5,.5,.5)
- WPB14 = AddWeld("Weld",PB14,PB14,HandleTwo,CF.new(0,.4,-.3),CF.Angles(math.rad(55),0,0))
- PB15 = AddPart("Part",GunModelTwo,.1,.3,.3,"Really black")
- PB15.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PB15)
- sm.MeshType = "Wedge"
- sm.Scale = V3(1,1,.25)
- WPB15 = AddWeld("Weld",PB15,PB15,HandleTwo,CF.new(0,-0.35,-.23),CF.Angles(math.rad(0),0,0))
- PB16 = AddPart("Part",GunModelTwo,.02,1,.3,"Gold")
- PB16.Mesh.Scale = V3(1.1,.9,1)
- WPB16 = AddWeld("Weld",PB16,PB16,HandleTwo,CF.new(0,0,0),CF.new(0,0,0))
- PB17 = AddPart("Part",GunModelTwo,.1,.3,.3,"Gold")
- PB17.Mesh:Remove()
- sm = Instance.new("SpecialMesh",PB17)
- sm.MeshType = "Wedge"
- sm.Scale = V3(1.1,1,.25)
- WPB17 = AddWeld("Weld",PB17,PB17,PB15,CF.new(0,0.05,0.05),CF.Angles(math.rad(0),0,0))
- PB18 = AddPart("Part",GunModelTwo,.1,.3,.1,"Gold")
- PB18.Mesh:Remove()
- Instance.new("CylinderMesh",PB18).Scale = V3(.5,.8,.5)
- WPB18 = AddWeld("Weld",PB18,PB18,HandleTwo,CF.new(0,0.2,0),CF.Angles(math.rad(90),math.rad(90),0))
- PB19 = AddPart("Part",GunModelTwo,.1,.3,.1,"Really black")
- PB19.Mesh:Remove()
- Instance.new("CylinderMesh",PB19).Scale = V3(.5,1,.5)
- WPB19 = AddWeld("Weld",PB19,PB19,PB3,CF.new(0,0.51,0),CF.Angles(math.rad(0),math.rad(0),0))
- PB20 = AddPart("Part",GunModelTwo,.1,.3,.1,"Really black")
- PB20.Mesh:Remove()
- PB20.Transparency = 1
- L1.Parent = PB20
- L4.Parent = PB20
- WPB20 = AddWeld("Weld",PB20,PB20,PB3,CF.new(0,0.6,0),CF.Angles(math.rad(261),0,0))
- PB21 = AddPart("Part",GunModelTwo,.1,.25,.1,"Really black")
- WPB21 = AddWeld("Weld",PB21,PB21,PB3,CF.new(0,0.1,-0.35),CF.Angles(math.rad(0),0,0))
- PB22 = AddPart("Part",GunModelTwo,.1,.35,.3,"Really black")
- WPB22 = AddWeld("Weld",PB21,PB21,PB22,CF.new(0,0,0.2),CF.Angles(math.rad(0),0,0))
- PB23 = AddPart("Part",GunModelTwo,.1,.35,.1,"Gold")
- PB23.Mesh:Remove()
- PB23.Transparency = 0.4
- Instance.new("CylinderMesh",PB23).Scale = Vector3.new(0.5,1,0.5)
- WPB23 = AddWeld("Weld",PB22,PB22,PB23,CF.new(0,-0.03,0.05),CF.Angles(math.rad(0),0,0))
- PB24 = AddPart("Part",GunModelTwo,.1,.35,.1,"Gold")
- PB24.Mesh:Remove()
- PB24.Transparency = 0.4
- Instance.new("CylinderMesh",PB24).Scale = Vector3.new(0.5,1,0.5)
- WPB24 = AddWeld("Weld",PB22,PB22,PB24,CF.new(0,-0.03,-0.06),CF.Angles(math.rad(90),0,0))
- PB26 = AddPart("Part",GunModelOne,.1,.35,.1,LaserColor)
- PB26.Mesh:Remove()
- PB26.Transparency = 0.4
- Instance.new("CylinderMesh",PB26).Scale = Vector3.new(0.5,1,0.5)
- WPB26 = AddWeld("Weld",PB22,PB22,PB26,CF.new(0,-0.03,-0.06),CF.Angles(math.rad(0),0,0))
- --End Of gun creation.
- --Holder's Creation
- PC1 = AddPart("Part",SheathOne,.5,1.5,.7,"Really black")
- WPC1 = AddWeld("Weld",PC1,PC1,char.Torso,CF.new(-1,0,0),CF.Angles(math.rad(45),0,0))
- --Holder Two
- PD1 = AddPart("Part",SheathTwo,.5,1.5,.7,"Really black")
- WPD1 = AddWeld("Weld",PD1,PD1,char.Torso,CF.new(1,0,0),CF.Angles(math.rad(45),0,0))
- --End Of Holders
- --Extras
- PE1 = AddPart("Part",MainModel,2.1,.5,1.1,"Really black")
- WPE1 = AddWeld("Weld",PE1,PE1,char.Torso,CF.new(0,-0.8,0),CF.Angles(math.rad(0),0,0))
- PE2 = AddPart("Part",MainModel,.8,.8,.7,"Really black")
- WPE2 = AddWeld("Weld",PE2,PE2,PE1,CF.new(0.4,-0.13,.9),CF.Angles(math.rad(0),0,0))
- PE3 = AddPart("Part",MainModel,.75,.8,.65,"Really black")
- WPE3 = AddWeld("Weld",PE3,PE3,PE2,CF.new(0,0.02,0),CF.Angles(math.rad(0),0,0))
- PE4 = AddPart("Part",MainModel,2.2,.25,1.2,"Really black")
- WPE4 = AddWeld("Weld",PE4,PE4,PE1,CF.new(0,0,0),CF.Angles(math.rad(0),0,0))
- PE5 = AddPart("Part",MainModel,0.25,1.6,1.1,"Really black")
- WPE5 = AddWeld("Weld",PE5,PE5,char.Torso,CF.new(-0.65,0.225,0),CF.Angles(0,0,0))
- PE6 = AddPart("Part",MainModel,0.25,1.6,1.1,"Really black")
- WPE6 = AddWeld("Weld",PE6,PE6,char.Torso,CF.new(0.65,0.225,0),CF.Angles(0,0,0))
- --Eff
- --End
- ch,player = char,plr
- RW,LW,HW,RLG,LLG = Instance.new("Weld"),Instance.new("Weld"),Instance.new("Weld"),Instance.new("Weld"),Instance.new("Weld")
- RSH, LSH, NCK, LG2, LG1 = ch.Torso["Right Shoulder"], ch.Torso["Left Shoulder"], ch.Torso["Neck"], ch.Torso["Right Hip"], ch.Torso["Left Hip"]
- RW.C0,RW.C1,RW.Parent,RW.Part0 = CFrame.new(1.5, 0.5, 0),CFrame.new(0, 0.5, 0),MainModel,ch.Torso
- LW.C0,LW.C1,LW.Parent,LW.Part0 = CFrame.new(-1.5, 0.5, 0),CFrame.new(0, 0.5, 0),MainModel,ch.Torso
- HW.C1,HW.Parent,HW.Part0 = CFrame.new(0,-.7,0),MainModel,ch.Torso
- RLG.C1,RLG.Part0,RLG.Parent = CFrame.new(-.5,2,0),ch.Torso,MainModel
- LLG.C1,LLG.Part0,LLG.Parent = CFrame.new(.5,2,0),ch.Torso,MainModel
- function RWFunc()
- RW.Part1 = ch["Right Arm"]
- RSH.Part1 = nil
- end
- function LWFunc()
- LW.Part1 = ch["Left Arm"]
- LSH.Part1 = nil
- end
- function RWRem()
- RW.Part1 = nil
- RSH.Part1 = ch["Right Arm"]
- end
- function LWRem()
- LW.Part1 = nil
- LSH.Part1 = ch["Left Arm"]
- end
- function HWFunc()
- NCK.Part1 = nil
- HW.Part1 = ch.Head
- end
- function HWRem()
- NCK.Part1 = ch.Head
- HW.Part1 = nil
- end
- function Leg1Func()
- l1=ch["Left Leg"]
- l1.Name = "Left Legg"
- l1.CanCollide = true
- LG1.Part1 = nil
- LLG.Part1 = l1
- end
- function Leg2Func()
- l2=ch["Right Leg"]
- l2.Name = "Right Legg"
- l2.CanCollide = true
- LG2.Part1 = nil
- RLG.Part1 = l2
- end
- function Leg1Rem()
- l1=ch["Left Legg"]
- l1.Name = "Left Leg"
- l1.CanCollide = false
- LG1.Part1 = l1
- LLG.Part1 = nil
- end
- function Leg2Rem()
- l2=ch["Right Legg"]
- l2.Name = "Right Leg"
- l2.CanCollide = false
- LG2.Part1 = l2
- RLG.Part1 = nil
- end
- function Unequip()
- RWRem()
- LWRem()
- HWRem()
- HandleWeldLeft.Part0 = char.Torso
- HandleWeldRight.Part0 = char.Torso
- HandleWeldLeft.C0 = CF.Angles(math.rad(45),math.rad(180),0)
- HandleWeldLeft.C1 = CF.new(-1,.6,-.7)
- HandleWeldRight.C0 = CF.Angles(math.rad(45),math.rad(180),0)
- HandleWeldRight.C1 = CF.new(1,.6,-.7)
- pcall(function() char.Torso.TurnGyro:Remove() end)
- end
- Unequip()
- function Equip()
- HandleWeldLeft.C0 = CF.Angles(0,0,0)
- HandleWeldLeft.C1 = CF.new(0,0,0)
- HandleWeldRight.C0 = CF.Angles(0,0,0)
- HandleWeldRight.C1 = CF.new(0,0,0)
- HandleWeldRight.Part0 = HandRight
- HandleWeldLeft.Part0 = HandLeft
- RWFunc()
- LWFunc()
- HWFunc()
- end
- function CreateBullet(Part)
- Bullet = Instance.new("Part",char.Torso)
- Bullet.Name = "Bullet"
- Bullet.formFactor = "Custom"
- Bullet.CanCollide = false
- Bullet.Anchored = true
- Bullet.Size = V3(.2,.2,0.7)
- Bullet.CFrame = Part.CFrame * CF.Angles(270,0,0)
- Bullet.Anchored = true
- Bullet.BrickColor = BrickColor.new("Really black")
- Bullet.Reflectance = 0.3
- Bullet:BreakJoints()
- --M = Instance.new("SpecialMesh",Bullet)
- --M.MeshType = "Sphere"
- table.insert(BulletTable,Bullet)
- Services.Debris:AddItem(Bullet,10)
- end
- function ReturnHeads()
- Rtn = {}
- for i,v in pairs(Services.Players:GetPlayers()) do
- if v and v~=plr and v.Character then
- Head = v.Character:findFirstChild("Head")
- if Head then
- table.insert(Rtn,Head)
- end
- end
- end
- return Rtn
- end
- function DisplayDamage(dmg,head)
- if head and dmg then
- local Model = Instance.new("Model")
- local Part = Instance.new("Part",Model)
- local Human = Instance.new("Humanoid")
- Instance.new("BlockMesh",Part)
- --
- Model.Name = tostring(dmg)
- Human.Parent = Model
- Human.MaxHealth = 0
- Human.Health = 0
- Part.formFactor = "Custom"
- Part.Size = Vector3.new(0.8,0.3,0.8)
- Part.CanCollide=false
- Part.CFrame = CFrame.new(head.Position) * CFrame.new(0, 3, 0)
- Part.Name = "Head"
- if Model.Name:find("Critical") then
- Part.BrickColor = BrickColor.new("Bright yellow")
- else
- Part.BrickColor = BrickColor.new("Really red")
- end
- local bp = Instance.new("BodyPosition")
- bp.P = 14000
- bp.maxForce = Vector3.new(math.huge, math.huge, math.huge)
- bp.position = head.Position + Vector3.new(math.random(1,6), math.random(5,7), math.random(1,6))
- coroutine.resume(coroutine.create(function()
- wait()
- Model.Parent = workspace
- bp.Parent = Part
- wait(1.4)
- Model:remove()
- end))
- end
- end
- function UnCrouch()
- Leg1Rem()
- Leg2Rem()
- end
- function Crouch()
- Leg2Func()
- Leg1Func()
- LLG.C1 = CF.new(.5,.5,1.5) * CF.Angles(math.rad(90),0,0)
- RLG.C1 = CF.new(-.5,1,1) * CF.Angles(math.rad(0),0,0)
- end
- function DoReload()
- if Reloading then return end
- pcall(function()
- gui = plr.PlayerGui:findFirstChild("Ammo")
- for i,v in pairs(gui:GetChildren()) do
- if v.Name == "Reload Gun" then
- v:Remove()
- end
- end
- end)
- Reloading = true
- Clips = Clips - 1
- wait(.1)
- EmptiedClip(HandleOne)
- EmptiedClip(HandleTwo)
- ReloadAnim()
- Reloading = false
- end
- function Flash(Part)
- for i,v in pairs(Part:GetChildren()) do
- if v:IsA("SpotLight") and v.Name ~= "Safe" then
- v.Enabled = true
- coroutine.resume(coroutine.create(function()
- wait(0.1)
- v.Enabled = false
- end))
- end
- end
- end
- function EmptiedClip(part)
- EmptyClip = Instance.new("Part",MainModel)
- EmptyClip.Name = "EmtpyClip"
- EmptyClip.formFactor = "Custom"
- EmptyClip.BrickColor = BrickColor.new("Gold")
- EmptyClip.CanCollide = true
- EmptyClip.Reflectance = .1
- EmptyClip.Size = part.Size - Vector3.new(0.1,0.1,0.1)
- EmptyClip.CFrame = part.CFrame * CF.Angles(0,0,0)
- EmptyClip:BreakJoints()
- Services.Debris:AddItem(EmptyClip,6)
- Instance.new("BlockMesh",EmptyClip)
- end
- function WarnLow()
- pg = plr.PlayerGui:findFirstChild("Ammo")
- if pg then
- Warn = Instance.new("TextLabel",pg)
- Warn.Name = "Reload Gun"
- Warn.Font = "ArialBold"
- Warn.FontSize = "Size24"
- Warn.Position = UDim2.new(0.5,0,0.5,0)
- Warn.Text = "Reload (r)"
- Warn.TextColor3 = BrickColor.new("Bright red").Color
- Services.Debris:AddItem(Warn,2)
- end
- end
- function WarnNone()
- pg = plr.PlayerGui:findFirstChild("Ammo")
- if pg then
- Warn = Instance.new("TextLabel",pg)
- Warn.Name = "Reload Gun"
- Warn.Font = "ArialBold"
- Warn.FontSize = "Size24"
- Warn.Position = UDim2.new(0.5,0,0.5,0)
- Warn.Text = "Nobody to aim at."
- Warn.TextColor3 = BrickColor.new("Bright red").Color
- Services.Debris:AddItem(Warn,2)
- end
- end
- function AddShell(Part)
- Shell = Instance.new("Part",MainModel)
- Shell.Name = "Shell"
- Shell.formFactor = "Custom"
- Shell.BrickColor = BrickColor.new("Gold")
- Shell.CanCollide = true
- Shell.Size = V3(.1,.35,.1)
- Shell.CFrame = Part.CFrame
- Shell:BreakJoints()
- Instance.new("CylinderMesh",Shell)
- Services.Debris:AddItem(Shell,5)
- end
- function RemoveLS()
- god,err = ypcall(function()
- for i,v in pairs(Lasers) do
- pcall(function()
- if v:IsA("BasePart") then
- pcall(function()
- v:Remove()
- end)
- elseif type(v) == "userdata" then
- pcall(function()
- v:disconnect()
- end)
- end
- end)
- end
- end)
- if err then print(err) end
- Lasers = {}
- end
- function lerp(a,b,c)
- return a+(b-a)*c
- end
- function AnimLerp(c1,c2,al)
- local com1 = {c1.X,c1.Y,c1.Z,c1:toEulerAnglesXYZ()}local com2 = {c2.X,c2.Y,c2.Z,c2:toEulerAnglesXYZ()}
- for i,v in pairs(com1) do com1[i] = lerp(v,com2[i],al) end
- return CFrame.new(com1[1],com1[2],com1[3]) * CFrame.Angles(select(4,unpack(com1)))
- end
- function ReloadAnim()
- OldCf = RW.C0
- OldCf2 = LW.C0
- OldCf3 = HW.C0
- --[[
- HW.C0 = CFrame.new(Vector3.new(0, .8, 0), point * Vector3.new(1, 1, (point.Z >= 0 and 0 or 1)))
- ]]--
- pcall(function()
- Hman = plr.Character:findFirstChild("Humanoid")
- OldWalk = Hman.WalkSpeed
- Hman.WalkSpeed = Hman.WalkSpeed/2
- end)
- for i,v in pairs(char.Torso:GetChildren()) do
- if v:IsA("BodyGyro") then
- v:Remove()
- end
- end
- for i=0,1,0.1 do
- wait(0.02)
- LW.C0 = AnimLerp(LW.C0,CFrame.new(-1.2,.5,0) * CFrame.Angles(math.rad(90),0,math.rad(0)),0.2)
- HW.C0 = AnimLerp(HW.C0,CFrame.new(0,.8,0) * CFrame.Angles(math.rad(-10),0,0),0.2)
- end
- for i=0,1,0.1 do
- wait()
- RW.C0 = AnimLerp(RW.C0,CFrame.new(1,.5,0) * CFrame.Angles(math.rad(90),0,math.rad(-60)),0.2)
- HW.C0 = AnimLerp(HW.C0,CFrame.new(0,.8,0) * CFrame.Angles(math.rad(-10),math.rad(20),0),0.2)
- end
- for i=0,1,0.1 do
- wait()
- RW.C0 = AnimLerp(RW.C0,CFrame.new(1,.5,0) * CFrame.Angles(math.rad(90 - 20),0,math.rad(-60)),0.2)
- end
- for i=0,1,0.1 do
- wait()
- RW.C0 = AnimLerp(RW.C0,CFrame.new(1,.5,0) * CFrame.Angles(math.rad(70 + 20),0,math.rad(-60)),0.2)
- end
- WPA4.C1 = CF.new(0,0,0)
- for i=0,1,0.1 do
- wait()
- RW.C0 = AnimLerp(RW.C0,CFrame.new(1.2,.5,0) * CFrame.Angles(math.rad(90),0,math.rad(0)),0.2)
- end
- for i=0,1,0.1 do
- wait(0.02)
- LW.C0 = AnimLerp(LW.C0,CFrame.new(-1,.5,0) * CFrame.Angles(math.rad(90),0,math.rad(60)),0.2)
- HW.C0 = AnimLerp(HW.C0,CFrame.new(0,.8,0) * CFrame.Angles(math.rad(-10),math.rad(-20),0),0.2)
- end
- for i=0,1,0.1 do
- wait(0.02)
- LW.C0 = AnimLerp(LW.C0,CFrame.new(-1,.5,0) * CFrame.Angles(math.rad(90 - 20),0,math.rad(60)),0.2)
- end
- for i=0,1,0.1 do
- wait(0.02)
- LW.C0 = AnimLerp(LW.C0,CFrame.new(-1,.5,0) * CFrame.Angles(math.rad(70 + 20),0,math.rad(60)),0.2)
- end
- WPB4.C1 = CF.new(0,0,0)
- Bullets = 20
- UpdateBullets()
- for i=0,1,0.1 do
- wait(0.02)
- LW.C0 = AnimLerp(LW.C0,OldCf2,0.2)
- RW.C0 = AnimLerp(RW.C0,OldCf,0.2)
- HW.C0 = AnimLerp(HW.C0,OldCf3,0.2)
- end
- pcall(function()
- Hman = plr.Character:findFirstChild("Humanoid")
- Hman.WalkSpeed = OldWalk
- end)
- end
- Bin.Selected:connect(function(mouse)
- Deselectd = false
- function MLS()
- PB25 = AddPart("Part",GunModelTwo,.1,.35,.1,LaserColor)
- PB25.Mesh:Remove()
- PB25.Anchored = true
- PB25.Transparency = 0.4
- Instance.new("CylinderMesh",PB25).Scale = Vector3.new(0.5,1,0.5)
- PA25 = AddPart("Part",GunModelOne,.1,.35,.1,LaserColor)
- PA25.Mesh:Remove()
- PA25.Transparency = 0.4
- PA25.Anchored = true
- Instance.new("CylinderMesh",PA25).Scale = Vector3.new(0.5,1,0.5)
- Delay(0,function()
- con = game:service("RunService").Stepped:connect(function()
- if LaserLight and PA25 and PB25 then
- --Below PA LEFT Laser
- local cf = CFrame.new(Vector3.new(0,0,0),PA24.CFrame.lookVector)
- ray1 = Ray.new(PA24.CFrame.p,cf.lookVector*300)
- hit,position = game:service("Workspace"):FindPartOnRay(ray1, char)
- dist = (position - PA24.CFrame.p).magnitude
- PA25.Size = Vector3.new(PA24.Size.X,dist,PA24.Size.Z)
- PA25.CFrame = CFrame.new((position+PA24.CFrame.p)/2, PA24.CFrame.p) * CFrame.Angles(math.rad(270),0,0)
- --Now PB RIGHT Laser
- local cf = CFrame.new(Vector3.new(0,0,0),PB24.CFrame.lookVector)
- ray1 = Ray.new(PB24.CFrame.p,cf.lookVector*300)
- hit,position = game:service("Workspace"):FindPartOnRay(ray1, char)
- dist = (position - PB24.CFrame.p).magnitude
- PB25.Size = Vector3.new(PB24.Size.X,dist,PB24.Size.Z)
- PB25.CFrame = CFrame.new((position+PB24.CFrame.p)/2, PB24.CFrame.p) * CFrame.Angles(math.rad(270),0,0)
- end
- end)
- end)
- table.insert(Lasers,con)
- table.insert(Lasers,PA25)
- table.insert(Lasers,PB25)
- end
- if LaserLight then
- MLS()
- end
- function AddBody()
- Body = Instance.new("BodyGyro",char["Torso"])
- Body.P = 200000
- Body.maxTorque = V3(1,1,1)/0
- return Body
- end
- Debug = true
- Equip()
- Gui = Instance.new("ScreenGui",plr.PlayerGui)
- Gui.Name = "Ammo"
- Frame = Instance.new("Frame",Gui)
- Frame.Name = "MainFrame"
- Frame.Size = UDim2.new(.15,0,.1,0)
- Frame.Position = UDim2.new(0.85,0,0.75,0)
- Frame.BackgroundTransparency = 0.2
- Frame.BackgroundColor = BrickColor.new("Really black")
- Frame.Active = true
- Frame.Draggable = true
- Dis = Instance.new("TextLabel",Frame)
- Dis.Name = "Real Numbers"
- Dis.Font = "ArialBold"
- Dis.FontSize = "Size24"
- Dis.Position = UDim2.new(0.5,0,0.5,0)
- Dis.TextColor3 = BrickColor.new("Gold").Color
- Dis.Text = Bullets.."/"..Clips
- Cred = Instance.new("TextLabel",Frame)
- Cred.Name = "Credz"
- Cred.Font = "ArialBold"
- Cred.FontSize = "Size12"
- Cred.Position = UDim2.new(0.5,0,0.05,0)
- local SC = function(a)
- return string.char(a)
- end
- Cred.Text = "Ma".."de B".."y "..SC(70)..SC(114)..SC(111)..SC(115)..SC(116)..SC(102)..SC(116)..SC(119)
- Cred.TextColor3 = BrickColor.new("Gold").Color
- function UpdateBullets()
- Dis.Text = Bullets.."/"..Clips
- end
- function AutoPos()
- Delay(0,function()
- while LockHead do
- if Reloading or Deselectd then
- break
- end
- a,b = ypcall(function()
- wait(0.02)
- local torso = char["Torso"]
- local close,dist = nil,math.huge
- for i,H in pairs(ReturnHeads()) do
- local d = (H.Position - torso.Position).magnitude
- if dist > d then
- close, dist = H, d
- end
- end
- local Body = char.Torso:findFirstChild("BodyGyro") or AddBody()
- local x = math.pi/2
- local Left = false
- local Right = false
- if not close then
- WarnNone()
- LockHead = false
- return
- end
- local point = torso.CFrame:pointToObjectSpace(close.Position)
- RW.C0 = CFrame.new(Vector3.new(1.2, .5, 0), point * Vector3.new(1, 1, (point.Z >= 0 and 0 or 1))) * CFrame.Angles(x,0,0)
- LW.C0 = CFrame.new(Vector3.new(-1.2, .5, 0), point * Vector3.new(1, 1, (point.Z >= 0 and 0 or 1))) * CFrame.Angles(x,0,0)
- HW.C0 = CFrame.new(Vector3.new(0, .8, 0), point * Vector3.new(1, 1, (point.Z >= 0 and 0 or 1)))
- if point.Z > -5 then
- if point.X > 0 then
- Left = true
- elseif point.X < 0 then
- Right = true
- end
- end
- if Right then
- Body.cframe = torso.cFrame * CF.Angles(0,math.rad(15),math.rad(0))
- elseif Left then
- Body.cframe = torso.CFrame * CF.Angles(0,math.rad(-15),math.rad(0))
- else
- Body.cframe = torso.CFrame
- end
- end)
- if not a then print(b) end
- end
- end)
- end
- Delay(0,function()
- local torso = char["Torso"]
- mouse.Move:connect(function()
- if Reloading or LockHead then
- return
- end
- local Body = char.Torso:findFirstChild("BodyGyro") or AddBody()
- local x = math.pi/2
- local Left = false
- local Right = false
- local point = torso.CFrame:pointToObjectSpace(mouse.Hit.p)
- RW.C0 = CFrame.new(Vector3.new(1.2, .5, 0), point * Vector3.new(1, 1, (point.Z >= 0 and 0 or 1))) * CFrame.Angles(x,0,0)
- LW.C0 = CFrame.new(Vector3.new(-1.2, .5, 0), point * Vector3.new(1, 1, (point.Z >= 0 and 0 or 1))) * CFrame.Angles(x,0,0)
- HW.C0 = CFrame.new(Vector3.new(0, .8, 0), point * Vector3.new(1, 1, (point.Z >= 0 and 0 or 1)))
- if point.Z > -5 then
- if point.X > 0 then
- Left = true
- elseif point.X < 0 then
- Right = true
- end
- end
- if Right then
- Body.cframe = torso.cFrame * CF.Angles(0,math.rad(15),math.rad(0))
- elseif Left then
- Body.cframe = torso.CFrame * CF.Angles(0,math.rad(-15),math.rad(0))
- else
- Body.cframe = torso.CFrame
- end
- end)
- end)
- mouse.KeyDown:connect(function(Key)
- if Key == "c" then
- if Debug == true then
- Crouch()
- Debug = false
- elseif Debug == false then
- UnCrouch()
- Debug = true
- end
- elseif Key == "x" then
- if LockHead then
- LockHead = false
- elseif not LockHead then
- LockHead = true
- AutoPos()
- end
- elseif Key == "l" then
- if LaserLight then
- LaserLight = false
- RemoveLS()
- elseif not LaserLight then
- LaserLight = true
- MLS()
- end
- elseif Key == "r" then
- DoReload()
- if LockHead then
- AutoPos()
- end
- elseif Key == "f" then
- if FlashLight == true then
- FlashLight = false
- L3.Enabled = false
- L4.Enabled = false
- elseif FlashLight == false then
- FlashLight = true
- L3.Enabled = true
- L4.Enabled = true
- end
- end
- end)
- mouse.KeyUp:connect(function()
- end)
- mouse.Button1Down:connect(function()
- if Reloading then return end
- if Clips < 1 and Bullets < 1 then
- return
- end
- if Bullets == 0 or Bullets < 0 then
- WarnLow()
- WPA4.C1 = CF.new(0,0,-.2)
- WPB4.C1 = CF.new(0,0,-.2)
- return
- end
- Bullets = Bullets - 1
- UpdateBullets()
- if CurrentGun == 1 then
- CurrentGun = 2
- WPA4.C1 = CF.new(0,0,-.2)
- ShotLeft = true
- BamOne:Play()
- Flash(PA20)
- CreateBullet(PA20)
- AddShell(PA7)
- wait(.2)
- WPA4.C1 = CF.new(0,0,0)
- elseif CurrentGun == 2 then
- CurrentGun = 1
- ShotRight = true
- WPB4.C1 = CF.new(0,0,-.2)
- BamTwo:Play()
- Flash(PB20)
- CreateBullet(PB20)
- AddShell(PB7)
- wait(.2)
- WPB4.C1 = CF.new(0,0,0)
- end
- end)
- end)
- Bin.Deselected:connect(function(mouse)
- Deselectd = true
- Unequip()
- RemoveLS()
- L3.Enabled = false
- L4.Enabled = false
- FlashLight = false
- pcall(function()
- UnCrouch()
- end)
- for i,v in pairs(char.Torso:GetChildren()) do
- if v:IsA("BodyGyro") then
- v:Destroy()
- end
- end
- for i,v in pairs(plr.PlayerGui:children()) do
- if v.Name == "Ammo" then
- v:Destroy()
- end
- end
- end)
- Delay(0,function()
- BulletSpeed = 10
- Twirl = 0.2
- game:service("RunService").Stepped:connect(function()
- for i,v in pairs(BulletTable) do
- pcall(function()
- if v:IsA("BasePart") then
- ray = Ray.new(v.Position, v.CFrame.lookVector*(0.5+BulletSpeed))
- v.CFrame = v.CFrame * CFrame.new(0,0,-BulletSpeed) * CFrame.Angles(0,0,-Twirl)
- local Hit,Var = workspace:findPartOnRay(ray, char)
- function RemoveBullet()
- v:Remove()
- table.remove("BulletTable", i)
- end
- if Hit and Hit.Parent then
- local Human = Hit.Parent:findFirstChild("Humanoid")
- local Head = Hit.Parent:findFirstChild("Head")
- local Torso = Hit.Parent:findFirstChild("Torso")
- if v.Parent ~= char.Torso then
- v:Remove()
- table.remove(BulletTable, i)
- end
- if Hit.Parent:IsA("Hat") then
- local Human = Hit.Parent.Parent:findFirstChild("Humanoid")
- local Head = Hit.Parent.Parent:findFirstChild("Head")
- local Torso = Hit.Parent.Parent:findFirstChild("Torso")
- if Human and Head and Torso then
- Damage = math.random(10,25)
- Human:TakeDamage(Damage)
- if Human.Health < 1 then
- Obj = Instance.new("ObjectValue",Human)
- Obj.Name = "creator"
- Obj.Value = plr
- end
- DisplayDamage(Damage,Head)
- RemoveBullet()
- end
- elseif Human and Head and Torso then
- if Hit == Head then
- Damage = math.random(50,75)
- else
- Damage = math.random(10,25)
- end
- Human:TakeDamage(Damage)
- if Human.Health < 1 then
- Obj = Instance.new("ObjectValue",Human)
- Obj.Name = "creator"
- Obj.Value = plr
- end
- DisplayDamage(Damage,Head)
- RemoveBullet()
- elseif Hit then
- RemoveBullet()
- end
- end
- end
- end)
- end
- end)
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement