Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --made by goodguyaiden xd--
- --why did i make this--
- local Player = game:service'Players'.localPlayer
- local chara = Player.Character
- shirt= Instance.new("Shirt", Character)
- shirt.Name = "Shirt"
- pants = Instance.new("Pants", Character)
- pants.Name = "Pants"
- chara.Shirt.ShirtTemplate = "http://www.roblox.com/asset/?id=679814237"
- chara.Pants.PantsTemplate = "http://www.roblox.com/asset/?id=710750764"
- local hat = Instance.new("Hat")
- hat.Parent = game.Players.LocalPlayer.Character
- hat.AttachmentForward = Vector3.new(0,0,-1)
- hat.AttachmentPos = Vector3.new(0,0.4,0)
- hat.AttachmentRight = Vector3.new(1,0,0)
- hat.AttachmentUp = Vector3.new(0,1,0)
- hat.Name = "Helmet"
- local hatHandle = Instance.new("Part")
- hatHandle.Parent = hat
- hatHandle.Name = "Handle"
- hatHandle.Size = Vector3.new(1.4,1.6,2)
- hatHandle.CanCollide = true
- local hatMesh = Instance.new("SpecialMesh")
- hatMesh.Parent = hatHandle
- hatMesh.MeshId = "http://www.roblox.com/asset/?id=16101994"
- hatMesh.TextureId = "http://www.roblox.com/asset/?id=16101972"
- hatMesh.Scale = Vector3.new(1.2,1.2,1.2)
- hatMesh.Offset = Vector3.new(0,0,0)
- hatMesh.VertexColor = Vector3.new(1,1,1)
- pumpk = Instance.new("Sound")
- pumpk.Parent = game.Players.LocalPlayer.Character.Head
- pumpk.SoundId = "rbxassetid://488429159"
- pumpk.Volume = 3
- pumpk:Play()
- pumpk.Looped = true
- --A M1A1 Thompsion ^-^
- --Has a 35 round magazine and does lots of damage
- --Don't leak this. If you do i will fucking shoot you till your dead :\
- local runDummyScript = function(f,scri)
- local oldenv = getfenv(f)
- local newenv = setmetatable({}, {
- __index = function(_, k)
- if k:lower() == 'script' then
- return scri
- else
- return oldenv[k]
- end
- end
- })
- setfenv(f, newenv)
- ypcall(function() f() end)
- end
- cors = {}
- mas = Instance.new("Model",game:GetService("Lighting"))
- mas.Name = "CompiledModel"
- o1 = Instance.new("Tool")
- o2 = Instance.new("Part")
- o3 = Instance.new("Sound")
- o4 = Instance.new("Sound")
- o5 = Instance.new("Sound")
- o6 = Instance.new("PointLight")
- o7 = Instance.new("Sound")
- o8 = Instance.new("SpecialMesh")
- o10 = Instance.new("Animation")
- o11 = Instance.new("ScreenGui")
- o12 = Instance.new("Frame")
- o13 = Instance.new("TextLabel")
- o14 = Instance.new("TextLabel")
- o15 = Instance.new("TextLabel")
- o16 = Instance.new("Frame")
- o17 = Instance.new("Frame")
- o18 = Instance.new("Frame")
- o19 = Instance.new("Frame")
- o20 = Instance.new("ImageLabel")
- o21 = Instance.new("TextLabel")
- o22 = Instance.new("Frame")
- o23 = Instance.new("Frame")
- o24 = Instance.new("TextLabel")
- o25 = Instance.new("LocalScript")
- o26 = Instance.new("LocalScript")
- o27 = Instance.new("Script")
- o1.Name = "Thompson"
- o1.Parent = game.Players.LocalPlayer.Backpack
- o1.GripForward = Vector3.new(0.248, 0, 0.969)
- o1.GripPos = Vector3.new(0, -0.2, -0.5)
- o1.GripRight = Vector3.new(-0.969, 0, 0.248)
- o1.GripUp = Vector3.new(0, 1, 0)
- o1.ToolTip = "M16A2"
- o2.Name = "Handle"
- o2.Parent = o1
- o2.BrickColor = BrickColor.new("Black")
- --o2.Transparency = 1
- o2.Position = Vector3.new(14.1037359, 10.9526501, 14.6426458)
- o2.Rotation = Vector3.new(0, -180, 0)
- o2.FormFactor = Enum.FormFactor.Custom
- o2.Size = Vector3.new(0.7, 0.4, 3.51)
- --o2.CFrame = CFrame.new(14.1037359, 10.9526501, 14.6426458, 1.00000787, 2.84217094e-14, -1.94057783e-13, -2.18925247e-13, 2.14719495e-26, 1, 2.84217094e-14, -1.00000787, -2.82727748e-26)
- o2.BottomSurface = Enum.SurfaceType.Smooth
- o2.TopSurface = Enum.SurfaceType.Smooth
- o2.Color = Color3.new(0.105882, 0.164706, 0.207843)
- o3.Name = "FireSound"
- o3.Parent = o2
- o3.Pitch = 0.89999997615814
- o3.SoundId = "rbxassetid://132456294"
- o3.Volume = 1
- o4.Name = "Reload"
- o4.Parent = o2
- o4.SoundId = "http://www.roblox.com/asset/?id=132456068"
- o4.Volume = 1
- o5.Name = "EquipSound"
- o5.Parent = o2
- o5.SoundId = "http://www.roblox.com/asset/?id=10209881"
- o5.Volume = 1
- o6.Name = "Flash"
- o6.Parent = o2
- o6.Color = Color3.new(1, 1, 0)
- o6.Enabled = false
- o6.Brightness = 1.5
- o7.Name = "Tick"
- o7.Parent = o2
- o7.SoundId = "rbxasset://sounds//clickfast.wav"
- o7.Volume = 1
- o8.Parent = o2
- o8.MeshId = "http://www.roblox.com/asset/?id=478417984"
- o8.Scale = Vector3.new(0.005, 0.005, 0.005)
- o8.TextureId = "http://www.roblox.com/asset/?id=478418082"
- o8.VertexColor = Vector3.new(2, 2, 2)
- o8.MeshType = Enum.MeshType.FileMesh
- o10.Name = "Recoil"
- o10.Parent = o1
- o10.AnimationId = "http://www.roblox.com/Asset?ID=94331086"
- o11.Name = "WeaponHud"
- o11.Parent = o1
- o12.Name = "AmmoHud"
- o12.Parent = o11
- o12.Position = UDim2.new(1,-265,1,-60)
- o12.Size = UDim2.new(0,200,0,50)
- o12.Style = Enum.FrameStyle.RobloxSquare
- o12.Position = UDim2.new(1,-265,1,-60)
- o12.BackgroundTransparency = 1
- o12.BorderSizePixel = 0
- o13.Name = "ForwardSlash"
- o13.Parent = o12
- o13.Position = UDim2.new(0.5,0,0.5,0)
- o13.Text = "/"
- o13.Position = UDim2.new(0.5,0,0.5,0)
- o13.BackgroundTransparency = 1
- o13.BorderSizePixel = 0
- o13.FontSize = Enum.FontSize.Size24
- o13.TextColor3 = Color3.new(1, 1, 1)
- o13.TextStrokeTransparency = 0
- o14.Name = "ClipAmmo"
- o14.Parent = o12
- o14.Position = UDim2.new(0.44999998807907,0,0.5,0)
- o14.Text = "54"
- o14.Position = UDim2.new(0.44999998807907,0,0.5,0)
- o14.BackgroundTransparency = 1
- o14.BorderSizePixel = 0
- o14.FontSize = Enum.FontSize.Size24
- o14.TextColor3 = Color3.new(1, 1, 1)
- o14.TextStrokeTransparency = 0
- o14.TextXAlignment = Enum.TextXAlignment.Right
- o15.Name = "TotalAmmo"
- o15.Parent = o12
- o15.Position = UDim2.new(0.55000001192093,0,0.5,0)
- o15.Text = "180"
- o15.Position = UDim2.new(0.55000001192093,0,0.5,0)
- o15.BackgroundTransparency = 1
- o15.BorderSizePixel = 0
- o15.FontSize = Enum.FontSize.Size24
- o15.TextColor3 = Color3.new(1, 1, 1)
- o15.TextStrokeTransparency = 0
- o15.TextXAlignment = Enum.TextXAlignment.Left
- o16.Name = "Crosshair"
- o16.Parent = o11
- o16.Position = UDim2.new(0,500,0,500)
- o16.Size = UDim2.new(0,150,0,150)
- o16.Position = UDim2.new(0,500,0,500)
- o16.BackgroundColor3 = Color3.new(0, 1, 0)
- o16.BackgroundTransparency = 1
- o16.BorderSizePixel = 0
- o17.Name = "TopFrame"
- o17.Parent = o16
- o17.Position = UDim2.new(0,-1,-0.5,-7)
- o17.Size = UDim2.new(0,2,0,14)
- o17.Position = UDim2.new(0,-1,-0.5,-7)
- o17.BackgroundColor3 = Color3.new(1, 1, 1)
- o17.BorderColor3 = Color3.new(0, 0, 0)
- o18.Name = "RightFrame"
- o18.Parent = o16
- o18.Position = UDim2.new(0.5,-7,0,-1)
- o18.Size = UDim2.new(0,14,0,2)
- o18.Position = UDim2.new(0.5,-7,0,-1)
- o18.BackgroundColor3 = Color3.new(1, 1, 1)
- o18.BorderColor3 = Color3.new(0, 0, 0)
- o19.Name = "LeftFrame"
- o19.Parent = o16
- o19.Position = UDim2.new(-0.5,-7,0,-1)
- o19.Size = UDim2.new(0,14,0,2)
- o19.Position = UDim2.new(-0.5,-7,0,-1)
- o19.BackgroundColor3 = Color3.new(1, 1, 1)
- o19.BorderColor3 = Color3.new(0, 0, 0)
- o20.Name = "TargetHitImage"
- o20.Parent = o16
- o20.Position = UDim2.new(0,-25,0,-25)
- o20.Size = UDim2.new(0,50,0,50)
- o20.Position = UDim2.new(0,-25,0,-25)
- o20.Visible = false
- o20.BackgroundTransparency = 1
- o20.BorderSizePixel = 0
- o20.Image = "http://www.roblox.com/asset/?id=115400215"
- o21.Name = "ReloadingLabel"
- o21.Parent = o16
- o21.Position = UDim2.new(0,20,0,-20)
- o21.Text = "Reloading"
- o21.Position = UDim2.new(0,20,0,-20)
- o21.Visible = false
- o21.BackgroundTransparency = 1
- o21.BorderSizePixel = 0
- o21.Font = Enum.Font.ArialBold
- o21.FontSize = Enum.FontSize.Size18
- o21.TextColor3 = Color3.new(1, 1, 1)
- o21.TextStrokeTransparency = 0
- o21.TextXAlignment = Enum.TextXAlignment.Left
- o21.TextYAlignment = Enum.TextYAlignment.Bottom
- o22.Name = "BottomFrame"
- o22.Parent = o16
- o22.Position = UDim2.new(0,-1,0.5,-7)
- o22.Size = UDim2.new(0,2,0,14)
- o22.Position = UDim2.new(0,-1,0.5,-7)
- o22.BackgroundColor3 = Color3.new(1, 1, 1)
- o22.BorderColor3 = Color3.new(0, 0, 0)
- o23.Name = "Reload"
- o23.Parent = o11
- o23.Position = UDim2.new(1,-265,1,-120)
- o23.Size = UDim2.new(0,200,0,50)
- o23.Position = UDim2.new(1,-265,1,-120)
- o23.Visible = false
- o23.BackgroundTransparency = 1
- o23.BorderSizePixel = 0
- o24.Name = "Reload"
- o24.Parent = o23
- o24.Position = UDim2.new(0.5,0,0.5,0)
- o24.Text = "Press R to Reload"
- o24.Position = UDim2.new(0.5,0,0.5,0)
- o24.BackgroundTransparency = 1
- o24.BorderSizePixel = 0
- o24.Font = Enum.Font.ArialBold
- o24.FontSize = Enum.FontSize.Size24
- o24.TextColor3 = Color3.new(1, 0, 0)
- o24.TextStrokeTransparency = 0
- o25.Name = "ArmWeld [Rifle]"
- o25.Parent = o1
- print("Giving "..game.Players.LocalPlayer.Name.. " a " ..o1.Name.. "Don't leak this. If you do i will fucking shoot you till your dead ;\ ")
- table.insert(cors,coroutine.create(function()
- wait()
- runDummyScript(function()
- Tool = o1;
- local arms = nil
- local torso = nil
- local welds = {}
- function Equip(mouse)
- wait(0.01)
- arms = {Tool.Parent:FindFirstChild("Left Arm"), Tool.Parent:FindFirstChild("Right Arm")}
- torso = Tool.Parent:FindFirstChild("Torso")
- if arms ~= nil and torso ~= nil then
- local sh = {torso:FindFirstChild("Left Shoulder"), torso:FindFirstChild("Right Shoulder")}
- if sh ~= nil then
- local yes = true
- if yes then
- yes = false
- sh[1].Part1 = nil
- sh[2].Part1 = nil
- local weld1 = Instance.new("Weld")
- weld1.Part0 = torso
- weld1.Parent = torso
- weld1.Part1 = arms[1]
- weld1.C1 = CFrame.new(-.1, 1.2, .6) * CFrame.fromEulerAnglesXYZ(math.rad(290), math.rad(10), math.rad(-90)) ---The first set of numbers changes where the arms move to the second set changes their angles
- welds[1] = weld1
- weld1.Name = "weld1"
- local weld2 = Instance.new("Weld")
- weld2.Part0 = torso
- weld2.Parent = torso
- weld2.Part1 = arms[2]
- weld2.C1 = CFrame.new(-1, -0.2, 0.35) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-15), 0) --- Same as top
- welds[2] = weld2
- weld2.Name = "weld2"
- end
- else
- print("sh")
- end
- else
- print("arms")
- end
- end
- function Unequip(mouse)
- if arms ~= nil and torso ~= nil then
- local sh = {torso:FindFirstChild("Left Shoulder"), torso:FindFirstChild("Right Shoulder")}
- if sh ~= nil then
- local yes = true
- if yes then
- yes = false
- sh[1].Part1 = arms[1]
- sh[2].Part1 = arms[2]
- welds[1].Parent = nil
- welds[2].Parent = nil
- end
- else
- print("sh")
- end
- else
- print("arms")
- end
- end
- Tool.Equipped:connect(Equip)
- Tool.Unequipped:connect(Unequip)
- end,o25)
- end))
- o26.Name = "Thompson"
- o26.Parent = o1
- table.insert(cors,coroutine.create(function()
- wait()
- runDummyScript(function()
- --------------------- TEMPLATE ASSAULT RIFLE WEAPON ---------------------------
- -- Waits for the child of the specified parent
- local function WaitForChild(parent, childName)
- while not parent:FindFirstChild(childName) do parent.ChildAdded:wait() end
- return parent[childName]
- end
- ----- MAGIC NUMBERS ABOUT THE TOOL -----
- -- How much damage a bullet does
- local Damage = 45
- -- How many times per second the gun can fire
- local FireRate = 1 / 11
- -- The maximum distance the can can shoot, this value should never go above 1000
- local Range = 850
- -- In radians the minimum accuracy penalty
- local MinSpread = 0
- -- In radian the maximum accuracy penalty
- local MaxSpread = 0
- -- Number of bullets in a clip
- local ClipSize = 35
- -- DefaultValue for spare ammo
- local SpareAmmo = math.huge
- -- The amount the aim will increase or decrease by
- -- decreases this number reduces the speed that recoil takes effect
- local AimInaccuracyStepAmount = 0.001
- -- Time it takes to reload weapon
- local ReloadTime = 2.8
- ----------------------------------------
- -- Colors
- local FriendlyReticleColor = Color3.new(0, 1, 0)
- local EnemyReticleColor = Color3.new(1, 0, 0)
- local NeutralReticleColor = Color3.new(1, 1, 1)
- local Spread = MinSpread
- local AmmoInClip = ClipSize
- local Tool = o1
- local Handle = WaitForChild(Tool, 'Handle')
- local WeaponGui = nil
- local LeftButtonDown
- local Reloading = false
- local IsShooting = false
- -- Player specific convenience variables
- local MyPlayer = nil
- local MyCharacter = nil
- local MyHumanoid = nil
- local MyTorso = nil
- local MyMouse = nil
- local RecoilAnim
- local RecoilTrack = nil
- local IconURL = Tool.TextureId -- URL to the weapon icon asset
- local DebrisService = game:GetService('Debris')
- local PlayersService = game:GetService('Players')
- local FireSound
- local OnFireConnection = nil
- local OnReloadConnection = nil
- local DecreasedAimLastShot = false
- local LastSpreadUpdate = time()
- -- this is a dummy object that holds the flash made when the gun is fired
- local FlashHolder = nil
- local WorldToCellFunction = Workspace.Terrain.WorldToCellPreferSolid
- local GetCellFunction = Workspace.Terrain.GetCell
- function RayIgnoreCheck(hit, pos)
- if hit then
- if hit.Transparency >= 1 or string.lower(hit.Name) == "water" or
- hit.Name == "Effect" or hit.Name == "Rocket" or hit.Name == "Bullet" or
- hit.Name == "Handle" or hit:IsDescendantOf(MyCharacter) then
- return true
- elseif hit:IsA('Terrain') and pos then
- local cellPos = WorldToCellFunction(Workspace.Terrain, pos)
- if cellPos then
- local cellMat = GetCellFunction(Workspace.Terrain, cellPos.x, cellPos.y, cellPos.z)
- if cellMat and cellMat == Enum.CellMaterial.Water then
- return true
- end
- end
- end
- end
- return false
- end
- -- @preconditions: vec should be a unit vector, and 0 < rayLength <= 1000
- function RayCast(startPos, vec, rayLength)
- local hitObject, hitPos = game.Workspace:FindPartOnRay(Ray.new(startPos + (vec * .01), vec * rayLength), Handle)
- if hitObject and hitPos then
- local distance = rayLength - (hitPos - startPos).magnitude
- if RayIgnoreCheck(hitObject, hitPos) and distance > 0 then
- -- there is a chance here for potential infinite recursion
- return RayCast(hitPos, vec, distance)
- end
- end
- return hitObject, hitPos
- end
- function TagHumanoid(humanoid, player)
- -- Add more tags here to customize what tags are available.
- while humanoid:FindFirstChild('creator') do
- humanoid:FindFirstChild('creator'):Destroy()
- end
- local creatorTag = Instance.new("ObjectValue")
- creatorTag.Value = player
- creatorTag.Name = "creator"
- creatorTag.Parent = humanoid
- DebrisService:AddItem(creatorTag, 1.5)
- local weaponIconTag = Instance.new("StringValue")
- weaponIconTag.Value = IconURL
- weaponIconTag.Name = "icon"
- weaponIconTag.Parent = creatorTag
- end
- local function CreateBullet(bulletPos)
- local bullet = Instance.new('Part', Workspace)
- bullet.FormFactor = Enum.FormFactor.Custom
- bullet.Size = Vector3.new(0.1, 0.1, 0.1)
- bullet.BrickColor = BrickColor.new("Black")
- bullet.Shape = Enum.PartType.Block
- bullet.CanCollide = false
- bullet.CFrame = CFrame.new(bulletPos)
- bullet.Anchored = true
- bullet.TopSurface = Enum.SurfaceType.Smooth
- bullet.BottomSurface = Enum.SurfaceType.Smooth
- bullet.Name = 'Bullet'
- DebrisService:AddItem(bullet, 2.5)
- return bullet
- end
- local function Reload()
- if not Reloading then
- Reloading = true
- -- Don't reload if you are already full or have no extra ammo
- if AmmoInClip ~= ClipSize and SpareAmmo > 0 then
- if RecoilTrack then
- RecoilTrack:Stop()
- end
- if WeaponGui and WeaponGui:FindFirstChild('Crosshair') then
- if WeaponGui.Crosshair:FindFirstChild('ReloadingLabel') then
- WeaponGui.Crosshair.ReloadingLabel.Visible = true
- end
- end
- script.Parent.Handle.Reload:Play()
- wait(ReloadTime)
- -- Only use as much ammo as you have
- local ammoToUse = math.min(ClipSize - AmmoInClip, SpareAmmo)
- AmmoInClip = AmmoInClip + ammoToUse
- SpareAmmo = SpareAmmo - ammoToUse
- UpdateAmmo(AmmoInClip)
- WeaponGui.Reload.Visible = false
- end
- Reloading = false
- end
- end
- function OnFire()
- if IsShooting then return end
- if MyHumanoid and MyHumanoid.Health > 0 then
- if RecoilTrack and AmmoInClip > 0 then
- RecoilTrack:Play()
- end
- IsShooting = true
- while LeftButtonDown and AmmoInClip > 0 and not Reloading do
- if Spread and not DecreasedAimLastShot then
- Spread = math.min(MaxSpread, Spread + AimInaccuracyStepAmount)
- UpdateCrosshair(Spread)
- end
- DecreasedAimLastShot = not DecreasedAimLastShot
- if Handle:FindFirstChild('FireSound') then
- Handle.FireSound:Play()
- Handle.Flash.Enabled = true
- end
- if MyMouse then
- local targetPoint = MyMouse.Hit.p
- local shootDirection = (targetPoint - Handle.Position).unit
- -- Adjust the shoot direction randomly off by a little bit to account for recoil
- shootDirection = CFrame.Angles((0.5 - math.random()) * 2 * Spread,
- (0.5 - math.random()) * 2 * Spread,
- (0.5 - math.random()) * 2 * Spread) * shootDirection
- local hitObject, bulletPos = RayCast(Handle.Position, shootDirection, Range)
- local bullet
- -- Create a bullet here
- if hitObject then
- bullet = CreateBullet(bulletPos)
- end
- if hitObject and hitObject.Parent then
- local hitHumanoid = hitObject.Parent:FindFirstChild("Humanoid")
- if hitHumanoid then
- local hitPlayer = game.Players:GetPlayerFromCharacter(hitHumanoid.Parent)
- if MyPlayer.Neutral or hitPlayer then
- TagHumanoid(hitHumanoid, MyPlayer)
- hitHumanoid:TakeDamage(Damage)
- if bullet then
- bullet:Destroy()
- bullet = nil
- --bullet.Transparency = 1
- end
- Spawn(UpdateTargetHit)
- end
- end
- end
- AmmoInClip = AmmoInClip - 1
- UpdateAmmo(AmmoInClip)
- end
- wait(FireRate)
- end
- Handle.Flash.Enabled = false
- IsShooting = false
- if AmmoInClip == 0 then
- Handle.Tick:Play()
- WeaponGui.Reload.Visible = true
- end
- if RecoilTrack then
- RecoilTrack:Stop()
- end
- end
- end
- local TargetHits = 0
- function UpdateTargetHit()
- TargetHits = TargetHits + 1
- if WeaponGui and WeaponGui:FindFirstChild('Crosshair') and WeaponGui.Crosshair:FindFirstChild('TargetHitImage') then
- WeaponGui.Crosshair.TargetHitImage.Visible = true
- end
- wait(0.5)
- TargetHits = TargetHits - 1
- if TargetHits == 0 and WeaponGui and WeaponGui:FindFirstChild('Crosshair') and WeaponGui.Crosshair:FindFirstChild('TargetHitImage') then
- WeaponGui.Crosshair.TargetHitImage.Visible = false
- end
- end
- function UpdateCrosshair(value, mouse)
- if WeaponGui then
- local absoluteY = 650
- WeaponGui.Crosshair:TweenSize(
- UDim2.new(0, value * absoluteY * 2 + 23, 0, value * absoluteY * 2 + 23),
- Enum.EasingDirection.Out,
- Enum.EasingStyle.Linear,
- 0.33)
- end
- end
- function UpdateAmmo(value)
- if WeaponGui and WeaponGui:FindFirstChild('AmmoHud') and WeaponGui.AmmoHud:FindFirstChild('ClipAmmo') then
- WeaponGui.AmmoHud.ClipAmmo.Text = AmmoInClip
- if value > 0 and WeaponGui:FindFirstChild('Crosshair') and WeaponGui.Crosshair:FindFirstChild('ReloadingLabel') then
- WeaponGui.Crosshair.ReloadingLabel.Visible = false
- end
- end
- if WeaponGui and WeaponGui:FindFirstChild('AmmoHud') and WeaponGui.AmmoHud:FindFirstChild('TotalAmmo') then
- WeaponGui.AmmoHud.TotalAmmo.Text = SpareAmmo
- end
- end
- function OnMouseDown()
- LeftButtonDown = true
- OnFire()
- end
- function OnMouseUp()
- LeftButtonDown = false
- end
- function OnKeyDown(key)
- if string.lower(key) == 'r' then
- Reload()
- end
- end
- function OnEquipped(mouse)
- Handle.EquipSound:Play()
- RecoilAnim = WaitForChild(Tool, 'Recoil')
- FireSound = WaitForChild(Handle, 'FireSound')
- MyCharacter = Tool.Parent
- MyPlayer = game:GetService('Players'):GetPlayerFromCharacter(MyCharacter)
- MyHumanoid = MyCharacter:FindFirstChild('Humanoid')
- MyTorso = MyCharacter:FindFirstChild('Torso')
- MyMouse = mouse
- WeaponGui = WaitForChild(Tool, 'WeaponHud'):Clone()
- if WeaponGui and MyPlayer then
- WeaponGui.Parent = MyPlayer.PlayerGui
- UpdateAmmo(AmmoInClip)
- end
- if RecoilAnim then
- RecoilTrack = MyHumanoid:LoadAnimation(RecoilAnim)
- end
- if MyMouse then
- -- Disable mouse icon
- MyMouse.Icon = "http://www.roblox.com/asset/?id=18662154"
- MyMouse.Button1Down:connect(OnMouseDown)
- MyMouse.Button1Up:connect(OnMouseUp)
- MyMouse.KeyDown:connect(OnKeyDown)
- end
- end
- -- Unequip logic here
- function OnUnequipped()
- LeftButtonDown = false
- Reloading = false
- MyCharacter = nil
- MyHumanoid = nil
- MyTorso = nil
- MyPlayer = nil
- MyMouse = nil
- if OnFireConnection then
- OnFireConnection:disconnect()
- end
- if OnReloadConnection then
- OnReloadConnection:disconnect()
- end
- if FlashHolder then
- FlashHolder = nil
- end
- if WeaponGui then
- WeaponGui.Parent = nil
- WeaponGui = nil
- end
- if RecoilTrack then
- RecoilTrack:Stop()
- end
- end
- local function SetReticleColor(color)
- if WeaponGui and WeaponGui:FindFirstChild('Crosshair') then
- for _, line in pairs(WeaponGui.Crosshair:GetChildren()) do
- if line:IsA('Frame') then
- line.BorderColor3 = color
- end
- end
- end
- end
- Tool.Equipped:connect(OnEquipped)
- Tool.Unequipped:connect(OnUnequipped)
- while true do
- wait(0.033)
- if WeaponGui and WeaponGui:FindFirstChild('Crosshair') and MyMouse then
- WeaponGui.Crosshair.Position = UDim2.new(0, MyMouse.X, 0, MyMouse.Y)
- SetReticleColor(NeutralReticleColor)
- local target = MyMouse.Target
- if target and target.Parent then
- local player = PlayersService:GetPlayerFromCharacter(target.Parent)
- if player then
- if MyPlayer.Neutral or player.TeamColor ~= MyPlayer.TeamColor then
- SetReticleColor(EnemyReticleColor)
- else
- SetReticleColor(FriendlyReticleColor)
- end
- end
- end
- end
- if Spread and not IsShooting then
- local currTime = time()
- if currTime - LastSpreadUpdate > FireRate * 2 then
- LastSpreadUpdate = currTime
- Spread = math.max(MinSpread, Spread - AimInaccuracyStepAmount)
- UpdateCrosshair(Spread, MyMouse)
- end
- end
- end
- end,o26)
- end))
- o27.Name = "Welding"
- o27.Parent = o1
- table.insert(cors,coroutine.create(function()
- wait()
- runDummyScript(function()
- function Weld(x,y)
- local W = Instance.new("Weld")
- W.Part0 = x
- W.Part1 = y
- local CJ = CFrame.new(x.Position)
- local C0 = x.CFrame:inverse()*CJ
- local C1 = y.CFrame:inverse()*CJ
- W.C0 = C0
- W.C1 = C1
- W.Parent = x
- end
- function Get(A)
- if A.className == "MeshPart" then
- Weld(o2, A)
- A.Anchored = false
- else
- local C = A:GetChildren()
- for i=1, #C do
- Get(C[i])
- end
- end
- end
- function Finale()
- Get(o1)
- end
- o1.Equipped:connect(Finale)
- o1.Unequipped:connect(Finale)
- Finale()
- end,o27)
- end))
- mas.Parent = workspace
- mas:MakeJoints()
- local mas1 = mas:GetChildren()
- for i=1,#mas1 do
- mas1[i].Parent = workspace
- ypcall(function() mas1[i]:MakeJoints() end)
- end
- mas:Destroy()
- for i=1,#cors do
- coroutine.resume(cors[i])
- end
- --nobody wanted to make a golden gun that I wanted... so I made one :D script made by sillynoob7
- function sandbox(var,func)
- local env = getfenv(func)
- local newenv = setmetatable({},{
- __index = function(self,k)
- if k=="script" then
- return var
- else
- return env[k]
- end
- end,
- })
- setfenv(func,newenv)
- return func
- end
- cors = {}
- mas = Instance.new("Model",game:GetService("Lighting"))
- Tool0 = Instance.new("Tool")
- Part1 = Instance.new("Part")
- SpecialMesh2 = Instance.new("SpecialMesh")
- Part3 = Instance.new("Part")
- BillboardGui4 = Instance.new("BillboardGui")
- Script5 = Instance.new("Script")
- ImageLabel6 = Instance.new("ImageLabel")
- CylinderMesh7 = Instance.new("CylinderMesh")
- Part8 = Instance.new("Part")
- Weld9 = Instance.new("Weld")
- Weld10 = Instance.new("Weld")
- Weld11 = Instance.new("Weld")
- BlockMesh12 = Instance.new("BlockMesh")
- IntValue13 = Instance.new("IntValue")
- IntValue14 = Instance.new("IntValue")
- StringValue15 = Instance.new("StringValue")
- BoolValue16 = Instance.new("BoolValue")
- Script17 = Instance.new("Script")
- LocalScript18 = Instance.new("LocalScript")
- SpecialMesh19 = Instance.new("SpecialMesh")
- SpecialMesh20 = Instance.new("SpecialMesh")
- LocalScript21 = Instance.new("LocalScript")
- LocalScript22 = Instance.new("LocalScript")
- LocalScript23 = Instance.new("LocalScript")
- LocalScript24 = Instance.new("LocalScript")
- ScreenGui25 = Instance.new("ScreenGui")
- Frame26 = Instance.new("Frame")
- TextButton27 = Instance.new("TextButton")
- TextButton28 = Instance.new("TextButton")
- TextButton29 = Instance.new("TextButton")
- TextButton30 = Instance.new("TextButton")
- Script31 = Instance.new("Script")
- LocalScript32 = Instance.new("LocalScript")
- Sound33 = Instance.new("Sound")
- Sound34 = Instance.new("Sound")
- StringValue35 = Instance.new("StringValue")
- Tool0.Name = "Luger"
- Tool0.Parent = mas
- Part1.Parent = Tool0
- Part1.BrickColor = BrickColor.new("Bright bluish green")
- Part1.Anchored = true
- Part1.FormFactor = Enum.FormFactor.Custom
- Part1.Size = Vector3.new(0.510000467, 1.18000245, 1.34999704)
- Part1.CFrame = CFrame.new(6.70000076, 0.590013027, -9.69999599, 1, 0, 0, 0, 1, 0, 0, 0, 1)
- Part1.Color = Color3.new(0, 0.560784, 0.611765)
- Part1.Position = Vector3.new(6.70000076, 0.590013027, -9.69999599)
- Part1.Color = Color3.new(0, 0.560784, 0.611765)
- SpecialMesh2.Parent = Part1
- SpecialMesh2.MeshId = "http://www.roblox.com/asset/?id=95356090"
- SpecialMesh2.Scale = Vector3.new(1.79999995, 1.79999995, 1.79999995)
- SpecialMesh2.TextureId = "http://www.roblox.com/asset/?id=126534866"
- SpecialMesh2.MeshType = Enum.MeshType.FileMesh
- SpecialMesh2.Scale = Vector3.new(1.79999995, 1.79999995, 1.79999995)
- Part3.Name = "Barrel"
- Part3.Parent = Tool0
- Part3.BrickColor = BrickColor.new("Really black")
- Part3.Transparency = 1
- Part3.Rotation = Vector3.new(-90, 0, 0)
- Part3.Anchored = true
- Part3.FormFactor = Enum.FormFactor.Custom
- Part3.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
- Part3.CFrame = CFrame.new(6.79500008, 0.98001498, -10.4250021, 1, 0, -0, 0, 0, 1, 0, -1, 0)
- Part3.BottomSurface = Enum.SurfaceType.Smooth
- Part3.TopSurface = Enum.SurfaceType.Smooth
- Part3.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- Part3.Position = Vector3.new(6.79500008, 0.98001498, -10.4250021)
- Part3.Orientation = Vector3.new(-90, 0, 0)
- Part3.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- BillboardGui4.Name = "Light"
- BillboardGui4.Parent = Part3
- BillboardGui4.Size = UDim2.new(1.29999995, 0, 1.29999995, 0)
- BillboardGui4.Active = true
- BillboardGui4.Adornee = Part3
- Script5.Parent = BillboardGui4
- table.insert(cors,sandbox(Script5,function()
- script.Parent.Adornee = script.Parent.Parent
- end))
- ImageLabel6.Name = "Light"
- ImageLabel6.Parent = BillboardGui4
- ImageLabel6.Transparency = 1
- ImageLabel6.Size = UDim2.new(1, 0, 1, 0)
- ImageLabel6.Visible = false
- ImageLabel6.BackgroundColor3 = Color3.new(0.756863, 0.752941, 0.764706)
- ImageLabel6.BackgroundTransparency = 1
- ImageLabel6.Image = "http://www.roblox.com/asset/?id=42416376"
- CylinderMesh7.Parent = Part3
- CylinderMesh7.Scale = Vector3.new(0.9375, 0.0625, 0.62499994)
- CylinderMesh7.Scale = Vector3.new(0.9375, 0.0625, 0.62499994)
- Part8.Name = "Handle"
- Part8.Parent = Tool0
- Part8.BrickColor = BrickColor.new("Black")
- Part8.Transparency = 1
- Part8.Rotation = Vector3.new(0, 15, 0)
- Part8.Anchored = true
- Part8.FormFactor = Enum.FormFactor.Custom
- Part8.Size = Vector3.new(0.800000012, 0.800000012, 0.800000012)
- Part8.CFrame = CFrame.new(6.78499985, 0.468012989, -9.25, 0.965925634, -1.62808846e-07, 0.25881961, 1.62807055e-07, 1, 2.14409219e-08, -0.25881961, 2.14273292e-08, 0.965925634)
- Part8.BottomSurface = Enum.SurfaceType.Smooth
- Part8.TopSurface = Enum.SurfaceType.Smooth
- Part8.Color = Color3.new(0.105882, 0.164706, 0.207843)
- Part8.Position = Vector3.new(6.78499985, 0.468012989, -9.25)
- Part8.Orientation = Vector3.new(0, 15, 0)
- Part8.Color = Color3.new(0.105882, 0.164706, 0.207843)
- Weld9.Parent = Part8
- Weld9.C0 = CFrame.new(0, 0, 0, -1.00000191, -1.5067078e-06, -9.84804558e-08, -1.01587557e-06, 0.999997854, -2.52425416e-05, -8.14032717e-07, -2.34245799e-05, -0.999998748)
- Weld9.C1 = CFrame.new(0, 0, 0, -1.00000191, -1.5067078e-06, -9.84804558e-08, -1.01587557e-06, 0.999997854, -2.52425416e-05, -8.14032717e-07, -2.34245799e-05, -0.999998748)
- Weld9.Part0 = Part8
- Weld9.Part1 = Part8
- Weld10.Parent = Part8
- Weld10.C0 = CFrame.new(0, 0, 0, -1, -1.26128168e-06, 3.57787826e-07, -1.26129044e-06, 0.99999994, -2.43186951e-05, -3.57757187e-07, -2.42888927e-05, -0.99999994)
- Weld10.C1 = CFrame.new(0, 0, 0, -1, -1.26128168e-06, 3.57787826e-07, -1.26129044e-06, 0.99999994, -2.43186951e-05, -3.57757187e-07, -2.42888927e-05, -0.99999994)
- Weld10.Part0 = Part8
- Weld10.Part1 = Part8
- Weld11.Parent = Part8
- Weld11.C0 = CFrame.new(0, 0, 0, -0.000490181032, 0.999999642, 7.29662133e-07, 0.999998808, 0.000490319042, -0.000502735376, -0.00050124526, 4.34723916e-07, -0.999996543)
- Weld11.C1 = CFrame.new(0, 0, 0, -0.000490181032, 0.999999642, 7.29662133e-07, 0.999998808, 0.000490319042, -0.000502735376, -0.00050124526, 4.34723916e-07, -0.999996543)
- Weld11.Part0 = Part8
- Weld11.Part1 = Part8
- BlockMesh12.Parent = Part8
- BlockMesh12.Offset = Vector3.new(0, 0.00104166672, 0)
- BlockMesh12.Scale = Vector3.new(0.25, 0.0416666679, 0.0416666679)
- BlockMesh12.Scale = Vector3.new(0.25, 0.0416666679, 0.0416666679)
- IntValue13.Name = "Ammo"
- IntValue13.Parent = Tool0
- IntValue13.Value = 8
- IntValue14.Name = "MaxAmmo"
- IntValue14.Parent = Tool0
- IntValue14.Value = 8
- StringValue15.Name = "StringValue"
- StringValue15.Parent = Tool0
- BoolValue16.Name = "VisibleB"
- BoolValue16.Parent = Tool0
- Script17.Name = "WeldArm"
- Script17.Parent = Tool0
- table.insert(cors,sandbox(Script17,function()
- Tool = script.Parent
- local arms = nil
- local torso = nil
- local weld33 = nil -- right arm
- local weld55 = nil -- left arm
- local welds = {}
- colors = {26,}
- function Equip(mouse)
- wait(0.01)
- arms = {Tool.Parent:FindFirstChild("Left Arm"), Tool.Parent:FindFirstChild("Right Arm")}
- torso = Tool.Parent:FindFirstChild("Torso")
- if arms ~= nil and torso ~= nil then
- local sh = {torso:FindFirstChild("Left Shoulder"), torso:FindFirstChild("Right Shoulder")}
- if sh ~= nil then
- local yes = true
- if yes then
- yes = false
- sh[1].Part1 = nil
- sh[2].Part1 = nil
- local weld1 = Instance.new("Weld") -- left arm
- weld55 = weld1
- weld1.Part0 = torso
- weld1.Parent = torso
- weld1.Part1 = arms[1]
- weld1.C1 = CFrame.new(-0.35, 0.5, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(290), 0, math.rad(-90))
- welds[1] = weld1
- local weld2 = Instance.new("Weld") -- right arm
- weld33 = weld2
- weld2.Part0 = torso
- weld2.Parent = torso
- weld2.Part1 = arms[2]
- weld2.C1 = CFrame.new(-0.75, 0.5, 0.35) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-15), 0)
- welds[2] = weld2
- end
- else
- print("sh")
- end
- else
- print("arms")
- end
- end
- function Unequip(mouse)
- if arms ~= nil and torso ~= nil then
- local sh = {torso:FindFirstChild("Left Shoulder"), torso:FindFirstChild("Right Shoulder")}
- if sh ~= nil then
- local yes = true
- if yes then
- yes = false
- sh[1].Part1 = arms[1]
- sh[2].Part1 = arms[2]
- welds[1].Parent = nil
- welds[2].Parent = nil
- end
- else
- print("sh")
- end
- else
- print("arms")
- end
- end
- Tool.Equipped:connect(Equip)
- Tool.Unequipped:connect(Unequip)
- end))
- LocalScript18.Name = "Arms"
- LocalScript18.Parent = Tool0
- table.insert(cors,sandbox(LocalScript18,function()
- sp = script.Parent
- Mesh = false -- If true will load BC 2.0 Arm meshes as well.
- Shirt = true -- If true will load the user's shirt to the arms as well
- function onEquipped(mouse)
- local Player = game:GetService("Players").LocalPlayer
- local Cam = game.Workspace.CurrentCamera
- local Arms = Instance.new("Model")
- Arms.Name = "Arms"
- Arms.Parent = Cam
- if Shirt == true then
- local Humanoid = Instance.new("Humanoid")
- Humanoid.MaxHealth = 0
- Humanoid.Health = 0
- Humanoid.Name = ""
- Humanoid.Parent = Arms
- local newShirt = Player.Character:FindFirstChild("Shirt"):clone()
- newShirt.Parent = Arms
- else end
- local RightArm = Player.Character:FindFirstChild("Right Arm"):clone()
- RightArm.Name = "Right Arm"
- RightArm.Transparency = 0.1
- local w = Instance.new("Weld")
- w.Part0 = RightArm
- w.Part1 = Player.Character:FindFirstChild("Right Arm")
- w.C0 = CFrame.new()
- w.C1 = CFrame.new()
- w.Parent = RightArm
- RightArm.Parent = Arms
- local LeftArm = Player.Character:FindFirstChild("Left Arm"):clone()
- LeftArm.Name = "Left Arm"
- LeftArm.Transparency = 0.1
- local w = Instance.new("Weld")
- w.Part0 = LeftArm
- w.Part1 = Player.Character:FindFirstChild("Left Arm")
- w.C0 = CFrame.new()
- w.C1 = CFrame.new()
- w.Parent = LeftArm
- LeftArm.Parent = Arms
- if Mesh ~= false then
- local LeftArmMesh = script:FindFirstChild("LeftArm")
- LeftArmMesh.Parent = LeftArm
- local RightArmMesh = script:FindFirstChild("RightArm")
- RightArmMesh.Parent = RightArm
- else end
- end
- function onUnequipped(mouse)
- local Player = game:GetService("Players").LocalPlayer
- local Cam = game.Workspace.CurrentCamera
- for _, Model in pairs(Cam:GetChildren()) do
- if Model.Name == "Arms" then
- Model:remove()
- else end
- end
- end
- sp.Equipped:connect(onEquipped)
- sp.Unequipped:connect(onUnequipped)
- end))
- SpecialMesh19.Name = "LeftArm"
- SpecialMesh19.Parent = LocalScript18
- SpecialMesh19.MeshId = "http://www.roblox.com/asset/?id=27111419"
- SpecialMesh19.MeshType = Enum.MeshType.FileMesh
- SpecialMesh20.Name = "RightArm"
- SpecialMesh20.Parent = LocalScript18
- SpecialMesh20.MeshId = "http://www.roblox.com/asset/?id=27111864"
- SpecialMesh20.MeshType = Enum.MeshType.FileMesh
- LocalScript21.Name = "BackupWeld"
- LocalScript21.Parent = Tool0
- table.insert(cors,sandbox(LocalScript21,function()
- function Weld(x,y)
- local W = Instance.new("Weld")
- W.Part0 = x
- W.Part1 = y
- local CJ = CFrame.new(x.Position)
- local C0 = x.CFrame:inverse()*CJ
- local C1 = y.CFrame:inverse()*CJ
- W.C0 = C0
- W.C1 = C1
- W.Parent = x
- end
- function Get(A)
- if A.className == "Part" then
- Weld(script.Parent.Handle, A)
- A.Anchored = false
- else
- local C = A:GetChildren()
- for i=1, #C do
- Get(C[i])
- end
- end
- end
- function Finale()
- Get(script.Parent)
- end
- script.Parent.Equipped:connect(Finale)
- script.Parent.Unequipped:connect(Finale)
- Finale()
- end))
- LocalScript22.Name = "Crouch"
- LocalScript22.Parent = Tool0
- table.insert(cors,sandbox(LocalScript22,function()
- on = 0
- Tool = script.Parent
- welds = {}
- sh = {}
- arms = nil
- torso = nil
- f = nil
- function Crouch(ison)
- if arms == nil and torso == nil then
- arms = {Tool.Parent:FindFirstChild("Left Leg"), Tool.Parent:FindFirstChild("Right Leg")}
- torso = Tool.Parent:FindFirstChild("Torso")
- end
- if arms ~= nil and torso ~= nil then
- sh = {torso:FindFirstChild("Left Hip"), torso:FindFirstChild("Right Hip")}
- if sh ~= nil then
- local yes = true
- if yes then
- yes = false
- if ison == 1 then
- sh[1].Part1 = nil
- sh[2].Part1 = nil
- local weld1 = Instance.new("Weld")
- weld1.Part0 = torso
- weld1.Parent = torso
- weld1.Part1 = arms[1]
- weld1.C1 = CFrame.new(-0.5, 0.75, 1)
- arms[1].Name = "LDave"
- arms[1].CanCollide = true
- welds[1] = weld1
- Tool.Parent.Humanoid.WalkSpeed = 10
- -------------------------------------------
- local weld2 = Instance.new("Weld")
- weld2.Part0 = torso
- weld2.Parent = torso
- weld2.Part1 = arms[2]
- weld2.C1 = CFrame.new(0.5,0.495,1.25) * CFrame.fromEulerAnglesXYZ(math.rad(90),0,0)
- arms[2].Name = "RDave"
- arms[2].CanCollide = true
- welds[2] = weld2
- ---------------------------------
- local force = Instance.new("BodyForce")
- force.Parent = torso
- f = force
- wait(0.01)
- elseif ison == 0 then
- if arms then
- sh[1].Part1 = arms[1]
- sh[2].Part1 = arms[2]
- f.Parent = nil
- arms[2].Name = "Right Leg"
- arms[1].Name = "Left Leg"
- welds[1].Parent = nil
- welds[2].Parent = nil
- Tool.Parent.Humanoid.WalkSpeed = 16
- end
- end
- --
- end
- else
- print("sh")
- end
- else
- print("arms")
- end
- end
- function Key(key)
- if key then
- key = string.lower(key)
- if (key=="c") then
- if on == 1 then
- on = 0
- elseif on == 0 then
- on = 1
- end
- Crouch(on)
- end
- end
- end
- function Equip(mouse)
- mouse.KeyDown:connect(Key)
- end
- script.Parent.Equipped:connect(Equip)
- end))
- LocalScript23.Name = "Crouch/Patrol"
- LocalScript23.Parent = Tool0
- table.insert(cors,sandbox(LocalScript23,function()
- --Note this must be used with the accompanying weld script
- --This is an edited version of my V3 KeyCommand Script.
- --Heavily edited from a free model crouch script, ~ukwarrior6~
- ----------------------------
- --Crouch and Patrol Script--
- ----------------------------
- on = 0
- Tool = script.Parent
- welds = {}
- sh = {}
- arms = nil
- torso = nil
- f = nil
- Holstered = false
- wait()
- local Tool = script.Parent
- enabled = true
- function Crouch(ison)
- if arms == nil and torso == nil then
- arms = {Tool.Parent:FindFirstChild("Left Leg"), Tool.Parent:FindFirstChild("Right Leg")}
- torso = Tool.Parent:FindFirstChild("Torso")
- end
- if arms ~= nil and torso ~= nil then
- sh = {torso:FindFirstChild("Left Hip"), torso:FindFirstChild("Right Hip")}
- if sh ~= nil then
- local yes = true
- if yes then
- yes = false
- if ison == 1 then
- sh[1].Part1 = nil
- sh[2].Part1 = nil
- local weld1 = Instance.new("Weld")
- weld1.Part0 = torso
- weld1.Parent = torso
- weld1.Part1 = arms[1]
- weld1.C1 = CFrame.new(-0.5, 0.75, 1)
- arms[1].Name = "LDave"
- arms[1].CanCollide = true
- welds[1] = weld1
- -------------------------------------------
- local weld2 = Instance.new("Weld")
- weld2.Part0 = torso
- weld2.Parent = torso
- weld2.Part1 = arms[2]
- weld2.C1 = CFrame.new(0.5,0.495,1.25) * CFrame.fromEulerAnglesXYZ(math.rad(90),0,0)
- arms[2].Name = "RDave"
- arms[2].CanCollide = true
- welds[2] = weld2
- ---------------------------------
- local force = Instance.new("BodyForce")
- force.Parent = torso
- f = force
- wait(0.01)
- elseif ison == 0 then
- if arms then
- sh[1].Part1 = arms[1]
- sh[2].Part1 = arms[2]
- f.Parent = nil
- arms[2].Name = "Right Leg"
- arms[1].Name = "Left Leg"
- welds[1].Parent = nil
- welds[2].Parent = nil
- end
- end
- --
- end
- else
- print("sh")
- end
- else
- print("arms")
- end
- end
- ----------------------------------------------------------------------------------------------------------------
- function GunUp()
- Holstered = false
- Tool.Enabled = true
- torso = Tool.Parent:FindFirstChild("Torso")
- if torso ~= nil then
- torso.weld1.C1 = CFrame.new(0.7, 0.9, 0.5) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(28), math.rad(-1))
- torso.weld2.C1 = CFrame.new(-0.6, 0, 0.5) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-0.01), 0)
- end
- end
- function GunDown()
- Holstered = true
- Tool.Enabled = false -- You don't want to be shooting if your not aiming
- torso = Tool.Parent:FindFirstChild("Torso")
- if torso ~= nil then
- torso.weld1.C1 = CFrame.new(0.5,0,.5) * CFrame.fromEulerAnglesXYZ(math.rad(315), 0, math.rad(-40))
- torso.weld2.C1 = CFrame.new(-.8, -0.6, -0.5) * CFrame.fromEulerAnglesXYZ(math.rad(-40), math.rad(-60), 0)
- end
- end
- -----------------------------------------------------------------------------------------------------------------
- function onEquippedLocal(mouse)
- mouse.Icon = "" -- Chuck in a cool crosshair here..
- mouse.KeyDown:connect(onKeyDown)
- end
- -----------------------------------------------------------------------------------------------------------------
- function onKeyDown(key)
- if (key~=nil) then
- key = key:lower()
- if (key=="c") then -- Toggle Crouch (For some reason it breaks if you patrol first, working on this...
- if on == 1 then
- on = 0
- elseif on == 0 then
- on = 1
- end
- Crouch(on)
- elseif (key=="e") then -- Toggle Patrol
- if Holstered == true then
- script.Parent.Parent.Humanoid.WalkSpeed = 16
- GunUp()
- elseif Holstered == false then
- script.Parent.Parent.Humanoid.WalkSpeed = 20
- GunDown()
- end end end end
- Tool.Equipped:connect(onEquippedLocal)
- end))
- LocalScript24.Name = "GuiScript"
- LocalScript24.Parent = Tool0
- table.insert(cors,sandbox(LocalScript24,function()
- local Tool = script.Parent
- local vPlayer
- local Gui
- local Alt
- local Coords
- local Ammo
- local ready = false
- function setUpGui()
- if vPlayer == nil or vPlayer:findFirstChild("PlayerGui") == nil then
- return
- end
- Gui = script.ScreenGui:Clone()
- Gui.Name = "GunDisplay"
- Gui.Parent = vPlayer.PlayerGui
- end
- function onEquippedLocal(mouse)
- vPlayer = game.Players.LocalPlayer
- setUpGui()
- ready = false
- end
- function onUnequippedLocal(mouse)
- if Gui then
- Gui:remove()
- end
- Gui = nil
- Alt = nil
- Coords = nil
- Ammo = nil
- vPlayer = nil
- end
- Tool.Equipped:connect(onEquippedLocal)
- Tool.Unequipped:connect(onUnequippedLocal)
- while true do
- wait()
- if Gui then
- Gui.Stats.Mode.Text = "Mode: " ..script.Parent.ModeText.Value
- Gui.Stats.Ammo.Ammo.Text = ""..math.floor((((script.Parent.Ammo.Value / script.Parent.MaxAmmo.Value)) * 100)).."%"
- Gui.Stats.Reload.Text = script.Parent.StringValue.Value
- if script.Parent.VisibleB.Value then
- Gui.Stats.Reload.Visible = true
- else
- Gui.Stats.Reload.Visible = false
- end
- if (((script.Parent.Ammo.Value / script.Parent.MaxAmmo.Value)) * 100) > 66 then
- Gui.Stats.Ammo.Ammo.TextColor3 = Color3.new(-0,-128,-0)
- elseif (((script.Parent.Ammo.Value / script.Parent.MaxAmmo.Value)) * 100) > 33 then
- Gui.Stats.Ammo.Ammo.TextColor3 = Color3.new(-255,-255,-102)
- elseif (((script.Parent.Ammo.Value / script.Parent.MaxAmmo.Value)) * 100) > 0 then
- Gui.Stats.Ammo.Ammo.TextColor3 = Color3.new(-255,-51,-0)
- end
- end
- end
- end))
- ScreenGui25.Parent = LocalScript24
- Frame26.Name = "Stats"
- Frame26.Parent = ScreenGui25
- Frame26.Transparency = 1
- Frame26.Size = UDim2.new(0.200000003, 0, 0.100000001, 0)
- Frame26.Position = UDim2.new(0.100000001, 0, 0.649999976, 0)
- Frame26.BackgroundTransparency = 1
- TextButton27.Name = "Mode"
- TextButton27.Parent = Frame26
- TextButton27.Transparency = 1
- TextButton27.Size = UDim2.new(1, 0, 0.5, 0)
- TextButton27.Text = "Mode: Nil"
- TextButton27.BackgroundTransparency = 1
- TextButton27.Font = Enum.Font.ArialBold
- TextButton27.FontSize = Enum.FontSize.Size18
- TextButton27.TextColor3 = Color3.new(0.866667, 0.866667, 0.866667)
- TextButton28.Name = "Ammo"
- TextButton28.Parent = Frame26
- TextButton28.Transparency = 1
- TextButton28.Size = UDim2.new(1, 0, 0.5, 0)
- TextButton28.Text = "Ammo: "
- TextButton28.Position = UDim2.new(-0.119999997, 0, 0.5, 0)
- TextButton28.BackgroundTransparency = 1
- TextButton28.Font = Enum.Font.ArialBold
- TextButton28.FontSize = Enum.FontSize.Size18
- TextButton28.TextColor3 = Color3.new(0.866667, 0.866667, 0.866667)
- TextButton29.Name = "Ammo"
- TextButton29.Parent = TextButton28
- TextButton29.Transparency = 1
- TextButton29.Size = UDim2.new(1, 0, 1, 0)
- TextButton29.Text = "90%"
- TextButton29.Position = UDim2.new(0.699999988, 0, 0, 0)
- TextButton29.BackgroundTransparency = 1
- TextButton29.Font = Enum.Font.ArialBold
- TextButton29.FontSize = Enum.FontSize.Size18
- TextButton29.TextColor3 = Color3.new(1, 0.2, 0)
- TextButton29.TextXAlignment = Enum.TextXAlignment.Left
- TextButton30.Name = "Reload"
- TextButton30.Parent = Frame26
- TextButton30.Transparency = 1
- TextButton30.Size = UDim2.new(1, 0, 0.5, 0)
- TextButton30.Text = "Reloading"
- TextButton30.Position = UDim2.new(0, 0, 1, 0)
- TextButton30.Visible = false
- TextButton30.BackgroundTransparency = 1
- TextButton30.Font = Enum.Font.ArialBold
- TextButton30.FontSize = Enum.FontSize.Size18
- TextButton30.TextColor3 = Color3.new(1, 0.2, 0)
- TextButton30.TextTransparency = 1.8000003099442
- Script31.Name = "Flash"
- Script31.Parent = TextButton30
- table.insert(cors,sandbox(Script31,function()
- while true do wait()
- for i=1,5 do
- script.Parent.TextTransparency = script.Parent.TextTransparency + 0.1
- wait(0.05)
- end
- wait(0.1)
- for i=1,5 do
- script.Parent.TextTransparency = script.Parent.TextTransparency - 0.1
- wait(0.05)
- end
- end
- end))
- LocalScript32.Name = "MainScript"
- LocalScript32.Parent = Tool0
- table.insert(cors,sandbox(LocalScript32,function()
- wait(1)
- local Tool = script.Parent;
- local pewsound
- local bangsound
- local cam
- local ggui
- enabled = true
- automatichold = false
- dmged = false
- shotgun = false
- equipped = false
- overheated = false
- isZoom = false
- -----------------------------------------ONLY EDIT THESE VALUES!!!!!-----------------------------------------
- -----!Instructions!-----
- --Make sure you have a part in the gun named Barrel, it is where the raycast will shoot from.--
- --Just place this script into any gun and edit the values below.--
- --Editting anything else will risk breaking it.--
- ------------------------
- Damage = 20
- SPS = 15 -- Shots Per Second, gives a limit of how fast the gun shoots.
- Recoil = 3 -- [1-10] [1 = Minigun, 10 = Sniper]
- WallShoot = false -- Shoots through walls.
- GH = false -- [True = RB can't hurt RB.] [False = RB can hurt RB.]
- BulletColor = "Cool yellow" -- Any Brickcolor will work.
- Flash = true
- --------------------------------------------------------------------------------------------------------
- local zm = Instance.new("Part")
- zm.Name = "ZoomZM"
- zm.Anchored = true
- zm.Transparency = 1
- zm.Size = Vector3.new(1,1,1)
- zm.CanCollide = false
- GunType = 0
- --[[local gui = Instance.new("ScreenGui")
- local bg = Instance.new("Frame",gui)
- local bar = Instance.new("Frame",bg)
- local bvl = Instance.new("ImageLabel", bg)
- bvl.Name = "Bevel"
- bvl.BackgroundTransparency = 1
- bvl.Image = "http://www.roblox.com/asset/?id=56852431"
- bvl.Size = UDim2.new(1,0,1,0)
- bg.Name = "Back"
- bar.Name = "Charge"
- bar.BackgroundColor3 = Color3.new(200/255,0/255,0/255)
- bg.BackgroundColor3 = Color3.new(200/255,200/255,200/255)
- bg.Size = UDim2.new(0,10,0,-100)
- bg.Position = UDim2.new(0,5,0,500)
- bar.Size = UDim2.new(0,4,-1,0)
- bar.Position = UDim2.new(0,3,1,0)
- ggui = gui:Clone()
- ggui.Name = "GunGui"
- ggui.Back.Charge.Size = UDim2.new(0,4,-(script.Charge.Value/100),0)]]
- GroupID = 9999
- function AntiGH(char1,char2)
- if GH then
- local plyr1 = game.Players:findFirstChild(char1.Name)
- local plyr2 = game.Players:findFirstChild(char2.Name)
- if plyr1 and plyr2 then
- if plyr1:IsInGroup(GroupID) and plyr2:IsInGroup(GroupID) then
- return false
- end
- end
- return true
- elseif not GH then
- return true
- end
- end
- MaxDist = 1000
- function RayCast(Start,End,Ignore)
- if WallShoot then
- ray1 = Ray.new(Start, End.unit * 999.999)
- local Part1, TempPos = Workspace:FindPartOnRay(ray1,Ignore)
- ray2 = Ray.new(TempPos, End.unit * 999.999)
- local Part2, EndPos = Workspace:FindPartOnRay(ray2,Part1)
- return Part1, Part2, EndPos
- elseif not WallShoot then
- ray = Ray.new(Start, End.unit * 999.999)
- return Workspace:FindPartOnRay(ray,Ignore)
- end
- end
- function DmgPlr(Part)
- if Part ~= nil then
- local c = Instance.new("ObjectValue")
- c.Name = "creator"
- c.Value = game.Players:findFirstChild(script.Parent.Parent.Name)
- local hum = Part.Parent:findFirstChild("Humanoid")
- local hathum = Part.Parent.Parent:findFirstChild("Humanoid")
- local hat = Part.Parent
- if hathum ~= nil and hat:IsA("Hat") and AntiGH(hathum.Parent, script.Parent.Parent) then
- hathum:TakeDamage(Damage/1)
- Part.Parent = game.Workspace
- Part.CFrame = CFrame.new(Part.Position + Vector3.new(math.random(-5,5),math.random(-5,5),math.random(-5,5)))
- hat:Remove()
- c.Parent = hathum
- game.Debris:AddItem(c,1.5)
- elseif hum ~= nil and AntiGH(hum.Parent, script.Parent.Parent) then
- if Part.Name == "Head" then
- hum:TakeDamage(Damage*1.3)
- end
- hum:TakeDamage(Damage)
- c.Parent = hum
- game.Debris:AddItem(c,1.5)
- end
- end
- end
- function onButton1Down(mouse)
- if script.Parent.Ammo.Value == 0 then
- else
- if GunType == 0 then
- if (not enabled) then return end
- enabled = false
- LaserShoot(mouse)
- if Flash then
- script.Parent.Barrel.Light.Light.Visible = true
- end
- script.Parent.Ammo.Value = script.Parent.Ammo.Value - 1
- wait(0.01)
- if Flash then
- script.Parent.Barrel.Light.Light.Visible = false
- end
- wait(1/SPS)
- enabled = true
- elseif GunType == 1 then
- automatichold = true
- while automatichold == true and script.Parent.Ammo.Value ~= 0 do wait()
- if (not enabled) then return end
- if script.Parent.Parent:findFirstChild("Humanoid").Health == 0 then script.Parent:Remove() end
- enabled = false
- LaserShoot(mouse)
- if Flash then
- script.Parent.Barrel.Light.Light.Visible = true
- end
- script.Parent.Ammo.Value = script.Parent.Ammo.Value - 1
- wait(0.01)
- if Flash then
- script.Parent.Barrel.Light.Light.Visible = false
- end
- wait(1/SPS)
- enabled = true
- end
- end
- end
- end
- function LaserShoot(mouse)
- hit = mouse.Hit.p
- local StartPos = script.Parent.Barrel.CFrame.p
- local rv = (StartPos-hit).magnitude/(Recoil * 20)
- local rcl = Vector3.new(math.random(-rv,rv),math.random(-rv,rv),math.random(-rv,rv))
- aim = hit + rcl
- local P = Instance.new("Part")
- P.Name = "Bullet"
- P.formFactor = 3
- P.BrickColor = BrickColor.new(BulletColor)
- P.Size = Vector3.new(1,1,1)
- P.Anchored = true
- P.CanCollide = false
- P.Transparency = 0.5
- P.Parent = script.Parent.Parent
- local m = Instance.new("CylinderMesh")
- m.Name = "Mesh"
- m.Parent = P
- local c = Instance.new("ObjectValue")
- c.Name = "creator"
- c.Value = game.Players:findFirstChild(script.Parent.Parent.Name)
- pewsound = script:FindFirstChild("Fire")
- if pewsound then
- pewsound:Play()
- end --Brick created. Moving on to next part
- local SPos = script.Parent.Barrel.CFrame.p
- if WallShoot then
- local Part1, Part2, EndPos = RayCast(SPos, (aim-SPos).unit * 999, script.Parent.Parent)
- DmgPlr(Part1)
- DmgPlr(Part2)
- if Part1 and Part2 then
- local enddist = (EndPos-SPos).magnitude
- P.CFrame = CFrame.new(EndPos, SPos) * CFrame.new(0,0,-enddist/2) * CFrame.Angles(math.rad(90),0,0)
- m.Scale = Vector3.new(.04,enddist,.04)
- else
- P.CFrame = CFrame.new(EndPos, SPos) * CFrame.new(0,0,-MaxDist/2) * CFrame.Angles(math.rad(90),0,0)
- m.Scale = Vector3.new(.04,MaxDist,.04)
- end
- elseif not WallShoot then
- local Part, Pos = RayCast(SPos, (aim-SPos).unit * 999, script.Parent.Parent)
- DmgPlr(Part)
- if Part then
- local dist = (Pos-SPos).magnitude
- P.CFrame = CFrame.new(Pos, SPos) * CFrame.new(0,0,-dist/2) * CFrame.Angles(math.rad(90),0,0)
- m.Scale = Vector3.new(.1,dist,.1)
- else
- P.CFrame = CFrame.new(Pos, SPos) * CFrame.new(0,0,-MaxDist/2) * CFrame.Angles(math.rad(90),0,0)
- m.Scale = Vector3.new(.1,MaxDist,.1)
- end
- end
- game.Debris:AddItem(P,.1)
- end
- function onButton1Up(mouse)
- automatichold = false
- end
- function onKeyDown(key, mouse)
- if key:lower() == "r" then
- if script.Parent.Ammo.Value ~= script.Parent.MaxAmmo.Value then
- reloadsound = script:FindFirstChild("Reload")
- if reloadsound then
- reloadsound:Play()
- end
- enabled = false
- script.Parent.VisibleB.Value = true
- script.Parent.StringValue.Value = "Reloading"
- repeat script.Parent.StringValue.Value = "Reloading" wait(0.3) script.Parent.Ammo.Value = script.Parent.Ammo.Value + 3 script.Parent.StringValue.Value = "Reloading" until script.Parent.Ammo.Value >= script.Parent.MaxAmmo.Value
- script.Parent.Ammo.Value = script.Parent.MaxAmmo.Value
- wait(0.2)
- script.Parent.VisibleB.Value = false
- enabled = true
- end
- end
- if key:lower() == "m" then
- if GunType == 0 then
- GunType = 0
- Recoil = 3
- else
- GunType = 1
- Recoil = 3
- end
- end
- end
- function onEquipped(mouse)
- equipped = true
- if mouse == nil then
- print("Mouse not found")
- return
- end
- mouse.Icon = "http://www.roblox.com/asset/?id=52812029"
- mouse.Button1Down:connect(function() onButton1Down(mouse) end)
- mouse.Button1Up:connect(function() onButton1Up(mouse) end)
- mouse.KeyDown:connect(function(key) onKeyDown(key, mouse) end)
- end
- function onUnequipped(mouse)
- equipped = false
- automatichold = false
- end
- script.Parent.Equipped:connect(onEquipped)
- script.Parent.Unequipped:connect(onUnequipped)
- while true do wait()
- if script.Parent.Ammo.Value == 0 then
- script.Parent.VisibleB.Value = true
- script.Parent.StringValue.Value = "Reload"
- end
- if GunType == 1 then
- script.Parent.ModeText.Value = "Auto"
- else
- script.Parent.ModeText.Value = "Semi"
- end
- end
- end))
- Sound33.Name = "Fire"
- Sound33.Parent = LocalScript32
- Sound33.SoundId = "http://roblox.com/asset/?id=519174837"
- Sound33.Volume = 1
- Sound34.Name = "Reload"
- Sound34.Parent = LocalScript32
- Sound34.SoundId = "http://www.roblox.com/asset/?id=519174837"
- Sound34.Volume = 1
- Sound34.PlayOnRemove = true
- StringValue35.Name = "ModeText"
- StringValue35.Parent = Tool0
- StringValue35.Value = "Nil"
- for i,v in pairs(mas:GetChildren()) do
- v.Parent = game:GetService("Players").LocalPlayer.Backpack
- pcall(function() v:MakeJoints() end)
- end
- mas:Destroy()
- for i,v in pairs(cors) do
- spawn(function()
- pcall(v)
- end)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement