Advertisement
HenloMyDude

ugly potato anim

Aug 20th, 2019
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.84 KB | None | 0 0
  1. --//====================================================\\--
  2. --|| teest
  3. --\\====================================================//--
  4.  
  5.  
  6. local CHARACTER = owner.Character
  7. local PLAYER = game:GetService('Players'):GetPlayerFromCharacter(CHARACTER)
  8. local HUM = CHARACTER.Humanoid
  9.  
  10. local ROOT = HUM.Torso
  11. local HEAD = CHARACTER.Head
  12. local TORSO = CHARACTER.Torso
  13. local RIGHTARM = CHARACTER["Right Arm"]
  14. local LEFTARM = CHARACTER["Left Arm"]
  15. local RIGHTLEG = CHARACTER["Right Leg"]
  16. local LEFTLEG = CHARACTER["Left Leg"]
  17. local ROOTJOINT = ROOT["RootJoint"]
  18. local NECK = TORSO["Neck"]
  19. local RIGHTSHOULDER = TORSO["Right Shoulder"]
  20. local LEFTSHOULDER = TORSO["Left Shoulder"]
  21. local RIGHTHIP = TORSO["Right Hip"]
  22. local LEFTHIP = TORSO["Left Hip"]
  23. local MOUSEPOS = ROOT.Position
  24.  
  25. ------------
  26.  
  27. IT = Instance.new
  28. CF = CFrame.new
  29. VT = Vector3.new
  30. RAD = math.rad
  31. C3 = Color3.new
  32. UD2 = UDim2.new
  33. BRICKC = BrickColor.new
  34. ANGLES = CFrame.Angles
  35. EULER = CFrame.fromEulerAnglesXYZ
  36. COS = math.cos
  37. ACOS = math.acos
  38. SIN = math.sin
  39. ASIN = math.asin
  40. ABS = math.abs
  41. MRANDOM = math.random
  42. FLOOR = math.floor
  43.  
  44. ------------
  45.  
  46.  
  47. 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 = {}
  48. do
  49. script.Parent = owner.Character
  50. local Event = Instance.new("RemoteEvent");Event.Name = "UserInput"
  51. local function NewFakeEvent()
  52. local Bind = Instance.new("BindableEvent")
  53. local Fake;Fake = {Connections = {},
  54. fakeEvent=true;
  55. Connect=function(self,Func)
  56. Bind.Event:connect(Func)
  57. self.Connections[Bind] = true
  58. return setmetatable({Connected = true},{
  59. __index = function (self,Index)
  60. if Index:lower() == "disconnect" then
  61. return function() Fake.Connections[Bind] = false;self.Connected = false end
  62. end
  63. return Fake[Index]
  64. end;
  65. __tostring = function() return "Connection" end;
  66. })
  67. end}
  68. Fake.connect = Fake.Connect;return Fake;
  69. end
  70. local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()}
  71. local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()}
  72. local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
  73. self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
  74. end};ContextActionService.UnBindAction = ContextActionService.BindAction
  75. local function TriggerEvent(self,Event,...)
  76. local Trigger = Mouse[Event]
  77. if Trigger and Trigger.fakeEvent and Trigger.Connections then
  78. for Connection,Active in pairs(Trigger.Connections) do if Active then Connection:Fire(...) end end
  79. end
  80. end
  81. Mouse.TrigEvent = TriggerEvent;UserInputService.TrigEvent = TriggerEvent
  82. Event.OnServerEvent:Connect(function(FiredBy,Input)
  83. if FiredBy.Name ~= owner.Name then return end
  84. if Input.MouseEvent then
  85. Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
  86. else
  87. local Begin = Input.UserInputState == Enum.UserInputState.Begin
  88. if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up") end
  89. for _,Action in pairs(ContextActionService.Actions) do
  90. for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
  91. end
  92. Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower())
  93. UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false)
  94. end
  95. end)
  96. InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
  97. Event.Parent = NLS([[
  98. local Player = owner;local Event = script:WaitForChild("UserInput");local UserInputService = game:GetService("UserInputService");local Mouse = Player:GetMouse()
  99. local Input = function(Input,gameProcessedEvent)
  100. if gameProcessedEvent then return end
  101. Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
  102. end
  103. UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
  104. local Hit,Target
  105. while wait(1/30) do
  106. if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
  107. Hit,Target = Mouse.Hit,Mouse.Target;Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
  108. end
  109. end
  110. ]],owner.Character)
  111. end
  112. RealGame = game;game = setmetatable({},{
  113. __index = function (self,Index)
  114. local Sandbox = function (Thing)
  115. if Thing:IsA("Player") then
  116. local RealPlayer = Thing
  117. return setmetatable({},{
  118. __index = function (self,Index)
  119. local Type = type(RealPlayer[Index])
  120. if Type == "function" then
  121. if Index:lower() == "getmouse" or Index:lower() == "mouse" then
  122. return function (self)return InternalData["Mouse"] end
  123. end
  124. return function (self,...)return RealPlayer[Index](RealPlayer,...) end
  125. end
  126. return RealPlayer[Index]
  127. end;
  128. __tostring = function(self) return RealPlayer.Name end
  129. })
  130. end
  131. end
  132. if RealGame[Index] then
  133. local Type = type(RealGame[Index])
  134. if Type == "function" then
  135. if Index:lower() == "getservice" or Index:lower() == "service" then
  136. return function (self,Service)
  137. local FakeServices = {
  138. ["players"] = function()
  139. return setmetatable({},{
  140. __index = function (self2,Index2)
  141. local RealService = RealGame:GetService(Service)
  142. local Type2 = type(Index2)
  143. if Type2 == "function" then
  144. return function (self,...) return RealService[Index2](RealService,...)end
  145. else
  146. if Index2:lower() == "localplayer" then return Sandbox(owner) end
  147. return RealService[Index2]
  148. end
  149. end;
  150. __tostring = function(self) return RealGame:GetService(Service).Name end
  151. })
  152. end;
  153. ["contextactionservice"] = function() return InternalData["ContextActionService"] end;
  154. ["userinputservice"] = function() return InternalData["UserInputService"] end;
  155. ["runservice"] = function()
  156. return setmetatable({},{
  157. __index = function(self2,Index2)
  158. local RealService = RealGame:GetService(Service)
  159. local Type2 = type(Index2)
  160. if Type2 == "function" then
  161. return function (self,...) return RealService[Index2](RealService,...) end
  162. else
  163. local RunServices = {
  164. ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return RealGame:GetService("RunService").Stepped:Connect(Function) end end;
  165. ["renderstepped"] = function() return RealService["Stepped"] end
  166. }
  167. if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
  168. return RealService[Index2]
  169. end
  170. end
  171. })
  172. end
  173. }
  174. if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
  175. return RealGame:GetService(Service)
  176. end
  177. end
  178. return function (self,...) return RealGame[Index](RealGame,...) end
  179. else
  180. if game:GetService(Index) then return game:GetService(Index) end
  181. return RealGame[Index]
  182. end
  183. end
  184. return nil
  185. end
  186. });Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete! Running...")
  187.  
  188.  
  189. ------------
  190.  
  191. local ANIM = "Idle"
  192. local ANIM_SPEED = 3
  193. local FRAME_SPEED = 1 / 60 -- (1 / 30) OR (1 / 60)
  194. local CHANGE = 2 / ANIM_SPEED
  195. local DAMAGEMULTIPLIER = 1
  196. local KEYHOLD = false
  197. local MOUSEHOLD = false
  198. local SINE = 0
  199. local ATTACKING = false
  200. local Debris = game:GetService("Debris")
  201. local Effects = IT("Folder",CHARACTER)
  202. Effects.Name = "FXFolder"
  203. local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  204. local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  205. local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
  206. local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
  207.  
  208. ------------
  209.  
  210. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  211. local NEWPART = IT("Part")
  212. NEWPART.formFactor = FORMFACTOR
  213. NEWPART.Reflectance = REFLECTANCE
  214. NEWPART.Transparency = TRANSPARENCY
  215. NEWPART.CanCollide = false
  216. NEWPART.Locked = true
  217. NEWPART.Anchored = true
  218. if ANCHOR == false then
  219. NEWPART.Anchored = false
  220. end
  221. NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  222. NEWPART.Name = NAME
  223. NEWPART.Size = SIZE
  224. NEWPART.Position = ROOT.Position
  225. NEWPART.Material = MATERIAL
  226. NEWPART:BreakJoints()
  227. NEWPART.Parent = PARENT
  228. return NEWPART
  229. end
  230.  
  231. function WeldParts(A,B)
  232. local WLD = IT("ManualWeld")
  233. WLD.Part0 = A
  234. WLD.Part1 = B
  235. WLD.C1 = B.CFrame:inverse() * A.CFrame
  236. WLD.Parent = A
  237. return WLD
  238. end
  239.  
  240. ----------------
  241.  
  242. ArtificialHB = Instance.new("BindableEvent", script)
  243. ArtificialHB.Name = "ArtificialHB"
  244.  
  245. script:WaitForChild("ArtificialHB")
  246.  
  247. frame = FRAME_SPEED
  248. tf = 0
  249. allowframeloss = false
  250. tossremainder = false
  251. lastframe = tick()
  252. script.ArtificialHB:Fire()
  253.  
  254. game:GetService("RunService").Heartbeat:connect(function(s, p)
  255. tf = tf + s
  256. if tf >= frame then
  257. if allowframeloss then
  258. ArtificialHB:Fire()
  259. lastframe = tick()
  260. else
  261. for i = 1, math.floor(tf / frame) do
  262. ArtificialHB:Fire()
  263. end
  264. lastframe = tick()
  265. end
  266. if tossremainder then
  267. tf = 0
  268. else
  269. tf = tf - frame * math.floor(tf / frame)
  270. end
  271. end
  272. end)
  273.  
  274. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  275. return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  276. end
  277.  
  278.  
  279. function QuaternionFromCFrame(cf)
  280. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  281. local trace = m00 + m11 + m22
  282. if trace > 0 then
  283. local s = math.sqrt(1 + trace)
  284. local recip = 0.5 / s
  285. return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  286. else
  287. local i = 0
  288. if m11 > m00 then
  289. i = 1
  290. end
  291. if m22 > (i == 0 and m00 or m11) then
  292. i = 2
  293. end
  294. if i == 0 then
  295. local s = math.sqrt(m00 - m11 - m22 + 1)
  296. local recip = 0.5 / s
  297. return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  298. elseif i == 1 then
  299. local s = math.sqrt(m11 - m22 - m00 + 1)
  300. local recip = 0.5 / s
  301. return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  302. elseif i == 2 then
  303. local s = math.sqrt(m22 - m00 - m11 + 1)
  304. local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  305. end
  306. end
  307. end
  308.  
  309. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  310. local xs, ys, zs = x + x, y + y, z + z
  311. local wx, wy, wz = w * xs, w * ys, w * zs
  312. local xx = x * xs
  313. local xy = x * ys
  314. local xz = x * zs
  315. local yy = y * ys
  316. local yz = y * zs
  317. local zz = z * zs
  318. return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy))
  319. end
  320.  
  321. function QuaternionSlerp(a, b, t)
  322. local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  323. local startInterp, finishInterp;
  324. if cosTheta >= 0.0001 then
  325. if (1 - cosTheta) > 0.0001 then
  326. local theta = ACOS(cosTheta)
  327. local invSinTheta = 1 / SIN(theta)
  328. startInterp = SIN((1 - t) * theta) * invSinTheta
  329. finishInterp = SIN(t * theta) * invSinTheta
  330. else
  331. startInterp = 1 - t
  332. finishInterp = t
  333. end
  334. else
  335. if (1 + cosTheta) > 0.0001 then
  336. local theta = ACOS(-cosTheta)
  337. local invSinTheta = 1 / SIN(theta)
  338. startInterp = SIN((t - 1) * theta) * invSinTheta
  339. finishInterp = SIN(t * theta) * invSinTheta
  340. else
  341. startInterp = t - 1
  342. finishInterp = t
  343. end
  344. end
  345. return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp
  346. end
  347.  
  348. function Clerp(a, b, t)
  349. local qa = {QuaternionFromCFrame(a)}
  350. local qb = {QuaternionFromCFrame(b)}
  351. local ax, ay, az = a.x, a.y, a.z
  352. local bx, by, bz = b.x, b.y, b.z
  353. local _t = 1 - t
  354. return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  355. end
  356.  
  357. function Swait(NUMBER)
  358. if NUMBER == 0 or NUMBER == nil then
  359. ArtificialHB.Event:wait()
  360. else
  361. for i = 1, NUMBER do
  362. ArtificialHB.Event:wait()
  363. end
  364. end
  365. end
  366.  
  367. ATTACKING = false
  368. HUM.WalkSpeed = 16
  369.  
  370. function NewSound(TABLE)
  371. local ID = "rbxassetid://"..(TABLE.ID or 0)
  372. local PARENT = (TABLE.PARENT or ROOT)
  373. local VOLUME = (TABLE.VOLUME or 0.5)
  374. local PITCH = (TABLE.PITCH or 1)
  375. local LOOP = (TABLE.LOOP or false)
  376. local MAXDISTANCE = (TABLE.MAXDISTANCE or 100)
  377. local EMITTERSIZE = (TABLE.EMITTERSIZE or 10)
  378. local PLAYING = (TABLE.PLAYING or true)
  379. local PLAYONREMOVE = (TABLE.PLAYONREMOVE or false)
  380. local DOESDEBRIS = (TABLE.DOESDEBRIS or true)
  381. if ID ~= "rbxassetid://0" then
  382. local SOUND = IT("Sound",PARENT)
  383. SOUND.SoundId = ID
  384. SOUND.Volume = VOLUME
  385. SOUND.Pitch = PITCH
  386. SOUND.Looped = LOOP
  387. SOUND.MaxDistance = MAXDISTANCE
  388. SOUND.EmitterSize = EMITTERSIZE
  389. SOUND.PlayOnRemove = PLAYONREMOVE
  390. if DOESDEBRIS == true and PLAYING == true and LOOP == false then
  391. Debris:AddItem(SOUND,SOUND.TimeLength+5)
  392. end
  393. if PLAYING == true then
  394. SOUND:Play()
  395. end
  396. return SOUND
  397. end
  398. end
  399.  
  400. ---------------
  401.  
  402. function WHATSTHIS()
  403. ATTACKING = true
  404. NewSound({ID = 2820730608,PARENT = ROOT,VOLUME = 10,PITCH = 1,LOOP = false,MAXDISTANCE = 125,EMITTERSIZE = 100,PLAYING = false,PLAYONREMOVE = false,DOESDEBRIS = false})
  405. for i=0, 1.6, 0.1 / ANIM_SPEED do
  406. Swait()
  407. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
  408. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
  409. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0, 0) * ANGLES(RAD(180), RAD(0), RAD(-10)) * RIGHTSHOULDERC0, 1.5 / ANIM_SPEED)
  410. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0, 0) * ANGLES(RAD(180), RAD(0), RAD(10)) * LEFTSHOULDERC0, 1.5 / ANIM_SPEED)
  411. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.05 * COS(SINE / 24), -0.01) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  412. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / 24), -0.01) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  413. end
  414.  
  415. for i=0, 1.2, 0.1 / ANIM_SPEED do
  416. Swait()
  417. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
  418. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
  419. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0, 0) * ANGLES(RAD(120), RAD(0), RAD(-10)) * RIGHTSHOULDERC0, 1.5 / ANIM_SPEED)
  420. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0, 0) * ANGLES(RAD(120), RAD(0), RAD(10)) * LEFTSHOULDERC0, 1.5 / ANIM_SPEED)
  421. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.05 * COS(SINE / 24), -0.01) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  422. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / 24), -0.01) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  423. end
  424.  
  425. for i=0, 1.2, 0.1 / ANIM_SPEED do
  426. Swait()
  427. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
  428. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
  429. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0, 0) * ANGLES(RAD(90), RAD(0), RAD(-10)) * RIGHTSHOULDERC0, 1.5 / ANIM_SPEED)
  430. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0, 0) * ANGLES(RAD(90), RAD(0), RAD(10)) * LEFTSHOULDERC0, 1.5 / ANIM_SPEED)
  431. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.05 * COS(SINE / 24), -0.01) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  432. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / 24), -0.01) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(1), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  433. end
  434. ATTACKING = false
  435. end
  436.  
  437. ---------------
  438.  
  439. local mouse = owner:GetMouse()
  440.  
  441. mouse.KeyDown:connect(function(key)
  442. key=key:lower()
  443. if key == "e" then
  444. if ATTACKING == false then
  445. WHATSTHIS()
  446. end
  447. end
  448. end)
  449.  
  450. ---------------
  451. while true do
  452. Swait()
  453. SINE = SINE + CHANGE
  454. LOOP = 0
  455. if CHARACTER:FindFirstChild("Sound") then
  456. CHARACTER:FindFirstChild("Sound"):Destroy()
  457. end
  458. if CHARACTER:FindFirstChild("Health") then
  459. CHARACTER:FindFirstChild("Health"):Destroy()
  460. end
  461. for _,v in next, HUM:GetPlayingAnimationTracks() do
  462. v:Stop();
  463. end
  464. local TORSOVELOCITY = (ROOT.Velocity * VT(1, 0, 1)).magnitude
  465. local TORSOVERTICALVELOCITY = ROOT.Velocity.y
  466. local HITFLOOR = Raycast(ROOT.Position, (CF(ROOT.Position, ROOT.Position + VT(0, -1, 0))).lookVector, 4+HUM.HipHeight, CHARACTER)
  467. local WALKSPEEDVALUE = 5-(1*(HUM.WalkSpeed/16))
  468. if WALKSPEEDVALUE <= 1 then
  469. WALKSPEEDVALUE = 1
  470. end
  471. local SITTING = HUM.Sit
  472. local ADD = HUM.WalkSpeed*2
  473. if ANIM == "Walk" and TORSOVELOCITY > 1 and ATTACKING == false and SITTING == false then
  474. elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) or ATTACKING == true or SITTING == true then
  475. end
  476. if SITTING == false then
  477. if HITFLOOR then
  478. if TORSOVELOCITY < 1 and HITFLOOR ~= nil then
  479. ANIM = "Idle"
  480. if ATTACKING == false then
  481. LOOP = LOOP + 5
  482. ROOTJOINT.C0 = ROOTC0 * CF(0, 0, -1) * ANGLES(RAD(45), RAD(0), RAD(0))
  483. NECK.C0 = NECKC0 * ANGLES(RAD(-45), RAD(0), RAD(0))
  484. RIGHTSHOULDER.C0 = CF(1.5, 0.5, 0) * RIGHTSHOULDERC0
  485. LEFTSHOULDER.C0 = CF(-1.5, 0.5, 0) * LEFTSHOULDERC0
  486. RIGHTHIP.C0 = CF(1, 0, -1) * ANGLES(RAD(0), RAD(90), RAD(0))
  487. LEFTHIP.C0 = CF(-1, 0, -1) * ANGLES(RAD(0), RAD(-90), RAD(0))
  488. Swait()
  489. end
  490. elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
  491. ANIM = "Walk"
  492. if ATTACKING == false then
  493. ROOTJOINT.C0 = ROOTC0 * CF(0, 0, -1) * ANGLES(RAD(45), RAD(0), RAD(0))
  494. NECK.C0 = NECKC0 * ANGLES(RAD(-45), RAD(0), RAD(0))
  495. RIGHTSHOULDER.C0 = CF(1.5, 0.5, 0) * RIGHTSHOULDERC0
  496. LEFTSHOULDER.C0 = CF(-1.5, 0.5, 0) * LEFTSHOULDERC0
  497. RIGHTHIP.C0 = CF(1, 0, -1) * ANGLES(RAD(0), RAD(90), RAD(0))
  498. LEFTHIP.C0 = CF(-1, 0, -1) * ANGLES(RAD(0), RAD(-90), RAD(0))
  499. end
  500. end
  501. else
  502. if TORSOVERTICALVELOCITY > 0 then
  503. ANIM = "Jump"
  504. if ATTACKING == false then
  505. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / ANIM_SPEED)
  506. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / ANIM_SPEED)
  507. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.35, 0) * ANGLES(RAD(-5), RAD(0), RAD(-10)) * RIGHTSHOULDERC0, 0.5 / ANIM_SPEED)
  508. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.35, 0) * ANGLES(RAD(-5), RAD(0), RAD(10)) * LEFTSHOULDERC0, 0.5 / ANIM_SPEED)
  509. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 1 / ANIM_SPEED)
  510. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 0.5 / ANIM_SPEED)
  511. end
  512. else
  513. ANIM = "Fall"
  514. if ATTACKING == false then
  515. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / ANIM_SPEED)
  516. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / ANIM_SPEED)
  517. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.55, 0) * ANGLES(RAD(-5), RAD(0), RAD(80)) * RIGHTSHOULDERC0, 0.5 / ANIM_SPEED)
  518. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.55, 0) * ANGLES(RAD(-5), RAD(0), RAD(-80)) * LEFTSHOULDERC0, 0.5 / ANIM_SPEED)
  519. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 0.8 / ANIM_SPEED)
  520. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / ANIM_SPEED)
  521. end
  522. end
  523. end
  524. else
  525. ANIM = "Sit"
  526. if ATTACKING == false then
  527. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.5) * ANGLES(RAD(0), RAD(0), RAD(0)), 1.25 / ANIM_SPEED)
  528. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1.25 / ANIM_SPEED)
  529. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.65, 0) * ANGLES(RAD(50), RAD(10), RAD(-45))*CF(0,-0.25,0) * RIGHTSHOULDERC0, 1.25 / ANIM_SPEED)
  530. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.65, 0) * ANGLES(RAD(50), RAD(-10), RAD(45))*CF(0,-0.25,0) * LEFTSHOULDERC0, 1.25 / ANIM_SPEED)
  531. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -0.25, -1) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 1.25 / ANIM_SPEED)
  532. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -0.25, -1) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-10)), 1.25 / ANIM_SPEED)
  533. end
  534. end
  535. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement