Advertisement
AsukaOS

Fe Banisher

Sep 20th, 2018
457
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 52.34 KB | None | 0 0
  1. --https://github.com/Mokiros/roblox-FE-compatibility
  2. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  3. local Player,game,owner = owner,game
  4. local RealPlayer = Player
  5. do
  6. print("FE Compatibility code by Mokiros")
  7. local rp = RealPlayer
  8. script.Parent = rp.Character
  9.  
  10. --RemoteEvent for communicating
  11. local Event = Instance.new("RemoteEvent")
  12. Event.Name = "UserInput_Event"
  13.  
  14. --Fake event to make stuff like Mouse.KeyDown work
  15. local function fakeEvent()
  16. local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
  17. t.connect = t.Connect
  18. return t
  19. end
  20.  
  21. --Creating fake input objects with fake variables
  22. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
  23. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  24. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  25. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  26. end}
  27. --Merged 2 functions into one by checking amount of arguments
  28. CAS.UnbindAction = CAS.BindAction
  29.  
  30. --This function will trigger the events that have been :Connect()'ed
  31. local function te(self,ev,...)
  32. local t = m[ev]
  33. if t and t._fakeEvent then
  34. for _,f in pairs(t.Functions) do
  35. f(...)
  36. end
  37. end
  38. end
  39. m.TrigEvent = te
  40. UIS.TrigEvent = te
  41.  
  42. Event.OnServerEvent:Connect(function(plr,io)
  43. if plr~=rp then return end
  44. m.Target = io.Target
  45. m.Hit = io.Hit
  46. if not io.isMouse then
  47. local b = io.UserInputState == Enum.UserInputState.Begin
  48. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  49. return m:TrigEvent(b and "Button1Down" or "Button1Up")
  50. end
  51. if io.UserInputType == Enum.UserInputType.MouseButton2 then
  52. return m:TrigEvent(b and "Button2Down" or "Button2Up")
  53. end
  54. for _,t in pairs(CAS.Actions) do
  55. for _,k in pairs(t.Keys) do
  56. if k==io.KeyCode then
  57. t.Function(t.Name,io.UserInputState,io)
  58. end
  59. end
  60. end
  61. m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  62. UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
  63. end
  64. end)
  65. Event.Parent = NLS([==[
  66. local Player = game:GetService("Players").LocalPlayer
  67. local Event = script:WaitForChild("UserInput_Event")
  68.  
  69. local Mouse = Player:GetMouse()
  70. local UIS = game:GetService("UserInputService")
  71. local input = function(io,a)
  72. if a then return end
  73. --Since InputObject is a client-side instance, we create and pass table instead
  74. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
  75. end
  76. UIS.InputBegan:Connect(input)
  77. UIS.InputEnded:Connect(input)
  78.  
  79. local h,t
  80. --Give the server mouse data 30 times every second, but only if the values changed
  81. --If player is not moving their mouse, client won't fire events
  82. while wait(1/30) do
  83. if h~=Mouse.Hit or t~=Mouse.Target then
  84. h,t=Mouse.Hit,Mouse.Target
  85. Event:FireServer({isMouse=true,Target=t,Hit=h})
  86. end
  87. end]==],Player.Character)
  88.  
  89. ----Sandboxed game object that allows the usage of client-side methods and services
  90. --Real game object
  91. local _rg = game
  92.  
  93. --Metatable for fake service
  94. local fsmt = {
  95. __index = function(self,k)
  96. local s = rawget(self,"_RealService")
  97. if s then
  98. return typeof(s[k])=="function"
  99. and function(_,...)return s[k](s,...)end or s[k]
  100. end
  101. end,
  102. __newindex = function(self,k,v)
  103. local s = rawget(self,"_RealService")
  104. if s then s[k]=v end
  105. end
  106. }
  107. local function FakeService(t,RealService)
  108. t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
  109. return setmetatable(t,fsmt)
  110. end
  111.  
  112. --Fake game object
  113. local g = {
  114. GetService = function(self,s)
  115. return rawget(self,s) or _rg:GetService(s)
  116. end,
  117. Players = FakeService({
  118. LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
  119. },"Players"),
  120. UserInputService = FakeService(UIS,"UserInputService"),
  121. ContextActionService = FakeService(CAS,"ContextActionService"),
  122. RunService = FakeService({
  123. _btrs = {},
  124. RenderStepped = _rg:GetService("RunService").Heartbeat,
  125. BindToRenderStep = function(self,name,_,fun)
  126. self._btrs[name] = self.Heartbeat:Connect(fun)
  127. end,
  128. UnbindFromRenderStep = function(self,name)
  129. self._btrs[name]:Disconnect()
  130. end,
  131. },"RunService")
  132. }
  133. rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
  134. g.service = g.GetService
  135. FakeService(g,game)
  136. --Changing owner to fake player object to support owner:GetMouse()
  137. game,owner = g,g.Players.LocalPlayer
  138. end
  139. script.Name = "Banisher Gun V3 / 1"
  140. --//====================================================\\--
  141. --|| CREATED BY SHACKLUSTER
  142. --\\====================================================//--
  143. --and edited by AsukaOS
  144.  
  145.  
  146. script:ClearAllChildren()
  147. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  148. local Player,game,owner = owner,game
  149. local RealPlayer = Player
  150. do
  151. print("FE Compatibility code by Mokiros")
  152. script.Parent = Player.Character
  153.  
  154. --RemoteEvent for communicating
  155. local Event = Instance.new("RemoteEvent")
  156. Event.Name = "UserInput_Event"
  157.  
  158. --Fake event to make stuff like Mouse.KeyDown work
  159. local function fakeEvent()
  160. local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
  161. t.connect = t.Connect
  162. return t
  163. end
  164.  
  165. --Creating fake input objects with fake variables
  166. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  167. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  168. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  169. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  170. end}
  171. --Merged 2 functions into one by checking amount of arguments
  172. CAS.UnbindAction = CAS.BindAction
  173.  
  174. --This function will trigger the events that have been :Connect()'ed
  175. local function te(self,ev,...)
  176. local t = m[ev]
  177. if t and t._fakeEvent and t.Function then
  178. t.Function(...)
  179. end
  180. end
  181. m.TrigEvent = te
  182. UIS.TrigEvent = te
  183.  
  184. Event.OnServerEvent:Connect(function(plr,io)
  185. if plr~=Player then return end
  186. m.Target = io.Target
  187. m.Hit = io.Hit
  188. if not io.isMouse then
  189. local b = io.UserInputState == Enum.UserInputState.Begin
  190. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  191. return m:TrigEvent(b and "Button1Down" or "Button1Up")
  192. end
  193. for _,t in pairs(CAS.Actions) do
  194. for _,k in pairs(t.Keys) do
  195. if k==io.KeyCode then
  196. t.Function(t.Name,io.UserInputState,io)
  197. end
  198. end
  199. end
  200. m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  201. UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
  202. end
  203. end)
  204. Event.Parent = NLS([==[
  205. local Player = game:GetService("Players").LocalPlayer
  206. local Event = script:WaitForChild("UserInput_Event")
  207.  
  208. local Mouse = Player:GetMouse()
  209. local UIS = game:GetService("UserInputService")
  210. local input = function(io,a)
  211. if a then return end
  212. --Since InputObject is a client-side instance, we create and pass table instead
  213. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
  214. end
  215. UIS.InputBegan:Connect(input)
  216. UIS.InputEnded:Connect(input)
  217.  
  218. local h,t
  219. --Give the server mouse data 30 times every second, but only if the values changed
  220. --If player is not moving their mouse, client won't fire events
  221. while wait(1/30) do
  222. if h~=Mouse.Hit or t~=Mouse.Target then
  223. h,t=Mouse.Hit,Mouse.Target
  224. Event:FireServer({isMouse=true,Target=t,Hit=h})
  225. end
  226. end]==],Player.Character)
  227. local _rg = game
  228. local function FakeService(t,RealService)
  229. t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
  230. return setmetatable(t,{
  231. __index = function(self,k)
  232. local s = rawget(self,"_RealService")
  233. if s then return s[k] end
  234. end,
  235. __newindex = function(self,k,v)
  236. local s = rawget(self,"_RealService")
  237. if s then s[k]=v end
  238. end,
  239. })
  240. end
  241. local g = FakeService({
  242. GetService = function(self,s)
  243. return self[s]
  244. end,
  245. Players = FakeService({
  246. LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
  247. },"Players"),
  248. UserInputService = FakeService(UIS,"UserInputService"),
  249. ContextActionService = FakeService(CAS,"ContextActionService"),
  250. RunService = FakeService({RenderStepped=game:GetService("RunService").Heartbeat},"RunService")
  251. },game)
  252. rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
  253. getmetatable(g).__index=function(self,s)
  254. return _rg:GetService(s) or typeof(_rg[s])=="function"
  255. and function(_,...)return _rg[s](_rg,...)end or _rg[s]
  256. end
  257. game = g
  258. owner = g.Players.LocalPlayer
  259. end
  260. wait(0.2)
  261.  
  262. Player = game:GetService("Players").LocalPlayer
  263. PlayerGui = Player.PlayerGui
  264. Cam = workspace.CurrentCamera
  265. Backpack = Player.Backpack
  266. Character = Player.Character
  267. Humanoid = Character.Humanoid
  268. Mouse = Player:GetMouse()
  269. RootPart = Character["HumanoidRootPart"]
  270. Torso = Character["Torso"]
  271. Head = Character["Head"]
  272. RightArm = Character["Right Arm"]
  273. LeftArm = Character["Left Arm"]
  274. RightLeg = Character["Right Leg"]
  275. LeftLeg = Character["Left Leg"]
  276. RootJoint = RootPart["RootJoint"]
  277. Neck = Torso["Neck"]
  278. RightShoulder = Torso["Right Shoulder"]
  279. LeftShoulder = Torso["Left Shoulder"]
  280. RightHip = Torso["Right Hip"]
  281. LeftHip = Torso["Left Hip"]
  282. local TIME = 0
  283. local sick = Instance.new("Sound",Torso)
  284.  
  285. IT = Instance.new
  286. CF = CFrame.new
  287. VT = Vector3.new
  288. RAD = math.rad
  289. C3 = Color3.new
  290. UD2 = UDim2.new
  291. BRICKC = BrickColor.new
  292. ANGLES = CFrame.Angles
  293. EULER = CFrame.fromEulerAnglesXYZ
  294. COS = math.cos
  295. ACOS = math.acos
  296. SIN = math.sin
  297. ASIN = math.asin
  298. ABS = math.abs
  299. MRANDOM = math.random
  300. FLOOR = math.floor
  301.  
  302. --//=================================\\
  303. --|| USEFUL VALUES
  304. --\\=================================//
  305.  
  306. Animation_Speed = 3
  307. local FORCERESET = false
  308. Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
  309. local Speed = 16
  310. local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  311. local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
  312. local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
  313. local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
  314. local DAMAGEMULTIPLIER = 1
  315. local ANIM = "Idle"
  316. local ATTACK = false
  317. local EQUIPPED = false
  318. local HOLD = false
  319. local COMBO = 1
  320. local Rooted = false
  321. local SINE = 0
  322. local KEYHOLD = false
  323. local CHANGE = 2 / Animation_Speed
  324. local WALKINGANIM = false
  325. local VALUE1 = false
  326. local VALUE2 = false
  327. local ROBLOXIDLEANIMATION = IT("Animation")
  328. ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
  329. ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
  330. --ROBLOXIDLEANIMATION.Parent = Humanoid
  331. local WEAPONGUI = IT("ScreenGui", PlayerGui)
  332. WEAPONGUI.Name = "BanishV3Gui"
  333. local Weapon = IT("Model")
  334. Weapon.Name = "Adds"
  335. local Effects = IT("Folder", Weapon)
  336. Effects.Name = "Effects"
  337. local ANIMATOR = Humanoid.Animator
  338. local ANIMATE = Character:FindFirstChild("Animate")
  339. local UNANCHOR = true
  340. script.Parent = PlayerGui
  341.  
  342. --//=================================\\
  343. --\\=================================//
  344.  
  345.  
  346. --//=================================\\
  347. --|| SAZERENOS' ARTIFICIAL HEARTBEAT
  348. --\\=================================//
  349.  
  350. ArtificialHB = Instance.new("BindableEvent", script)
  351. ArtificialHB.Name = "ArtificialHB"
  352.  
  353. script:WaitForChild("ArtificialHB")
  354.  
  355. frame = Frame_Speed
  356. tf = 0
  357. allowframeloss = false
  358. tossremainder = false
  359. lastframe = tick()
  360. script.ArtificialHB:Fire()
  361.  
  362. game:GetService("RunService").Heartbeat:connect(function(s, p)
  363. tf = tf + s
  364. if tf >= frame then
  365. if allowframeloss then
  366. script.ArtificialHB:Fire()
  367. lastframe = tick()
  368. else
  369. for i = 1, math.floor(tf / frame) do
  370. script.ArtificialHB:Fire()
  371. end
  372. lastframe = tick()
  373. end
  374. if tossremainder then
  375. tf = 0
  376. else
  377. tf = tf - frame * math.floor(tf / frame)
  378. end
  379. end
  380. end)
  381.  
  382. --//=================================\\
  383. --\\=================================//
  384.  
  385. --//=================================\\
  386. --|| SOME FUNCTIONS
  387. --\\=================================//
  388.  
  389. local S = IT("Sound")
  390. function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
  391. local NEWSOUND = nil
  392. coroutine.resume(coroutine.create(function()
  393. NEWSOUND = S:Clone()
  394. NEWSOUND.Parent = PARENT
  395. NEWSOUND.Volume = VOLUME
  396. NEWSOUND.Pitch = PITCH
  397. NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
  398. NEWSOUND:play()
  399. if DOESLOOP == true then
  400. NEWSOUND.Looped = true
  401. else
  402. repeat wait(1) until NEWSOUND.Playing == false or NEWSOUND.Parent ~= PARENT
  403. NEWSOUND:remove()
  404. end
  405. end))
  406. return NEWSOUND
  407. end
  408.  
  409. function Swait(NUMBER)
  410. if NUMBER == 0 or NUMBER == nil then
  411. ArtificialHB.Event:wait()
  412. else
  413. for i = 1, NUMBER do
  414. ArtificialHB.Event:wait()
  415. end
  416. end
  417. end
  418.  
  419. function chatfunc(text)
  420. local chat = coroutine.wrap(function()
  421. if Character:FindFirstChild("TalkingBillBoard")~= nil then
  422. Character:FindFirstChild("TalkingBillBoard"):destroy()
  423. end
  424. local naeeym2 = Instance.new("BillboardGui",Character)
  425. naeeym2.Size = UDim2.new(0,100,0,40)
  426. naeeym2.StudsOffset = Vector3.new(0,3,0)
  427. naeeym2.Adornee = Character.Head
  428. naeeym2.Name = "TalkingBillBoard"
  429. local tecks2 = Instance.new("TextLabel",naeeym2)
  430. tecks2.BackgroundTransparency = 1
  431. tecks2.BorderSizePixel = 0
  432. tecks2.Text = ""
  433. tecks2.Font = "Arcade"
  434. tecks2.TextSize = 30
  435. tecks2.TextStrokeTransparency = 0
  436. tecks2.TextColor3 = Color3.fromRGB(0, 16, 176)
  437. tecks2.TextStrokeColor3 = Color3.fromRGB(0, 32, 96)
  438. tecks2.Size = UDim2.new(1,0,0.5,0)
  439. local tecks3 = Instance.new("TextLabel",naeeym2)
  440. tecks3.BackgroundTransparency = 1
  441. tecks3.BorderSizePixel = 0
  442. tecks3.Text = ""
  443. tecks3.Font = "Arcade"
  444. tecks3.TextSize = 30
  445. tecks3.TextStrokeTransparency = 0
  446. tecks3.TextColor3 = Color3.fromRGB(0, 16, 176)
  447. tecks3.TextStrokeColor3 = Color3.fromRGB(0, 32, 96)
  448. tecks3.Size = UDim2.new(1,0,0.5,0)
  449. for i = 1,string.len(text),1 do
  450. CreateSound(418252437, Character, 5, 1, false)
  451. tecks2.Text = string.sub(text,1,i)
  452. tecks3.Text = string.sub(text,1,i)
  453. wait(0.01)
  454. end
  455. wait(2)
  456. for i = 1, 50 do
  457. Swait()
  458. --tecks2.Position = tecks2.Position - UDim2.new(math.random(-.4,.4),math.random(-5,5),.05,math.random(-5,5))
  459. --tecks2.Rotation = tecks2.Rotation - .8
  460. tecks2.TextStrokeTransparency = tecks2.TextStrokeTransparency +.04
  461. tecks2.TextTransparency = tecks2.TextTransparency + .04
  462. --tecks3.Position = tecks2.Position - UDim2.new(math.random(-.4,.4),math.random(-5,5),.05,math.random(-5,5))
  463. --tecks3.Rotation = tecks2.Rotation + .8
  464. tecks3.TextStrokeTransparency = tecks2.TextStrokeTransparency +.04
  465. tecks3.TextTransparency = tecks2.TextTransparency + .04
  466. end
  467. naeeym2:Destroy()
  468. end)
  469. chat()
  470. end
  471. function onChatted(msg)
  472. chatfunc(msg)
  473. end
  474. Player.Chatted:connect(onChatted)
  475.  
  476. function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
  477. return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
  478. end
  479.  
  480. function PositiveAngle(NUMBER)
  481. if NUMBER >= 0 then
  482. NUMBER = 0
  483. end
  484. return NUMBER
  485. end
  486.  
  487. function NegativeAngle(NUMBER)
  488. if NUMBER <= 0 then
  489. NUMBER = 0
  490. end
  491. return NUMBER
  492. end
  493.  
  494. function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
  495. local NEWMESH = IT(MESH)
  496. if MESH == "SpecialMesh" then
  497. NEWMESH.MeshType = MESHTYPE
  498. if MESHID ~= "nil" and MESHID ~= "" then
  499. NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
  500. end
  501. if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
  502. NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
  503. end
  504. end
  505. NEWMESH.Offset = OFFSET or VT(0, 0, 0)
  506. NEWMESH.Scale = SCALE
  507. NEWMESH.Parent = PARENT
  508. return NEWMESH
  509. end
  510.  
  511. function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
  512. local NEWPART = IT("Part")
  513. NEWPART.formFactor = FORMFACTOR
  514. NEWPART.Reflectance = REFLECTANCE
  515. NEWPART.Transparency = TRANSPARENCY
  516. NEWPART.CanCollide = false
  517. NEWPART.Locked = true
  518. NEWPART.Anchored = true
  519. if ANCHOR == false then
  520. NEWPART.Anchored = false
  521. end
  522. NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
  523. NEWPART.Name = NAME
  524. NEWPART.Size = SIZE
  525. NEWPART.Position = Torso.Position
  526. NEWPART.Material = MATERIAL
  527. NEWPART:BreakJoints()
  528. NEWPART.Parent = PARENT
  529. return NEWPART
  530. end
  531.  
  532. local function weldBetween(a, b)
  533. local weldd = Instance.new("ManualWeld")
  534. weldd.Part0 = a
  535. weldd.Part1 = b
  536. weldd.C0 = CFrame.new()
  537. weldd.C1 = b.CFrame:inverse() * a.CFrame
  538. weldd.Parent = a
  539. return weldd
  540. end
  541.  
  542.  
  543. function QuaternionFromCFrame(cf)
  544. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  545. local trace = m00 + m11 + m22
  546. if trace > 0 then
  547. local s = math.sqrt(1 + trace)
  548. local recip = 0.5 / s
  549. return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
  550. else
  551. local i = 0
  552. if m11 > m00 then
  553. i = 1
  554. end
  555. if m22 > (i == 0 and m00 or m11) then
  556. i = 2
  557. end
  558. if i == 0 then
  559. local s = math.sqrt(m00 - m11 - m22 + 1)
  560. local recip = 0.5 / s
  561. return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
  562. elseif i == 1 then
  563. local s = math.sqrt(m11 - m22 - m00 + 1)
  564. local recip = 0.5 / s
  565. return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
  566. elseif i == 2 then
  567. local s = math.sqrt(m22 - m00 - m11 + 1)
  568. local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
  569. end
  570. end
  571. end
  572.  
  573. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  574. local xs, ys, zs = x + x, y + y, z + z
  575. local wx, wy, wz = w * xs, w * ys, w * zs
  576. local xx = x * xs
  577. local xy = x * ys
  578. local xz = x * zs
  579. local yy = y * ys
  580. local yz = y * zs
  581. local zz = z * zs
  582. 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))
  583. end
  584.  
  585. function QuaternionSlerp(a, b, t)
  586. local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
  587. local startInterp, finishInterp;
  588. if cosTheta >= 0.0001 then
  589. if (1 - cosTheta) > 0.0001 then
  590. local theta = ACOS(cosTheta)
  591. local invSinTheta = 1 / SIN(theta)
  592. startInterp = SIN((1 - t) * theta) * invSinTheta
  593. finishInterp = SIN(t * theta) * invSinTheta
  594. else
  595. startInterp = 1 - t
  596. finishInterp = t
  597. end
  598. else
  599. if (1 + cosTheta) > 0.0001 then
  600. local theta = ACOS(-cosTheta)
  601. local invSinTheta = 1 / SIN(theta)
  602. startInterp = SIN((t - 1) * theta) * invSinTheta
  603. finishInterp = SIN(t * theta) * invSinTheta
  604. else
  605. startInterp = t - 1
  606. finishInterp = t
  607. end
  608. end
  609. 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
  610. end
  611.  
  612. function Clerp(a, b, t)
  613. local qa = {QuaternionFromCFrame(a)}
  614. local qb = {QuaternionFromCFrame(b)}
  615. local ax, ay, az = a.x, a.y, a.z
  616. local bx, by, bz = b.x, b.y, b.z
  617. local _t = 1 - t
  618. return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
  619. end
  620.  
  621. function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
  622. local frame = IT("Frame")
  623. frame.BackgroundTransparency = TRANSPARENCY
  624. frame.BorderSizePixel = BORDERSIZEPIXEL
  625. frame.Position = POSITION
  626. frame.Size = SIZE
  627. frame.BackgroundColor3 = COLOR
  628. frame.BorderColor3 = BORDERCOLOR
  629. frame.Name = NAME
  630. frame.Parent = PARENT
  631. return frame
  632. end
  633.  
  634. function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
  635. local label = IT("TextLabel")
  636. label.BackgroundTransparency = 1
  637. label.Size = UD2(1, 0, 1, 0)
  638. label.Position = UD2(0, 0, 0, 0)
  639. label.TextColor3 = TEXTCOLOR
  640. label.TextStrokeTransparency = STROKETRANSPARENCY
  641. label.TextTransparency = TRANSPARENCY
  642. label.FontSize = TEXTFONTSIZE
  643. label.Font = TEXTFONT
  644. label.BorderSizePixel = BORDERSIZEPIXEL
  645. label.TextScaled = false
  646. label.Text = TEXT
  647. label.Name = NAME
  648. label.Parent = PARENT
  649. return label
  650. end
  651.  
  652. function NoOutlines(PART)
  653. PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
  654. end
  655.  
  656. function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
  657. local NEWWELD = IT(TYPE)
  658. NEWWELD.Part0 = PART0
  659. NEWWELD.Part1 = PART1
  660. NEWWELD.C0 = C0
  661. NEWWELD.C1 = C1
  662. NEWWELD.Parent = PARENT
  663. return NEWWELD
  664. end
  665.  
  666.  
  667.  
  668. function CFrameFromTopBack(at, top, back)
  669. local right = top:Cross(back)
  670. return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
  671. end
  672.  
  673. --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})
  674. function WACKYEFFECT(Table)
  675. local TYPE = (Table.EffectType or "Sphere")
  676. local SIZE = (Table.Size or VT(1,1,1))
  677. local ENDSIZE = (Table.Size2 or VT(0,0,0))
  678. local TRANSPARENCY = (Table.Transparency or 0)
  679. local ENDTRANSPARENCY = (Table.Transparency2 or 1)
  680. local CFRAME = (Table.CFrame or Torso.CFrame)
  681. local MOVEDIRECTION = (Table.MoveToPos or nil)
  682. local ROTATION1 = (Table.RotationX or 0)
  683. local ROTATION2 = (Table.RotationY or 0)
  684. local ROTATION3 = (Table.RotationZ or 0)
  685. local MATERIAL = (Table.Material or "Neon")
  686. local COLOR = (Table.Color or C3(1,1,1))
  687. local TIME = (Table.Time or 45)
  688. local SOUNDID = (Table.SoundID or nil)
  689. local SOUNDPITCH = (Table.SoundPitch or nil)
  690. local SOUNDVOLUME = (Table.SoundVolume or nil)
  691. coroutine.resume(coroutine.create(function()
  692. local PLAYSSOUND = false
  693. local SOUND = nil
  694. local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true)
  695. if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
  696. PLAYSSOUND = true
  697. SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
  698. end
  699. EFFECT.Color = COLOR
  700. local MSH = nil
  701. if TYPE == "Sphere" then
  702. MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
  703. elseif TYPE == "Block" then
  704. MSH = IT("BlockMesh",EFFECT)
  705. MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X)
  706. elseif TYPE == "Wave" then
  707. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
  708. elseif TYPE == "Ring" then
  709. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
  710. elseif TYPE == "Slash" then
  711. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  712. elseif TYPE == "Round Slash" then
  713. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
  714. elseif TYPE == "Swirl" then
  715. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
  716. elseif TYPE == "Skull" then
  717. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
  718. elseif TYPE == "Crystal" then
  719. MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
  720. end
  721. if MSH ~= nil then
  722. local MOVESPEED = nil
  723. if MOVEDIRECTION ~= nil then
  724. MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
  725. end
  726. local GROWTH = SIZE - ENDSIZE
  727. local TRANS = TRANSPARENCY - ENDTRANSPARENCY
  728. if TYPE == "Block" then
  729. EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  730. else
  731. EFFECT.CFrame = CFRAME
  732. end
  733. for LOOP = 1, TIME+1 do
  734. Swait()
  735. MSH.Scale = MSH.Scale - GROWTH/TIME
  736. if TYPE == "Wave" then
  737. MSH.Offset = VT(0,0,-MSH.Scale.X/8)
  738. end
  739. EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
  740. if TYPE == "Block" then
  741. EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
  742. else
  743. EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
  744. end
  745. if MOVEDIRECTION ~= nil then
  746. local ORI = EFFECT.Orientation
  747. EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
  748. EFFECT.Orientation = ORI
  749. end
  750. end
  751. if PLAYSSOUND == false then
  752. EFFECT:remove()
  753. else
  754. SOUND.Stopped:Connect(function()
  755. EFFECT:remove()
  756. end)
  757. end
  758. else
  759. if PLAYSSOUND == false then
  760. EFFECT:remove()
  761. else
  762. repeat Swait() until SOUND.Playing == false
  763. EFFECT:remove()
  764. end
  765. end
  766. end))
  767. end
  768.  
  769. function MakeForm(PART,TYPE)
  770. if TYPE == "Cyl" then
  771. local MSH = IT("CylinderMesh",PART)
  772. elseif TYPE == "Ball" then
  773. local MSH = IT("SpecialMesh",PART)
  774. MSH.MeshType = "Sphere"
  775. elseif TYPE == "Wedge" then
  776. local MSH = IT("SpecialMesh",PART)
  777. MSH.MeshType = "Wedge"
  778. end
  779. end
  780.  
  781. function SpawnTrail(FROM,TO,BIG)
  782. local TRAIL = CreatePart(3, Effects, "Neon", 0, 0.5, "Medium bluish violet", "Trail", VT(0,0,0))
  783. MakeForm(TRAIL,"Cyl")
  784. local DIST = (FROM - TO).Magnitude
  785. if BIG == true then
  786. TRAIL.Size = VT(0.5,DIST,0.5)
  787. else
  788. TRAIL.Size = VT(0.25,DIST,0.25)
  789. end
  790. TRAIL.CFrame = CF(FROM, TO) * CF(0, 0, -DIST/2) * ANGLES(RAD(90),RAD(0),RAD(0))
  791. coroutine.resume(coroutine.create(function()
  792. for i = 1, 5 do
  793. Swait()
  794. TRAIL.Transparency = TRAIL.Transparency + 0.1
  795. end
  796. TRAIL:remove()
  797. end))
  798. end
  799.  
  800. Debris = game:GetService("Debris")
  801.  
  802. function CastProperRay(StartPos, EndPos, Distance, Ignore)
  803. local DIRECTION = CF(StartPos,EndPos).lookVector
  804. return Raycast(StartPos, DIRECTION, Distance, Ignore)
  805. end
  806.  
  807. function turnto(position)
  808. RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
  809. end
  810.  
  811. --//=================================\\
  812. --|| WEAPON CREATION
  813. --\\=================================//
  814.  
  815. local Particle = IT("ParticleEmitter",nil)
  816. Particle.Enabled = false
  817. Particle.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.3),NumberSequenceKeypoint.new(0.3,0),NumberSequenceKeypoint.new(1,1)})
  818. Particle.LightEmission = 0.5
  819. Particle.Rate = 150
  820. Particle.ZOffset = 0.2
  821. Particle.Rotation = NumberRange.new(-180, 180)
  822. Particle.RotSpeed = NumberRange.new(-180, 180)
  823. Particle.Texture = "http://www.roblox.com/asset/?id=304437537"
  824. Particle.Color = ColorSequence.new(C3(0,0,1),C3(0,0,0.2))
  825.  
  826. --ParticleEmitter({Speed = 5, Drag = 0, Size1 = 1, Size2 = 5, Lifetime1 = 1, Lifetime2 = 1.5, Parent = Torso, Emit = 100, Offset = 360, Enabled = false})
  827. function ParticleEmitter(Table)
  828. local PRTCL = Particle:Clone()
  829. local Speed = Table.Speed or 5
  830. local Drag = Table.Drag or 0
  831. local Size1 = Table.Size1 or 1
  832. local Size2 = Table.Size2 or 5
  833. local Lifetime1 = Table.Lifetime1 or 1
  834. local Lifetime2 = Table.Lifetime2 or 1.5
  835. local Parent = Table.Parent or Torso
  836. local Emit = Table.Emit or 100
  837. local Offset = Table.Offset or 360
  838. local Acel = Table.Acel or VT(0,0,0)
  839. local Enabled = Table.Enabled or false
  840. PRTCL.Parent = Parent
  841. PRTCL.Size = NumberSequence.new(Size1,Size2)
  842. PRTCL.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
  843. PRTCL.Speed = NumberRange.new(Speed)
  844. PRTCL.VelocitySpread = Offset
  845. PRTCL.Drag = Drag
  846. PRTCL.Acceleration = Acel
  847. if Enabled == false then
  848. PRTCL:Emit(Emit)
  849. Debris:AddItem(PRTCL,Lifetime2)
  850. else
  851. PRTCL.Enabled = true
  852. end
  853. return PRTCL
  854. end
  855.  
  856. local Handle = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.6,0.2),false)
  857. local RightArmGrasp = CreateWeldOrSnapOrMotor("Weld", Handle, RightArm, Handle, CF(0,-1, 0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0.21, 0))
  858. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.5,0.2),false)
  859. MakeForm(Part,"Wedge")
  860. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.3, 0.2) * ANGLES(RAD(0), RAD(180), RAD(0)), CF(0, 0, 0))
  861. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.3,0.2),false)
  862. MakeForm(Part,"Wedge")
  863. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(180)), CF(0, 0, 0))
  864. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.3,0.3),false)
  865. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.5, 0.2) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  866. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.5,0.5),false)
  867. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  868. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.4,0.4,0.4),false)
  869. MakeForm(Part,"Cyl")
  870. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  871. for i = 1, 8 do
  872. local Piece = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0,0.35,0.41),false)
  873. CreateWeldOrSnapOrMotor("Weld", Handle, Part, Piece, CF(0, 0, 0) * ANGLES(RAD(0), RAD((360/8)*i), RAD(0)), CF(0, 0, 0))
  874. end
  875. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0.38,0.41,0.38),false)
  876. MakeForm(Part,"Cyl")
  877. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  878. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.37,0.5,0.37),false)
  879. MakeForm(Part,"Ball")
  880. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.3) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  881. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.7,0.4),false)
  882. MakeForm(Part,"Wedge")
  883. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.7, 0.5) * ANGLES(RAD(90), RAD(180), RAD(180)), CF(0, 0, 0))
  884. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.4,0.2),false)
  885. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
  886. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.35,0.35,0.35),false)
  887. MakeForm(Part,"Cyl")
  888. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  889. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.5,0.1,0.5),false)
  890. MakeForm(Part,"Cyl")
  891. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  892. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.5,0.1,0.45),false)
  893. MakeForm(Part,"Cyl")
  894. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1.1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  895. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.5,0.2),false)
  896. MakeForm(Part,"Wedge")
  897. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.55, 0.2) * ANGLES(RAD(-135), RAD(0), RAD(0)), CF(0, -0.3, 0))
  898. local LASTPART = Handle
  899. for i = 1, 10 do
  900. if LASTPART == Handle then
  901. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.1,0.2,0),false)
  902. LASTPART = Part
  903. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.1, 0.2) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  904. else
  905. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.1,0.05,0),false)
  906. CreateWeldOrSnapOrMotor("Weld", Handle, LASTPART, Part, CF(0, 0.025, 0) * ANGLES(RAD(8), RAD(0), RAD(0)), CF(0, -0.025, 0))
  907. LASTPART = Part
  908. end
  909. end
  910.  
  911. local Barrel = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.15,2,0.15),false)
  912. MakeForm(Barrel,"Cyl")
  913. CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Barrel, CF(0, -0.6, 1.8) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
  914. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.25,1,0.25),false)
  915. MakeForm(Part,"Cyl")
  916. CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, -0.6, 0), CF(0, 0, 0))
  917. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0,0.1,0.2),false)
  918. MakeForm(Part,"Wedge")
  919. CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, 0.945, 0.1) * ANGLES(RAD(180), RAD(0), RAD(0)), CF(0, 0, 0))
  920. local Hole = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0.125,0,0.125),false)
  921. MakeForm(Hole,"Cyl")
  922. CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Hole, CF(0, 0.98, 0), CF(0, 0, 0))
  923. local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0,0,0),false)
  924. local GEARWELD = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0))
  925. CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.8,0.8,1.5), VT(0,0,0.2))
  926. local Part = CreatePart(3, Weapon, "Metal", 0, 0.5, "Mid gray", "Eye", VT(0,0,0),false)
  927. local GEARWELD2 = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0))
  928. CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.9,0.9,0.3), VT(0,0,0.2))
  929. coroutine.resume(coroutine.create(function()
  930. while wait() do
  931. GEARWELD.C0 = GEARWELD.C0 * ANGLES(RAD(0), RAD(0), RAD(5))
  932. GEARWELD2.C0 = GEARWELD2.C0 * ANGLES(RAD(0), RAD(0), RAD(-5))
  933. end
  934. end))
  935.  
  936. ParticleEmitter({Speed = 0.2, Drag = 0, Size1 = 0.1, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.5, Parent = Hole, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
  937. --ParticleEmitter({Speed = 0.5, Drag = 0, Size1 = 0.2, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.7, Parent = Dangle, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
  938.  
  939. for _, c in pairs(Weapon:GetDescendants()) do
  940. if c.ClassName == "Part" and c.Name ~= "Eye" and c.Parent ~= Effects and c.Parent.Parent ~= Effects then
  941. c.Material = "Glass"
  942. c.Color = C3(0,0,0)
  943. elseif c.ClassName == "Part" and c.Name == "Eye" then
  944. c.Color = C3(0,0,1)
  945. c.Material = "Neon"
  946. end
  947. end
  948.  
  949. Weapon.Parent = Character
  950. for _, c in pairs(Weapon:GetChildren()) do
  951. if c.ClassName == "Part" then
  952. c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
  953. end
  954. end
  955.  
  956. local SKILLTEXTCOLOR = C3(0,0,1)
  957. local SKILLFONT = "Antique"
  958. local SKILLTEXTSIZE = 7
  959.  
  960. Humanoid.Died:connect(function()
  961. ATTACK = true
  962. end)
  963.  
  964. local SKILL1FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.1, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
  965. --[[local SKILL2FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.63, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame")
  966. local SKILL3FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.215, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame")
  967. local SKILL4FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.525, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame")
  968. local SKILL5FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame")
  969. ]]
  970. local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Banisher Bullet", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 1")
  971. --[[local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Ability 2", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 2")
  972. local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Ability 3", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 3")
  973. local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Ability 4", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 4")
  974. local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[X] Mercy", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 5")
  975. ]]
  976. function printbye(Name)
  977. local MESSAGES = {"You cannot struggle, ","Your existance is an insult, ","Fade, ","Your existance is not desired, ","You are not permitted here, ","You are not to decide your fate, ","Be gone, ","You are already dead, ","Your live is an anomaly, ","Don't dare to return, ","Why are you resisting, ","You cannot exist here, ","Why are you struggling, ","Your fate was already decided, ","Goodbye, ","You cannot ignore my command, ","You cannot resist my command, ","You already died, "}
  978. warn(MESSAGES[MRANDOM(1,#MESSAGES)]..Name..".")
  979. end
  980.  
  981. --//=================================\\
  982. --|| DAMAGING
  983. --\\=================================//
  984.  
  985. function Banish(Foe)
  986. if Foe then
  987. coroutine.resume(coroutine.create(function()
  988. Foe.Archivable = true
  989. local CLONE = Foe:Clone()
  990. Foe:Destroy()
  991. CLONE.Parent = Effects
  992. CLONE:BreakJoints()
  993. local MATERIALS = {"Glass","Neon"}
  994. for _, c in pairs(CLONE:GetDescendants()) do
  995. if c:IsA("BasePart") then
  996. if c.Name == "Torso" or c.Name == "UpperTorso" or c == CLONE.PrimaryPart then
  997. CreateSound(340722848, c, 10, 1, false)
  998. end
  999. c.Anchored = true
  1000. c.Transparency = c.Transparency + 0.2
  1001. c.Material = MATERIALS[MRANDOM(1,2)]
  1002. c.Color = C3(0,0,1)
  1003. if c.ClassName == "MeshPart" then
  1004. c.TextureID = ""
  1005. end
  1006. if c:FindFirstChildOfClass("SpecialMesh") then
  1007. c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
  1008. end
  1009. if c:FindFirstChildOfClass("Decal") then
  1010. c:FindFirstChildOfClass("Decal"):remove()
  1011. end
  1012. c.Name = "Banished"
  1013. c.CanCollide = false
  1014. else
  1015. c:remove()
  1016. end
  1017. end
  1018. local A = false
  1019. for i = 1, 35 do
  1020. if A == false then
  1021. A = true
  1022. elseif A == true then
  1023. A = false
  1024. end
  1025. for _, c in pairs(CLONE:GetDescendants()) do
  1026. if c:IsA("BasePart") then
  1027. c.Anchored = true
  1028. c.Material = MATERIALS[MRANDOM(1,2)]
  1029. c.Transparency = c.Transparency + 0.8/35
  1030. if A == false then
  1031. c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45)
  1032. elseif A == true then
  1033. c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45)
  1034. end
  1035. end
  1036. end
  1037. Swait()
  1038. end
  1039. CLONE:remove()
  1040. end))
  1041. end
  1042. end
  1043.  
  1044. function ApplyAoE(POSITION,RANGE,ISBANISH)
  1045. local CHILDREN = workspace:GetDescendants()
  1046. for index, CHILD in pairs(CHILDREN) do
  1047. if CHILD.ClassName == "Model" and CHILD ~= Character then
  1048. local HUM = CHILD:FindFirstChildOfClass("Humanoid")
  1049. if HUM then
  1050. local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
  1051. if TORSO then
  1052. if (TORSO.Position - POSITION).Magnitude <= RANGE then
  1053. if ISBANISH == true then
  1054. Banish(CHILD)
  1055. else
  1056. if ISBANISH == "Gravity" then
  1057. HUM.PlatformStand = true
  1058. if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then
  1059. local grav = Instance.new("BodyPosition",TORSO)
  1060. grav.D = 15
  1061. grav.P = 20000
  1062. grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
  1063. grav.position = TORSO.Position
  1064. grav.Name = "V3BanishForce"..Player.Name
  1065. else
  1066. TORSO:FindFirstChild("V3BanishForce"..Player.Name).position = TORSO.Position+VT(0,0.3,0)
  1067. TORSO.RotVelocity = VT(MRANDOM(-25,25),MRANDOM(-25,25),MRANDOM(-25,25))
  1068. end
  1069. else
  1070. HUM.PlatformStand = false
  1071. end
  1072. end
  1073. elseif ISBANISH == "Gravity" then
  1074. if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then
  1075. TORSO:FindFirstChild("V3BanishForce"..Player.Name):remove()
  1076. HUM.PlatformStand = false
  1077. end
  1078. end
  1079. end
  1080. end
  1081. end
  1082. end
  1083. end
  1084.  
  1085. --//=================================\\
  1086. --|| ATTACK FUNCTIONS AND STUFF
  1087. --\\=================================//
  1088.  
  1089. function Banisher_Bullet()
  1090. ATTACK = true
  1091. Rooted = false
  1092. for i=0, 0.4, 0.1 / Animation_Speed do
  1093. Swait()
  1094. turnto(Mouse.Hit.p)
  1095. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
  1096. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
  1097. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
  1098. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
  1099. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
  1100. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
  1101. end
  1102. repeat
  1103. for i=0, 0.2, 0.1 / Animation_Speed do
  1104. Swait()
  1105. turnto(Mouse.Hit.p)
  1106. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
  1107. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
  1108. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
  1109. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
  1110. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
  1111. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
  1112. end
  1113. local HIT,POS = CastProperRay(Hole.Position, Mouse.Hit.p, 1000, Character)
  1114. SpawnTrail(Hole.Position,POS)
  1115. if HIT ~= nil then
  1116. if HIT.Parent ~= workspace and HIT.Parent.ClassName ~= "Folder" then
  1117. Banish(HIT.Parent)
  1118. end
  1119. end
  1120. WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(0,0,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
  1121. WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(0,0,1), SoundID = 904440937, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
  1122. WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(0,0,1), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
  1123. WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(0,0,1), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
  1124. for i=0, 0.3, 0.1 / Animation_Speed do
  1125. Swait()
  1126. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
  1127. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.25 / Animation_Speed)
  1128. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(15), RAD(90)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
  1129. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
  1130. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
  1131. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
  1132. end
  1133. until KEYHOLD == false
  1134. ATTACK = false
  1135. Rooted = false
  1136. end
  1137.  
  1138. function AttackTemplate()
  1139. ATTACK = true
  1140. Rooted = false
  1141. for i=0, 1, 0.1 / Animation_Speed do
  1142. Swait()
  1143. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  1144. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  1145. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
  1146. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
  1147. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  1148. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  1149. end
  1150. ATTACK = false
  1151. Rooted = false
  1152. end
  1153.  
  1154. --//=================================\\
  1155. --|| ASSIGN THINGS TO KEYS
  1156. --\\=================================//
  1157.  
  1158. function MouseDown(Mouse)
  1159. if ATTACK == false then
  1160. end
  1161. end
  1162.  
  1163. function MouseUp(Mouse)
  1164. HOLD = false
  1165. end
  1166.  
  1167. function KeyDown(Key)
  1168. KEYHOLD = true
  1169. if Key == "z" and ATTACK == false then
  1170. Banisher_Bullet()
  1171. end
  1172.  
  1173. if Key == "b" and ATTACK == false then
  1174. end
  1175.  
  1176. if Key == "c" and ATTACK == false then
  1177. end
  1178.  
  1179. if Key == "v" and ATTACK == false then
  1180. end
  1181.  
  1182. if Key == "x" and ATTACK == false then
  1183. end
  1184. end
  1185.  
  1186. function KeyUp(Key)
  1187. KEYHOLD = false
  1188. end
  1189.  
  1190. Mouse.Button1Down:connect(function(NEWKEY)
  1191. MouseDown(NEWKEY)
  1192. end)
  1193. Mouse.Button1Up:connect(function(NEWKEY)
  1194. MouseUp(NEWKEY)
  1195. end)
  1196. Mouse.KeyDown:connect(function(NEWKEY)
  1197. KeyDown(NEWKEY)
  1198. end)
  1199. Mouse.KeyUp:connect(function(NEWKEY)
  1200. KeyUp(NEWKEY)
  1201. end)
  1202.  
  1203. --//=================================\\
  1204. --\\=================================//
  1205.  
  1206.  
  1207. function unanchor()
  1208. if UNANCHOR == true then
  1209. g = Character:GetChildren()
  1210. for i = 1, #g do
  1211. if g[i].ClassName == "Part" then
  1212. g[i].Anchored = false
  1213. end
  1214. end
  1215. end
  1216. end
  1217.  
  1218.  
  1219. --//=================================\\
  1220. --|| WRAP THE WHOLE SCRIPT UP
  1221. --\\=================================//
  1222.  
  1223. Humanoid.Changed:connect(function(Jump)
  1224. if Jump == "Jump" and (Disable_Jump == true) then
  1225. Humanoid.Jump = false
  1226. end
  1227. end)
  1228.  
  1229. local CONNECT = nil
  1230.  
  1231. while true do
  1232. Swait()
  1233. ANIMATE.Parent = nil
  1234. if Character:FindFirstChildOfClass("Humanoid") == nil then
  1235. Humanoid = IT("Humanoid",Character)
  1236. end
  1237. for _,v in next, Humanoid:GetPlayingAnimationTracks() do
  1238. v:Stop();
  1239. end
  1240. SINE = SINE + CHANGE
  1241. local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
  1242. local TORSOVERTICALVELOCITY = RootPart.Velocity.y
  1243. local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character)
  1244. local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16)
  1245. if ANIM == "Walk" and TORSOVELOCITY > 1 then
  1246. RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.15 * COS(SINE / (WALKSPEEDVALUE / 2))) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  1247. 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.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  1248. RightHip.C1 = Clerp(RightHip.C1, CF(0.5, 0.875 - 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.125 * COS(SINE / WALKSPEEDVALUE) +0.2+ 0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  1249. LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5, 0.875 + 0.125 * SIN(SINE / WALKSPEEDVALUE) - 0.15 * COS(SINE / WALKSPEEDVALUE*2), 0.125 * COS(SINE / WALKSPEEDVALUE) +0.2+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed)
  1250. elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then
  1251. RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  1252. 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 / Animation_Speed)
  1253. 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 / Animation_Speed)
  1254. 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 / Animation_Speed)
  1255. end
  1256. if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then
  1257. ANIM = "Jump"
  1258. if ATTACK == false then
  1259. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  1260. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  1261. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(25))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
  1262. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
  1263. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.3) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed)
  1264. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed)
  1265. end
  1266. elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then
  1267. ANIM = "Fall"
  1268. if ATTACK == false then
  1269. RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  1270. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed)
  1271. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(25))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
  1272. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed)
  1273. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 0.2 / Animation_Speed)
  1274. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed)
  1275. end
  1276. elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then
  1277. ANIM = "Idle"
  1278. if ATTACK == false then
  1279. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-45)), 0.15 / Animation_Speed)
  1280. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(45)), 0.15 / Animation_Speed)
  1281. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5, -0.5) * ANGLES(RAD(75), RAD(45), RAD(-25))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
  1282. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5, 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
  1283. RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  1284. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  1285. end
  1286. elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then
  1287. ANIM = "Walk"
  1288. if ATTACK == false then
  1289. RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  1290. Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 8 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0)), 0.15 / Animation_Speed)
  1291. RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.1, -0.4) * ANGLES(RAD(150), RAD(0), RAD(0))* RIGHTSHOULDERC0, 0.15 / Animation_Speed)
  1292. LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-60 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(-5)) * LEFTSHOULDERC0, 0.35 / Animation_Speed)
  1293. RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 2 / Animation_Speed)
  1294. LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(15)), 2 / Animation_Speed)
  1295. end
  1296. end
  1297. unanchor()
  1298. Humanoid.MaxHealth = "inf"
  1299. Humanoid.Health = "inf"
  1300. if Rooted == false then
  1301. Disable_Jump = false
  1302. Humanoid.WalkSpeed = Speed
  1303. elseif Rooted == true then
  1304. Disable_Jump = true
  1305. Humanoid.WalkSpeed = 0
  1306. end
  1307. sick.Parent = Torso
  1308. sick:resume()
  1309. sick.Volume = 5
  1310. sick.Pitch = 1
  1311. sick.SoundId = "rbxassetid://1465983539"
  1312. sick.Name = "BanishV3Music"
  1313. end
  1314.  
  1315. --//=================================\\
  1316. --\\=================================//
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322. --//====================================================\\--
  1323. --|| END OF SCRIPT
  1324. --\\====================================================//--
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement