Advertisement
Guest User

Banzai Bazooka by Pitypolygon

a guest
Mar 1st, 2020
5,096
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 42.93 KB | None | 0 0
  1. --//====================================================\\--
  2. --|| BASIS
  3. --\\====================================================//--
  4.  
  5. local MODULE = script.Parent
  6. local CHARACTER = MODULE.Parent
  7. local PLAYER = game:GetService("Players"):GetPlayerFromCharacter(CHARACTER)
  8. local HUM = CHARACTER.Humanoid
  9. local REMOTE = MODULE.Event
  10.  
  11. local ROOT = HUM.Torso
  12. local HEAD = CHARACTER.Head
  13. local TORSO = CHARACTER.Torso
  14. local RIGHTARM = CHARACTER["Right Arm"]
  15. local LEFTARM = CHARACTER["Left Arm"]
  16. local RIGHTLEG = CHARACTER["Right Leg"]
  17. local LEFTLEG = CHARACTER["Left Leg"]
  18. local ROOTJOINT = ROOT["RootJoint"]
  19. local NECK = TORSO["Neck"]
  20. local RIGHTSHOULDER = TORSO["Right Shoulder"]
  21. local LEFTSHOULDER = TORSO["Left Shoulder"]
  22. local RIGHTHIP = TORSO["Right Hip"]
  23. local LEFTHIP = TORSO["Left Hip"]
  24. local MOUSEPOS = ROOT.Position
  25.  
  26. IT = Instance.new
  27. CF = CFrame.new
  28. VT = Vector3.new
  29. RAD = math.rad
  30. C3 = Color3.new
  31. UD2 = UDim2.new
  32. BRICKC = BrickColor.new
  33. ANGLES = CFrame.Angles
  34. EULER = CFrame.fromEulerAnglesXYZ
  35. COS = math.cos
  36. ACOS = math.acos
  37. SIN = math.sin
  38. ASIN = math.asin
  39. ABS = math.abs
  40. MRANDOM = math.random
  41. FLOOR = math.floor
  42.  
  43. --//====================================================\\--
  44. --|| FE CODE
  45. --\\====================================================//--
  46.  
  47. local FakeMouse = script.FakeMouse:Clone();
  48. FakeMouse.Parent = PLAYER.Character;
  49. script.FakeMouse:Destroy()
  50. do
  51. local GUID = {}
  52. do
  53. GUID.IDs = {};
  54. function GUID:new(len)
  55. local id;
  56. if(not len)then
  57. id = (tostring(function() end))
  58. id = id:gsub("function: ","")
  59. else
  60. local function genID(len)
  61. local newID = ""
  62. for i = 1,len do
  63. newID = newID..string.char(math.random(48,90))
  64. end
  65. return newID
  66. end
  67. repeat id = genID(len) until not GUID.IDs[id]
  68. local oid = id;
  69. id = {Trash=function() GUID.IDs[oid]=nil; end;Get=function() return oid; end}
  70. GUID.IDs[oid]=true;
  71. end
  72. return id
  73. end
  74. end
  75.  
  76. local AHB = Instance.new("BindableEvent")
  77.  
  78. local FPS = 30
  79.  
  80. local TimeFrame = 0
  81.  
  82. local LastFrame = tick()
  83. local Frame = 1/FPS
  84.  
  85. game:service'RunService'.Heartbeat:connect(function(s,p)
  86. TimeFrame = TimeFrame + s
  87. if(TimeFrame >= Frame)then
  88. for i = 1,math.floor(TimeFrame/Frame) do
  89. AHB:Fire()
  90. end
  91. LastFrame=tick()
  92. TimeFrame=TimeFrame-Frame*math.floor(TimeFrame/Frame)
  93. end
  94. end)
  95.  
  96.  
  97. function swait(dur)
  98. if(dur == 0 or typeof(dur) ~= 'number')then
  99. AHB.Event:wait()
  100. else
  101. for i = 1, dur*FPS do
  102. AHB.Event:wait()
  103. end
  104. end
  105. end
  106.  
  107. local oPlayer = PLAYER
  108. local Player = oPlayer
  109.  
  110. local loudnesses={}
  111. script.Parent = Player.Character
  112. local CoAS = {Actions={}}
  113. local Event = Instance.new("RemoteEvent")
  114. Event.Name = "UserInputEvent"
  115. Event.Parent = Player.Character
  116. local Func = Instance.new("RemoteFunction")
  117. Func.Name = "GetClientProperty"
  118. Func.Parent = Player.Character
  119. local fakeEvent = function()
  120. local t = {_fakeEvent=true,Waited={},Connected={}}
  121. t.Connect = function(self,f)
  122. local ft={}
  123. ft={Disconnected=false;disconnect=function(s) if(self.Function==ft)then self.Function=nil end s.Disconnected=true end}
  124. ft.Disconnect=ft.disconnect
  125.  
  126. ft.Func=function(...)
  127. for id,_ in next, t.Waited do
  128. t.Waited[id] = true
  129. end
  130. return f(...)
  131. end;
  132.  
  133. table.insert(self.Connected,ft)
  134. return ft;
  135. end
  136. t.connect = t.Connect
  137. t.Wait = function()
  138. local guid = GUID:new(25)
  139. local waitingId = guid:Get()
  140. t.Waited[waitingId]=false
  141. repeat swait() until t.Waited[waitingId]==true
  142. t.Waited[waitingId]=nil;
  143. guid:Trash()
  144. end
  145. t.wait = t.Wait
  146. return t
  147. end
  148. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  149. local UsIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  150. local Run = {RenderStepped=fakeEvent()}
  151.  
  152. function CoAS:BindAction(name,fun,touch,...)
  153. CoAS.Actions[name] = {Name=name,Function=fun,Keys={...}}
  154. end
  155. function CoAS:UnbindAction(name)
  156. CoAS.Actions[name] = nil
  157. end
  158. local function te(self,ev,...)
  159. local t = self[ev]
  160. if t and t._fakeEvent and t.Connected then
  161. for i,v in next, t.Connected do
  162. if(v.Func and not v.Disconnected)then
  163. v.Func(...)
  164. else
  165. t.Connected[i]=nil
  166. end
  167. end
  168. end
  169. end
  170. m.TrigEvent = te
  171. UsIS.TrigEvent = te
  172. Run.TrigEvent = te
  173. Event.OnServerEvent:Connect(function(plr,io)
  174. if plr~=Player then return end
  175. --[[table.foreach(io,print)
  176. print'---']]
  177. if io.Mouse then
  178. m.Target = io.Target
  179. m.Hit = io.Hit
  180. MOUSEPOS = m.Hit.p
  181. elseif io.KeyEvent then
  182. m:TrigEvent('Key'..io.KeyEvent,io.Key)
  183. elseif io.UserInputType == Enum.UserInputType.MouseButton1 then
  184. if io.UserInputState == Enum.UserInputState.Begin then
  185. m:TrigEvent("Button1Down")
  186. else
  187. m:TrigEvent("Button1Up")
  188. end
  189. end
  190. if(not io.KeyEvent and not io.Mouse)then
  191.  
  192. for n,t in pairs(CoAS.Actions) do
  193. for _,k in pairs(t.Keys) do
  194. if k==io.KeyCode then
  195. t.Function(t.Name,io.UserInputState,io)
  196. end
  197. end
  198. end
  199. if io.UserInputState == Enum.UserInputState.Begin then
  200. UsIS:TrigEvent("InputBegan",io,false)
  201. else
  202. UsIS:TrigEvent("InputEnded",io,false)
  203. end
  204. end
  205. end)
  206.  
  207. Func.OnServerInvoke = function(plr,inst,play)
  208. if plr~=Player then return end
  209. if(inst and typeof(inst) == 'Instance' and inst:IsA'Sound')then
  210. loudnesses[inst]=play
  211. end
  212. end
  213.  
  214. function GetClientProperty(inst,prop)
  215. if(prop == 'PlaybackLoudness' and loudnesses[inst])then
  216. return loudnesses[inst]
  217. elseif(prop == 'PlaybackLoudness')then
  218. return Func:InvokeClient(Player,'RegSound',inst)
  219. end
  220. return Func:InvokeClient(Player,inst,prop)
  221. end
  222. local oldGame = game;
  223. function GetFakePlayer()
  224. local oldPlayer = Player;
  225. local fakePlayer = newproxy(true)
  226. getmetatable(fakePlayer).__index = function(s,i)
  227. if(i == 'GetMouse')then
  228. return function() return m; end
  229. end
  230. return Player[i]
  231. end
  232. getmetatable(fakePlayer).__newindex = function(s,i,v)
  233. Player[i]=v
  234. end
  235. getmetatable(fakePlayer).__call=function(self,...)
  236. if(self == fakePlayer)then self = Player end
  237. local wh = {...}
  238. local name = table.remove(wh,1)
  239. for i,v in next, wh do
  240. wh[i]=v
  241. end
  242. if(name == 'GetMouse')then
  243. return m;
  244. end
  245. return self(name,unpack(wh))
  246. end
  247. getmetatable(fakePlayer).__namecall=function(self,...)
  248. if(self == fakePlayer)then self = Player end
  249. local tuple={...}
  250. local name = table.remove(tuple,#tuple)
  251.  
  252. if(name == 'GetMouse')then
  253. return m;
  254. else
  255. return self[name](self,unpack(tuple))
  256. end
  257. end
  258.  
  259. return fakePlayer
  260. end
  261. local oll = LoadLibrary;
  262. function LoadLibrary(libtard)
  263. local libtarddestroyed=oll(libtard)
  264. if(libtard=='RbxUtility')then
  265. local library={Create=function(obj)
  266. local inst = Instance.new(obj)
  267. return function(props)
  268. for prop,valu in next, props do
  269. inst[prop]=valu
  270. end
  271. return inst
  272. end
  273. end}
  274. setmetatable(library,{__index=libtarddestroyed,__newindex=function(s,i,v) libtarddestroyed[i]=v end})
  275.  
  276. return library
  277. else
  278. return libtarddestroyed
  279. end
  280. end
  281. fakePlayer = GetFakePlayer()
  282. local function GetService(s,i)
  283. local service = s:GetService(i)
  284. if(i == 'Players')then
  285. local oldService = service;
  286. local fakeService = newproxy(true)
  287. getmetatable(fakeService).__index = function(s,i)
  288. if(s == fakeService)then s=oldService end
  289. if(i == 'LocalPlayer' or i == 'localPlayer')then
  290. return fakePlayer
  291. elseif(i == 'oPlayer')then
  292. return oPlayer
  293. else
  294. return s[i]
  295. end
  296. end
  297. getmetatable(fakeService).__newindex = function(s,i,v)
  298. if(s == fakeService)then s=oldService end
  299. s[i]=v
  300. end
  301. getmetatable(fakeService).__call=function(self,...)
  302. if(self == fakeService)then self = oldService end
  303. local wh = {...}
  304. local name = table.remove(wh,1)
  305. for i,v in next, wh do
  306. wh[i]=v
  307. end
  308. return self(name,unpack(wh))
  309. end
  310. getmetatable(fakeService).__namecall=function(self,...)
  311. if(self == fakeService)then self = oldService end
  312. local tuple={...}
  313. local name = table.remove(tuple,#tuple)
  314.  
  315. return self[name](self,unpack(tuple))
  316. end
  317. getmetatable(fakeService).__metatable = 'gay'
  318. return fakeService
  319. elseif(i == 'RunService')then
  320. local oldService = service;
  321. local fakeService = newproxy(true)
  322. getmetatable(fakeService).__index = function(s,i)
  323. if(s == fakeService)then s=oldService end
  324. return Run[i] or s[i]
  325. end
  326. getmetatable(fakeService).__newindex = function(s,i,v)
  327. if(s == fakeService)then s=oldService end
  328. s[i]=v
  329. end
  330. getmetatable(fakeService).__call=function(self,...)
  331. if(self == fakeService)then self = oldService end
  332. local wh = {...}
  333. local name = table.remove(wh,1)
  334. for i,v in next, wh do
  335. wh[i]=v
  336. end
  337. return self(name,unpack(wh))
  338. end
  339. getmetatable(fakeService).__namecall=function(self,...)
  340. if(self == fakeService)then self = oldService end
  341. local tuple={...}
  342. local name = table.remove(tuple,#tuple)
  343.  
  344. return self[name](self,unpack(tuple))
  345. end
  346. getmetatable(fakeService).__metatable = 'gay'
  347. return fakeService
  348. elseif(i == 'UserInputService')then
  349. return UsIS
  350. elseif(i == 'ContextActionService')then
  351. return CoAS;
  352. else
  353. return service
  354. end
  355. end
  356.  
  357. local new = Instance.new;
  358. Instance = {}
  359. Instance.new = function(inst,obje)
  360. local lp = GetService(oldGame,'Players').localPlayer
  361. local instance = new(inst)
  362. if(inst=='ObjectValue')then
  363. local fake = newproxy(true)
  364. getmetatable(fake).__index=function(self,index)
  365. if(self==fake)then self=instance end
  366. return self[index]
  367. end
  368. getmetatable(fake).__newindex=function(self,index,value)
  369. if(self==fake)then self=instance end
  370. if(index=='Value' and typeof(value)~='Instance' and value==fakePlayer)then
  371. self[index]=oPlayer
  372. else
  373. self[index]=value
  374. end
  375. end
  376. getmetatable(fake).__call=function(self,...)
  377. if(self == fake)then self = instance end
  378. local wh = {...}
  379. local name = table.remove(wh,1)
  380. for i,v in next, wh do
  381. if(v == fake)then v = instance end
  382. wh[i]=v
  383. end
  384. return self(name,unpack(wh))
  385. end
  386. getmetatable(fake). __namecall=function(self,...)
  387. if(self == fake)then self = instance end
  388. local tuple={...}
  389. local name = table.remove(tuple,#tuple)
  390. return self[name](self,unpack(tuple))
  391. end
  392. return fake
  393. elseif(inst=='aaa')then
  394. local fake = newproxy(true)
  395. getmetatable(fake).__index=function(self,index)
  396. if(self==fake)then self=instance end
  397. if(index=='PlaybackLoudnes')then
  398. return GetClientProperty(instance,'PlaybackLoudness')
  399. end
  400. return self[index]
  401. end
  402. getmetatable(fake).__newindex=function(self,index,value)
  403. if(self==fake)then self=instance end
  404. self[index]=value
  405. end
  406. getmetatable(fake).__call=function(self,...)
  407. if(self == fake)then self = instance end
  408. local wh = {...}
  409. local name = table.remove(wh,1)
  410. for i,v in next, wh do
  411. if(v == fake)then v = instance end
  412. wh[i]=v
  413. end
  414. return self(name,unpack(wh))
  415. end
  416. getmetatable(fake). __namecall=function(self,...)
  417. if(self == fake)then self = instance end
  418. local tuple={...}
  419. local name = table.remove(tuple,#tuple)
  420. return self[name](self,unpack(tuple))
  421. end
  422. return fake
  423. else
  424. instance.Parent = obje
  425. return instance;
  426. end
  427.  
  428. end
  429. local serviceFunctions={
  430. service=true,
  431. GetService=true,
  432. }
  433. local fakeGame = newproxy(true)
  434. getmetatable(fakeGame).__index = function(s,i)
  435. if(s == fakeGame)then s=oldGame end
  436. local serv = GetService(oldGame,i)
  437. if serviceFunctions[i] then
  438. return GetService
  439. elseif(serv)then
  440. return serv
  441. else
  442. return s[i]
  443. end
  444. end
  445. getmetatable(fakeGame).__newindex = function(s,i,v)
  446. if(s == fakeGame)then s=oldGame end
  447. s[i]=v
  448. end
  449. getmetatable(fakeGame).__call=function(self,...)
  450. if(self == fakeGame)then self = oldGame end
  451. local wh = {...}
  452. local name = table.remove(wh,1)
  453. for i,v in next, wh do
  454. if(v == fakeGame)then v = oldGame end
  455. wh[i]=v
  456. end
  457. if serviceFunctions[name] then
  458. return GetService(self,unpack(wh))
  459. else
  460. return self(name,unpack(wh))
  461. end
  462. end
  463. getmetatable(fakeGame). __namecall=function(self,...)
  464. if(self == fakeGame)then self = oldGame end
  465. local tuple={...}
  466. local name = table.remove(tuple,#tuple)
  467.  
  468. local funcToCall=self[name]
  469.  
  470. if serviceFunctions[name] then
  471. return GetService(self,unpack(tuple))
  472. else
  473. return self[name](self,unpack(tuple))
  474. end
  475. end
  476. getmetatable(fakeGame).__metatable = 'gay'
  477.  
  478. coroutine.wrap(function()
  479. while true do
  480. Run:TrigEvent('RenderStepped')
  481. swait()
  482. end
  483. end)()
  484. game=fakeGame
  485. UserInputService,ContextActionService = UsIS,CoAS
  486. end
  487.  
  488. --//====================================================\\--
  489. --|| BACKGROUND VALUES
  490. --\\====================================================//--
  491.  
  492. local ANIM_SPEED = 3
  493. local MOUSE = PLAYER:GetMouse()
  494. local FRAME_SPEED = 1 / 60 -- (1 / 30) OR (1 / 60)
  495. local CHANGE = 2 / ANIM_SPEED
  496. local DAMAGEMULTIPLIER = 1
  497. local ANIM = "Idle"
  498. local KEYHOLD = false
  499. local MOUSEHOLD = false
  500. local SINE = 0
  501. local ATTACKING = false
  502. local Debris = game:GetService("Debris")
  503. local Effects = IT("Folder",CHARACTER)
  504. Effects.Name = "FXFolder"
  505. local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  506. local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  507. local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
  508. local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
  509. local BGM = 213546066
  510. local BOMB = 2671146857
  511. local STORED = 20
  512.  
  513. --//====================================================\\--
  514. --|| HEARTBEAT
  515. --\\====================================================//--
  516.  
  517. ArtificialHB = Instance.new("BindableEvent", script)
  518. ArtificialHB.Name = "ArtificialHB"
  519.  
  520. script:WaitForChild("ArtificialHB")
  521.  
  522. frame = FRAME_SPEED
  523. tf = 0
  524. allowframeloss = false
  525. tossremainder = false
  526. lastframe = tick()
  527. script.ArtificialHB:Fire()
  528.  
  529. game:GetService("RunService").Heartbeat:connect(function(s, p)
  530. tf = tf + s
  531. if tf >= frame then
  532. if allowframeloss then
  533. ArtificialHB:Fire()
  534. lastframe = tick()
  535. else
  536. for i = 1, math.floor(tf / frame) do
  537. ArtificialHB:Fire()
  538. end
  539. lastframe = tick()
  540. end
  541. if tossremainder then
  542. tf = 0
  543. else
  544. tf = tf - frame * math.floor(tf / frame)
  545. end
  546. end
  547. end)
  548.  
  549. function PositiveAngle(NUMBER)
  550. if NUMBER >= 0 then
  551. NUMBER = 0
  552. end
  553. return NUMBER
  554. end
  555.  
  556. function NegativeAngle(NUMBER)
  557. if NUMBER <= 0 then
  558. NUMBER = 0
  559. end
  560. return NUMBER
  561. end
  562.  
  563. function Swait(NUMBER)
  564. if NUMBER == 0 or NUMBER == nil then
  565. ArtificialHB.Event:wait()
  566. else
  567. for i = 1, NUMBER do
  568. ArtificialHB.Event:wait()
  569. end
  570. end
  571. end
  572.  
  573. --//====================================================\\--
  574. --|| CLERP
  575. --\\====================================================//--
  576.  
  577. function QuaternionFromCFrame(cf)
  578. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  579. local trace = m00 + m11 + m22
  580. if trace > 0 then
  581. local s = math.sqrt(1 + trace)
  582. local recip = 0.5 / s
  583. return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  584. else
  585. local i = 0
  586. if m11 > m00 then
  587. i = 1
  588. end
  589. if m22 > (i == 0 and m00 or m11) then
  590. i = 2
  591. end
  592. if i == 0 then
  593. local s = math.sqrt(m00 - m11 - m22 + 1)
  594. local recip = 0.5 / s
  595. return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  596. elseif i == 1 then
  597. local s = math.sqrt(m11 - m22 - m00 + 1)
  598. local recip = 0.5 / s
  599. return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  600. elseif i == 2 then
  601. local s = math.sqrt(m22 - m00 - m11 + 1)
  602. local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  603. end
  604. end
  605. end
  606.  
  607. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  608. local xs, ys, zs = x + x, y + y, z + z
  609. local wx, wy, wz = w * xs, w * ys, w * zs
  610. local xx = x * xs
  611. local xy = x * ys
  612. local xz = x * zs
  613. local yy = y * ys
  614. local yz = y * zs
  615. local zz = z * zs
  616. 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))
  617. end
  618.  
  619. function QuaternionSlerp(a, b, t)
  620. local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  621. local startInterp, finishInterp;
  622. if cosTheta >= 0.0001 then
  623. if (1 - cosTheta) > 0.0001 then
  624. local theta = ACOS(cosTheta)
  625. local invSinTheta = 1 / SIN(theta)
  626. startInterp = SIN((1 - t) * theta) * invSinTheta
  627. finishInterp = SIN(t * theta) * invSinTheta
  628. else
  629. startInterp = 1 - t
  630. finishInterp = t
  631. end
  632. else
  633. if (1 + cosTheta) > 0.0001 then
  634. local theta = ACOS(-cosTheta)
  635. local invSinTheta = 1 / SIN(theta)
  636. startInterp = SIN((t - 1) * theta) * invSinTheta
  637. finishInterp = SIN(t * theta) * invSinTheta
  638. else
  639. startInterp = t - 1
  640. finishInterp = t
  641. end
  642. end
  643. 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
  644. end
  645.  
  646. function Clerp(a, b, t)
  647. local qa = {QuaternionFromCFrame(a)}
  648. local qb = {QuaternionFromCFrame(b)}
  649. local ax, ay, az = a.x, a.y, a.z
  650. local bx, by, bz = b.x, b.y, b.z
  651. local _t = 1 - t
  652. return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  653. end
  654.  
  655. --//====================================================\\--
  656. --|| FUNCTIONS
  657. --\\====================================================//--
  658.  
  659. function WeldParts(A,B)
  660. local WLD = IT("ManualWeld")
  661. WLD.Part0 = A
  662. WLD.Part1 = B
  663. WLD.C1 = B.CFrame:inverse() * A.CFrame
  664. WLD.Parent = A
  665. return WLD
  666. end
  667.  
  668. --NewSound({ID = 0,PARENT = ROOT,VOLUME = 0.5,PITCH = 1,LOOP = false,MAXDISTANCE = 1000,EMITTERSIZE = 10,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  669. function NewSound(TABLE)
  670. local ID = "rbxassetid://"..(TABLE.ID or 0)
  671. local PARENT = (TABLE.PARENT or ROOT)
  672. local VOLUME = (TABLE.VOLUME or 0.5)
  673. local PITCH = (TABLE.PITCH or 1)
  674. local LOOP = (TABLE.LOOP or false)
  675. local MAXDISTANCE = (TABLE.MAXDISTANCE or 100)
  676. local EMITTERSIZE = (TABLE.EMITTERSIZE or 10)
  677. local PLAYING = (TABLE.PLAYING or true)
  678. local PLAYONREMOVE = (TABLE.PLAYONREMOVE or false)
  679. local DOESDEBRIS = (TABLE.DOESDEBRIS or true)
  680. if ID ~= "rbxassetid://0" then
  681. local SOUND = IT("Sound",PARENT)
  682. SOUND.SoundId = ID
  683. SOUND.Volume = VOLUME
  684. SOUND.Pitch = PITCH
  685. SOUND.Looped = LOOP
  686. SOUND.MaxDistance = MAXDISTANCE
  687. SOUND.EmitterSize = EMITTERSIZE
  688. SOUND.PlayOnRemove = PLAYONREMOVE
  689. if DOESDEBRIS == true and PLAYING == true and LOOP == false then
  690. Debris:AddItem(SOUND,SOUND.TimeLength+5)
  691. end
  692. if PLAYING == true then
  693. SOUND:Play()
  694. end
  695. return SOUND
  696. end
  697. end
  698.  
  699. function ManSlaughter(MAN)
  700. if MAN then
  701. local ROOT = MAN:FindFirstChild("HumanoidRootPart")
  702. if ROOT then
  703. ROOT:Remove()
  704. end
  705. local MANHUM = MAN:FindFirstChildOfClass("Humanoid")
  706. if MANHUM then
  707. MANHUM.BreakJointsOnDeath = false
  708. MANHUM.Health = 0
  709. end
  710. if MAN:FindFirstChild("R6Ragdoll") == nil and MAN:FindFirstChild("R15Ragdoll") == nil then
  711. if MAN:FindFirstChild("UpperTorso") then
  712. local SCRIPT = script.R15Ragdoll:Clone()
  713. SCRIPT.Parent = MAN
  714. SCRIPT.Disabled = false
  715. else
  716. local SCRIPT = script.R6Ragdoll:Clone()
  717. SCRIPT.Parent = MAN
  718. SCRIPT.Disabled = false
  719. end
  720. local TORSO = MAN:FindFirstChild("Torso") or MAN:FindFirstChild("UpperTorso")
  721. if TORSO then
  722. NewSound({ID = 146594648,PARENT = TORSO,VOLUME = 1,PITCH = MRANDOM(8,12)/10,LOOP = false,MAXDISTANCE = 75,EMITTERSIZE = 15,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  723. end
  724. end
  725. MAN:BreakJoints()
  726. if MAN:FindFirstChild("Slaughtered") == nil then
  727. local MARK = IT("Folder",MAN)
  728. MARK.Name = "Slaughtered"
  729. else
  730. if MAN:FindFirstChild("Slaughtered") then
  731. local TORSO = MAN:FindFirstChild("Torso") or MAN:FindFirstChild("UpperTorso")
  732. if TORSO then
  733. TORSO.RotVelocity = VT(0,MRANDOM(-25,25),0)
  734. end
  735. end
  736. end
  737. end
  738. end
  739.  
  740. function AreaOfEffect(AREA,RANGE,FLING,RETURN)
  741. local HIT = {}
  742. for index, CHILD in pairs(workspace:GetChildren()) do
  743. if CHILD:FindFirstChildOfClass("Humanoid") then
  744. local HUMAN = CHILD:FindFirstChildOfClass("Humanoid")
  745. local ROOT = HUMAN.Torso
  746. if ROOT then
  747. if (ROOT.Position - AREA).Magnitude <= RANGE then
  748. if RETURN == true then
  749. if CHILD ~= CHARACTER then
  750. table.insert(HIT,{CHILD,HUMAN,ROOT})
  751. end
  752. else
  753. if CHILD ~= CHARACTER then
  754. ManSlaughter(CHILD)
  755. end
  756. local BV = IT("BodyVelocity")
  757. BV.MaxForce = BV.MaxForce * 500
  758. BV.Velocity = CF(AREA,ROOT.Position+VT(0,0.5,0)).lookVector*FLING
  759. BV.Parent = ROOT
  760. Debris:AddItem(BV,0.05)
  761. end
  762. end
  763. end
  764. end
  765. end
  766. if RETURN == true then
  767. return HIT
  768. end
  769. end
  770.  
  771. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  772. local NEWPART = IT("Part")
  773. NEWPART.formFactor = FORMFACTOR
  774. NEWPART.Reflectance = REFLECTANCE
  775. NEWPART.Transparency = TRANSPARENCY
  776. NEWPART.CanCollide = false
  777. NEWPART.Locked = true
  778. NEWPART.Anchored = true
  779. if ANCHOR == false then
  780. NEWPART.Anchored = false
  781. end
  782. NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  783. NEWPART.Name = NAME
  784. NEWPART.Size = SIZE
  785. NEWPART.Position = ROOT.Position
  786. NEWPART.Material = MATERIAL
  787. NEWPART:BreakJoints()
  788. NEWPART.Parent = PARENT
  789. return NEWPART
  790. end
  791.  
  792. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  793. return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  794. end
  795.  
  796. function CameraShake(AREA,RANGE,SHAKE,TIMER)
  797. for index, CHILD in pairs(workspace:GetChildren()) do
  798. if CHILD:FindFirstChildOfClass("Humanoid") then
  799. local HUMAN = CHILD:FindFirstChildOfClass("Humanoid")
  800. local ROOT = HUMAN.Torso
  801. if ROOT and game.Players:GetPlayerFromCharacter(CHILD) then
  802. if (ROOT.Position - AREA).Magnitude <= RANGE then
  803. if CHILD:FindFirstChild("CamShake") then
  804. Debris:AddItem(CHILD:FindFirstChild("CamShake"),0.05)
  805. end
  806. local CAMSHAKE = script.CamShake:Clone()
  807. CAMSHAKE.Parent = CHILD
  808. local TIMER_V = IT("NumberValue",CAMSHAKE)
  809. TIMER_V.Name = "Timer"
  810. TIMER_V.Value = TIMER
  811. local SHAKE_V = IT("NumberValue",CAMSHAKE)
  812. SHAKE_V.Name = "Shake"
  813. SHAKE_V.Value = SHAKE
  814. CAMSHAKE.Disabled = false
  815. Debris:AddItem(CAMSHAKE,15)
  816. end
  817. end
  818. end
  819. end
  820. end
  821.  
  822. --//====================================================\\--
  823. --|| CHARACTER
  824. --\\====================================================//--
  825.  
  826. local HELMET = MODULE.Helmet
  827. HELMET.Parent = CHARACTER
  828. for index, CHILD in pairs(CHARACTER:GetChildren()) do
  829. if CHILD ~= ROOT then
  830. if CHILD:IsA("Accessory") then
  831. CHILD:Remove()
  832. end
  833. end
  834. end
  835. local FACE = HEAD.face
  836. FACE.Texture = "rbxassetid://559113097"
  837. HELMET.CFrame = HEAD.CFrame*CF(0,0.5,0)
  838. HELMET.Anchored = false
  839. WeldParts(HEAD,HELMET)
  840. local BAZOOKA = MODULE.Bazooka
  841. BAZOOKA.Parent = CHARACTER
  842. BAZOOKA.Anchored = false
  843. local GRIP = IT("Motor6D")
  844. GRIP.Part0 = RIGHTARM
  845. GRIP.Part1 = BAZOOKA
  846. GRIP.C0 = CF(0,-1,-0.5)*ANGLES(RAD(-90),0,0)*CF(0,0,1.85)
  847. local G_C0 = GRIP.C0
  848. GRIP.Parent = RIGHTARM
  849. for i = 1, 15 do
  850. local FACE = CreatePart(3, CHARACTER, "Fabric", 0, 0+(i-1)/15.2, "Dark stone grey", "FaceGradient", VT(1.01,0.58,1.01),false)
  851. FACE.Color = C3(0,0,0)
  852. HEAD:FindFirstChildOfClass("SpecialMesh"):Clone().Parent = FACE
  853. FACE.CFrame = HEAD.CFrame*CF(0,0.3-(i-1)/35,0)
  854. WeldParts(HEAD,FACE)
  855. end
  856. local MISSILE = MODULE.Missile
  857. MISSILE.Parent = nil
  858. local GUI = MODULE.ControlsGUI
  859. GUI.Parent = PLAYER.PlayerGui
  860. GUI.ToggleButton.MouseButton1Click:Connect(function()
  861. if GUI.ToggleButton.Controls.Visible == false then
  862. GUI.ToggleButton.Controls.Visible = true
  863. elseif GUI.ToggleButton.Controls.Visible == true then
  864. GUI.ToggleButton.Controls.Visible = false
  865. end
  866. end)
  867. local STOREDGUI = GUI.ToggleButton.Stored
  868. STOREDGUI.Text = "STORED: "..STORED
  869. function AddTo(ADD)
  870. STORED = STORED + ADD
  871. STOREDGUI.Text = "STORED: "..STORED
  872. end
  873.  
  874. --//====================================================\\--
  875. --|| ABILITIES
  876. --\\====================================================//--
  877.  
  878. function Fire_in_the_hole()
  879. if STORED > 0 then
  880. ATTACKING = true
  881. local GYRO = IT("BodyGyro")
  882. GYRO.D = 50
  883. GYRO.P = 5000
  884. GYRO.MaxTorque = VT(0,4000000,0)
  885. GYRO.CFrame = CF(ROOT.Position,MOUSEPOS)
  886. GYRO.Parent = ROOT
  887. ATTACKING = true
  888. coroutine.resume(coroutine.create(function()
  889. repeat
  890. Swait()
  891. GYRO.CFrame = CF(ROOT.Position,MOUSEPOS)
  892. until ATTACKING == false
  893. GYRO:Remove()
  894. end))
  895. repeat
  896. for i=0, 0.06, 0.1 / ANIM_SPEED do
  897. Swait()
  898. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.02) * ANGLES(RAD(0), RAD(0), RAD(45)), 2.5 / ANIM_SPEED)
  899. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-45)) * ANGLES(RAD(5), RAD(0), RAD(0)), 2.5 / ANIM_SPEED)
  900. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 2.5 / ANIM_SPEED)
  901. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(0), RAD(-45)) * LEFTSHOULDERC0, 1.5 / ANIM_SPEED)
  902. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(45), RAD(0)) * CF(0.4,0,0) * ANGLES(RAD(-10), RAD(0), RAD(0)), 2.5 / ANIM_SPEED)
  903. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1.1, -1, 0) * ANGLES(RAD(0), RAD(-135), RAD(0)) * CF(-0.4,0,0) * ANGLES(RAD(-10), RAD(0), RAD(0)), 2.5 / ANIM_SPEED)
  904. end
  905. AddTo(-1)
  906. coroutine.resume(coroutine.create(function()
  907. local GOTO = MOUSEPOS
  908. local ROCKET = MISSILE:Clone()
  909. ROCKET.Parent = Effects
  910. ROCKET.CFrame = CF(BAZOOKA.CFrame*CF(0,0,-2).p,GOTO)
  911. NewSound({ID = 440145223,PARENT = BAZOOKA,VOLUME = 2,PITCH = MRANDOM(9,11)/10,LOOP = false,MAXDISTANCE = 80,EMITTERSIZE = 15,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  912. NewSound({ID = 440145223,PARENT = ROCKET,VOLUME = 2,PITCH = MRANDOM(9,11)/10,LOOP = false,MAXDISTANCE = 80,EMITTERSIZE = 15,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  913. for i = 1, 200 do
  914. Swait()
  915. local HIT,POS = Raycast(ROCKET.Position,ROCKET.CFrame.lookVector,5,CHARACTER)
  916. if HIT then
  917. ROCKET.CFrame = CF(POS)
  918. break
  919. end
  920. ROCKET.CFrame = ROCKET.CFrame*CF(0,0,-4)
  921. end
  922. ROCKET.Transparency = 1
  923. ROCKET.Hind:Remove()
  924. ROCKET.CFrame = CF(ROCKET.Position)
  925. ROCKET.Size = VT(0,0,0)
  926. NewSound({ID = 142070127,PARENT = ROCKET,VOLUME = 7,PITCH = MRANDOM(8,12)/10,LOOP = false,MAXDISTANCE = 300,EMITTERSIZE = 15,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  927. for index, CHILD in pairs(script.Grenade:GetChildren()) do
  928. local C = CHILD:Clone()
  929. C.Parent = ROCKET
  930. C:Emit(125)
  931. end
  932. CameraShake(ROCKET.Position,50,125,70)
  933. AreaOfEffect(ROCKET.Position,35,200,false)
  934. Debris:AddItem(ROCKET,2)
  935. end))
  936. for i=0, 0.025, 0.1 / ANIM_SPEED do
  937. Swait()
  938. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.02) * ANGLES(RAD(0), RAD(0), RAD(45)), 2.5 / ANIM_SPEED)
  939. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-45)) * ANGLES(RAD(5), RAD(0), RAD(0)), 2.5 / ANIM_SPEED)
  940. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(200), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 2.5 / ANIM_SPEED)
  941. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(0), RAD(-45)) * LEFTSHOULDERC0, 1.5 / ANIM_SPEED)
  942. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(45), RAD(0)) * CF(0.4,0,0) * ANGLES(RAD(-10), RAD(0), RAD(0)), 2.5 / ANIM_SPEED)
  943. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1.1, -1, 0) * ANGLES(RAD(0), RAD(-135), RAD(0)) * CF(-0.4,0,0) * ANGLES(RAD(-10), RAD(0), RAD(0)), 2.5 / ANIM_SPEED)
  944. end
  945. until MOUSEHOLD == false or STORED <= 0
  946. if STORED <= 0 then
  947. STORED = 0
  948. STOREDGUI.Text = "STORED: 0"
  949. end
  950. ATTACKING = false
  951. end
  952. end
  953. function Store()
  954. HUM.WalkSpeed = 0
  955. HUM.JumpPower = 0
  956. ATTACKING = true
  957. repeat
  958. for i=0, 0.01, 0.1 / ANIM_SPEED do
  959. Swait()
  960. GRIP.C0 = Clerp(GRIP.C0, CF(0,-1,-0.5)*ANGLES(RAD(-80),RAD(15),0)*CF(0,0,1.85), 2.5 / ANIM_SPEED)
  961. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.02 + 0.05 * COS(SINE / 6)) * ANGLES(RAD(0), RAD(0), RAD(-5)), 0.5 / ANIM_SPEED)
  962. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(15)), 2.5 / ANIM_SPEED)
  963. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.7, 0.45, 0) * ANGLES(RAD(35), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 2.5 / ANIM_SPEED)
  964. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 2.5 / ANIM_SPEED)
  965. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-2.5)), 0.5 / ANIM_SPEED)
  966. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-2.5)), 0.5 / ANIM_SPEED)
  967. end
  968. local ROCKET = MISSILE:Clone()
  969. ROCKET.Anchored = false
  970. ROCKET:ClearAllChildren()
  971. ROCKET.CFrame = LEFTARM.CFrame*CF(0,-1,0) * ANGLES(RAD(0), RAD(90), RAD(0))
  972. ROCKET.Parent = CHARACTER
  973. WeldParts(ROCKET,LEFTARM)
  974. for i=0, 0.02, 0.1 / ANIM_SPEED do
  975. Swait()
  976. GRIP.C0 = Clerp(GRIP.C0, CF(0,-1,-0.5)*ANGLES(RAD(-80),RAD(15),0)*CF(0,0,1.85), 2.5 / ANIM_SPEED)
  977. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.02 + 0.05 * COS(SINE / 6)) * ANGLES(RAD(0), RAD(0), RAD(-5)), 0.5 / ANIM_SPEED)
  978. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(15)), 2.5 / ANIM_SPEED)
  979. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.675, 0.45, 0.3) * ANGLES(RAD(35), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 2.5 / ANIM_SPEED)
  980. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(0), RAD(25)) * LEFTSHOULDERC0, 2.5 / ANIM_SPEED)
  981. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-2.5)), 0.5 / ANIM_SPEED)
  982. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-2.5)), 0.5 / ANIM_SPEED)
  983. end
  984. for i=0, 0.02, 0.1 / ANIM_SPEED do
  985. Swait()
  986. GRIP.C0 = Clerp(GRIP.C0, CF(0,-1,-0.5)*ANGLES(RAD(-80),RAD(15),0)*CF(0,0,1.85), 2.5 / ANIM_SPEED)
  987. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.02 + 0.05 * COS(SINE / 6)) * ANGLES(RAD(0), RAD(0), RAD(-5)), 0.5 / ANIM_SPEED)
  988. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(15)), 2.5 / ANIM_SPEED)
  989. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.7, 0.45, 0) * ANGLES(RAD(35), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 2.5 / ANIM_SPEED)
  990. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 2.5 / ANIM_SPEED)
  991. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-2.5)), 0.5 / ANIM_SPEED)
  992. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-2.5)), 0.5 / ANIM_SPEED)
  993. end
  994. NewSound({ID = 440145223,PARENT = BAZOOKA,VOLUME = 1,PITCH = MRANDOM(9,11)/6,LOOP = false,MAXDISTANCE = 80,EMITTERSIZE = 15,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  995. for i=0, 0.05, 0.1 / ANIM_SPEED do
  996. Swait()
  997. GRIP.C0 = Clerp(GRIP.C0, CF(0,-1,-0.5)*ANGLES(RAD(-80),RAD(15),0)*CF(0,0,1.85), 2.5 / ANIM_SPEED)
  998. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.02 + 0.05 * COS(SINE / 6)) * ANGLES(RAD(0), RAD(0), RAD(5)), 0.5 / ANIM_SPEED)
  999. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-15)), 2.5 / ANIM_SPEED)
  1000. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.75, 0.45, -0.1) * ANGLES(RAD(45), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 2.5 / ANIM_SPEED)
  1001. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-0.9, 0.5, -0.75) * ANGLES(RAD(60), RAD(0), RAD(37.5)) * LEFTSHOULDERC0, 2.5 / ANIM_SPEED)
  1002. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(2.5)), 0.5 / ANIM_SPEED)
  1003. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(2.5)), 0.5 / ANIM_SPEED)
  1004. end
  1005. ROCKET:Remove()
  1006. BAZOOKA.Face.Pop:Emit(5)
  1007. AddTo(1)
  1008. until KEYHOLD == false
  1009. ATTACKING = false
  1010. HUM.WalkSpeed = 100
  1011. HUM.JumpPower = 50
  1012. end
  1013.  
  1014. function Dance()
  1015. HUM.WalkSpeed = 0
  1016. HUM.JumpPower = 0
  1017. ATTACKING = true
  1018. local REMOVETRACK = false
  1019. local TRACK = nil
  1020. if ROOT:FindFirstChild("BGM_MUSIC") then
  1021. TRACK = ROOT:FindFirstChild("BGM_MUSIC")
  1022. TRACK.Volume = 5
  1023. else
  1024. TRACK = NewSound({ID = BOMB,PARENT = ROOT,VOLUME = 5,PITCH = 1,LOOP = true,MAXDISTANCE = 300,EMITTERSIZE = 300,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  1025. REMOVETRACK = true
  1026. end
  1027. TRACK.SoundId = "rbxassetid://"..BOMB
  1028. TRACK:Play()
  1029. local DONEWITHDANCING = false
  1030. local NC = REMOTE.OnServerEvent:Connect(function(PLR,V1,V2)
  1031. if V1 == "KeyDown" and V2 == "m" then
  1032. DONEWITHDANCING = true
  1033. end
  1034. end)
  1035. local I = 0
  1036. local RAVE = IT("PointLight",ROOT)
  1037. RAVE.Brightness = 25
  1038. RAVE.Color = BrickColor.random().Color
  1039. repeat
  1040. I = I + 2
  1041. Swait()
  1042. RAVE.Color = BrickColor.random().Color
  1043. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0 - 0.32 * SIN(I / 10), 0, -0.55 - 0.05 * COS(I / 5)) * ANGLES(RAD(0), RAD(0 - 20 * SIN(I / 10)), RAD(0)), 1.5 / ANIM_SPEED)
  1044. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0 - 20 * SIN(I / 10)), RAD(0)), 1.5 / ANIM_SPEED)
  1045. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(170), RAD(10), RAD(-35 * COS(I/10))) *CF(0,-1,0) * RIGHTSHOULDERC0, 1.5 / ANIM_SPEED)
  1046. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(170), RAD(-10), RAD(-35 * COS(I/10))) * CF(0,-1,0) * LEFTSHOULDERC0, 1.5 / ANIM_SPEED)
  1047. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1.35, -0.475 + 0.36 * SIN(I / 10) + 0.05 * COS(I / 5), -0.35) * ANGLES(RAD(0), RAD(45), RAD(0)) * ANGLES(RAD(-12 - 19 * SIN(I / 10)), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
  1048. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1.35, -0.475 - 0.36 * SIN(I / 10) + 0.05 * COS(I / 5), -0.35) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-12 + 19 * SIN(I / 10)), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
  1049. until DONEWITHDANCING == true
  1050. RAVE:Remove()
  1051. NC:Disconnect()
  1052. if REMOVETRACK == true then
  1053. TRACK:Remove()
  1054. else
  1055. TRACK:Play()
  1056. TRACK.Volume = 1.25
  1057. TRACK.SoundId = "rbxassetid://"..BGM
  1058. end
  1059. ATTACKING = false
  1060. HUM.WalkSpeed = 100
  1061. HUM.JumpPower = 50
  1062. end
  1063.  
  1064. --//====================================================\\--
  1065. --|| WRAP
  1066. --\\====================================================//--
  1067.  
  1068. REMOTE.OnServerEvent:Connect(function(PLR,V1,V2)
  1069. if PLR == PLAYER and ANIM ~= "Sit" then
  1070. --if V1 == "MousePositionUpdate" then
  1071. --MOUSEPOS = V2
  1072. if V1 == "KeyUp" then
  1073. KEYHOLD = false
  1074. elseif V1 == "MouseUp" then
  1075. MOUSEHOLD = false
  1076. end
  1077. if ATTACKING == false then
  1078. if V1 == "MouseDown" then
  1079. MOUSEHOLD = true
  1080. Fire_in_the_hole()
  1081. elseif V1 == "KeyDown" then
  1082. KEYHOLD = true
  1083. if V2 == "z" then
  1084. Store()
  1085. elseif V2 == "m" then
  1086. Dance()
  1087. elseif V2 == "t" then
  1088. NewSound({ID = 145757437,PARENT = ROOT,VOLUME = 10,PITCH = 1,LOOP = false,MAXDISTANCE = 100,EMITTERSIZE = 25,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  1089. elseif V2 == "e" then
  1090. if ROOT:FindFirstChild("BGM_MUSIC") then
  1091. ROOT:FindFirstChild("BGM_MUSIC"):Remove()
  1092. else
  1093. local M = NewSound({ID = BGM,PARENT = ROOT,VOLUME = 1.25,PITCH = 1,LOOP = true,MAXDISTANCE = 300,EMITTERSIZE = 300,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  1094. M.Name = "BGM_MUSIC"
  1095. end
  1096. end
  1097. end
  1098. end
  1099. end
  1100. end)
  1101.  
  1102. local M = NewSound({ID = BGM,PARENT = ROOT,VOLUME = 1.25,PITCH = 1,LOOP = true,MAXDISTANCE = 300,EMITTERSIZE = 300,PLAYING = true,PLAYONREMOVE = false,DOESDEBRIS = true})
  1103. M.Name = "BGM_MUSIC"
  1104. HUM.WalkSpeed = 100
  1105. while true do
  1106. Swait()
  1107. SINE = SINE + CHANGE
  1108. if CHARACTER:FindFirstChild("Animate") then
  1109. CHARACTER:FindFirstChild("Animate"):Destroy()
  1110. end
  1111. if CHARACTER:FindFirstChild("Sound") then
  1112. CHARACTER:FindFirstChild("Sound"):Destroy()
  1113. end
  1114. for _,v in next, HUM:GetPlayingAnimationTracks() do
  1115. v:Stop();
  1116. end
  1117. local TORSOVELOCITY = (ROOT.Velocity * VT(1, 0, 1)).magnitude
  1118. local TORSOVERTICALVELOCITY = ROOT.Velocity.y
  1119. local HITFLOOR = Raycast(ROOT.Position, (CF(ROOT.Position, ROOT.Position + VT(0, -1, 0))).lookVector, 4+HUM.HipHeight, CHARACTER)
  1120. local WALKSPEEDVALUE = 0.5
  1121. local SITTING = HUM.Sit
  1122. if ANIM == "Walk" and TORSOVELOCITY > 1 and SITTING == false then
  1123. 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(55 * COS(SINE / WALKSPEEDVALUE))), 2 / ANIM_SPEED)
  1124. 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(55 * COS(SINE / WALKSPEEDVALUE))), 2 / ANIM_SPEED)
  1125. elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) or SITTING == true then
  1126. 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)
  1127. 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)
  1128. end
  1129. if ATTACKING == false then
  1130. GRIP.C0 = Clerp(GRIP.C0, G_C0, 1.5 / ANIM_SPEED)
  1131. end
  1132. if SITTING == false then
  1133. if HITFLOOR then
  1134. if TORSOVELOCITY < 1 and HITFLOOR ~= nil then
  1135. ANIM = "Idle"
  1136. if ATTACKING == false then
  1137. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.02 + 0.05 * COS(SINE / 6)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
  1138. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * COS(SINE / 6)), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
  1139. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(100), RAD(0), RAD(5 + 2.5 * COS(SINE / 6))) * RIGHTSHOULDERC0, 1.5 / ANIM_SPEED)
  1140. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-25 - 2.5 * COS(SINE / 6))) * LEFTSHOULDERC0, 1.5 / ANIM_SPEED)
  1141. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
  1142. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / 6), 0) * ANGLES(RAD(0), RAD(-85), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(0)), 1.5 / ANIM_SPEED)
  1143. end
  1144. elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
  1145. ANIM = "Walk"
  1146. if ATTACKING == false then
  1147. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.05 + 0.05 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(-10), RAD(0), RAD(0)), 2 / ANIM_SPEED)
  1148. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(10), RAD(0), RAD(0)), 2 / ANIM_SPEED)
  1149. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(135), RAD(0), RAD(5 + 2.5 * COS(SINE / WALKSPEEDVALUE))) * RIGHTSHOULDERC0, 2 / ANIM_SPEED)
  1150. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-15), RAD(0), RAD(-25 - 2.5 * COS(SINE / WALKSPEEDVALUE))) * LEFTSHOULDERC0, 2 / ANIM_SPEED)
  1151. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1 , -1 - 0.05 * COS(SINE / WALKSPEEDVALUE), 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-15)), 2 / ANIM_SPEED)
  1152. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1 - 0.05 * COS(SINE / WALKSPEEDVALUE), 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(15)), 2 / ANIM_SPEED)
  1153. end
  1154. end
  1155. else
  1156. if TORSOVERTICALVELOCITY > 0 then
  1157. ANIM = "Jump"
  1158. if ATTACKING == false then
  1159. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / ANIM_SPEED)
  1160. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 1 / ANIM_SPEED)
  1161. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(25), RAD(0), RAD(5 + 2.5 * COS(SINE / 6))) * RIGHTSHOULDERC0, 1.5 / ANIM_SPEED)
  1162. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-2), RAD(0), RAD(10)) * LEFTSHOULDERC0, 1 / ANIM_SPEED)
  1163. RIGHTHIP.C0 = Clerp(RIGHTHIP.C0, CF(1, -0.4, -0.6) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-20)), 1 / ANIM_SPEED)
  1164. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 1 / ANIM_SPEED)
  1165. end
  1166. else
  1167. ANIM = "Fall"
  1168. if ATTACKING == false then
  1169. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / ANIM_SPEED)
  1170. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 1 / ANIM_SPEED)
  1171. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(150), RAD(0), RAD(5 + 2.5 * COS(SINE / 6))) * RIGHTSHOULDERC0, 1.5 / ANIM_SPEED)
  1172. LEFTSHOULDER.C0 = Clerp(LEFTSHOULDER.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-2), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 1 / ANIM_SPEED)
  1173. 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)
  1174. LEFTHIP.C0 = Clerp(LEFTHIP.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 1 / ANIM_SPEED)
  1175. end
  1176. end
  1177. end
  1178. else
  1179. ANIM = "Sit"
  1180. if ATTACKING == false then
  1181. ROOTJOINT.C0 = Clerp(ROOTJOINT.C0,ROOTC0 * CF(0, 0, -0.5) * ANGLES(RAD(0), RAD(0), RAD(0)), 1.25 / ANIM_SPEED)
  1182. NECK.C0 = Clerp(NECK.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1.25 / ANIM_SPEED)
  1183. RIGHTSHOULDER.C0 = Clerp(RIGHTSHOULDER.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 1.5 / ANIM_SPEED)
  1184. 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)
  1185. 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)
  1186. 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)
  1187. end
  1188. end
  1189. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement