Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --One Punch Man Script
- p = game.Players.LocalPlayer
- char = p.Character
- des = false
- fling = true
- dot = false
- falling = false
- jump = true
- --char.Shirt:Remove()
- --for i,v in pairs(char:GetChildren()) do if v:IsA("Pants") then v:Remove() end end
- for i,v in pairs(char:GetChildren()) do if v:IsA("Hat") then v.Handle:Remove() end end
- wait()--shirt = Instance.new("Shirt", char)
- --shirt.Name = "Shirt"
- --pants = Instance.new("Pants", char)
- --pants.Name = "Pants"
- --char.Shirt.ShirtTemplate = "http://www.roblox.com/asset/?id=451927425"
- --char.Pants.PantsTemplate = "http://www.roblox.com/asset/?id=236412261"
- tp = true
- shoot = true
- hum = char.Humanoid
- punch = true
- neckp = char.Torso.Neck.C0
- neck = char.Torso.Neck
- hum.MaxHealth = 9999999999999999999999999999999999999999
- wait()
- hum.Health =hum.MaxHealth
- des = false
- root=char.HumanoidRootPart
- torso = char.Torso
- char.Head.face.Texture = "rbxassetid://332768867"
- local ChatService = game:GetService("Chat")
- local player = game.Players.LocalPlayer
- lig = Instance.new("PointLight",player.Character.Torso)
- lig.Color=Color3.new(255,0,0)
- m=player:GetMouse()
- bb = Instance.new("BillboardGui",player.Character.Head)
- bb.Enabled = true
- function newRay(start,face,range,wat)
- local rey=Ray.new(start.p,(face.p-start.p).Unit*range)
- hit,pos=Workspace:FindPartOnRayWithIgnoreList(rey,wat)
- return rey,hit,pos
- end
- aa1={}
- torso=game.Players.LocalPlayer.Character.Torso
- local WorldUp = Vector3.new(0,1,0)
- function look2(Vec1,Vec2)
- local Orig = Vec1
- Vec1 = Vec1+Vector3.new(0,1,0)
- Vec2 = Vec2+Vector3.new(0,1,0)
- local Forward = (Vec2-Vec1).unit
- local Up = (WorldUp-WorldUp:Dot(Forward)*Forward).unit
- local Right = Up:Cross(Forward).unit
- Forward = -Forward
- Right = -Right
- return CFrame.new(Orig.X,Orig.Y,Orig.Z,Right.X,Up.X,Forward.X,Right.Y,Up.Y,Forward.Y,Right.Z,Up.Z,Forward.Z)
- end
- function look(CFr,Vec2)
- local A = Vector3.new(0,0,0)
- local B = CFr:inverse()*Vec2
- local CF = look2(A,Vector3.new(A.X,B.Y,B.Z))
- if B.Z > 0 then
- CF = CFr*(CF*CFrame.Angles(0,0,math.pi))
- elseif B.Z == 0 then
- if B.Y > 0 then
- CF = CFr*CFrame.Angles(math.pi/2,0,0)
- elseif B.Y < 0 then
- CF = CFr*CFrame.Angles(-math.pi/2,0,0)
- else
- CF = CFr
- end
- end
- local _,_,_,_,X,_,_,Y,_,_,Z,_ = CF:components()
- local Up = Vector3.new(X,Y,Z)
- local Forward = (Vec2-CFr.p).unit
- local Right = Up:Cross(Forward)
- Forward = -Forward
- Right = -Right
- return CFrame.new(CFr.X,CFr.Y,CFr.Z,Right.X,Up.X,Forward.X,Right.Y,Up.Y,Forward.Y,Right.Z,Up.Z,Forward.Z)
- end
- function simulate(j,d,m,r,t)
- local joint = j
- for i,v in ipairs(t) do
- if v[1]:FindFirstChild("Weld") then
- local stiff = m.CFrame.lookVector*0.03
- if i > 1 then joint = t[i-1][1].CFrame*CFrame.new(0,0,d*.5) end
- local dir = (v[2].p-(joint.p+Vector3.new(0,0.2,0)+stiff)).unit
- local dis = (v[2].p-(joint.p+Vector3.new(0,0.2,0)+stiff)).magnitude
- local pos = joint.p+(dir*(d*0.5))
- --if v[1].CFrame.y<=workspace.Base.CFrame.y then pos = joint.p+(dir*(d*.5)) end
- local inv = v[1].Weld.Part0.CFrame
- local rel1 = inv:inverse()*pos
- local rel2 = inv:inverse()*(pos-(dir*dis))
- local cf = look(CFrame.new(rel1),rel2)--CFrame.new(pos,pos-(dir*dis))*CFrame.fromEulerAnglesXYZ(r.x,r.y,r.z)
- v[1].Weld.C0 = cf
- v[2] = inv*cf
- --v[1].CFrame = cf
- end
- end
- end
- for i=1,8 do
- local p = Instance.new("Part",char)
- p.Anchored = false
- p.BrickColor = BrickColor.new("Institutional white")
- p.CanCollide = false
- p.FormFactor="Custom"
- p.Material = "SmoothPlastic"
- p.TopSurface = "SmoothNoOutlines"
- p.BottomSurface = "SmoothNoOutlines"
- p.RightSurface = "SmoothNoOutlines"
- p.LeftSurface = "SmoothNoOutlines"
- p.FrontSurface = "SmoothNoOutlines"
- p.BackSurface = "SmoothNoOutlines"
- p.Size=Vector3.new(2,.2,0.2)
- p:BreakJoints() -- sometimes the parts are stuck to something so you have to breakjoints them
- mesh = Instance.new("BlockMesh",p)
- mesh.Scale = Vector3.new(1,1,4)
- local w = Instance.new("Motor6D",p)
- w.Part0 = aa1[i-1] and aa1[i-1][1] or torso
- w.Part1 = p
- w.Name = "Weld"
- --table.insert(aa1,p)
- aa1[i] = {p,p.CFrame}
- end
- game:service"RunService".Stepped:connect(function()
- simulate(torso.CFrame*CFrame.new(0,0.9,.5),.6,torso,Vector3.new(),aa1)
- end)
- bb.AlwaysOnTop = true
- bb.Size = UDim2.new(0,200,0,50)
- bb.StudsOffset = Vector3.new(0,1,0)
- gui=Instance.new("TextBox",bb)
- gui.Text = "* "
- gui.Size = UDim2.new(0,133,0,45)
- gui.Position=UDim2.new(0,57,0,-40)
- gui.TextColor3 = Color3.new(255,255,255)
- gui.BackgroundColor3=Color3.new(0,0,0)
- gui.TextWrapped = true
- gui.TextScaled = true
- gui.TextXAlignment = "Left"
- gui.TextYAlignment = "Top"
- gui.Visible = false
- gui.BorderColor3 = Color3.new(0,0,0)
- punch2 = true
- gui1=Instance.new("TextButton",bb)
- gui1.Position=UDim2.new(0,5,0,-43)
- gui1.Size = UDim2.new(0,190,0,51)
- gui1.TextColor3 = Color3.new(255,255,255)
- gui1.BackgroundColor3=Color3.new(255,255,255)
- jump2 = true
- gui1.Visible = false
- img = Instance.new("ImageLabel",bb)
- img.Size = UDim2.new(0,46,0,47)
- img.Position = UDim2.new(0,10,0,-41)
- img.Image = "rbxassetid://447301252"
- img.BorderColor3 = Color3.new(0,0,0)
- img.Visible = false
- soka = Instance.new("Sound",char)
- soka.SoundId = "http://www.roblox.com/asset/?id = 447199232"
- soka.Volume = 1
- boom = Instance.new("Sound",char)
- boom.SoundId = "http://www.roblox.com/asset/?id = 447041606"
- boom.Volume = 1
- boom2 = Instance.new("Sound",char)
- boom2.SoundId = "http://www.roblox.com/asset/?id = 449025737"
- boom2.Volume = 1
- boom3 = Instance.new("Sound",char)
- boom3.SoundId = "http://www.roblox.com/asset/?id = 450719019"
- boom3.Volume = 1
- tps = Instance.new("Sound",char)
- tps.SoundId = "http://www.roblox.com/asset/?id = 449860746"
- tps.Volume = 1
- asd = Instance.new("Sound",char)
- asd.SoundId = "http://www.roblox.com/asset/?id = 447310433"
- asd.Volume =1
- asd1 = Instance.new("Sound",char)
- asd1.SoundId = "http://www.roblox.com/asset/?id = 358280695"
- asd2 = Instance.new("Sound",char)
- asd2.SoundId = "http://www.roblox.com/asset/?id = 386713054"
- asd2.Looped = true
- asd2.Volume = 5
- asd3 = Instance.new("Sound",char)
- asd3.SoundId = "http://www.roblox.com/asset/?id = 378387996"
- asd3.Looped = true
- asd4 = Instance.new("Sound",char)
- asd4.SoundId = "http://www.roblox.com/asset/?id = 401258325"
- asd4.Looped = true
- asd5 = Instance.new("Sound",char)
- asd5.SoundId = "http://www.roblox.com/asset/?id = 362252261"
- asd5.Looped = true
- gas = Instance.new("Sound",char)
- gas.SoundId = "http://www.roblox.com/asset/?id = 345052019"
- asd6 = Instance.new("Sound",char)
- asd6.SoundId = "http://www.roblox.com/asset/?id = 401258325"
- asd6.Looped = true
- function play(play)
- asd:Play()
- wait(0.05)
- --asd1:Play()
- end
- ------------
- -------------------------
- function stream(origin,dir,length,size)
- local parts = {}
- for i = 1,length do
- local p = Instance.new("Part",char)
- p.Anchored = true
- p.Transparency = 0.5
- p.TopSurface = 0
- p.BottomSurface = 0
- p.CanCollide = false
- p.BrickColor = BrickColor.new("Institutional white")
- p.Size = Vector3.new(10,30,10) -- for now
- p.CFrame = CFrame.new(origin+dir*i*size)*CFrame.Angles(math.random()*math.pi,math.random()*math.pi,math.random()*math.pi)
- parts[i] = {p,CFrame.Angles(math.random()*math.pi/5,math.random()*math.pi/5,math.random()*math.pi/5)}
- game:GetService("Debris"):AddItem(p,3)
- end
- Spawn(function()
- while parts do
- for i,v in pairs(parts) do
- if v[1].Parent == char then
- v[1].CFrame = v[1].CFrame*v[2]
- else
- parts = nil
- break
- end
- end
- wait(0.02)
- end
- end)
- end
- --[[-- listen for their chatting
- player.Chatted:connect(function(message)
- a = string.len(message)
- gui.Text = ""
- gui.Visible = true
- gui1.Visible = true
- des = false
- img.Visible = true
- print(a)
- if dot == false then
- gui.Text = ""
- for i = 1,string.len(message) do
- gui.Text =gui.Text..message:sub(i,i)
- play()
- end
- end
- des = true
- end)]]--
- m.KeyDown:connect(function(k)
- if k == "g" then
- asd2:Play()
- end
- end)
- m.KeyDown:connect(function(k)
- if k == "r" then
- asd4:Play()
- end
- end)
- m.KeyDown:connect(function(k)
- if k == "q" then
- asd3:Play()
- end
- end)
- m.KeyDown:connect(function(k)
- if k == "z" then
- img.Image = "rbxassetid://332766052"
- end
- end)
- m.KeyDown:connect(function(k)
- if k == "c" then
- img.Image = "rbxassetid://447301252"
- end
- end)
- m.KeyDown:connect(function(k)
- if k == "b" then
- asd6:Play()
- end
- end)
- mouse = p:GetMouse()
- m.KeyDown:connect(function(k)
- if k:byte() == 48 then
- hum.WalkSpeed = 100
- end
- end)
- m.KeyDown:connect(function(k)
- if k:byte() == 50 then
- soka:Play()
- end
- end)
- m.KeyDown:connect(function(k)
- if k:byte() == 52 then
- char.Head.face.Texture = "rbxassetid://444037452"
- end
- end)
- m.KeyDown:connect(function(k)
- if k:byte() == 51 then
- char.Head.face.Texture = "rbxassetid://332768867"
- end
- end)
- m.KeyUp:connect(function(k)
- if k:byte() == 48 then
- hum.WalkSpeed = 16
- end
- end)
- p.Chatted:connect(function(m)
- if m == "Okay." then
- soka:Play()
- end
- end)
- m.KeyDown:connect(function(k)
- if k == "x" then
- if des == true then
- gui.Visible = false
- gui.Text = "* "
- gui1.Visible = false
- img.Visible = false
- end
- end
- end)
- m.KeyDown:connect(function(key)
- if key == "j" then
- if tp == true then
- tp = false
- tps:Play()
- char.Head.face.Parent = game.Lighting
- for i,v in pairs(char:GetChildren()) do if v:IsA("Part") then v.Transparency = 1
- end
- end
- wait(0.5)
- for i,v in pairs(char:GetChildren()) do if v:IsA("Part") then v.Transparency = 0
- end
- end
- char.HumanoidRootPart.CFrame = mouse.Hit * CFrame.new(0, 3, 0)
- char.HumanoidRootPart.Transparency = 1
- game.Lighting.face.Parent = char.Head
- wait(0.2)
- tp = true
- end
- end
- end)
- m.KeyDown:connect(function(key)
- if key == "t" then
- if punch2 == true then
- punch2 = false
- punch = false
- local ChatService = game:GetService("Chat")
- neck.C0 = neck.C0 * CFrame.Angles(0.3,0,0)
- ChatService:Chat(char.Head, "Mind if I get Serious?")
- wait(1)
- local ChatService = game:GetService("Chat")
- ChatService:Chat(char.Head ,"Killer Move: Serious Series...")
- wait(1)
- local ChatService = game:GetService("Chat")
- ChatService:Chat(char.Head, "SERIOUS PUNCH.")
- neck.C0 = neckp
- wait(0.6)
- org = char.Torso["Left Shoulder"].C0
- char.Torso["Left Shoulder"].C0 = char.Torso["Left Shoulder"].C0 * CFrame.new(-0.3,0,0) * CFrame.Angles(0,0,math.rad(-90))
- wait()
- killbrick2 = Instance.new("Part",char)
- killbrick2.Size = Vector3.new(80,80,9000)
- killbrick2.Transparency = 1
- killbrick2.CanCollide = true
- wait(0.1)
- killbrick2.CanCollide = false
- killbrick2.Anchored = true
- killbrick2.CFrame = char.Torso.CFrame * CFrame.new(0,0,-1005)
- killbrick2.Touched:connect(function(h)
- local x = h.Parent:FindFirstChild("Humanoid")
- if x then
- if x.Parent.Name == game.Players.LocalPlayer.Name then
- safe = true
- else safe = false
- end
- if x then
- if safe == false then
- h.Parent.Torso.Velocity = CFrame.new(char.Torso.Position,h.Parent.Torso.Position).lookVector * 900
- local bodyforc = Instance.new("BodyForce", h.Parent.Torso)
- boom:Play()
- bodyforc.force = Vector3.new(0, h.Parent.Torso:GetMass() * 196.1, 0)
- wait(0.2)
- x.Parent:BreakJoints()
- wait()
- safe = true
- end
- end
- end
- end)
- local rng = Instance.new("Part", char)
- rng.Anchored = true
- rng.BrickColor = BrickColor.new("Institutional white")
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Size = Vector3.new(1, 1, 1)
- rng.Transparency = 0.8
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = char["Left Arm"].CFrame * CFrame.new(0,-2,0)
- --rng.Rotation = Vector3.new(math.pi/2,0,0)
- rng.CFrame = rng.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshId = "http://www.roblox.com/asset/?id=3270017"
- rngm.Scale = Vector3.new(1, 1.3, 2)
- local rng1 = Instance.new("Part", char)
- rng1.Anchored = true
- rng1.BrickColor = BrickColor.new("Institutional white")
- rng1.CanCollide = false
- rng1.FormFactor = 3
- rng1.Name = "Ring"
- rng1.Size = Vector3.new(1, 1, 1)
- rng1.Transparency = 0.8
- rng1.TopSurface = 0
- rng1.BottomSurface = 0
- rng1.CFrame = char["Left Arm"].CFrame * CFrame.new(0,-2,0)
- --rng1.Rotation = Vector3.new(math.pi/2,0,0)
- rng1.CFrame = rng1.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))
- local rngm1 = Instance.new("SpecialMesh", rng1)
- rngm1.MeshId = "http://www.roblox.com/asset/?id=3270017"
- rngm1.Scale = Vector3.new(1, 1.3, 2)
- local p = (torso.CFrame*CFrame.new(-20,0,3))
- stream(p.p,((p*Vector3.new(-0.7,0,1))-p.p).unit,90,5) -- 20 is number of parts, 6 is distance between each one
- local p = (torso.CFrame*CFrame.new(20,0,3))
- stream(p.p,((p*Vector3.new(0.7,0,1))-p.p).unit,90,5) -- same here
- local rng2 = Instance.new("Part", char)
- rng2.Anchored = true
- rng2.BrickColor = BrickColor.new("Institutional white")
- rng2.CanCollide = false
- rng2.FormFactor = 3
- rng2.Name = "Ring"
- rng2.Size = Vector3.new(1, 1, 1)
- rng2.Transparency = 0.8
- rng2.TopSurface = 0
- rng2.BottomSurface = 0
- rng2.CFrame = char["Left Arm"].CFrame * CFrame.new(0,-2,0)
- --rng1.Rotation = Vector3.new(math.pi/2,0,0)
- rng2.CFrame = rng2.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))
- local rngm2 = Instance.new("SpecialMesh", rng2)
- rngm2.MeshId = "http://www.roblox.com/asset/?id=3270017"
- rngm2.Scale = Vector3.new(1, 1.3, 2)
- wait(0.1)
- boom3:Play()
- coroutine.wrap(function()
- for i = 1, 35, 0.5 do
- rngm.Scale = Vector3.new(50 + i*2, 10 + i*2, 2.5+ i*4)
- rngm1.Scale = Vector3.new(50 + i*2, 1.4 + i*2, 1.4+ i*4)
- rngm2.Scale = Vector3.new(50 + i*2, 10 + i*2, 1.2+ i*4)
- wait()
- end
- wait()
- rng:Destroy()
- rng1:Destroy()
- rng2:Destroy()
- killbrick2:Remove()
- wait(0.5)
- char.Torso["Left Shoulder"].C0 = org
- wait(1)
- punch2 = true
- punch = true
- wait()
- end)()
- end
- wait(.1)
- end
- end)
- m.KeyDown:connect(function(key)
- if key == "k" then
- if punch == true then
- punch = false
- org = char.Torso["Left Shoulder"].C0
- char.Torso["Left Shoulder"].C0 = char.Torso["Left Shoulder"].C0 * CFrame.new(-0.3,0,0) * CFrame.Angles(0,0,math.rad(-90))
- killbrick = Instance.new("Part",char)
- killbrick.Size = Vector3.new(5,1,5)
- killbrick.Transparency = 1
- killbrick:BreakJoints()
- killbrick.CanCollide = false
- local wel = Instance.new("Weld",killbrick)
- wel.Part0 = killbrick
- wel.Part1 = char["Left Arm"]
- wel.C0 = CFrame.new(0,1,0)
- force = 90
- killbrick.Touched:connect(function(h)
- local x = h.Parent.Humanoid
- if x.Health >= 6000 then
- fling = false
- end
- if x.Health < 6000 then
- fling = true
- end
- local stop = h.Parent.Torso.Velocity
- if x.Parent.Name == game.Players.LocalPlayer.Name then
- safe = true
- else safe = false
- end
- if x then
- if safe == false then
- if fling == true then
- force = 900
- end
- if fling == false then
- force = 200
- end
- h.Parent.Torso.Velocity = CFrame.new(char.Torso.Position,h.Parent.Torso.Position).lookVector * force
- local bodyforc = Instance.new("BodyForce", h.Parent.Torso)
- boom:Play()
- bodyforc.force = Vector3.new(0, h.Parent.Torso:GetMass() * 196.1, 0)
- wait(0.2)
- x:TakeDamage(5000)
- wait()
- safe = true
- bodyforc:Remove()
- h.Parent.Torso.Velocity = stop
- end
- end
- end)
- local rng = Instance.new("Part", char)
- rng.Anchored = true
- rng.BrickColor = BrickColor.new("Institutional white")
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Size = Vector3.new(1, 1, 1)
- rng.Transparency = 0.8
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.CFrame = char["Left Arm"].CFrame * CFrame.new(0,-2,0)
- --rng.Rotation = Vector3.new(math.pi/2,0,0)
- rng.CFrame = rng.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshId = "http://www.roblox.com/asset/?id=3270017"
- rngm.Scale = Vector3.new(1, 1.3, 2)
- wait(0.1)
- boom2:Play()
- coroutine.wrap(function()
- for i = 1, 10, .4 do
- rngm.Scale = Vector3.new(2 + i*2, 2 + i*2, 1)
- wait()
- end
- wait()
- rng:Destroy()
- killbrick:Remove()
- wait(0.5)
- char.Torso["Left Shoulder"].C0 = org
- wait(1)
- punch = true
- wait()
- end)()
- end
- wait(.1)
- end
- end)
- m.KeyDown:connect(function(key)
- if key == "m" then
- if jump == true then
- jump = false
- local rng = Instance.new("Part", char)
- rng.Anchored = true
- rng.BrickColor = BrickColor.new("Institutional white")
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Size = Vector3.new(1, 1, 1)
- rng.Transparency = 0.35
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.Position = torso.Position - Vector3.new(0,2,0)
- rng.CFrame = rng.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshId = "http://www.roblox.com/asset/?id=3270017"
- rngm.Scale = Vector3.new(1, 1.3, 2)
- wait(0.1)
- BV = Instance.new("BodyVelocity", torso)
- BV.maxForce = Vector3.new(0,20000,0)
- BV.P = 1000
- BV.velocity = Vector3.new(0,100,0)
- boom:Play()
- coroutine.wrap(function()
- for i = 1, 60, 2 do
- rngm.Scale = Vector3.new(2 + i*2, 2 + i*2, 1)
- rng.Transparency = i/60
- wait()
- end
- wait()
- rng:Destroy()
- hum.WalkSpeed = 50
- wait(1)
- for i,v in pairs(torso:GetChildren()) do if v:IsA("BodyVelocity") then
- v:Destroy() jumping2 = true falling = true wait(0.3) jumping2 = false falling = false wait(1.7) jump = true hum.WalkSpeed = 16 falling = false
- end end
- wait()
- end)()
- end
- wait(.1)
- end
- end)
- m.KeyDown:connect(function(key)
- if key == "n" then
- if falling == true then
- falling = false
- if jumping2 == true then
- jumping2 = false
- jump = false
- BV = Instance.new("BodyVelocity", torso)
- BV.maxForce = Vector3.new(0,-20000,0)
- BV.P = -1000
- BV.velocity = Vector3.new(0,-70,0)
- wait(0.6)
- local rng = Instance.new("Part", char)
- rng.Anchored = true
- rng.BrickColor = BrickColor.new("Institutional white")
- rng.CanCollide = false
- rng.FormFactor = 3
- rng.Name = "Ring"
- rng.Size = Vector3.new(1, 1, 1)
- rng.Transparency = 0.35
- rng.TopSurface = 0
- rng.BottomSurface = 0
- rng.Position = torso.Position - Vector3.new(0,2,0)
- rng.CFrame = rng.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))
- local rngm = Instance.new("SpecialMesh", rng)
- rngm.MeshId = "http://www.roblox.com/asset/?id=3270017"
- rngm.Scale = Vector3.new(1, 1.3, 2)
- boom:Play()
- coroutine.wrap(function()
- for i = 1, 60, 2 do
- rngm.Scale = Vector3.new(2 + i*2, 2 + i*2, 1)
- rng.Transparency = i/60
- wait()
- end
- wait()
- rng:Destroy()
- for i,v in pairs(torso:GetChildren()) do if v:IsA("BodyVelocity") then
- v:Destroy() wait(2) jumping2 = true hum.WalkSpeed = 16
- end end
- wait()
- end)()
- end
- wait(.1)
- end
- end
- end)
- m.KeyDown:connect(function(k)
- if k == "f" then
- asd3:Stop()
- asd2:Stop()
- asd4:Stop()
- asd6:Stop()
- asd5:Stop()
- end
- end)
- wait(5)
- --NOTE: This version uses a hack to create a second part for shirt textures
- -- Mesh behavior may change to where this hack will become un-needed
- -- Let me know if you want me to create a toggle for this
- Player = game.Players.localPlayer
- local function CharacterAdded(Character)
- if Character then
- local R15Model = Instance.new("Model")
- R15Model.Name = "R15Model"
- R15Model.Parent = Character
- local function CreateLimb(Name,Color,Size,Transparency,ConnectToLimb,MotorName,C0,C1,MeshId)
- local Part = Instance.new("Part")
- Part.FormFactor = "Custom"
- Part.Size = Size
- Part.BrickColor = Color
- Part.CanCollide = false
- Part.Name = Name
- Part.Transparency = (Transparency == 0.001 and 0 or Transparency)
- Part.TopSurface = "Smooth"
- Part.BottomSurface = "Smooth"
- local Motor = Instance.new("Motor6D")
- Motor.C0 = C0
- Motor.C1 = C1
- Motor.Part0 = ConnectToLimb
- Motor.Part1 = Part
- Motor.Name = MotorName
- Motor.MaxVelocity = 0.1
- Motor.Parent = ConnectToLimb
- if MeshId then
- local Mesh = Instance.new("SpecialMesh")
- Mesh.MeshType = "FileMesh"
- Mesh.MeshId = MeshId
- Mesh.Scale = Vector3.new(0.99,0.99,0.99)
- Mesh.Parent = Part
- end
- if MeshId and Transparency == 0.001 then
- local ShirtTexturePart = Instance.new("Part")
- ShirtTexturePart.FormFactor = "Custom"
- ShirtTexturePart.Size = Size
- ShirtTexturePart.BrickColor = Color
- ShirtTexturePart.CanCollide = false
- ShirtTexturePart.Name = "ShirtTexturePart"
- ShirtTexturePart.Transparency = Transparency
- ShirtTexturePart.TopSurface = "Smooth"
- ShirtTexturePart.BottomSurface = "Smooth"
- local Mesh = Instance.new("SpecialMesh")
- Mesh.MeshType = "FileMesh"
- Mesh.MeshId = MeshId
- Mesh.Parent = ShirtTexturePart
- local Weld = Instance.new("Weld")
- Weld.Part0 = Part
- Weld.Part1 = ShirtTexturePart
- Weld.Parent = ShirtTexturePart
- ShirtTexturePart.Parent = Part
- end
- Part.Parent = R15Model
- return Part
- end
- local HumanoidRootPart = CreateLimb("HumanoidRootPart",BrickColor.new("Medium stone grey"),Vector3.new(1,1,1),1,Character.HumanoidRootPart,"RootConnector",CFrame.new(),CFrame.new(0,0.7,0))
- local TorsoLower = CreateLimb("TorsoLower",BrickColor.new("Bright blue"),Vector3.new(0.5,0.5,0.5),0.001,HumanoidRootPart,"Root",CFrame.new(0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, -1),CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366190286")
- local TorsoUpper = CreateLimb("TorsoUpper",BrickColor.new("Bright blue"),Vector3.new(0.2,0.74,0.2),0.001,TorsoLower,"Waist",CFrame.new(0, 0.739968002, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),CFrame.new(0, -0.369984001, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366190087")
- local Head = CreateLimb("FakeHead",BrickColor.new("Bright yellow"),Vector3.new(1,1,1),0,TorsoUpper,"Neck",CFrame.new(0, 0.566236973, -0.0666489974, 1, 0, 0, 0, 0.993143976, 0.116898, 0, -0.116898, 0.993143976),CFrame.new(0, -0.285073012, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366190426")
- local LeftArmUpper = CreateLimb("LeftArmUpper",BrickColor.new("Bright yellow"),Vector3.new(0.2,0.536,0.2),0.001,TorsoUpper,"LeftShoulder",CFrame.new(1.50177097, 0.220340997, 0, 0, -0.999044001, -0.0437170006, -1, 0, 0, 0, 0.0437170006, -0.999044001),CFrame.new(0, 0.336115986, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366186808")
- local LeftArmLower = CreateLimb("LeftArmLower",BrickColor.new("Bright yellow"),Vector3.new(0.2,0.739,0.2),0.001,LeftArmUpper,"LeftElbow",CFrame.new(0, -0.267791986, 0, 1, 0, 0, 0, 0.998493016, -0.0548710003, 0, 0.0548710003, 0.998493016),CFrame.new(0, 0.369605988, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366187079")
- local LeftHand = CreateLimb("LeftHand",BrickColor.new("Bright yellow"),Vector3.new(0.2,0.37,0.2),0.001,LeftArmLower,"LeftWrist",CFrame.new(0, -0.369605988, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1),CFrame.new(0, -0.184802994, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366187331")
- local RightArmUpper = CreateLimb("RightArmUpper",BrickColor.new("Bright yellow"),Vector3.new(0.2,0.536,0.2),0.001,TorsoUpper,"RightShoulder",CFrame.new(-1.50049305, 0.219521001, 0, 0, 0.999041975, -0.0437709987, -1, 0, 0, 0, 0.0437709987, 0.999041975),CFrame.new(0, 0.335705996, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366188623")
- local RightArmLower = CreateLimb("RightArmLower",BrickColor.new("Bright yellow"),Vector3.new(0.2,0.739,0.2),0.001,RightArmUpper,"RightElbow",CFrame.new(0, -0.296110988, 0, 1, 0, 0, 0, 0.998767972, 0.0496239997, 0, -0.0496239997, 0.998767972),CFrame.new(0, 0.337754011, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366188798")
- local RightHand = CreateLimb("RightHand",BrickColor.new("Bright yellow"),Vector3.new(),0.001,RightArmLower,"RightWrist",CFrame.new(0, -0.337754011, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1),CFrame.new(0, -0.168877006, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366189081")
- local LeftLegUpper = CreateLimb("LeftLegUpper",BrickColor.new("Br. yellowish green"),Vector3.new(0.2,0.784,0.2),0.001,TorsoLower,"LeftHip",CFrame.new(0.457044005, -0.495086014, 0, 1, 0, 0, 0, 1, -0.000100999998, 0, 0.000100999998, 1),CFrame.new(0, 0.388933986, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366187724")
- local LeftLegLower = CreateLimb("LeftLegLower",BrickColor.new("Br. yellowish green"),Vector3.new(0.2,0.803,0.2),0.001,LeftLegUpper,"LeftKnee",CFrame.new(0, -0.388933986, 0, 1, 9.99999997e-007, 0, -9.99999997e-007, 0.991840005, -0.127486005, 0, 0.127486005, 0.991840005),CFrame.new(0, 0.401580006, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366188102")
- local LeftFoot = CreateLimb("LeftFoot",BrickColor.new("Br. yellowish green"),Vector3.new(0.2,0.402,0.2),0.001,LeftLegLower,"LeftAnkle",CFrame.new(0, -0.401578993, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1),CFrame.new(0, -0.200790003, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366188387")
- local RightLegUpper = CreateLimb("RightLegUpper",BrickColor.new("Br. yellowish green"),Vector3.new(0.2,0.784,0.2),0.001,TorsoLower,"RightHip",CFrame.new(-0.451141, -0.498115987, 0, 1, 0, 0, 0, 0.999954998, 0.0095180003, 0, -0.0095180003, 0.999954998),CFrame.new(0, 0.391921997, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366189770")
- local RightLegLower = CreateLimb("RightLegLower",BrickColor.new("Br. yellowish green"),Vector3.new(0.2,0.796,0.2),0.001,RightLegUpper,"RightKnee",CFrame.new(0, -0.391921997, 0, 1, 0, 0, 0, 0.992762029, -0.120096996, 0, 0.120096996, 0.992762029),CFrame.new(0, 0.39814499, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366189509")
- local RightFoot = CreateLimb("RightFoot",BrickColor.new("Br. yellowish green"),Vector3.new(0.2, 0.398, 0.2),0.001,RightLegLower,"RightAnkle",CFrame.new(0, -0.39814499, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1),CFrame.new(0, -0.199073002, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),"http://www.roblox.com/asset/?id=366189977")
- --if Character:WaitForChild("Head"):WaitForChild("Mesh").MeshId ~= "" then
- -- Head.MeshId = Character.Head.Mesh.MeshId
- --end
- spawn(function() Character:WaitForChild("Animate").Disabled = false end)
- local function Clear(Name,Alternative,ColorParts)
- local Part = Character:WaitForChild(Name)
- Part.Transparency = (Name == "Head" and 0.99 or 1)
- local function ChildAdded(Ins)
- delay(0.05,function()
- if Ins.Name == "face" then
- if Alternative:FindFirstChild("face") then Alternative:FindFirstChild("face"):Destroy() end
- Ins.Parent = Alternative
- elseif Ins:IsA("Motor6D") and string.sub(Ins.Name,1,5) ~= "Fake_" then
- Ins.Name = "Fake_"..Ins.Name
- elseif Ins.Name == "HeadWeld" then
- delay(0.05,function()
- Ins.Parent = Head
- Ins.Part0 = Head
- Ins.C1 = CFrame.new(0,-0.15,0.125) * Ins.C1 * CFrame.Angles(0,math.pi,0)
- end)
- elseif not Ins:IsA("Weld") then
- Ins:Destroy()
- end
- end)
- end
- for _,Sub in pairs(Part:GetChildren()) do
- ChildAdded(Sub)
- end
- Part.ChildAdded:connect(ChildAdded)
- local function Color()
- for _,Sub in pairs(ColorParts) do
- Sub.BrickColor = Part.BrickColor
- local TexturePart = Sub:FindFirstChild("ShirtTexturePart")
- if TexturePart then
- TexturePart.BrickColor = Part.BrickColor
- end
- end
- end
- Color()
- Part.Changed:connect(Color)
- end
- Clear("HumanoidRootPart",HumanoidRootPart,{HumanoidRootPart})
- Clear("Head",Head,{Head})
- Clear("Torso",nil,{TorsoLower,TorsoUpper})
- Clear("Left Arm",nil,{LeftArmLower,LeftArmUpper,LeftHand})
- Clear("Right Arm",nil,{RightArmLower,RightArmUpper,RightHand})
- Clear("Left Leg",nil,{LeftLegLower,LeftLegUpper,LeftFoot})
- Clear("Right Leg",nil,{RightLegLower,RightLegUpper,RightFoot})
- local ShirtUsed = false
- local function ChildAdded(Ins)
- if Ins:IsA("Hat") and string.sub(Ins.Name,1,7) ~= "Scaled_" then
- delay(0.05,function()
- local Mesh = Ins:WaitForChild("Handle"):WaitForChild("Mesh")
- Ins.AttachmentPos = Ins.AttachmentPos
- Mesh.Scale = Mesh.Scale
- Ins.Name = "Scaled_"..Ins.Name
- end)
- elseif Ins:IsA("Shirt") then
- ShirtUsed = true
- TorsoLower.ShirtTexturePart.Mesh.TextureId = Ins.ShirtTemplate
- TorsoUpper.ShirtTexturePart.Mesh.TextureId = Ins.ShirtTemplate
- LeftArmLower.ShirtTexturePart.Mesh.TextureId = Ins.ShirtTemplate
- LeftArmUpper.ShirtTexturePart.Mesh.TextureId = Ins.ShirtTemplate
- LeftHand.ShirtTexturePart.Mesh.TextureId = Ins.ShirtTemplate
- RightArmLower.ShirtTexturePart.Mesh.TextureId = Ins.ShirtTemplate
- RightArmUpper.ShirtTexturePart.Mesh.TextureId = Ins.ShirtTemplate
- RightHand.ShirtTexturePart.Mesh.TextureId = Ins.ShirtTemplate
- elseif Ins:IsA("Pants") then
- LeftLegUpper.ShirtTexturePart.Mesh.TextureId = Ins.PantsTemplate
- LeftLegLower.ShirtTexturePart.Mesh.TextureId = Ins.PantsTemplate
- LeftFoot.ShirtTexturePart.Mesh.TextureId = Ins.PantsTemplate
- RightLegUpper.ShirtTexturePart.Mesh.TextureId = Ins.PantsTemplate
- RightLegLower.ShirtTexturePart.Mesh.TextureId = Ins.PantsTemplate
- RightFoot.ShirtTexturePart.Mesh.TextureId = Ins.PantsTemplate
- if ShirtUsed ~= true then
- TorsoLower.ShirtTexturePart.Mesh.TextureId = Ins.PantsTemplate
- TorsoUpper.ShirtTexturePart.Mesh.TextureId = Ins.PantsTemplate
- end
- end
- end
- for _,Sub in pairs(Character:GetChildren()) do
- ChildAdded(Sub)
- end
- Character.ChildAdded:connect(ChildAdded)
- end
- end
- CharacterAdded(Player.Character)
- Player.CharacterAdded:connect(CharacterAdded)
- script.Parent = game.Players.LocalPlayer.Character
- function waitForChild(parent, childName)
- local child = parent:findFirstChild(childName)
- if child then return child end
- while true do
- child = parent.ChildAdded:wait()
- if child.Name==childName then return child end
- end
- end
- local Figure = script.Parent
- local Humanoid = waitForChild(Figure, "Humanoid")
- local pose = "Standing"
- local currentAnim = ""
- local currentAnimInstance = nil
- local currentAnimTrack = nil
- local currentAnimKeyframeHandler = nil
- local currentAnimSpeed = 1.0
- local animTable = {}
- local animNames = {
- idle = {
- { id = "http://www.roblox.com/asset/?id=361250879", weight = 1 },
- { id = "http://www.roblox.com/asset/?id=361250964", weight = 1 },
- { id = "http://www.roblox.com/asset/?id=361250801", weight = 9 }
- },
- walk = {
- { id = "http://www.roblox.com/asset/?id=361250532", weight = 10 }
- },
- run = {
- { id = "http://www.roblox.com/asset/?id=361250532", weight = 10 }
- },
- jump = {
- { id = "http://www.roblox.com/asset/?id=361251250", weight = 10 }
- },
- fall = {
- { id = "http://www.roblox.com/asset/?id=361259102", weight = 10 }
- },
- climb = {
- { id = "http://www.roblox.com/asset/?id=361251073", weight = 10 }
- },
- sit = {
- { id = "http://www.roblox.com/asset/?id=178130996", weight = 10 }
- },
- toolnone = {
- { id = "http://www.roblox.com/asset/?id=182393478", weight = 10 }
- },
- toolslash = {
- { id = "http://www.roblox.com/asset/?id=129967390", weight = 10 }
- -- { id = "slash.xml", weight = 10 }
- },
- toollunge = {
- { id = "http://www.roblox.com/asset/?id=129967478", weight = 10 }
- },
- wave = {
- { id = "http://www.roblox.com/asset/?id=128777973", weight = 10 }
- },
- point = {
- { id = "http://www.roblox.com/asset/?id=128853357", weight = 10 }
- },
- dance = {
- { id = "http://www.roblox.com/asset/?id=182435998", weight = 10 },
- { id = "http://www.roblox.com/asset/?id=182491037", weight = 10 },
- { id = "http://www.roblox.com/asset/?id=182491065", weight = 10 }
- },
- dance2 = {
- { id = "http://www.roblox.com/asset/?id=182436842", weight = 10 },
- { id = "http://www.roblox.com/asset/?id=182491248", weight = 10 },
- { id = "http://www.roblox.com/asset/?id=182491277", weight = 10 }
- },
- dance3 = {
- { id = "http://www.roblox.com/asset/?id=182436935", weight = 10 },
- { id = "http://www.roblox.com/asset/?id=182491368", weight = 10 },
- { id = "http://www.roblox.com/asset/?id=182491423", weight = 10 }
- },
- laugh = {
- { id = "http://www.roblox.com/asset/?id=129423131", weight = 10 }
- },
- cheer = {
- { id = "http://www.roblox.com/asset/?id=129423030", weight = 10 }
- },
- }
- -- Existance in this list signifies that it is an emote, the value indicates if it is a looping emote
- local emoteNames = { wave = false, point = false, dance = true, dance2 = true, dance3 = true, laugh = false, cheer = false}
- math.randomseed(tick())
- function configureAnimationSet(name, fileList)
- if (animTable[name] ~= nil) then
- for _, connection in pairs(animTable[name].connections) do
- connection:disconnect()
- end
- end
- animTable[name] = {}
- animTable[name].count = 0
- animTable[name].totalWeight = 0
- animTable[name].connections = {}
- -- check for config values
- local config = script:FindFirstChild(name)
- if (config ~= nil) then
- -- print("Loading anims " .. name)
- table.insert(animTable[name].connections, config.ChildAdded:connect(function(child) configureAnimationSet(name, fileList) end))
- table.insert(animTable[name].connections, config.ChildRemoved:connect(function(child) configureAnimationSet(name, fileList) end))
- local idx = 1
- for _, childPart in pairs(config:GetChildren()) do
- if (childPart:IsA("Animation")) then
- table.insert(animTable[name].connections, childPart.Changed:connect(function(property) configureAnimationSet(name, fileList) end))
- animTable[name][idx] = {}
- animTable[name][idx].anim = childPart
- local weightObject = childPart:FindFirstChild("Weight")
- if (weightObject == nil) then
- animTable[name][idx].weight = 1
- else
- animTable[name][idx].weight = weightObject.Value
- end
- animTable[name].count = animTable[name].count + 1
- animTable[name].totalWeight = animTable[name].totalWeight + animTable[name][idx].weight
- -- print(name .. " [" .. idx .. "] " .. animTable[name][idx].anim.AnimationId .. " (" .. animTable[name][idx].weight .. ")")
- idx = idx + 1
- end
- end
- end
- -- fallback to defaults
- if (animTable[name].count <= 0) then
- for idx, anim in pairs(fileList) do
- animTable[name][idx] = {}
- animTable[name][idx].anim = Instance.new("Animation")
- animTable[name][idx].anim.Name = name
- animTable[name][idx].anim.AnimationId = anim.id
- animTable[name][idx].weight = anim.weight
- animTable[name].count = animTable[name].count + 1
- animTable[name].totalWeight = animTable[name].totalWeight + anim.weight
- -- print(name .. " [" .. idx .. "] " .. anim.id .. " (" .. anim.weight .. ")")
- end
- end
- end
- -- Setup animation objects
- function scriptChildModified(child)
- local fileList = animNames[child.Name]
- if (fileList ~= nil) then
- configureAnimationSet(child.Name, fileList)
- end
- end
- script.ChildAdded:connect(scriptChildModified)
- script.ChildRemoved:connect(scriptChildModified)
- for name, fileList in pairs(animNames) do
- configureAnimationSet(name, fileList)
- end
- -- ANIMATION
- -- declarations
- local toolAnim = "None"
- local toolAnimTime = 0
- local jumpAnimTime = 0
- local jumpAnimDuration = 0.3
- local toolTransitionTime = 0.1
- local fallTransitionTime = 0.0
- -- functions
- function stopAllAnimations()
- local oldAnim = currentAnim
- -- return to idle if finishing an emote
- if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] == false) then
- oldAnim = "idle"
- end
- currentAnim = ""
- currentAnimInstance = nil
- if (currentAnimKeyframeHandler ~= nil) then
- currentAnimKeyframeHandler:disconnect()
- end
- if (currentAnimTrack ~= nil) then
- currentAnimTrack:Stop()
- currentAnimTrack:Destroy()
- currentAnimTrack = nil
- end
- return oldAnim
- end
- function setAnimationSpeed(speed)
- if speed ~= currentAnimSpeed then
- currentAnimSpeed = speed
- currentAnimTrack:AdjustSpeed(currentAnimSpeed)
- end
- end
- function keyFrameReachedFunc(frameName)
- if (frameName == "End") then
- -- print("Keyframe : ".. frameName)
- local repeatAnim = currentAnim
- -- return to idle if finishing an emote
- if (emoteNames[repeatAnim] ~= nil and emoteNames[repeatAnim] == false) then
- repeatAnim = "idle"
- end
- local animSpeed = currentAnimSpeed
- playAnimation(repeatAnim, 0.05, Humanoid)
- setAnimationSpeed(animSpeed)
- end
- end
- -- Preload animations
- function playAnimation(animName, transitionTime, humanoid)
- local roll = math.random(1, animTable[animName].totalWeight)
- local origRoll = roll
- local idx = 1
- while (roll > animTable[animName][idx].weight) do
- roll = roll - animTable[animName][idx].weight
- idx = idx + 1
- end
- -- print(animName .. " " .. idx .. " [" .. origRoll .. "]")
- local anim = animTable[animName][idx].anim
- -- switch animation
- if (anim ~= currentAnimInstance) then
- if (currentAnimTrack ~= nil) then
- currentAnimTrack:Stop(transitionTime)
- currentAnimTrack:Destroy()
- end
- currentAnimSpeed = 1.0
- -- load it to the humanoid; get AnimationTrack
- currentAnimTrack = humanoid:LoadAnimation(anim)
- -- play the animation
- currentAnimTrack:Play(transitionTime)
- currentAnim = animName
- currentAnimInstance = anim
- -- set up keyframe name triggers
- if (currentAnimKeyframeHandler ~= nil) then
- currentAnimKeyframeHandler:disconnect()
- end
- currentAnimKeyframeHandler = currentAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)
- end
- end
- -------------------------------------------------------------------------------------------
- -------------------------------------------------------------------------------------------
- local toolAnimName = ""
- local toolAnimTrack = nil
- local toolAnimInstance = nil
- local currentToolAnimKeyframeHandler = nil
- function toolKeyFrameReachedFunc(frameName)
- if (frameName == "End") then
- -- print("Keyframe : ".. frameName)
- playToolAnimation(toolAnimName, 0.0, Humanoid)
- end
- end
- function playToolAnimation(animName, transitionTime, humanoid)
- local roll = math.random(1, animTable[animName].totalWeight)
- local origRoll = roll
- local idx = 1
- while (roll > animTable[animName][idx].weight) do
- roll = roll - animTable[animName][idx].weight
- idx = idx + 1
- end
- -- print(animName .. " * " .. idx .. " [" .. origRoll .. "]")
- local anim = animTable[animName][idx].anim
- if (toolAnimInstance ~= anim) then
- if (toolAnimTrack ~= nil) then
- toolAnimTrack:Stop()
- toolAnimTrack:Destroy()
- transitionTime = 0
- end
- -- load it to the humanoid; get AnimationTrack
- toolAnimTrack = humanoid:LoadAnimation(anim)
- -- play the animation
- toolAnimTrack:Play(transitionTime)
- toolAnimName = animName
- toolAnimInstance = anim
- currentToolAnimKeyframeHandler = toolAnimTrack.KeyframeReached:connect(toolKeyFrameReachedFunc)
- end
- end
- function stopToolAnimations()
- local oldAnim = toolAnimName
- if (currentToolAnimKeyframeHandler ~= nil) then
- currentToolAnimKeyframeHandler:disconnect()
- end
- toolAnimName = ""
- toolAnimInstance = nil
- if (toolAnimTrack ~= nil) then
- toolAnimTrack:Stop()
- toolAnimTrack:Destroy()
- toolAnimTrack = nil
- end
- return oldAnim
- end
- -------------------------------------------------------------------------------------------
- -------------------------------------------------------------------------------------------
- function onRunning(speed)
- if speed > 0.01 then
- playAnimation("walk", 0.1, Humanoid)
- if currentAnimInstance and currentAnimInstance.AnimationId == "http://www.roblox.com/asset/?id=361250532" then
- setAnimationSpeed(speed / 14.5)
- end
- pose = "Running"
- else
- playAnimation("idle", 0.1, Humanoid)
- pose = "Standing"
- end
- end
- function onDied()
- pose = "Dead"
- end
- function onJumping()
- playAnimation("jump", 0.1, Humanoid)
- jumpAnimTime = jumpAnimDuration
- pose = "Jumping"
- end
- function onClimbing(speed)
- local scale = 2.0
- playAnimation("climb", 0.1, Humanoid)
- setAnimationSpeed(speed / scale)
- pose = "Climbing"
- end
- function onGettingUp()
- pose = "GettingUp"
- end
- function onFreeFall()
- if (jumpAnimTime <= 0) then
- playAnimation("fall", fallTransitionTime, Humanoid)
- end
- pose = "FreeFall"
- end
- function onFallingDown()
- pose = "FallingDown"
- end
- function onSeated()
- pose = "Seated"
- end
- function onPlatformStanding()
- pose = "PlatformStanding"
- end
- function onSwimming(speed)
- if speed>0 then
- pose = "Running"
- else
- pose = "Standing"
- end
- end
- function getTool()
- for _, kid in ipairs(Figure:GetChildren()) do
- if kid.className == "Tool" then return kid end
- end
- return nil
- end
- function getToolAnim(tool)
- for _, c in ipairs(tool:GetChildren()) do
- if c.Name == "toolanim" and c.className == "StringValue" then
- return c
- end
- end
- return nil
- end
- function animateTool()
- if (toolAnim == "None") then
- playToolAnimation("toolnone", toolTransitionTime, Humanoid)
- return
- end
- if (toolAnim == "Slash") then
- playToolAnimation("toolslash", 0, Humanoid)
- return
- end
- if (toolAnim == "Lunge") then
- playToolAnimation("toollunge", 0, Humanoid)
- return
- end
- end
- function moveSit()
- RightShoulder.MaxVelocity = 0.15
- LeftShoulder.MaxVelocity = 0.15
- RightShoulder:SetDesiredAngle(3.14 /2)
- LeftShoulder:SetDesiredAngle(-3.14 /2)
- RightHip:SetDesiredAngle(3.14 /2)
- LeftHip:SetDesiredAngle(-3.14 /2)
- end
- local lastTick = 0
- function move(time)
- local amplitude = 1
- local frequency = 1
- local deltaTime = time - lastTick
- lastTick = time
- local climbFudge = 0
- local setAngles = false
- if (jumpAnimTime > 0) then
- jumpAnimTime = jumpAnimTime - deltaTime
- end
- if (pose == "FreeFall" and jumpAnimTime <= 0) then
- playAnimation("fall", fallTransitionTime, Humanoid)
- elseif (pose == "Seated") then
- playAnimation("sit", 0.5, Humanoid)
- return
- elseif (pose == "Running") then
- playAnimation("walk", 0.1, Humanoid)
- elseif (pose == "Dead" or pose == "GettingUp" or pose == "FallingDown" or pose == "Seated" or pose == "PlatformStanding") then
- -- print("Wha " .. pose)
- stopAllAnimations()
- amplitude = 0.1
- frequency = 1
- setAngles = true
- end
- -- if (setAngles) then
- if (false) then
- desiredAngle = amplitude * math.sin(time * frequency)
- RightShoulder:SetDesiredAngle(desiredAngle + climbFudge)
- LeftShoulder:SetDesiredAngle(desiredAngle - climbFudge)
- RightHip:SetDesiredAngle(-desiredAngle)
- LeftHip:SetDesiredAngle(-desiredAngle)
- end
- -- Tool Animation handling
- local tool = getTool()
- if tool then
- animStringValueObject = getToolAnim(tool)
- if animStringValueObject then
- toolAnim = animStringValueObject.Value
- -- message recieved, delete StringValue
- animStringValueObject.Parent = nil
- toolAnimTime = time + .3
- end
- if time > toolAnimTime then
- toolAnimTime = 0
- toolAnim = "None"
- end
- animateTool()
- else
- stopToolAnimations()
- toolAnim = "None"
- toolAnimInstance = nil
- toolAnimTime = 0
- end
- end
- -- connect events
- Humanoid.Died:connect(onDied)
- Humanoid.Running:connect(onRunning)
- Humanoid.Jumping:connect(onJumping)
- Humanoid.Climbing:connect(onClimbing)
- Humanoid.GettingUp:connect(onGettingUp)
- Humanoid.FreeFalling:connect(onFreeFall)
- Humanoid.FallingDown:connect(onFallingDown)
- Humanoid.Seated:connect(onSeated)
- Humanoid.PlatformStanding:connect(onPlatformStanding)
- Humanoid.Swimming:connect(onSwimming)
- -- setup emote chat hook
- Game.Players.LocalPlayer.Chatted:connect(function(msg)
- local emote = ""
- if (string.sub(msg, 1, 3) == "/e ") then
- emote = string.sub(msg, 4)
- elseif (string.sub(msg, 1, 7) == "/emote ") then
- emote = string.sub(msg, 8)
- end
- if (pose == "Standing" and emoteNames[emote] ~= nil) then
- playAnimation(emote, 0.1, Humanoid)
- end
- -- print("===> " .. string.sub(msg, 1, 3) .. "(" .. emote .. ")")
- end)
- -- main program
- local runService = game:service("RunService");
- -- print("bottom")
- -- initialize to idle
- playAnimation("idle", 0.1, Humanoid)
- pose = "Standing"
- while Figure.Parent~=nil do
- local _, time = wait(0.1)
- move(time)
- end
- ------------
- -- ~CLarramore 2016
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement