Advertisement
Guest_84210423435

doom dula v1.2

Jul 4th, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 48.46 KB | None | 0 0
  1. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  2. local Player,Mouse,mouse,UserInputService,ContextActionService = owner
  3. do
  4. print("FE Compatibility code by Mokiros")
  5. script.Parent = Player.Character
  6.  
  7. --RemoteEvent for communicating
  8. local Event = Instance.new("RemoteEvent")
  9. Event.Name = "UserInput_Event"
  10.  
  11. --Fake event to make stuff like Mouse.KeyDown work
  12. local function fakeEvent()
  13. local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
  14. t.connect = t.Connect
  15. return t
  16. end
  17.  
  18. --Creating fake input objects with fake variables
  19. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  20. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  21. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  22. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  23. end}
  24. --Merged 2 functions into one by checking amount of arguments
  25. CAS.UnbindAction = CAS.BindAction
  26.  
  27. --This function will trigger the events that have been :Connect()'ed
  28. local function te(self,ev,...)
  29. local t = m[ev]
  30. if t and t._fakeEvent and t.Function then
  31. t.Function(...)
  32. end
  33. end
  34. m.TrigEvent = te
  35. UIS.TrigEvent = te
  36.  
  37. Event.OnServerEvent:Connect(function(plr,io)
  38. if plr~=Player then return end
  39. if io.isMouse then
  40. m.Target = io.Target
  41. m.Hit = io.Hit
  42. else
  43. local b = io.UserInputState == Enum.UserInputState.Begin
  44. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  45. return m:TrigEvent(b and "Button1Down" or "Button1Up")
  46. end
  47. for _,t in pairs(CAS.Actions) do
  48. for _,k in pairs(t.Keys) do
  49. if k==io.KeyCode then
  50. t.Function(t.Name,io.UserInputState,io)
  51. end
  52. end
  53. end
  54. m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  55. UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
  56. end
  57. end)
  58. Event.Parent = NLS([==[
  59. local Player = game:GetService("Players").LocalPlayer
  60. local Event = script:WaitForChild("UserInput_Event")
  61.  
  62. local UIS = game:GetService("UserInputService")
  63. local input = function(io,a)
  64. if a then return end
  65. --Since InputObject is a client-side instance, we create and pass table instead
  66. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
  67. end
  68. UIS.InputBegan:Connect(input)
  69. UIS.InputEnded:Connect(input)
  70.  
  71. local Mouse = Player:GetMouse()
  72. local h,t
  73. --Give the server mouse data 30 times every second, but only if the values changed
  74. --If player is not moving their mouse, client won't fire events
  75. while wait(1/30) do
  76. if h~=Mouse.Hit or t~=Mouse.Target then
  77. h,t=Mouse.Hit,Mouse.Target
  78. Event:FireServer({isMouse=true,Target=t,Hit=h})
  79. end
  80. end]==],Player.Character)
  81. Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
  82. end
  83. Player=owner
  84. Character=Player.Character
  85. local ROOT = HUM.Torso
  86. local HEAD = CHARACTER.Head
  87. local TORSO = CHARACTER.Torso
  88. local RIGHTARM = CHARACTER["Right Arm"]
  89. local LEFTARM = CHARACTER["Left Arm"]
  90. local RIGHTLEG = CHARACTER["Right Leg"]
  91. local LEFTLEG = CHARACTER["Left Leg"]
  92. local ROOTJOINT = ROOT["RootJoint"]
  93. local NECK = TORSO["Neck"]
  94. local RIGHTSHOULDER = TORSO["Right Shoulder"]
  95. local LEFTSHOULDER = TORSO["Left Shoulder"]
  96. local RIGHTHIP = TORSO["Right Hip"]
  97. local LEFTHIP = TORSO["Left Hip"]
  98. local MOUSEPOS = ROOT.Position
  99.  
  100. IT = Instance.new
  101. CF = CFrame.new
  102. VT = Vector3.new
  103. RAD = math.rad
  104. C3 = Color3.new
  105. UD2 = UDim2.new
  106. BRICKC = BrickColor.new
  107. ANGLES = CFrame.Angles
  108. EULER = CFrame.fromEulerAnglesXYZ
  109. COS = math.cos
  110. ACOS = math.acos
  111. SIN = math.sin
  112. ASIN = math.asin
  113. ABS = math.abs
  114. MRANDOM = math.random
  115. FLOOR = math.floor
  116.  
  117. --//====================================================\\--
  118. --|| FE CODE
  119. --\\====================================================//--
  120.  
  121. local FakeMouse = script.FakeMouse:Clone();
  122. FakeMouse.Parent = PLAYER.Character;
  123. script.FakeMouse:Destroy()
  124. do
  125. local GUID = {}
  126. do
  127. GUID.IDs = {};
  128. function GUID:new(len)
  129. local id;
  130. if(not len)then
  131. id = (tostring(function() end))
  132. id = id:gsub("function: ","")
  133. else
  134. local function genID(len)
  135. local newID = ""
  136. for i = 1,len do
  137. newID = newID..string.char(math.random(48,90))
  138. end
  139. return newID
  140. end
  141. repeat id = genID(len) until not GUID.IDs[id]
  142. local oid = id;
  143. id = {Trash=function() GUID.IDs[oid]=nil; end;Get=function() return oid; end}
  144. GUID.IDs[oid]=true;
  145. end
  146. return id
  147. end
  148. end
  149.  
  150. local AHB = Instance.new("BindableEvent")
  151.  
  152. local FPS = 30
  153.  
  154. local TimeFrame = 0
  155.  
  156. local LastFrame = tick()
  157. local Frame = 1/FPS
  158.  
  159. game:service'RunService'.Heartbeat:connect(function(s,p)
  160. TimeFrame = TimeFrame + s
  161. if(TimeFrame >= Frame)then
  162. for i = 1,math.floor(TimeFrame/Frame) do
  163. AHB:Fire()
  164. end
  165. LastFrame=tick()
  166. TimeFrame=TimeFrame-Frame*math.floor(TimeFrame/Frame)
  167. end
  168. end)
  169.  
  170.  
  171. function swait(dur)
  172. if(dur == 0 or typeof(dur) ~= 'number')then
  173. AHB.Event:wait()
  174. else
  175. for i = 1, dur*FPS do
  176. AHB.Event:wait()
  177. end
  178. end
  179. end
  180.  
  181. local oPlayer = PLAYER
  182. local Player = oPlayer
  183.  
  184. local loudnesses={}
  185. script.Parent = Player.Character
  186. local CoAS = {Actions={}}
  187. local Event = Instance.new("RemoteEvent")
  188. Event.Name = "UserInputEvent"
  189. Event.Parent = Player.Character
  190. local Func = Instance.new("RemoteFunction")
  191. Func.Name = "GetClientProperty"
  192. Func.Parent = Player.Character
  193. local fakeEvent = function()
  194. local t = {_fakeEvent=true,Waited={},Connected={}}
  195. t.Connect = function(self,f)
  196. local ft={}
  197. ft={Disconnected=false;disconnect=function(s) if(self.Function==ft)then self.Function=nil end s.Disconnected=true end}
  198. ft.Disconnect=ft.disconnect
  199.  
  200. ft.Func=function(...)
  201. for id,_ in next, t.Waited do
  202. t.Waited[id] = true
  203. end
  204. return f(...)
  205. end;
  206.  
  207. table.insert(self.Connected,ft)
  208. return ft;
  209. end
  210. t.connect = t.Connect
  211. t.Wait = function()
  212. local guid = GUID:new(25)
  213. local waitingId = guid:Get()
  214. t.Waited[waitingId]=false
  215. repeat swait() until t.Waited[waitingId]==true
  216. t.Waited[waitingId]=nil;
  217. guid:Trash()
  218. end
  219. t.wait = t.Wait
  220. return t
  221. end
  222. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  223. local UsIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  224. local Run = {RenderStepped=fakeEvent()}
  225.  
  226. function CoAS:BindAction(name,fun,touch,...)
  227. CoAS.Actions[name] = {Name=name,Function=fun,Keys={...}}
  228. end
  229. function CoAS:UnbindAction(name)
  230. CoAS.Actions[name] = nil
  231. end
  232. local function te(self,ev,...)
  233. local t = self[ev]
  234. if t and t._fakeEvent and t.Connected then
  235. for i,v in next, t.Connected do
  236. if(v.Func and not v.Disconnected)then
  237. v.Func(...)
  238. else
  239. t.Connected[i]=nil
  240. end
  241. end
  242. end
  243. end
  244. m.TrigEvent = te
  245. UsIS.TrigEvent = te
  246. Run.TrigEvent = te
  247. Event.OnServerEvent:Connect(function(plr,io)
  248. if plr~=Player then return end
  249. --[[table.foreach(io,print)
  250. print'---']]
  251. if io.Mouse then
  252. m.Target = io.Target
  253. m.Hit = io.Hit
  254. MOUSEPOS = m.Hit.p
  255. elseif io.KeyEvent then
  256. m:TrigEvent('Key'..io.KeyEvent,io.Key)
  257. elseif io.UserInputType == Enum.UserInputType.MouseButton1 then
  258. if io.UserInputState == Enum.UserInputState.Begin then
  259. m:TrigEvent("Button1Down")
  260. else
  261. m:TrigEvent("Button1Up")
  262. end
  263. end
  264. if(not io.KeyEvent and not io.Mouse)then
  265.  
  266. for n,t in pairs(CoAS.Actions) do
  267. for _,k in pairs(t.Keys) do
  268. if k==io.KeyCode then
  269. t.Function(t.Name,io.UserInputState,io)
  270. end
  271. end
  272. end
  273. if io.UserInputState == Enum.UserInputState.Begin then
  274. UsIS:TrigEvent("InputBegan",io,false)
  275. else
  276. UsIS:TrigEvent("InputEnded",io,false)
  277. end
  278. end
  279. end)
  280.  
  281. Func.OnServerInvoke = function(plr,inst,play)
  282. if plr~=Player then return end
  283. if(inst and typeof(inst) == 'Instance' and inst:IsA'Sound')then
  284. loudnesses[inst]=play
  285. end
  286. end
  287.  
  288. function GetClientProperty(inst,prop)
  289. if(prop == 'PlaybackLoudness' and loudnesses[inst])then
  290. return loudnesses[inst]
  291. elseif(prop == 'PlaybackLoudness')then
  292. return Func:InvokeClient(Player,'RegSound',inst)
  293. end
  294. return Func:InvokeClient(Player,inst,prop)
  295. end
  296. local oldGame = game;
  297. function GetFakePlayer()
  298. local oldPlayer = Player;
  299. local fakePlayer = newproxy(true)
  300. getmetatable(fakePlayer).__index = function(s,i)
  301. if(i == 'GetMouse')then
  302. return function() return m; end
  303. end
  304. return Player[i]
  305. end
  306. getmetatable(fakePlayer).__newindex = function(s,i,v)
  307. Player[i]=v
  308. end
  309. getmetatable(fakePlayer).__call=function(self,...)
  310. if(self == fakePlayer)then self = Player end
  311. local wh = {...}
  312. local name = table.remove(wh,1)
  313. for i,v in next, wh do
  314. wh[i]=v
  315. end
  316. if(name == 'GetMouse')then
  317. return m;
  318. end
  319. return self(name,unpack(wh))
  320. end
  321. getmetatable(fakePlayer).__namecall=function(self,...)
  322. if(self == fakePlayer)then self = Player end
  323. local tuple={...}
  324. local name = table.remove(tuple,#tuple)
  325.  
  326. if(name == 'GetMouse')then
  327. return m;
  328. else
  329. return self[name](self,unpack(tuple))
  330. end
  331. end
  332.  
  333. return fakePlayer
  334. end
  335. local oll = LoadLibrary;
  336. function LoadLibrary(libtard)
  337. local libtarddestroyed=oll(libtard)
  338. if(libtard=='RbxUtility')then
  339. local library={Create=function(obj)
  340. local inst = Instance.new(obj)
  341. return function(props)
  342. for prop,valu in next, props do
  343. inst[prop]=valu
  344. end
  345. return inst
  346. end
  347. end}
  348. setmetatable(library,{__index=libtarddestroyed,__newindex=function(s,i,v) libtarddestroyed[i]=v end})
  349.  
  350. return library
  351. else
  352. return libtarddestroyed
  353. end
  354. end
  355. fakePlayer = GetFakePlayer()
  356. local function GetService(s,i)
  357. local service = s:GetService(i)
  358. if(i == 'Players')then
  359. local oldService = service;
  360. local fakeService = newproxy(true)
  361. getmetatable(fakeService).__index = function(s,i)
  362. if(s == fakeService)then s=oldService end
  363. if(i == 'LocalPlayer' or i == 'localPlayer')then
  364. return fakePlayer
  365. elseif(i == 'oPlayer')then
  366. return oPlayer
  367. else
  368. return s[i]
  369. end
  370. end
  371. getmetatable(fakeService).__newindex = function(s,i,v)
  372. if(s == fakeService)then s=oldService end
  373. s[i]=v
  374. end
  375. getmetatable(fakeService).__call=function(self,...)
  376. if(self == fakeService)then self = oldService end
  377. local wh = {...}
  378. local name = table.remove(wh,1)
  379. for i,v in next, wh do
  380. wh[i]=v
  381. end
  382. return self(name,unpack(wh))
  383. end
  384. getmetatable(fakeService).__namecall=function(self,...)
  385. if(self == fakeService)then self = oldService end
  386. local tuple={...}
  387. local name = table.remove(tuple,#tuple)
  388.  
  389. return self[name](self,unpack(tuple))
  390. end
  391. getmetatable(fakeService).__metatable = 'gay'
  392. return fakeService
  393. elseif(i == 'RunService')then
  394. local oldService = service;
  395. local fakeService = newproxy(true)
  396. getmetatable(fakeService).__index = function(s,i)
  397. if(s == fakeService)then s=oldService end
  398. return Run[i] or s[i]
  399. end
  400. getmetatable(fakeService).__newindex = function(s,i,v)
  401. if(s == fakeService)then s=oldService end
  402. s[i]=v
  403. end
  404. getmetatable(fakeService).__call=function(self,...)
  405. if(self == fakeService)then self = oldService end
  406. local wh = {...}
  407. local name = table.remove(wh,1)
  408. for i,v in next, wh do
  409. wh[i]=v
  410. end
  411. return self(name,unpack(wh))
  412. end
  413. getmetatable(fakeService).__namecall=function(self,...)
  414. if(self == fakeService)then self = oldService end
  415. local tuple={...}
  416. local name = table.remove(tuple,#tuple)
  417.  
  418. return self[name](self,unpack(tuple))
  419. end
  420. getmetatable(fakeService).__metatable = 'gay'
  421. return fakeService
  422. elseif(i == 'UserInputService')then
  423. return UsIS
  424. elseif(i == 'ContextActionService')then
  425. return CoAS;
  426. else
  427. return service
  428. end
  429. end
  430.  
  431. local new = Instance.new;
  432. Instance = {}
  433. Instance.new = function(inst,obje)
  434. local lp = GetService(oldGame,'Players').localPlayer
  435. local instance = new(inst)
  436. if(inst=='ObjectValue')then
  437. local fake = newproxy(true)
  438. getmetatable(fake).__index=function(self,index)
  439. if(self==fake)then self=instance end
  440. return self[index]
  441. end
  442. getmetatable(fake).__newindex=function(self,index,value)
  443. if(self==fake)then self=instance end
  444. if(index=='Value' and typeof(value)~='Instance' and value==fakePlayer)then
  445. self[index]=oPlayer
  446. else
  447. self[index]=value
  448. end
  449. end
  450. getmetatable(fake).__call=function(self,...)
  451. if(self == fake)then self = instance end
  452. local wh = {...}
  453. local name = table.remove(wh,1)
  454. for i,v in next, wh do
  455. if(v == fake)then v = instance end
  456. wh[i]=v
  457. end
  458. return self(name,unpack(wh))
  459. end
  460. getmetatable(fake). __namecall=function(self,...)
  461. if(self == fake)then self = instance end
  462. local tuple={...}
  463. local name = table.remove(tuple,#tuple)
  464. return self[name](self,unpack(tuple))
  465. end
  466. return fake
  467. elseif(inst=='aaa')then
  468. local fake = newproxy(true)
  469. getmetatable(fake).__index=function(self,index)
  470. if(self==fake)then self=instance end
  471. if(index=='PlaybackLoudnes')then
  472. return GetClientProperty(instance,'PlaybackLoudness')
  473. end
  474. return self[index]
  475. end
  476. getmetatable(fake).__newindex=function(self,index,value)
  477. if(self==fake)then self=instance end
  478. self[index]=value
  479. end
  480. getmetatable(fake).__call=function(self,...)
  481. if(self == fake)then self = instance end
  482. local wh = {...}
  483. local name = table.remove(wh,1)
  484. for i,v in next, wh do
  485. if(v == fake)then v = instance end
  486. wh[i]=v
  487. end
  488. return self(name,unpack(wh))
  489. end
  490. getmetatable(fake). __namecall=function(self,...)
  491. if(self == fake)then self = instance end
  492. local tuple={...}
  493. local name = table.remove(tuple,#tuple)
  494. return self[name](self,unpack(tuple))
  495. end
  496. return fake
  497. else
  498. instance.Parent = obje
  499. return instance;
  500. end
  501.  
  502. end
  503. local serviceFunctions={
  504. service=true,
  505. GetService=true,
  506. }
  507. local fakeGame = newproxy(true)
  508. getmetatable(fakeGame).__index = function(s,i)
  509. if(s == fakeGame)then s=oldGame end
  510. local serv = GetService(oldGame,i)
  511. if serviceFunctions[i] then
  512. return GetService
  513. elseif(serv)then
  514. return serv
  515. else
  516. return s[i]
  517. end
  518. end
  519. getmetatable(fakeGame).__newindex = function(s,i,v)
  520. if(s == fakeGame)then s=oldGame end
  521. s[i]=v
  522. end
  523. getmetatable(fakeGame).__call=function(self,...)
  524. if(self == fakeGame)then self = oldGame end
  525. local wh = {...}
  526. local name = table.remove(wh,1)
  527. for i,v in next, wh do
  528. if(v == fakeGame)then v = oldGame end
  529. wh[i]=v
  530. end
  531. if serviceFunctions[name] then
  532. return GetService(self,unpack(wh))
  533. else
  534. return self(name,unpack(wh))
  535. end
  536. end
  537. getmetatable(fakeGame). __namecall=function(self,...)
  538. if(self == fakeGame)then self = oldGame end
  539. local tuple={...}
  540. local name = table.remove(tuple,#tuple)
  541.  
  542. local funcToCall=self[name]
  543.  
  544. if serviceFunctions[name] then
  545. return GetService(self,unpack(tuple))
  546. else
  547. return self[name](self,unpack(tuple))
  548. end
  549. end
  550. getmetatable(fakeGame).__metatable = 'gay'
  551.  
  552. coroutine.wrap(function()
  553. while true do
  554. Run:TrigEvent('RenderStepped')
  555. swait()
  556. end
  557. end)()
  558. game=fakeGame
  559. UserInputService,ContextActionService = UsIS,CoAS
  560. end
  561.  
  562. --//====================================================\\--
  563. --|| BACKGROUND VALUES
  564. --\\====================================================//--
  565.  
  566. local ANIM_SPEED = 3
  567. local MOUSE = PLAYER:GetMouse()
  568. local FRAME_SPEED = 1 / 60 -- (1 / 30) OR (1 / 60)
  569. local CHANGE = 2 / ANIM_SPEED
  570. local DAMAGEMULTIPLIER = 1
  571. local ANIM = "Idle"
  572. local KEYHOLD = false
  573. local MOUSEHOLD = false
  574. local SINE = 0
  575. local COMBO = 1
  576. local ATTACKING = false
  577. local Debris = game:GetService("Debris")
  578. local Effects = IT("Folder",CHARACTER)
  579. Effects.Name = "FXFolder"
  580. local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  581. local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  582. local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
  583. local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
  584. local KICKMESSAGES = {
  585. "COULDN'T YOU SEE THE BLOODY HAMMER?",
  586. "BYE HAVE A GREAT TIME",
  587. "ow",
  588. "NOBODY TOUCHES SASHA",
  589. "EHWOT",
  590. "YOU JUST GOT YOUR CELLULAR STATE REARRANGED INTO THAT OF A CABBAGE",
  591. "begone",
  592. "THANKS FOR STANDING STILL WANKER",
  593. "You've been kicked, with questionable intentions.",
  594. "AMAI YOU JUST GOT YEETED",
  595. "thanks",
  596. "you hammer ha",
  597. "goth spaghetti",
  598. "GRAVITY IS A HOAX",
  599. "who?",
  600. "THE ETERNAL SPAGHETTI LIVES ON",
  601. "GLORY TO SPACE-CAKES",
  602. "[insert low-quality soldier wheeze here, thanks.]",
  603. "you",
  604. "NO, THIS, WILL, NOT, DO",
  605. "i",
  606. "TFHIEUKJFHNETESTIGHKHESJDTFHNIKUEJDTHGNIUKEJDMG",
  607. "questions",
  608. "[insert funny quote here]",
  609. "I NEVER LEARNED HOW TO READ",
  610. "because you got shot by a gun that shoots hammer which kick, duh.",
  611. "BIG LINCOLN SENDS YOU TO HELL",
  612. "Overjoyed",
  613. "Big Kick Theory",
  614. "I diagnose you with dead"
  615. }
  616.  
  617. --//====================================================\\--
  618. --|| HEARTBEAT
  619. --\\====================================================//--
  620.  
  621. ArtificialHB = Instance.new("BindableEvent", script)
  622. ArtificialHB.Name = "ArtificialHB"
  623.  
  624. script:WaitForChild("ArtificialHB")
  625.  
  626. frame = FRAME_SPEED
  627. tf = 0
  628. allowframeloss = false
  629. tossremainder = false
  630. lastframe = tick()
  631. script.ArtificialHB:Fire()
  632.  
  633. game:GetService("RunService").Heartbeat:connect(function(s, p)
  634. tf = tf + s
  635. if tf >= frame then
  636. if allowframeloss then
  637. ArtificialHB:Fire()
  638. lastframe = tick()
  639. else
  640. for i = 1, math.floor(tf / frame) do
  641. ArtificialHB:Fire()
  642. end
  643. lastframe = tick()
  644. end
  645. if tossremainder then
  646. tf = 0
  647. else
  648. tf = tf - frame * math.floor(tf / frame)
  649. end
  650. end
  651. end)
  652.  
  653. function PositiveAngle(NUMBER)
  654. if NUMBER >= 0 then
  655. NUMBER = 0
  656. end
  657. return NUMBER
  658. end
  659.  
  660. function NegativeAngle(NUMBER)
  661. if NUMBER <= 0 then
  662. NUMBER = 0
  663. end
  664. return NUMBER
  665. end
  666.  
  667. function Swait(NUMBER)
  668. if NUMBER == 0 or NUMBER == nil then
  669. ArtificialHB.Event:wait()
  670. else
  671. for i = 1, NUMBER do
  672. ArtificialHB.Event:wait()
  673. end
  674. end
  675. end
  676.  
  677. --//====================================================\\--
  678. --|| CLERP
  679. --\\====================================================//--
  680.  
  681. function QuaternionFromCFrame(cf)
  682. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  683. local trace = m00 + m11 + m22
  684. if trace > 0 then
  685. local s = math.sqrt(1 + trace)
  686. local recip = 0.5 / s
  687. return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  688. else
  689. local i = 0
  690. if m11 > m00 then
  691. i = 1
  692. end
  693. if m22 > (i == 0 and m00 or m11) then
  694. i = 2
  695. end
  696. if i == 0 then
  697. local s = math.sqrt(m00 - m11 - m22 + 1)
  698. local recip = 0.5 / s
  699. return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  700. elseif i == 1 then
  701. local s = math.sqrt(m11 - m22 - m00 + 1)
  702. local recip = 0.5 / s
  703. return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  704. elseif i == 2 then
  705. local s = math.sqrt(m22 - m00 - m11 + 1)
  706. local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  707. end
  708. end
  709. end
  710.  
  711. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  712. local xs, ys, zs = x + x, y + y, z + z
  713. local wx, wy, wz = w * xs, w * ys, w * zs
  714. local xx = x * xs
  715. local xy = x * ys
  716. local xz = x * zs
  717. local yy = y * ys
  718. local yz = y * zs
  719. local zz = z * zs
  720. 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))
  721. end
  722.  
  723. function QuaternionSlerp(a, b, t)
  724. local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  725. local startInterp, finishInterp;
  726. if cosTheta >= 0.0001 then
  727. if (1 - cosTheta) > 0.0001 then
  728. local theta = ACOS(cosTheta)
  729. local invSinTheta = 1 / SIN(theta)
  730. startInterp = SIN((1 - t) * theta) * invSinTheta
  731. finishInterp = SIN(t * theta) * invSinTheta
  732. else
  733. startInterp = 1 - t
  734. finishInterp = t
  735. end
  736. else
  737. if (1 + cosTheta) > 0.0001 then
  738. local theta = ACOS(-cosTheta)
  739. local invSinTheta = 1 / SIN(theta)
  740. startInterp = SIN((t - 1) * theta) * invSinTheta
  741. finishInterp = SIN(t * theta) * invSinTheta
  742. else
  743. startInterp = t - 1
  744. finishInterp = t
  745. end
  746. end
  747. 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
  748. end
  749.  
  750. function Clerp(a, b, t)
  751. local qa = {QuaternionFromCFrame(a)}
  752. local qb = {QuaternionFromCFrame(b)}
  753. local ax, ay, az = a.x, a.y, a.z
  754. local bx, by, bz = b.x, b.y, b.z
  755. local _t = 1 - t
  756. return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  757. end
  758.  
  759. --//====================================================\\--
  760. --|| FUNCTIONS
  761. --\\====================================================//--
  762.  
  763. function WeldParts(A,B)
  764. local WLD = IT("ManualWeld")
  765. WLD.Part0 = A
  766. WLD.Part1 = B
  767. WLD.C1 = B.CFrame:inverse() * A.CFrame
  768. WLD.Parent = A
  769. return WLD
  770. end
  771.  
  772. --NewSound({ID = 0,PARENT = ROOT,VOLUME = 0.5,PITCH = 1,LOOP = false,MAXDISTANCE = 1000,EMITTERSIZE = 10,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  773. function NewSound(TABLE)
  774. local ID = "rbxassetid://"..(TABLE.ID or 0)
  775. local PARENT = (TABLE.PARENT or ROOT)
  776. local VOLUME = (TABLE.VOLUME or 0.5)
  777. local PITCH = (TABLE.PITCH or 1)
  778. local LOOP = (TABLE.LOOP or false)
  779. local MAXDISTANCE = (TABLE.MAXDISTANCE or 100)
  780. local EMITTERSIZE = (TABLE.EMITTERSIZE or 10)
  781. local PLAYING = (TABLE.PLAYING or true)
  782. local PLAYONREMOVE = (TABLE.PLAYONREMOVE or false)
  783. local DOESDEBRIS = (TABLE.DOESDEBRIS or true)
  784. if ID ~= "rbxassetid://0" then
  785. local SOUND = IT("Sound",PARENT)
  786. SOUND.SoundId = ID
  787. SOUND.Volume = VOLUME
  788. SOUND.Pitch = PITCH
  789. SOUND.Looped = LOOP
  790. SOUND.MaxDistance = MAXDISTANCE
  791. SOUND.EmitterSize = EMITTERSIZE
  792. SOUND.PlayOnRemove = PLAYONREMOVE
  793. if DOESDEBRIS == true and PLAYING == true and LOOP == false then
  794. Debris:AddItem(SOUND,SOUND.TimeLength+5)
  795. end
  796. if PLAYING == true then
  797. SOUND:Play()
  798. end
  799. return SOUND
  800. end
  801. end
  802.  
  803. function ApplyDamageTo(HUM,DAMAGE)
  804. if HUM.Health >= 0 then
  805. HUM:TakeDamage(DAMAGE)
  806. end
  807. end
  808.  
  809. function AreaOfEffect(AREA,RANGE,MIN,MAX,RETURN)
  810. local HIT = {}
  811. for index, CHILD in pairs(workspace:GetChildren()) do
  812. if CHILD:FindFirstChildOfClass("Humanoid") and CHILD ~= CHARACTER then
  813. local HUMAN = CHILD:FindFirstChildOfClass("Humanoid")
  814. local ROOT = HUMAN.Torso
  815. if ROOT then
  816. if (ROOT.Position - AREA).Magnitude <= RANGE then
  817. if RETURN == true then
  818. table.insert(HIT,{CHILD,HUMAN,ROOT})
  819. else
  820. ApplyDamageTo(HUMAN,MRANDOM(MIN,MAX))
  821. end
  822. end
  823. end
  824. end
  825. end
  826. if RETURN == true then
  827. return HIT
  828. end
  829. end
  830.  
  831. function ConnectDamage(PART,MIN,MAX)
  832. local HITS = {}
  833. local TOUCH = PART.Touched:Connect(function(HITP)
  834. if HITP.Parent then
  835. if HITP.Parent:FindFirstChildOfClass("Humanoid") then
  836. local HUMAN = HITP.Parent:FindFirstChildOfClass("Humanoid")
  837. local PASS = true
  838. for E = 1, #HITS do
  839. if HITS[E] == HUMAN then
  840. PASS = false
  841. break
  842. end
  843. end
  844. if PASS == true and HUM ~= HUMAN then
  845. ApplyDamageTo(HUMAN,MRANDOM(MIN,MAX))
  846. table.insert(HITS,HUMAN)
  847. end
  848. end
  849. end
  850. end)
  851. return TOUCH
  852. end
  853.  
  854. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  855. local NEWMESH = IT(MESH)
  856. if MESH == "SpecialMesh" then
  857. NEWMESH.MeshType = MESHTYPE
  858. if MESHID ~= "nil" and MESHID ~= "" then
  859. NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  860. end
  861. if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  862. NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  863. end
  864. end
  865. NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  866. NEWMESH.Scale = SCALE
  867. NEWMESH.Parent = PARENT
  868. return NEWMESH
  869. end
  870.  
  871. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  872. local NEWPART = IT("Part")
  873. NEWPART.formFactor = FORMFACTOR
  874. NEWPART.Reflectance = REFLECTANCE
  875. NEWPART.Transparency = TRANSPARENCY
  876. NEWPART.CanCollide = false
  877. NEWPART.Locked = true
  878. NEWPART.Anchored = true
  879. if ANCHOR == false then
  880. NEWPART.Anchored = false
  881. end
  882. NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  883. NEWPART.Name = NAME
  884. NEWPART.Size = SIZE
  885. NEWPART.Position = ROOT.Position
  886. NEWPART.Material = MATERIAL
  887. NEWPART:BreakJoints()
  888. NEWPART.Parent = PARENT
  889. return NEWPART
  890. end
  891.  
  892. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  893. return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  894. end
  895.  
  896. --WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil, UseBoomerangMath = false, Boomerang = 0, SizeBoomerang = 0})
  897. function WACKYEFFECT(Table)
  898. local TYPE = (Table.EffectType or "Sphere")
  899. local SIZE = (Table.Size or VT(1,1,1))
  900. local ENDSIZE = (Table.Size2 or VT(0,0,0))
  901. local TRANSPARENCY = (Table.Transparency or 0)
  902. local ENDTRANSPARENCY = (Table.Transparency2 or 1)
  903. local CFRAME = (Table.CFrame or ROOT.CFrame)
  904. local MOVEDIRECTION = (Table.MoveToPos or nil)
  905. local ROTATION1 = (Table.RotationX or 0)
  906. local ROTATION2 = (Table.RotationY or 0)
  907. local ROTATION3 = (Table.RotationZ or 0)
  908. local MATERIAL = (Table.Material or "Neon")
  909. local COLOR = (Table.Color or C3(1,1,1))
  910. local TIME = (Table.Time or 45)
  911. local SOUNDID = (Table.SoundID or nil)
  912. local SOUNDPITCH = (Table.SoundPitch or nil)
  913. local SOUNDVOLUME = (Table.SoundVolume or nil)
  914. local USEBOOMERANGMATH = (Table.UseBoomerangMath or false)
  915. local BOOMERANG = (Table.Boomerang or 0)
  916. local SIZEBOOMERANG = (Table.SizeBoomerang or 0)
  917. coroutine.resume(coroutine.create(function()
  918. local PLAYSSOUND = false
  919. local SOUND = nil
  920. local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
  921. if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
  922. PLAYSSOUND = true
  923. SOUND = NewSound({ID = SOUNDID,PARENT = EFFECT,VOLUME = SOUNDVOLUME,PITCH = SOUNDPITCH,LOOP = false,MAXDISTANCE = 200,EMITTERSIZE = 15,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  924. end
  925. EFFECT.Color = COLOR
  926. local MSH = nil
  927. if TYPE == "Sphere" then
  928. MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
  929. elseif TYPE == "Block" or TYPE == "Box" then
  930. MSH = IT("BlockMesh",EFFECT)
  931. MSH.Scale = SIZE
  932. elseif TYPE == "Wave" then
  933. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
  934. elseif TYPE == "Ring" then
  935. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
  936. elseif TYPE == "Slash" then
  937. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  938. elseif TYPE == "Round Slash" then
  939. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  940. elseif TYPE == "Swirl" then
  941. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "168892432", "", SIZE, VT(0,0,0))
  942. elseif TYPE == "Skull" then
  943. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
  944. elseif TYPE == "Crystal" then
  945. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
  946. end
  947. if MSH ~= nil then
  948. local BOOMR1 = 1+BOOMERANG/50
  949. local BOOMR2 = 1+SIZEBOOMERANG/50
  950. local MOVESPEED = nil
  951. if MOVEDIRECTION ~= nil then
  952. if USEBOOMERANGMATH == true then
  953. MOVESPEED = ((CFRAME.p - MOVEDIRECTION).Magnitude/TIME)*BOOMR1
  954. else
  955. MOVESPEED = ((CFRAME.p - MOVEDIRECTION).Magnitude/TIME)
  956. end
  957. end
  958. local GROWTH = nil
  959. if USEBOOMERANGMATH == true then
  960. GROWTH = (SIZE - ENDSIZE)*(BOOMR2+1)
  961. else
  962. GROWTH = (SIZE - ENDSIZE)
  963. end
  964. local TRANS = TRANSPARENCY - ENDTRANSPARENCY
  965. if TYPE == "Block" then
  966. EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  967. else
  968. EFFECT.CFrame = CFRAME
  969. end
  970. if USEBOOMERANGMATH == true then
  971. for LOOP = 1, TIME+1 do
  972. Swait()
  973. MSH.Scale = MSH.Scale - (VT((GROWTH.X)*((1 - (LOOP/TIME)*BOOMR2)),(GROWTH.Y)*((1 - (LOOP/TIME)*BOOMR2)),(GROWTH.Z)*((1 - (LOOP/TIME)*BOOMR2)))*BOOMR2)/TIME
  974. if TYPE == "Wave" then
  975. MSH.Offset = VT(0,0,-MSH.Scale.Z/8)
  976. end
  977. EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
  978. if TYPE == "Block" then
  979. EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  980. else
  981. EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
  982. end
  983. if MOVEDIRECTION ~= nil then
  984. local ORI = EFFECT.Orientation
  985. EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-(MOVESPEED)*((1 - (LOOP/TIME)*BOOMR1)))
  986. EFFECT.CFrame = CF(EFFECT.Position)*ANGLES(RAD(ORI.X),RAD(ORI.Y),RAD(ORI.Z))
  987. end
  988. end
  989. else
  990. for LOOP = 1, TIME+1 do
  991. Swait()
  992. MSH.Scale = MSH.Scale - GROWTH/TIME
  993. if TYPE == "Wave" then
  994. MSH.Offset = VT(0,0,-MSH.Scale.Z/8)
  995. end
  996. EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
  997. if TYPE == "Block" then
  998. EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  999. else
  1000. EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
  1001. end
  1002. if MOVEDIRECTION ~= nil then
  1003. local ORI = EFFECT.Orientation
  1004. EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
  1005. EFFECT.CFrame = CF(EFFECT.Position)*ANGLES(RAD(ORI.X),RAD(ORI.Y),RAD(ORI.Z))
  1006. end
  1007. end
  1008. end
  1009. EFFECT.Transparency = 1
  1010. if PLAYSSOUND == false then
  1011. EFFECT:remove()
  1012. else
  1013. repeat Swait() until EFFECT:FindFirstChildOfClass("Sound") == nil
  1014. EFFECT:remove()
  1015. end
  1016. else
  1017. if PLAYSSOUND == false then
  1018. EFFECT:remove()
  1019. else
  1020. repeat Swait() until EFFECT:FindFirstChildOfClass("Sound") == nil
  1021. EFFECT:remove()
  1022. end
  1023. end
  1024. end))
  1025. end
  1026.  
  1027. function CameraShake(AREA,RANGE,SHAKE,TIMER)
  1028. for index, CHILD in pairs(workspace:GetChildren()) do
  1029. if CHILD:FindFirstChildOfClass("Humanoid") then
  1030. local HUMAN = CHILD:FindFirstChildOfClass("Humanoid")
  1031. local ROOT = HUMAN.Torso
  1032. if ROOT then
  1033. if (ROOT.Position - AREA).Magnitude <= RANGE then
  1034. if CHILD:FindFirstChild("CamShake") then
  1035. CHILD:FindFirstChild("CamShake"):Remove()
  1036. end
  1037. local SHAKE = script.CamShake:Clone()
  1038. SHAKE.Parent = CHILD
  1039. local TIMER_V = IT("NumberValue",SHAKE)
  1040. TIMER_V.Name = "Timer"
  1041. TIMER_V.Value = TIMER
  1042. local SHAKE_V = IT("NumberValue",SHAKE)
  1043. SHAKE_V.Name = "Shake"
  1044. SHAKE_V.Value = SHAKE
  1045. SHAKE.Disabled = false
  1046. Debris:AddItem(SHAKE,TIMER)
  1047. end
  1048. end
  1049. end
  1050. end
  1051. end
  1052.  
  1053. function Chatter(Text,Timer)
  1054. local chat = coroutine.wrap(function()
  1055. if CHARACTER:FindFirstChild("SpeechBoard")~= nil then
  1056. CHARACTER:FindFirstChild("SpeechBoard"):destroy()
  1057. end
  1058. local naeeym2 = IT("BillboardGui",CHARACTER)
  1059. naeeym2.Size = UD2(0,100,0,40)
  1060. naeeym2.StudsOffset = Vector3.new(0,2,0)
  1061. naeeym2.Adornee = HEAD
  1062. naeeym2.Name = "SpeechBoard"
  1063. naeeym2.AlwaysOnTop = true
  1064. local tecks2 = IT("TextLabel",naeeym2)
  1065. tecks2.BackgroundTransparency = 1
  1066. tecks2.BorderSizePixel = 0
  1067. tecks2.Text = ""
  1068. tecks2.Font = "Legacy"
  1069. tecks2.TextSize = 15
  1070. tecks2.TextStrokeTransparency = 0
  1071. tecks2.TextColor3 = Color3.new(1,1,1)
  1072. tecks2.TextStrokeColor3 = Color3.new(0,0,0)
  1073. tecks2.Size = UDim2.new(1,0,0.5,0)
  1074. for i = 1,string.len(Text),1 do
  1075. if naeeym2.Parent ~= CHARACTER then
  1076. break
  1077. end
  1078. NewSound({ID = 418252437,PARENT = HEAD,VOLUME = 1,PITCH = MRANDOM(8,12)/10,LOOP = false,MAXDISTANCE = 75,EMITTERSIZE = 15,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  1079. tecks2.Text = string.sub(Text,1,i)
  1080. wait(Timer)
  1081. end
  1082. wait(1)
  1083. naeeym2:Destroy()
  1084. end)
  1085. chat()
  1086. end
  1087.  
  1088. --//====================================================\\--
  1089. --|| STUFF
  1090. --\\====================================================//--
  1091.  
  1092. local RIGHTGUN = script.GunModel:Clone()
  1093. RIGHTGUN.Parent = CHARACTER
  1094. RIGHTGUN:SetPrimaryPartCFrame(RIGHTARM.CFrame)
  1095. RIGHTGUN.PrimaryPart:Remove()
  1096. local RHAMMER = RIGHTGUN.Hammer
  1097. RHAMMER.CFrame = RHAMMER.CFrame*ANGLES(0,0,RAD(180))
  1098. for index, CHILD in pairs(RIGHTGUN:GetChildren()) do
  1099. CHILD.Anchored = false
  1100. WeldParts(RIGHTARM,CHILD)
  1101. end
  1102. local LEFTGUN = script.GunModel:Clone()
  1103. LEFTGUN.Parent = CHARACTER
  1104. LEFTGUN:SetPrimaryPartCFrame(LEFTARM.CFrame)
  1105. LEFTGUN.PrimaryPart:Remove()
  1106. local LHAMMER = LEFTGUN.Hammer
  1107. for index, CHILD in pairs(LEFTGUN:GetChildren()) do
  1108. CHILD.Anchored = false
  1109. WeldParts(LEFTARM,CHILD)
  1110. end
  1111. script.GunModel:Remove()
  1112.  
  1113. --//====================================================\\--
  1114. --|| ABILITIES
  1115. --\\====================================================//--
  1116.  
  1117. function FIRE_IN_THE_HOLE()
  1118. ATTACKING = true
  1119. coroutine.resume(coroutine.create(function()
  1120. local GYRO = IT("BodyGyro")
  1121. GYRO.D = 20
  1122. GYRO.P = 5000
  1123. GYRO.MaxTorque = VT(0,4000000,0)
  1124. GYRO.CFrame = CF(ROOT.Position,MOUSEPOS)
  1125. GYRO.Parent = ROOT
  1126. repeat
  1127. Swait()
  1128. GYRO.CFrame = CF(ROOT.Position,MOUSEPOS)
  1129. until ATTACKING == false
  1130. GYRO:Remove()
  1131. end))
  1132. local FIRE = function(HAMMER)
  1133. local PROJECTILE = HAMMER:Clone()
  1134. local F = NewSound({ID = 159490394,PARENT = PROJECTILE,VOLUME = 1,PITCH = MRANDOM(9,11)/10,LOOP = false,MAXDISTANCE = 1000,EMITTERSIZE = 50,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  1135. local C = CF(HAMMER.Position,MOUSEPOS)
  1136. PROJECTILE.CFrame = C*CFrame.new(0,0,-1.5)*CFrame.Angles(math.rad(180),0,math.rad(-90))
  1137. PROJECTILE.CanCollide = true
  1138. PROJECTILE.Parent = workspace
  1139. local MOVE = IT("BodyVelocity")
  1140. MOVE.Velocity = C.lookVector*250
  1141. MOVE.Parent = PROJECTILE
  1142. MOVE.MaxForce = VT(500000,500000,500000)
  1143. Debris:AddItem(PROJECTILE,20)
  1144. KICKOCLOCK = PROJECTILE.Touched:Connect(function(HIT)
  1145. if HIT.Parent then
  1146. if HIT.Parent:FindFirstChildOfClass("Humanoid") then
  1147. F:Remove()
  1148. KICKOCLOCK:Disconnect()
  1149. MOVE:Remove()
  1150. PROJECTILE.Velocity = VT(0,0,0)
  1151. local TORS = HIT.Parent:FindFirstChildOfClass("Humanoid").Torso
  1152. if TORS then
  1153. if game.Players:GetPlayerFromCharacter(HIT.Parent) ~= PLAYER then
  1154. WACKYEFFECT({Time = 25, EffectType = "Sphere", Size = VT(4,4,4), Size2 = VT(15,15,15), Transparency = 0, Transparency2 = 1, CFrame = CF(TORS.Position), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 147722910, SoundPitch = 1, SoundVolume = 5, UseBoomerangMath = true, Boomerang = 0, SizeBoomerang = 50})
  1155. if game.Players:GetPlayerFromCharacter(HIT.Parent) then
  1156. local MSG = KICKMESSAGES[MRANDOM(1,#KICKMESSAGES)]
  1157. Chatter(MSG)
  1158. game.Players:GetPlayerFromCharacter(HIT.Parent):Kick(MSG)
  1159. end
  1160. local MSG = KICKMESSAGES[MRANDOM(1,#KICKMESSAGES)]
  1161. Chatter(MSG)
  1162. HIT.Parent:Remove()
  1163. end
  1164. end
  1165. elseif HIT.CanCollide == true or HIT.Anchored == true then
  1166. F:Remove()
  1167. KICKOCLOCK:Disconnect()
  1168. MOVE:Remove()
  1169. end
  1170. end
  1171. end)
  1172. end
  1173. repeat
  1174. if COMBO == 1 then
  1175. COMBO = 2
  1176. for i=0, 0.25, 0.1 / ANIM_SPEED do
  1177. Swait()
  1178. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, 0 + 0.2 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1179. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-35+MRANDOM(-10,10)), RAD(MRANDOM(-10,10)), RAD(MRANDOM(-10,10))), 0.5 / ANIM_SPEED)
  1180. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(-40), RAD(0)) * RIGHTSHOULDERC0, 1 / ANIM_SPEED)
  1181. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(145 - 45 * SIN(SINE / 12)), RAD(0), RAD(-45+MRANDOM(-5,5))) * LEFTSHOULDERC0, 0.5 / ANIM_SPEED)
  1182. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.2 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1183. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-65+MRANDOM(-10,10)), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1184. end
  1185. FIRE(RHAMMER)
  1186. RHAMMER.Kick.Enabled = false
  1187. RHAMMER.Transparency = 1
  1188. for i=0, 0.15, 0.1 / ANIM_SPEED do
  1189. Swait()
  1190. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, 0 + 0.2 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1191. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-35+MRANDOM(-10,10)), RAD(MRANDOM(-10,10)), RAD(MRANDOM(-10,10))), 0.5 / ANIM_SPEED)
  1192. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(-40), RAD(0)) * RIGHTSHOULDERC0, 1 / ANIM_SPEED)
  1193. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(145 - 45 * SIN(SINE / 12)), RAD(0), RAD(-45+MRANDOM(-5,5))) * LEFTSHOULDERC0, 0.5 / ANIM_SPEED)
  1194. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.2 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1195. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-65+MRANDOM(-10,10)), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1196. end
  1197. RHAMMER.Kick.Enabled = true
  1198. RHAMMER.Transparency = 0
  1199. elseif COMBO == 2 then
  1200. COMBO = 1
  1201. for i=0, 0.25, 0.1 / ANIM_SPEED do
  1202. Swait()
  1203. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, 0 + 0.2 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1204. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-35+MRANDOM(-10,10)), RAD(MRANDOM(-10,10)), RAD(MRANDOM(-10,10))), 0.5 / ANIM_SPEED)
  1205. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(145 + 45 * SIN(SINE / 12)), RAD(0), RAD(45+MRANDOM(-5,5))) * RIGHTSHOULDERC0, 0.5 / ANIM_SPEED)
  1206. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(90), RAD(50), RAD(0)) * LEFTSHOULDERC0, 1 / ANIM_SPEED)
  1207. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.2 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1208. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-65+MRANDOM(-10,10)), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1209. end
  1210. FIRE(LHAMMER)
  1211. LHAMMER.Kick.Enabled = false
  1212. LHAMMER.Transparency = 1
  1213. for i=0, 0.15, 0.1 / ANIM_SPEED do
  1214. Swait()
  1215. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, 0 + 0.2 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1216. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-35+MRANDOM(-10,10)), RAD(MRANDOM(-10,10)), RAD(MRANDOM(-10,10))), 0.5 / ANIM_SPEED)
  1217. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(145 + 45 * SIN(SINE / 12)), RAD(0), RAD(45+MRANDOM(-5,5))) * RIGHTSHOULDERC0, 0.5 / ANIM_SPEED)
  1218. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(90), RAD(50), RAD(0)) * LEFTSHOULDERC0, 1 / ANIM_SPEED)
  1219. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.2 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1220. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-65+MRANDOM(-10,10)), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1221. end
  1222. LHAMMER.Kick.Enabled = true
  1223. LHAMMER.Transparency = 0
  1224. end
  1225. until MOUSEHOLD == false
  1226. ATTACKING = false
  1227. end
  1228.  
  1229. function England()
  1230. ATTACKING = true
  1231. Chatter(KICKMESSAGES[MRANDOM(1,#KICKMESSAGES)])
  1232. for i = 1, 100 do
  1233. Swait()
  1234. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350))), 2 / ANIM_SPEED)
  1235. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350))), 2 / ANIM_SPEED)
  1236. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350))) * RIGHTSHOULDERC0, 2 / ANIM_SPEED)
  1237. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350))) * LEFTSHOULDERC0, 2 / ANIM_SPEED)
  1238. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1, 0) * ANGLES(RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350))), 2 / ANIM_SPEED)
  1239. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1, 0) * ANGLES(RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350))), 2 / ANIM_SPEED)
  1240. end
  1241. ATTACKING = false
  1242. end
  1243.  
  1244. --//====================================================\\--
  1245. --|| WRAP
  1246. --\\====================================================//--
  1247.  
  1248. REMOTE.OnServerEvent:Connect(function(PLR,V1,V2)
  1249. if PLR == PLAYER then
  1250. --if V1 == "MousePositionUpdate" then
  1251. --MOUSEPOS = V2
  1252. if V1 == "KeyUp" then
  1253. KEYHOLD = false
  1254. elseif V1 == "MouseUp" then
  1255. MOUSEHOLD = false
  1256. end
  1257. if ATTACKING == false then
  1258. if V1 == "MouseDown" then
  1259. MOUSEHOLD = true
  1260. FIRE_IN_THE_HOLE()
  1261. elseif V1 == "KeyDown" then
  1262. KEYHOLD = true
  1263. if V2 == "e" then
  1264. if ROOT:FindFirstChild("BGM_MUSIC") then
  1265. ROOT:FindFirstChild("BGM_MUSIC"):Remove()
  1266. else
  1267. local M = NewSound({ID = 2516100492,PARENT = ROOT,VOLUME = 1.5,PITCH = 1.2,LOOP = true,MAXDISTANCE = 300,EMITTERSIZE = 300,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  1268. M.Name = "BGM_MUSIC"
  1269. end
  1270. elseif V2 == "t" then
  1271. England()
  1272. end
  1273. end
  1274. end
  1275. end
  1276. end)
  1277. local M = NewSound({ID = 2516100492,PARENT = ROOT,VOLUME = 1.5,PITCH = 1.2,LOOP = true,MAXDISTANCE = 300,EMITTERSIZE = 300,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  1278. M.Name = "BGM_MUSIC"
  1279.  
  1280. HUM.HealthChanged:Connect(function()
  1281. HUM.PlatformStand = false
  1282. HUM.MaxHealth = 3000
  1283. HUM.Health = 3000
  1284. HUM.Name = PLAYER.UserId
  1285. HUM.WalkSpeed = 75
  1286. end)
  1287. HUM.WalkSpeed = 75
  1288. HUM.JumpPower = 165
  1289. script.Parent = PLAYER.Backpack
  1290. while true do
  1291. Swait()
  1292. SINE = SINE + CHANGE
  1293. if CHARACTER:FindFirstChild("Animate") then
  1294. CHARACTER:FindFirstChild("Animate"):Destroy()
  1295. end
  1296. if CHARACTER:FindFirstChild("Sound") then
  1297. CHARACTER:FindFirstChild("Sound"):Destroy()
  1298. end
  1299. local TORSOVELOCITY = (ROOT.Velocity * VT(1, 0, 1)).magnitude
  1300. local TORSOVERTICALVELOCITY = ROOT.Velocity.y
  1301. local HITFLOOR = Raycast(ROOT.Position, (CF(ROOT.Position, ROOT.Position + VT(0, -1, 0))).lookVector, 4+HUM.HipHeight, CHARACTER)
  1302. local WALKSPEEDVALUE = 2
  1303. if ANIM == "Walk" and TORSOVELOCITY > 1 then
  1304. ROOTJOINT.C1 = Clerp(ROOTJOINT.C1, ROOTC0 * CF(0, 0, -0.05 * COS(SINE / (WALKSPEEDVALUE / 2))) * ANGLES(RAD(0), RAD(0) - ROOT.RotVelocity.Y / 35, RAD(0)), 2 / ANIM_SPEED)
  1305. NECK.C1 = Clerp(NECK.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(2.5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0) - HEAD.RotVelocity.Y / 30), 0.8/ ANIM_SPEED)
  1306. RIGHTHIP.C1 = Clerp(RIGHTHIP.C1, CF(0.5, 0.875 - 0.3 * SIN(SINE / WALKSPEEDVALUE), -0.5 * COS(SINE / WALKSPEEDVALUE) +0.2+ 0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RIGHTLEG.RotVelocity.Y / 35, RAD(0), RAD(175 * COS(SINE / WALKSPEEDVALUE))), 0.6 / ANIM_SPEED)
  1307. LEFTHIP.C1 = Clerp(LEFTHIP.C1, CF(-0.5, 0.875 + 0.3 * SIN(SINE / WALKSPEEDVALUE), 0.5 * COS(SINE / WALKSPEEDVALUE) +0.2+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LEFTLEG.RotVelocity.Y / 35, RAD(0), RAD(175 * COS(SINE / WALKSPEEDVALUE))), 0.6 / ANIM_SPEED)
  1308. elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
  1309. ROOTJOINT.C1 = Clerp(ROOTJOINT.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / ANIM_SPEED)
  1310. NECK.C1 = Clerp(NECK.C1, CF(0, -0.5, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / ANIM_SPEED)
  1311. RIGHTHIP.C1 = Clerp(RIGHTHIP.C1, CF(0.5, 1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / ANIM_SPEED)
  1312. LEFTHIP.C1 = Clerp(LEFTHIP.C1, CF(-0.5, 1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / ANIM_SPEED)
  1313. end
  1314. if HITFLOOR then
  1315. if TORSOVELOCITY < 1 and HITFLOOR ~= nil then
  1316. ANIM = "Idle"
  1317. if ATTACKING == false then
  1318. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, 0 + 0.2 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1319. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-35+MRANDOM(-10,10)), RAD(MRANDOM(-10,10)), RAD(MRANDOM(-10,10))), 0.5 / ANIM_SPEED)
  1320. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(145 + 45 * SIN(SINE / 12)), RAD(0), RAD(45+MRANDOM(-5,5))) * RIGHTSHOULDERC0, 0.5 / ANIM_SPEED)
  1321. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(145 - 45 * SIN(SINE / 12)), RAD(0), RAD(-45+MRANDOM(-5,5))) * LEFTSHOULDERC0, 0.5 / ANIM_SPEED)
  1322. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.2 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1323. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.2 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-65+MRANDOM(-10,10)), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1324. end
  1325. elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
  1326. ANIM = "Walk"
  1327. if ATTACKING == false then
  1328. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.2) * ANGLES(RAD(-45), RAD(0), RAD(0)), 0.25 / ANIM_SPEED)
  1329. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-75 - 8 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0)), 0.25 / ANIM_SPEED)
  1330. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(200), RAD(-15), RAD(35)) * RIGHTSHOULDERC0, 0.75 / ANIM_SPEED)
  1331. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(200), RAD(15), RAD(-35)) * LEFTSHOULDERC0, 0.75 / ANIM_SPEED)
  1332. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1 , -1, 0) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 2 / ANIM_SPEED)
  1333. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-75), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(15)), 2 / ANIM_SPEED)
  1334. end
  1335. end
  1336. else
  1337. if TORSOVERTICALVELOCITY > 0 then
  1338. ANIM = "Jump"
  1339. if ATTACKING == false then
  1340. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / ANIM_SPEED)
  1341. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / ANIM_SPEED)
  1342. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(20)) * RIGHTSHOULDERC0, 0.5 / ANIM_SPEED)
  1343. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.5 / ANIM_SPEED)
  1344. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -0.3, -0.5) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 0.5 / ANIM_SPEED)
  1345. 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)
  1346. end
  1347. else
  1348. ANIM = "Fall"
  1349. if ATTACKING == false then
  1350. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350))), 2 / ANIM_SPEED)
  1351. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350))), 2 / ANIM_SPEED)
  1352. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350))) * RIGHTSHOULDERC0, 2 / ANIM_SPEED)
  1353. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350))) * LEFTSHOULDERC0, 2 / ANIM_SPEED)
  1354. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1, 0) * ANGLES(RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350))), 2 / ANIM_SPEED)
  1355. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1, 0) * ANGLES(RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350)), RAD(MRANDOM(0,350))), 2 / ANIM_SPEED)
  1356. end
  1357. end
  1358. end
  1359. end
  1360. end
  1361. swait()
  1362. end
  1363. end)
  1364. anims()
  1365. warn("You rolled, death! Made by Guest_842104 and uy2kq!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement