SHOW:
|
|
- or go back to the newest paste.
| 1 | - | --- // FlintLock // --- |
| 1 | + | --- // Animations // --- |
| 2 | - | -- // By fo43123 |
| 2 | + | -- // By XqDIOpX |
| 3 | ||
| 4 | - | script.Name = 'Flintlock Script for Gay PeopLe' |
| 4 | + | if game:GetService("RunService"):IsClient()then error("Please run as a server script. Use h/ instead of hl/.")end;print("FE Compatibility: by WaverlyCole");InternalData = {}
|
| 5 | do | |
| 6 | script.Parent = owner.Character | |
| 7 | local Event = Instance.new("RemoteEvent");Event.Name = "UserInput"
| |
| 8 | local function NewFakeEvent() | |
| 9 | local Bind = Instance.new("BindableEvent")
| |
| 10 | local Fake;Fake = {Connections = {},
| |
| 11 | fakeEvent=true; | |
| 12 | Connect=function(self,Func) | |
| 13 | Bind.Event:connect(Func) | |
| 14 | self.Connections[Bind] = true | |
| 15 | return setmetatable({Connected = true},{
| |
| 16 | __index = function (self,Index) | |
| 17 | if Index:lower() == "disconnect" then | |
| 18 | return function() Fake.Connections[Bind] = false;self.Connected = false end | |
| 19 | end | |
| 20 | return Fake[Index] | |
| 21 | end; | |
| 22 | __tostring = function() return "Connection" end; | |
| 23 | }) | |
| 24 | end} | |
| 25 | Fake.connect = Fake.Connect;return Fake; | |
| 26 | end | |
| 27 | local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()}
| |
| 28 | local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()}
| |
| 29 | local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
| |
| 30 | self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
| |
| 31 | end};ContextActionService.UnBindAction = ContextActionService.BindAction | |
| 32 | local function TriggerEvent(self,Event,...) | |
| 33 | local Trigger = Mouse[Event] | |
| 34 | if Trigger and Trigger.fakeEvent and Trigger.Connections then | |
| 35 | for Connection,Active in pairs(Trigger.Connections) do if Active then Connection:Fire(...) end end | |
| 36 | end | |
| 37 | end | |
| 38 | Mouse.TrigEvent = TriggerEvent;UserInputService.TrigEvent = TriggerEvent | |
| 39 | Event.OnServerEvent:Connect(function(FiredBy,Input) | |
| 40 | if FiredBy.Name ~= owner.Name then return end | |
| 41 | if Input.MouseEvent then | |
| 42 | Mouse.Target = Input.Target;Mouse.Hit = Input.Hit | |
| 43 | else | |
| 44 | local Begin = Input.UserInputState == Enum.UserInputState.Begin | |
| 45 | if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up") end | |
| 46 | for _,Action in pairs(ContextActionService.Actions) do | |
| 47 | for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end | |
| 48 | end | |
| 49 | - | print([[ |
| 49 | + | Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower()) |
| 50 | - | -- // Moves // -- |
| 50 | + | UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false) |
| 51 | - | |
| 51 | + | |
| 52 | - | LMB - Flintlock Shoot |
| 52 | + | |
| 53 | - | |
| 53 | + | InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService |
| 54 | - | ]]) |
| 54 | + | Event.Parent = NLS([[ |
| 55 | local Player = owner;local Event = script:WaitForChild("UserInput");local UserInputService = game:GetService("UserInputService");local Mouse = Player:GetMouse()
| |
| 56 | local Input = function(Input,gameProcessedEvent) | |
| 57 | if gameProcessedEvent then return end | |
| 58 | Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
| |
| 59 | end | |
| 60 | UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input) | |
| 61 | local Hit,Target | |
| 62 | while wait(1/30) do | |
| 63 | if Hit ~= Mouse.Hit or Target ~= Mouse.Target then | |
| 64 | Hit,Target = Mouse.Hit,Mouse.Target;Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
| |
| 65 | end | |
| 66 | end | |
| 67 | ]],owner.Character) | |
| 68 | end | |
| 69 | RealGame = game;game = setmetatable({},{
| |
| 70 | __index = function (self,Index) | |
| 71 | local Sandbox = function (Thing) | |
| 72 | if Thing:IsA("Player") then
| |
| 73 | local RealPlayer = Thing | |
| 74 | return setmetatable({},{
| |
| 75 | __index = function (self,Index) | |
| 76 | local Type = type(RealPlayer[Index]) | |
| 77 | if Type == "function" then | |
| 78 | if Index:lower() == "getmouse" or Index:lower() == "mouse" then | |
| 79 | return function (self)return InternalData["Mouse"] end | |
| 80 | end | |
| 81 | return function (self,...)return RealPlayer[Index](RealPlayer,...) end | |
| 82 | end | |
| 83 | return RealPlayer[Index] | |
| 84 | end; | |
| 85 | __tostring = function(self) return RealPlayer.Name end | |
| 86 | }) | |
| 87 | end | |
| 88 | end | |
| 89 | if RealGame[Index] then | |
| 90 | local Type = type(RealGame[Index]) | |
| 91 | if Type == "function" then | |
| 92 | if Index:lower() == "getservice" or Index:lower() == "service" then | |
| 93 | return function (self,Service) | |
| 94 | local FakeServices = {
| |
| 95 | ["players"] = function() | |
| 96 | return setmetatable({},{
| |
| 97 | __index = function (self2,Index2) | |
| 98 | local RealService = RealGame:GetService(Service) | |
| 99 | local Type2 = type(Index2) | |
| 100 | if Type2 == "function" then | |
| 101 | return function (self,...) return RealService[Index2](RealService,...)end | |
| 102 | else | |
| 103 | if Index2:lower() == "localplayer" then return Sandbox(owner) end | |
| 104 | return RealService[Index2] | |
| 105 | end | |
| 106 | end; | |
| 107 | __tostring = function(self) return RealGame:GetService(Service).Name end | |
| 108 | }) | |
| 109 | end; | |
| 110 | ["contextactionservice"] = function() return InternalData["ContextActionService"] end; | |
| 111 | ["userinputservice"] = function() return InternalData["UserInputService"] end; | |
| 112 | ["runservice"] = function() | |
| 113 | return setmetatable({},{
| |
| 114 | __index = function(self2,Index2) | |
| 115 | local RealService = RealGame:GetService(Service) | |
| 116 | local Type2 = type(Index2) | |
| 117 | if Type2 == "function" then | |
| 118 | return function (self,...) return RealService[Index2](RealService,...) end | |
| 119 | else | |
| 120 | local RunServices = {
| |
| 121 | ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return RealGame:GetService("RunService").Stepped:Connect(Function) end end;
| |
| 122 | ["renderstepped"] = function() return RealService["Stepped"] end | |
| 123 | } | |
| 124 | if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end | |
| 125 | return RealService[Index2] | |
| 126 | end | |
| 127 | end | |
| 128 | }) | |
| 129 | end | |
| 130 | } | |
| 131 | if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end | |
| 132 | return RealGame:GetService(Service) | |
| 133 | end | |
| 134 | end | |
| 135 | return function (self,...) return RealGame[Index](RealGame,...) end | |
| 136 | else | |
| 137 | if game:GetService(Index) then return game:GetService(Index) end | |
| 138 | return RealGame[Index] | |
| 139 | end | |
| 140 | end | |
| 141 | return nil | |
| 142 | end | |
| 143 | });Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete! Running...")
| |
| 144 | ||
| 145 | script.Name = 'Animation1' | |
| 146 | local plr = game:GetService('Players').LocalPlayer
| |
| 147 | local char = plr.Character | |
| 148 | local hum = char:FindFirstChildOfClass('Humanoid')
| |
| 149 | local ts = char:FindFirstChild('Torso')
| |
| 150 | local hd = char:FindFirstChild('Head')
| |
| 151 | local root = char:FindFirstChild('HumanoidRootPart')
| |
| 152 | local ra = char:FindFirstChild('Right Arm')
| |
| 153 | local la = char:FindFirstChild('Left Arm')
| |
| 154 | local rl = char:FindFirstChild('Right Leg')
| |
| 155 | local ll = char:FindFirstChild('Left Leg')
| |
| 156 | local rs = ts:FindFirstChild('Right Shoulder')
| |
| 157 | local ls = ts:FindFirstChild('Left Shoulder')
| |
| 158 | local rh = ts:FindFirstChild('Right Hip')
| |
| 159 | local lh = ts:FindFirstChild('Left Hip')
| |
| 160 | local nk = ts:FindFirstChild('Neck')
| |
| 161 | local rj = root:FindFirstChild('RootJoint')
| |
| 162 | local bases = workspace:FindFirstChild('Baseplate') or workspace:FindFirstChild('Base')
| |
| 163 | local hitsounds = {'264486467' ,'356551938'}
| |
| 164 | local debris = game:GetService('Debris')
| |
| 165 | local mouse = plr:GetMouse() | |
| 166 | local gun = Instance.new('Part', ra)
| |
| 167 | local cf = {n = CFrame.new, a = CFrame.Angles, euler = CFrame.fromEulerAnglesXYZ, orn = CFrame.fromOrientation}
| |
| 168 | local t = {i = table.insert, c = table.concat, r = table.remove}
| |
| 169 | local c3 = {rgb = Color3.fromRGB, n = Color3.new, hsv = Color3.fromHSV}
| |
| 170 | local str = {b = string.byte, s = string.sub, low = string.lower}
| |
| 171 | local m = {c = math.cos, s = math.sin, r = math.rad, rand = math.random, pi = math.pi, huge = math.huge, tan = math.tan}
| |
| 172 | local v = {t = Vector3.new, tw = Vector2.new}
| |
| 173 | local cam = workspace.CurrentCamera | |
| 174 | local attack = false | |
| 175 | local onsit = false | |
| 176 | local onhit = false | |
| 177 | local cananim = true | |
| 178 | local anim = nil | |
| 179 | local effects = nil | |
| 180 | local regularspeed = 16 | |
| 181 | local regularrun = regularspeed*3/2 | |
| 182 | local sine = 0 | |
| 183 | local change = 1 | |
| 184 | local animspeed = 1 | |
| 185 | local rsc0, lsc0, rhc0, lhc0, rjc0, nkc0 = rs.C0, ls.C0, rh.C0, lh.C0, rj.C0, nk.C0 | |
| 186 | local holder = Instance.new('Part', gun)
| |
| 187 | local pew = Instance.new('Sound', holder)
| |
| 188 | local asd = Instance.new('ParticleEmitter')
| |
| 189 | local gunmesh = Instance.new('SpecialMesh', gun)
| |
| 190 | ||
| 191 | gun.CanCollide = false | |
| 192 | gun.Size = v.t(0, 0, 0) | |
| 193 | gunmesh.MeshId = 'rbxassetid://443579590' | |
| 194 | gunmesh.TextureId = 'rbxassetid://443579679' | |
| 195 | gunmesh.Scale = v.t(0.05, 0.05, 0.05) | |
| 196 | holder.Transparency = 1 | |
| 197 | pew.SoundId = 'rbxassetid://846233576' | |
| 198 | pew.Volume = 1 | |
| 199 | pew.PlaybackSpeed = 0.9 | |
| 200 | holder.Size = v.t(0.1, 0.1, 0.1) | |
| 201 | holder.CanCollide = false | |
| 202 | asd.Color = ColorSequence.new(Color3.new(1, 0, 0), Color3.new(.6, 0, 0)) | |
| 203 | asd.LightEmission = .1 | |
| 204 | - | function kill(var) |
| 204 | + | |
| 205 | - | if player(var) then |
| 205 | + | |
| 206 | - | bloody(var, 2) |
| 206 | + | |
| 207 | - | local varhum = var.Parent:FindFirstChildOfClass('Humanoid')
|
| 207 | + | |
| 208 | - | sound(hitsounds[math.random(1, #hitsounds)], var, 5, 1, 0.35) |
| 208 | + | |
| 209 | - | if player(var).Parent:FindFirstChildOfClass('Humanoid').Health ~= 0 then
|
| 209 | + | |
| 210 | - | aaa = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.3 * player(var).Size.X/5 * player(var).Size.Y/5 * player(var).Size.Z/5),NumberSequenceKeypoint.new(1, 7)})
|
| 210 | + | |
| 211 | - | asd.Size = aaa |
| 211 | + | |
| 212 | - | local torso = var.Parent:FindFirstChild('Torso') or var.Parent:FindFirstChild('UpperTorso')
|
| 212 | + | |
| 213 | - | bloody(torso, 2) |
| 213 | + | |
| 214 | - | local bv = Instance.new('BodyVelocity', var)
|
| 214 | + | |
| 215 | - | bv.MaxForce = v.t(math.huge, math.huge, math.huge) |
| 215 | + | |
| 216 | - | bv.Velocity = cf.n(gun.Position, var.Position).lookVector*50 |
| 216 | + | |
| 217 | - | game.Debris:AddItem(bv, 0.1) |
| 217 | + | |
| 218 | - | wait() |
| 218 | + | |
| 219 | - | player(var).Parent:BreakJoints() |
| 219 | + | |
| 220 | ||
| 221 | function bloody(var, amount) | |
| 222 | local particle = asd:Clone() | |
| 223 | particle.Parent = var | |
| 224 | - | function shoot() |
| 224 | + | |
| 225 | - | attack = true |
| 225 | + | |
| 226 | - | cananim = false |
| 226 | + | |
| 227 | - | hum.WalkSpeed = 0 |
| 227 | + | |
| 228 | - | hum.JumpPower = 0 |
| 228 | + | |
| 229 | - | for i = 1, 3, 0.1 do |
| 229 | + | |
| 230 | - | --bg.CFrame = cf.n(root.Position, mouse.Hit.p) |
| 230 | + | |
| 231 | - | change = 0.8 |
| 231 | + | |
| 232 | - | rj.C0 = clerp(rj.C0, rjc0 * cf.a(m.r(0), m.r(0), m.r(30)) * cf.n(0, 0, 0), 0.15) |
| 232 | + | |
| 233 | - | nk.C0 = clerp(nk.C0, nkc0 * cf.a(m.r(5), m.r(0), m.r(-28)) * cf.n(0, 0, 0), 0.15) |
| 233 | + | |
| 234 | - | rs.C0 = clerp(rs.C0, rsc0 * cf.a(m.r(0), m.r(-30), m.r(90)) * cf.n(0, 0, 0), 0.15) |
| 234 | + | |
| 235 | - | ls.C0 = clerp(ls.C0, lsc0 * cf.a(m.r(-3), m.r(5), m.r(0)) * cf.n(0, 0, 0), 0.15) |
| 235 | + | |
| 236 | - | rh.C0 = clerp(rh.C0, rhc0 * cf.a(m.r(-5), m.r(-10), m.r(-1)) * cf.n(0, 0, 0), 0.15) |
| 236 | + | |
| 237 | - | lh.C0 = clerp(lh.C0, lhc0 * cf.a(m.r(0), m.r(0), m.r(0)) * cf.n(0, 0, 0), 0.15) |
| 237 | + | |
| 238 | - | swait() |
| 238 | + | |
| 239 | char.ChildRemoved:connect(function(lol) | |
| 240 | - | camshake(1, 0.33) |
| 240 | + | |
| 241 | - | local ray = Ray.new(ra.CFrame.p, (mouse.Hit.p - ra.CFrame.p).unit * 999.999) |
| 241 | + | |
| 242 | - | local part, pos = workspace:FindPartOnRay(ray, char, false, true) |
| 242 | + | |
| 243 | - | local beam = Instance.new('Part', effects)
|
| 243 | + | |
| 244 | - | local effect = Instance.new('Part', effects)
|
| 244 | + | |
| 245 | - | local boomeffect = Instance.new('Part', effects)
|
| 245 | + | |
| 246 | - | effect.Material = 'Neon' |
| 246 | + | |
| 247 | - | effect.Size = v.t(0.5, 0.5, 0.5) |
| 247 | + | |
| 248 | - | effect.CanCollide = false |
| 248 | + | |
| 249 | - | effect.Anchored = true |
| 249 | + | |
| 250 | - | effect.BrickColor = BrickColor.new('Gold')
|
| 250 | + | |
| 251 | - | boomeffect.Material = 'Neon' |
| 251 | + | |
| 252 | - | boomeffect.Size = v.t(0.75, 0.75, 0.75) |
| 252 | + | |
| 253 | - | boomeffect.CanCollide = false |
| 253 | + | |
| 254 | - | boomeffect.Anchored = true |
| 254 | + | |
| 255 | - | boomeffect.BrickColor = BrickColor.new('Gold')
|
| 255 | + | |
| 256 | - | local fakeboomeffect = boomeffect:Clone() |
| 256 | + | |
| 257 | - | fakeboomeffect.Parent = effect |
| 257 | + | |
| 258 | - | fakeboomeffect.Anchored = false |
| 258 | + | |
| 259 | - | fakeboomeffect.Transparency = 1 |
| 259 | + | |
| 260 | - | beam.CanCollide = false |
| 260 | + | |
| 261 | - | beam.Anchored = true |
| 261 | + | |
| 262 | - | beam.BrickColor = BrickColor.new('Gold')
|
| 262 | + | |
| 263 | - | beam.Material = 'Neon' |
| 263 | + | |
| 264 | - | beam.Shape = 'Block' |
| 264 | + | |
| 265 | - | pew:Play() |
| 265 | + | |
| 266 | - | boomeffect.CFrame = mouse.Hit * cf.euler(m.rand(0, 360), m.rand(0, 360), m.rand(0, 360)) |
| 266 | + | |
| 267 | - | fakeboomeffect.CFrame = mouse.Hit * cf.euler(m.rand(0, 360), m.rand(0, 360), m.rand(0, 360)) |
| 267 | + | |
| 268 | end | |
| 269 | - | for i = 1, 2, 0.1 do |
| 269 | + | |
| 270 | - | effect.CFrame = holder.CFrame * cf.n(0, 0, 0) * cf.euler(m.rand(0, 360), m.rand(0, 360), m.rand(0, 360)) |
| 270 | + | |
| 271 | if tossremaincolorder then | |
| 272 | tf = 0 | |
| 273 | else | |
| 274 | - | aaa = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.3),NumberSequenceKeypoint.new(1, 7)})
|
| 274 | + | |
| 275 | - | asd.Size = aaa |
| 275 | + | |
| 276 | - | local onlygaystouchthis = fakeboomeffect.Touched:connect(function(gays) |
| 276 | + | |
| 277 | - | kill(gays) |
| 277 | + | |
| 278 | ||
| 279 | - | for i = 1, 3, 0.1 do |
| 279 | + | |
| 280 | - | --bg.CFrame = cf.n(root.Position, mouse.Hit.p) |
| 280 | + | |
| 281 | - | change = 1 |
| 281 | + | |
| 282 | - | local dist = (ra.CFrame.p - pos).magnitude |
| 282 | + | |
| 283 | - | --effect.CFrame = holder.CFrame * cf.n(0, 0, 0) * cf.euler(m.rand(0, 360), m.rand(0, 360), m.rand(0, 360)) |
| 283 | + | |
| 284 | - | beam.CFrame = cf.n(holder.CFrame.p, pos) * cf.n(0, 0, -0.3 - dist/2) * cf.a(m.r(0), m.r(90), m.r(0)) |
| 284 | + | |
| 285 | - | beam.Size = v.t(dist, 0.3, 0.3) |
| 285 | + | |
| 286 | - | effect.Transparency = effect.Transparency + 0.050 |
| 286 | + | |
| 287 | - | boomeffect.Transparency = boomeffect.Transparency + 0.050 |
| 287 | + | |
| 288 | - | beam.Transparency = beam.Transparency + 0.050 |
| 288 | + | |
| 289 | - | rj.C0 = clerp(rj.C0, rjc0 * cf.a(m.r(-5), m.r(0), m.r(30)) * cf.n(0, 0, 0), 0.15) |
| 289 | + | |
| 290 | - | nk.C0 = clerp(nk.C0, nkc0 * cf.a(m.r(10), m.r(0), m.r(-28)) * cf.n(0, 0, 0), 0.050) |
| 290 | + | |
| 291 | - | rs.C0 = clerp(rs.C0, rsc0 * cf.a(m.r(0), m.r(-30), m.r(110)) * cf.n(0, 0, 0), 0.25) |
| 291 | + | |
| 292 | - | ls.C0 = clerp(ls.C0, lsc0 * cf.a(m.r(-10), m.r(5), m.r(10)) * cf.n(0, 0, 0), 0.1) |
| 292 | + | |
| 293 | - | rh.C0 = clerp(rh.C0, rhc0 * cf.a(m.r(-5), m.r(-10), m.r(-10)) * cf.n(0, 0, 0), 0.1) |
| 293 | + | |
| 294 | - | lh.C0 = clerp(lh.C0, lhc0 * cf.a(m.r(0), m.r(0), m.r(10)) * cf.n(0, 0, 0), 0.1) |
| 294 | + | |
| 295 | - | swait() |
| 295 | + | |
| 296 | s:Play() | |
| 297 | - | aaa = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.3),NumberSequenceKeypoint.new(1, 7)})
|
| 297 | + | |
| 298 | - | asd.Size = aaa |
| 298 | + | |
| 299 | - | onlygaystouchthis:Disconnect() |
| 299 | + | |
| 300 | - | boomeffect:Destroy() |
| 300 | + | |
| 301 | - | beam:Destroy() |
| 301 | + | |
| 302 | - | effect:Destroy() |
| 302 | + | |
| 303 | - | hum.WalkSpeed = 16 |
| 303 | + | |
| 304 | - | hum.JumpPower = 50 |
| 304 | + | |
| 305 | - | cananim = true |
| 305 | + | |
| 306 | - | wait(1) |
| 306 | + | |
| 307 | - | attack = false |
| 307 | + | |
| 308 | end | |
| 309 | ||
| 310 | function clerp(a, b, t) | |
| 311 | return a:lerp(b, t) | |
| 312 | end | |
| 313 | ||
| 314 | - | mouse.Button1Down:connect(function() |
| 314 | + | |
| 315 | - | if attack == false then |
| 315 | + | |
| 316 | - | shoot() |
| 316 | + | |
| 317 | ||
| 318 | function camshake(duration, intensity) | |
| 319 | coroutine.wrap(function() | |
| 320 | for shake = 1, duration*10 do | |
| 321 | hum.CameraOffset = hum.CameraOffset:lerp(v.t(m.rand(-1, 1), m.rand(-1, 1), m.rand(-1, 1)), intensity) | |
| 322 | swait() | |
| 323 | end | |
| 324 | hum.CameraOffset = v.t(0, 0, 0) | |
| 325 | end)() | |
| 326 | end | |
| 327 | ||
| 328 | function player(var) | |
| 329 | if var.Parent then | |
| 330 | if var.Parent:IsA('Model') and var.Parent:FindFirstChildOfClass('Humanoid') then
| |
| 331 | if var.Parent:FindFirstChild('Torso') or var:FindFirstChild('Head') or var.Parent:FindFirstChild('UpperTorso') then
| |
| 332 | if var.Parent.Name ~= plr.Name then | |
| 333 | return var | |
| 334 | end | |
| 335 | end | |
| 336 | end | |
| 337 | end | |
| 338 | end | |
| 339 | ||
| 340 | ||
| 341 | gun.Anchored = false | |
| 342 | weld(ra, ra, gun, cf.n(0.02, -1.735, -0.01) * cf.a(m.r(0), m.r(90), m.r(-90)), cf.n(0, 0, 0) * cf.a(0, 0, 0)) | |
| 343 | weld(gun, gun, holder, cf.n(1.2, 0.75, 0), cf.n(0, 0, 0)) | |
| 344 | ||
| 345 | ||
| 346 | while true do | |
| 347 | sine = sine + change | |
| 348 | local rootvel = (root.Velocity * v.t(1, 0, 1)).magnitude | |
| 349 | local vertvel = (root.Velocity).y | |
| 350 | local hitfloor = raycast(root.Position, (cf.n(root.Position, root.Position + v.t(0, -1, 0))).lookVector, 4 * 1, char) | |
| 351 | pcall(function() | |
| 352 | for i,v in pairs(char:GetChildren()) do | |
| 353 | if v:IsA('LocalScript') and v.Name == 'Animate' then
| |
| 354 | v.Parent = nil | |
| 355 | for i,v in pairs(hum:GetPlayingAnimationTracks()) do | |
| 356 | v:Stop() | |
| 357 | end | |
| 358 | coroutine.wrap(function() | |
| 359 | wait(3) | |
| 360 | for i,v in pairs(hum:GetChildren()) do | |
| 361 | if v:IsA('Animator') then
| |
| 362 | v.Parent = nil | |
| 363 | end | |
| 364 | end | |
| 365 | end)() | |
| 366 | end | |
| 367 | end | |
| 368 | end) | |
| 369 | if cananim then | |
| 370 | if vertvel > 1 and cananim == true and hitfloor == nil then | |
| 371 | -- jump | |
| 372 | change = 1 | |
| 373 | rj.C0 = clerp(rj.C0, rjc0 * cf.a(m.r(-10), m.r(0) + root.RotVelocity.Y/30, m.r(0)) * cf.n(0, 0, 0), 0.1) | |
| 374 | nk.C0 = clerp(nk.C0, nkc0 * cf.a(m.r(-15), m.r(0), m.r(0)) * cf.n(0, 0, 0), .1) | |
| 375 | rs.C0 = clerp(rs.C0, rsc0 * cf.a(m.r(-10), m.r(0) + ra.RotVelocity.Y/30, m.r(-0)) * cf.n(0, -0, 0), .15) | |
| 376 | ls.C0 = clerp(ls.C0, lsc0 * cf.a(m.r(-10), m.r(0) + la.RotVelocity.Y/30, m.r(0)) * cf.n(0, -0, -0), .15) | |
| 377 | rh.C0 = clerp(rh.C0, rhc0 * cf.a(m.r(0), m.r(0), m.r(-0)) * cf.n(0.55, 1, 0), 0.1) | |
| 378 | lh.C0 = clerp(lh.C0, lhc0 * cf.a(m.r(0), m.r(0), m.r(0)) * cf.n(0, 0, 0), 0.1) | |
| 379 | elseif vertvel < -1 and hitfloor == nil then | |
| 380 | -- fall | |
| 381 | change = 1 | |
| 382 | rj.C0 = clerp(rj.C0, rjc0 * cf.a(m.r(30), m.r(0) - root.RotVelocity.Y/30, m.r(0)) * cf.n(0, 0, 0), 0.050) | |
| 383 | nk.C0 = clerp(nk.C0, nkc0 * cf.a(m.r(10), m.r(0), m.r(0)) * cf.n(0, 0, 0), .050) | |
| 384 | rs.C0 = clerp(rs.C0, rsc0 * cf.a(m.r(-30), m.r(0) - ra.RotVelocity.Y/30, m.r(-0)) * cf.n(0, -0.2, 0), .050) | |
| 385 | ls.C0 = clerp(ls.C0, lsc0 * cf.a(m.r(-30), m.r(0) - la.RotVelocity.Y/30, m.r(0)) * cf.n(0, -0.2, -0), .050) | |
| 386 | rh.C0 = clerp(rh.C0, rhc0 * cf.a(m.r(0), m.r(0), m.r(-0)) * cf.n(0.55, 1, 0), 0.1) | |
| 387 | lh.C0 = clerp(lh.C0, lhc0 * cf.a(m.r(0), m.r(0), m.r(0)) * cf.n(0, 0, 0), 0.1) | |
| 388 | elseif rootvel < 2 and hitfloor ~= nil then | |
| 389 | -- idle | |
| 390 | change = 0.8 | |
| 391 | rj.C0 = clerp(rj.C0, rjc0 * cf.a(m.r(0 - 1 * m.c(sine/30)), m.r(0), m.r(0)) * cf.n(0, 0, 0 + 0.05 * m.c(sine/30)), animspeed/10) | |
| 392 | nk.C0 = clerp(nk.C0, nkc0 * cf.a(m.r(5 - 2 * m.c(sine/30)), m.r(0), m.r(0)) * cf.n(0, 0, 0), animspeed/10) | |
| 393 | rs.C0 = clerp(rs.C0, rsc0 * cf.a(m.r(-3 - 2 * m.c(sine/30)), m.r(0), m.r(0)) * cf.n(0, 0.050 * m.c(sine/25), 0), animspeed/10) | |
| 394 | ls.C0 = clerp(ls.C0, lsc0 * cf.a(m.r(-3 - 2 * m.c(sine/30)), m.r(0), m.r(0)) * cf.n(0, 0.050 * m.c(sine/25), 0), animspeed/10) | |
| 395 | rh.C0 = clerp(rh.C0, rhc0 * cf.a(m.r(-5), m.r(-10 + 3 * m.c(sine/30)), m.r(-1 * m.c(sine/30))) * cf.n(0, -0.05 * m.c(sine/30), 0), animspeed/10) | |
| 396 | lh.C0 = clerp(lh.C0, lhc0 * cf.a(m.r(0), m.r(0), m.r(1 * m.c(sine/30))) * cf.n(0, -0.05 * m.c(sine/30), 0), animspeed/10) | |
| 397 | elseif rootvel < 20 and hitfloor ~= nil then | |
| 398 | -- walk | |
| 399 | change = 0.9 | |
| 400 | rj.C0 = clerp(rj.C0, rjc0 * cf.a(m.r(6), m.r(0) + root.RotVelocity.Y/40, m.r(10 * m.s(sine/6))) * cf.n(0, 0, -0.010 + m.c(sine/3)), 0.050) | |
| 401 | nk.C0 = clerp(nk.C0, nkc0 * cf.a(m.r(2 * m.s(sine/6)), m.r(-2 * m.s(sine/6)), m.r(-8 * m.s(sine/6)) + root.RotVelocity.Y/50) * cf.n(0, 0, 0), .050) | |
| 402 | rs.C0 = clerp(rs.C0, rsc0 * cf.a(m.r(-5), m.r(5 * m.c(sine/6)), m.r(-60 * m.s(sine/6))) * cf.n(0, -0, 0), 0.050) | |
| 403 | ls.C0 = clerp(ls.C0, lsc0 * cf.a(m.r(-5), m.r(5 * m.c(sine/6)), m.r(-60 * m.s(sine/6))) * cf.n(0, 0, 0.050), 0.050) | |
| 404 | rh.C0 = clerp(rh.C0, rhc0 * cf.a(m.r(0) + rl.RotVelocity.Y / 40, m.r(0), m.r(90 * m.s(sine/6))) * cf.n(0.05 + m.c(sine/6), 0.1 + m.c(sine/6), 0), 0.080) | |
| 405 | lh.C0 = clerp(lh.C0, lhc0 * cf.a(m.r(0) + -ll.RotVelocity.Y / 40, m.r(0), m.r(90 * m.s(sine/6))) * cf.n(-0.05 + m.c(sine/6), 0.1 - m.c(sine/6), 0), 0.080) | |
| 406 | end | |
| 407 | end | |
| 408 | swait() | |
| 409 | end |