Advertisement
DarkScriptZEditors

Word Eater

Nov 21st, 2018
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.18 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. local Mouse = Player:GetMouse()
  69. local UIS = game:GetService("UserInputService")
  70. local input = function(io,a)
  71. if a then return end
  72. --Since InputObject is a client-side instance, we create and pass table instead
  73. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
  74. end
  75. UIS.InputBegan:Connect(input)
  76. UIS.InputEnded:Connect(input)
  77. local h,t
  78. --Give the server mouse data 30 times every second, but only if the values changed
  79. --If player is not moving their mouse, client won't fire events
  80. while wait(1/30) do
  81. if h~=Mouse.Hit or t~=Mouse.Target then
  82. h,t=Mouse.Hit,Mouse.Target
  83. Event:FireServer({isMouse=true,Target=t,Hit=h})
  84. end
  85. end]==],Player.Character)
  86.  
  87. ----Sandboxed game object that allows the usage of client-side methods and services
  88. --Real game object
  89. local _rg = game
  90.  
  91. --Metatable for fake service
  92. local fsmt = {
  93. __index = function(self,k)
  94. local s = rawget(self,"_RealService")
  95. if s then
  96. return typeof(s[k])=="function"
  97. and function(_,...)return s[k](s,...)end or s[k]
  98. end
  99. end,
  100. __newindex = function(self,k,v)
  101. local s = rawget(self,"_RealService")
  102. if s then s[k]=v end
  103. end
  104. }
  105. local function FakeService(t,RealService)
  106. t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
  107. return setmetatable(t,fsmt)
  108. end
  109.  
  110. --Fake game object
  111. local g = {
  112. GetService = function(self,s)
  113. return rawget(self,s) or _rg:GetService(s)
  114. end,
  115. Players = FakeService({
  116. LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
  117. },"Players"),
  118. UserInputService = FakeService(UIS,"UserInputService"),
  119. ContextActionService = FakeService(CAS,"ContextActionService"),
  120. RunService = FakeService({
  121. _btrs = {},
  122. RenderStepped = _rg:GetService("RunService").Heartbeat,
  123. BindToRenderStep = function(self,name,_,fun)
  124. self._btrs[name] = self.Heartbeat:Connect(fun)
  125. end,
  126. UnbindFromRenderStep = function(self,name)
  127. self._btrs[name]:Disconnect()
  128. end,
  129. },"RunService")
  130. }
  131. rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
  132. g.service = g.GetService
  133. FakeService(g,game)
  134. --Changing owner to fake player object to support owner:GetMouse()
  135. game,owner = g,g.Players.LocalPlayer
  136. end
  137. --[[ World eater Script ]]--
  138. --[[ Declarations ]]--
  139. wait(.0000000000000000000001)
  140. local Player = game:GetService("Players").LocalPlayer
  141. local Character = Player.Character
  142. local Head = Character.Head
  143. local Torso = Character.Torso
  144. local Right_Arm = Character["Right Arm"]
  145. local Right_Leg = Character["Right Leg"]
  146. local Left_Arm = Character["Left Arm"]
  147. local Left_Leg = Character["Left Leg"]
  148. local Humanoid = Character.Humanoid
  149. local Animation = "Idle"
  150. local Mouse = Player:GetMouse()
  151. local LeftShoulder = Torso["Left Shoulder"]
  152. local Left_Hip = Torso["Left Hip"]
  153. local RightShoulder = Torso["Right Shoulder"]
  154. local Right_Hip = Torso["Right Hip"]
  155. local Root = Character.HumanoidRootPart
  156. local RootJoint = Root.RootJoint
  157. local Attacking = false
  158. local CanAttack = true
  159. local Anim = "Idle"
  160. local Combo = 1
  161. local Blocking = false
  162. local MaxDestruction = 1000
  163. local Destruction = 0
  164. local MaxBlock = 100
  165. local Effects = {}
  166. local Color = "Bright yellow"
  167. local Invert = false
  168. local Idle = 0
  169. local Equipped = false
  170. local Running = false
  171. local Unseathed = false
  172. local Shard = "None"
  173.  
  174. Humanoid.MaxHealth = 3000
  175. Humanoid.Health = 3000
  176.  
  177. local WorldEaterTheme = Instance.new("Sound",Character)
  178. WorldEaterTheme.Name = "WorldEaterTheme"
  179. WorldEaterTheme.Looped = true
  180. WorldEaterTheme.SoundId = "http://www.roblox.com/asset?id=149981769"
  181. WorldEaterTheme:Play()
  182.  
  183. Left_Shoulder = Instance.new("Weld", Torso)
  184. Left_Shoulder.Part0 = Torso
  185. Left_Shoulder.Part1 = Left_Arm
  186. Left_Shoulder.Name = "Left Shoulder"
  187. Left_Shoulder.C0 = CFrame.new(-1.5,0,0)
  188.  
  189. Right_Shoulder = Instance.new("Weld", Torso)
  190. Right_Shoulder.Part0 = Torso
  191. Right_Shoulder.Part1 = Right_Arm
  192. Right_Shoulder.Name = "Right Shoulder"
  193. Right_Shoulder.C0 = CFrame.new(1.5,0,0)
  194.  
  195. LeftShoulder.Parent = nil
  196. RightShoulder.Parent = nil
  197. Humanoid.WalkSpeed = 10
  198.  
  199. local RootCFrame = CFrame.fromEulerAnglesXYZ(-1.57,0,3.14)
  200. Necko = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
  201. Necko2 = CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
  202. Right_Hip_C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0)
  203. Left_Hip_C1 = CFrame.new(-0.5, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  204.  
  205.  
  206. Movemment = 1
  207. Walk = 0
  208.  
  209. Animator = Humanoid.Animator
  210. --Animate = Character.Animate
  211.  
  212. Animator.Parent = nil
  213. --Animate.Parent = nil
  214.  
  215. local Services = {
  216.  
  217. SoundService = game:GetService("SoundService");
  218. Players = game:GetService("Players");
  219. Debris = game:GetService("Debris");
  220. Workspace = game:GetService("Workspace");
  221. Lighting = game:GetService("Lighting");
  222. HttpService = game:GetService("HttpService");
  223. InsertService = game:GetService("InsertService");
  224.  
  225. }
  226.  
  227. local ManaBarGUI = Instance.new("ScreenGui", Player.PlayerGui)
  228. ManaBarGUI.Name = "ManaBarGUI"
  229.  
  230. local ManaBarP1 = Instance.new("Frame", ManaBarGUI)
  231. ManaBarP1.Name = "ManaBarPart1"
  232. ManaBarP1.Size = UDim2.new(0,300,0,20)
  233. ManaBarP1.Position = UDim2.new(0,350,0.1,0)
  234. ManaBarP1.BackgroundColor3 = BrickColor.Black().Color
  235.  
  236. local ManaBarP2 = Instance.new("Frame", ManaBarP1)
  237. ManaBarP2.Name = "ManaBarPart2"
  238. ManaBarP2.Size = UDim2.new(0,300,0,20)
  239. ManaBarP2.Position = UDim2.new(0,0,0,0)
  240. ManaBarP2.BackgroundColor3 = BrickColor.new("Black").Color
  241.  
  242. local ManaBarText = Instance.new("TextLabel", ManaBarP1)
  243. ManaBarText.Name = "ManaBarText"
  244. ManaBarText.Size = UDim2.new(0,300,0,20)
  245. ManaBarText.Position = UDim2.new(0,0,-1.5,0)
  246. ManaBarText.TextScaled = true
  247. ManaBarText.Text = "<{[ Destruction ]}> 0 <{[ Destruction ]}>"
  248. ManaBarText.BackgroundTransparency = 1
  249. ManaBarText.TextStrokeTransparency = 0
  250. ManaBarText.TextStrokeColor3 = Color3.new(1,1,1)
  251. ManaBarText.TextColor3 = Color3.new(0,0,0)
  252. ManaBarText.Font = "Garamond"
  253.  
  254. local WorldEaterGui = Instance.new("BillboardGui", Head)
  255. WorldEaterGui.ExtentsOffset = Vector3.new(0,5,0)
  256. WorldEaterGui.Adornee = Head
  257. WorldEaterGui.AlwaysOnTop = true
  258. WorldEaterGui.Enabled = true
  259. WorldEaterGui.Size = UDim2.new(0, 200,0, 50)
  260.  
  261. local WorldEaterText = Instance.new("TextLabel", WorldEaterGui)
  262. WorldEaterText.BackgroundTransparency = 1
  263. WorldEaterText.Font = "Garamond"
  264. WorldEaterText.Size = UDim2.new(0, 200,0, 50)
  265. WorldEaterText.TextStrokeColor3 = BrickColor.Red().Color
  266. WorldEaterText.TextStrokeTransparency = 0
  267. WorldEaterText.TextColor3 = BrickColor.Black().Color
  268. WorldEaterText.TextScaled = true
  269. WorldEaterText.Text = "World Eater"
  270.  
  271. --------[[ Mesh Ids ]]--------
  272.  
  273. SpikeMeshId = 1033714
  274. SpikeBallId = 9982590
  275. StarMeshId = 45428961
  276. CrystalMeshId = 9756362
  277.  
  278. --[[ Essential Functions ]]--
  279. function NoOutlines(Part)
  280. Part.TopSurface,Part.BottomSurface,Part.LeftSurface,Part.RightSurface,Part.FrontSurface,Part.BackSurface = 10,10,10,10,10,10
  281. end
  282.  
  283.  
  284. local CreatePart = function(Parent, Name, Color, Size, Material, Transparency, Shape)
  285.  
  286. local Part = Instance.new("Part", Parent)
  287. Part.Name = Name
  288. Part.BrickColor = BrickColor.new(Color)
  289. Part.Size = Size
  290. Part.Material = Material
  291. Part.Transparency = Transparency
  292. Part.Shape = Shape
  293. Part.CanCollide = false
  294. NoOutlines(Part)
  295.  
  296. return Part
  297.  
  298. end
  299.  
  300. local CreateMesh = function(Parent, Scale, Shape)
  301.  
  302.  
  303. local Mesh = Instance.new("BlockMesh", Parent)
  304. Mesh.Scale = Scale
  305.  
  306. return Mesh
  307.  
  308. end
  309.  
  310. local CreateWedge = function(Parent, Name, Color, Size, Material, Transparency)
  311.  
  312. local WedgePart = Instance.new("WedgePart", Parent)
  313. WedgePart.Name = Name
  314. WedgePart.BrickColor = BrickColor.new(Color)
  315. WedgePart.Size = Size
  316. WedgePart.Material = Material
  317. WedgePart.Transparency = Transparency
  318. WedgePart.CanCollide = false
  319. NoOutlines(WedgePart)
  320.  
  321. return WedgePart
  322.  
  323. end
  324.  
  325. local CreateWeld = function(Parent, Cframe, P1 , P0)
  326.  
  327. local Weld = Instance.new("Weld", Parent)
  328. Weld.Part0 = P0
  329. Weld.Part1 = P1
  330. Weld.Name = P0.Name .. "To" .. P1.Name
  331. Weld.C0 = Cframe
  332.  
  333. return Weld
  334.  
  335. end
  336.  
  337. local CreateVelocity = function(Parent,Velocity,Force)
  338.  
  339. local BodyVelocity = Instance.new("BodyVelocity", Parent)
  340. BodyVelocity.Velocity = Velocity
  341. BodyVelocity.MaxForce = Force
  342.  
  343.  
  344.  
  345. return BodyVelocity
  346.  
  347. end
  348.  
  349.  
  350. local CreateCrystal = function(Parent, Name, Color, Size, Material, Transparency, Scale)
  351.  
  352.  
  353. local Part = Instance.new("Part", Parent)
  354. Part.Name = Name
  355. Part.BrickColor = BrickColor.new(Color)
  356. Part.Size = Size
  357. Part.Material = Material
  358. Part.Transparency = Transparency
  359. Part.CanCollide = false
  360. NoOutlines(Part)
  361.  
  362. local Mesh = Instance.new("SpecialMesh", Part)
  363. Mesh.MeshId = "http://www.roblox.com/asset?id=" .. CrystalMeshId
  364. Mesh.Scale = Scale
  365.  
  366. return Mesh and Part
  367.  
  368. end
  369.  
  370. local MakeSFX = function(Parent, Id, Volume, Pitch, Type)
  371.  
  372. local SFX = Instance.new("Sound", Parent)
  373. SFX.SoundId = "http://www.roblox.com/asset?id=" .. Id
  374. SFX.Name = "SFX"
  375. SFX:Play()
  376. SFX.Volume = Volume
  377. SFX.Pitch = Pitch
  378. SFX.PlayOnRemove = true
  379. SFX:Remove()
  380.  
  381. if Type == "Echo" then
  382.  
  383. Instance.new("EchoSoundEffect", SFX)
  384.  
  385. end
  386.  
  387. end
  388.  
  389. local CreateSpike = function(Parent, Name, Color, Size, Material, Transparency, Scale)
  390.  
  391.  
  392. local Part = Instance.new("Part", Parent)
  393. Part.Name = Name
  394. Part.BrickColor = BrickColor.new(Color)
  395. Part.Size = Size
  396. Part.Material = Material
  397. Part.Transparency = Transparency
  398. Part.CanCollide = false
  399. NoOutlines(Part)
  400.  
  401. local Mesh = Instance.new("SpecialMesh", Part)
  402. Mesh.MeshId = "http://www.roblox.com/asset?id=" .. SpikeMeshId
  403. Mesh.Scale = Scale
  404.  
  405. return Mesh and Part
  406.  
  407. end
  408.  
  409. CircleEffect = function(Position, Parent, DSX, DSY, DSZ, SX, SY, SZ, Time, Brickcolor, Material, Transparency)
  410.  
  411. local Part = Instance.new("Part", Parent)
  412. Part.Transparency = Transparency
  413. Part.Name = "CircleEffect"
  414. Part.Size = Vector3.new()
  415. Part.Anchored = true
  416. Part.CanCollide = false
  417. Part.Position = Position
  418. Part.BrickColor = BrickColor.new(Brickcolor)
  419. Part.Material = Material
  420. NoOutlines(Part)
  421.  
  422. local Mesh = Instance.new("SpecialMesh", Part)
  423. Mesh.MeshType = "Sphere"
  424. Mesh.Scale = Vector3.new(DSX, DSY, DSZ)
  425.  
  426. Services.Debris:AddItem(Part, Time)
  427.  
  428.  
  429. table.insert(Effects, {Part, "Circle", Time, SX, SY, SZ})
  430.  
  431.  
  432. end
  433.  
  434. BlockEffect = function(Position, Parent, DSX, DSY, DSZ, SX, SY, SZ, Time, Brickcolor, Material, Transparency)
  435.  
  436. local Part = Instance.new("Part", Parent)
  437. Part.Transparency = Transparency
  438. Part.Name = "BlockEffect"
  439. Part.Size = Vector3.new()
  440. Part.Anchored = true
  441. Part.Position = Position
  442. Part.CanCollide = false
  443. Part.BrickColor = BrickColor.new(Brickcolor)
  444. Part.Material = Material
  445. NoOutlines(Part)
  446.  
  447. local Mesh = Instance.new("BlockMesh", Part)
  448. Mesh.Scale = Vector3.new(DSX, DSY, DSZ)
  449.  
  450. Services.Debris:AddItem(Part, Time)
  451.  
  452. table.insert(Effects, {Part, "Block", Time, SX, SY, SZ})
  453.  
  454.  
  455. end
  456.  
  457. --[[ Damage function ]]--
  458.  
  459.  
  460. function DamageFunction(Hit, Part, Type, HitSFX, Knockback, Min, Max)
  461.  
  462. local HitHumanoid = Hit.Parent.Humanoid
  463.  
  464.  
  465. local Damage = math.random(Min, Max)
  466.  
  467.  
  468. coroutine.resume(coroutine.create(function()
  469. HitHumanoid:TakeDamage(Damage)
  470. end))
  471.  
  472. if Type == "Shrink" then
  473. MakeSFX(Hit.Parent.Torso, 209527235, 1, 1)
  474. for i,v in pairs(Hit.Parent:children()) do
  475. if v:IsA("Part") then
  476. coroutine.resume(coroutine.create(function()
  477. for i = 1,100 do
  478. wait()
  479. v.Size = v.Size - Vector3.new(0.05,0.05,0.05)
  480. v.Transparency = v.Transparency + 0.05
  481.  
  482. end
  483. end))
  484. end
  485. end
  486.  
  487. end
  488.  
  489.  
  490.  
  491. if Type == "Normal" then
  492.  
  493. local Push = CreateVelocity(Hit.Parent.Torso, Torso.CFrame.lookVector * Knockback, Vector3.new(math.huge,math.huge,math.huge))
  494. Services.Debris:AddItem(Push, 0)
  495. DamageLabel(Hit.Parent, Damage, Hit)
  496.  
  497. elseif Type == "Ranged" then
  498. local Push = CreateVelocity(Hit.Parent.Torso, Part.CFrame.lookVector * Knockback, Vector3.new(math.huge,math.huge,math.huge))
  499. Services.Debris:AddItem(Push, 0)
  500. DamageLabel(Hit.Parent, Damage, Hit)
  501.  
  502. elseif Type == "Impale" then
  503.  
  504. local Spike = CreateSpike(Services.Workspace, "D e a t h", "Black", Vector3.new(), "SmoothPlastic", 0, Vector3.new(1,20,1))
  505. Spike.Anchored = true
  506. Spike.Rotation = Vector3.new(math.random(-50,50), 0 , math.random(-50,50))
  507. Spike.Position = Hit.Parent.Torso.Position
  508.  
  509.  
  510. Services.Debris:AddItem(Spike, 30)
  511.  
  512. Hit.Parent:BreakJoints()
  513. Hit.Parent.Torso.Position = Spike.Position + Vector3.new(0,5,0)
  514. Hit.Parent.Torso.Anchored = true
  515.  
  516. MakeSFX(Spike, 306247724, 1,1)
  517. MakeSFX(Hit.Parent.Torso, 209527175, 10,1)
  518. elseif Type == "Knockdown" then
  519.  
  520.  
  521. local Push = CreateVelocity(Hit.Parent.Torso, Part.CFrame.lookVector * Knockback, Vector3.new(math.huge,math.huge,math.huge))
  522. DamageLabel(Hit.Parent, Damage, Hit)
  523. Services.Debris:AddItem(Push, 0.3)
  524.  
  525. coroutine.resume(coroutine.create(function()
  526.  
  527. HitHumanoid.PlatformStand = true
  528. wait(1)
  529. HitHumanoid.PlatformStand = false
  530.  
  531.  
  532. end))
  533. end
  534.  
  535. if HitSFX == "Penetration" then
  536.  
  537. MakeSFX(Hit, 199149269, 1 , 1)
  538.  
  539. elseif HitSFX == "Punch" then
  540.  
  541. MakeSFX(Hit, 278062209, 1 , 1)
  542.  
  543.  
  544.  
  545.  
  546. end
  547. end
  548.  
  549. function DamageLabel(HitCharacter, DamageDealt, Hit)
  550.  
  551. local DamageShowingPart = CreatePart(Services.Workspace, "ShowDamage", "Bright yellow", Vector3.new(0.8,0.8,0.8), "Neon", 1, "Block")
  552. DamageShowingPart.Position = HitCharacter.Head.Position
  553.  
  554. local DamageGui = Instance.new("BillboardGui", DamageShowingPart)
  555. DamageGui.Name = "Damage"
  556. DamageGui.AlwaysOnTop = true
  557. DamageGui.Size = UDim2.new(5, 0, 5, 0)
  558.  
  559. local DamageNumber = Instance.new("TextLabel", DamageGui)
  560. DamageNumber.Size = UDim2.new(1,0,1,0)
  561. if Hit.Parent:FindFirstChild("Head") then
  562. DamageNumber.TextStrokeColor3 = Hit.Parent.Head.BrickColor.Color
  563. DamageNumber.TextColor3 = Hit.BrickColor.Color
  564. end
  565. DamageNumber.TextStrokeTransparency = 0
  566. DamageNumber.BackgroundTransparency = 1
  567. DamageNumber.Font = "SourceSansBold"
  568. DamageNumber.TextScaled = true
  569. DamageNumber.Text = DamageDealt
  570.  
  571. local BodyVelocity = Instance.new("BodyVelocity", DamageShowingPart)
  572. BodyVelocity.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
  573. BodyVelocity.Velocity = Vector3.new(0,2,0)
  574.  
  575. Services.Debris:AddItem(DamageShowingPart, 3)
  576.  
  577.  
  578. end
  579.  
  580. function ValidateDamage(Part, Distance ,Min , Max, Type, HitSFX, Knockback)
  581. for _,WorkspaceChildren in pairs(workspace:children()) do
  582.  
  583. local HitHumanoid = WorkspaceChildren:findFirstChild("Humanoid")
  584.  
  585. if HitHumanoid ~= nil then
  586. local Hit = WorkspaceChildren:findFirstChild("Torso")
  587.  
  588. if Hit ~= nil then
  589.  
  590. local Target = Hit.Position - Part.Position
  591.  
  592. local Magnitude = Target.magnitude
  593.  
  594. if Magnitude <= Distance and WorkspaceChildren.Name ~= Player.Name then
  595.  
  596. local HitBlock = Hit.Parent:FindFirstChild("Block")
  597.  
  598. if HitBlock ~= nil and HitBlock:FindFirstChild("BlockDurability") and HitBlock.Value == true then
  599.  
  600. local HitBlock2 = Hit.Parent.Block.BlockDurability
  601.  
  602. if HitBlock2.Value > 15 then
  603.  
  604. local HitN = math.random(1,5)
  605.  
  606. HitBlock2.Value = HitBlock2.Value - 15
  607.  
  608.  
  609. if HitN == 1 then
  610. MakeSFX(Hit ,199148971, 0.5, 1)
  611. end
  612.  
  613. if HitN == 2 then
  614. MakeSFX(Hit ,199149025, 0.5, 1)
  615. end
  616.  
  617. if HitN == 3 then
  618. MakeSFX(Hit ,199149072, 0.5, 1)
  619. end
  620.  
  621. if HitN == 4 then
  622. MakeSFX(Hit ,199149109, 0.5, 1)
  623. end
  624.  
  625. if HitN == 5 then
  626. MakeSFX(Hit ,199149119, 0.5, 1)
  627. end
  628. return
  629. end
  630. end
  631.  
  632. DamageFunction(Hit, Part, Type, HitSFX, Knockback, Min, Max)
  633.  
  634.  
  635.  
  636. end
  637. end
  638. end
  639. end
  640. end
  641.  
  642.  
  643.  
  644. local Cloak = Instance.new("Part", Character)
  645. Cloak.Name = "Cloak"
  646. Cloak.CanCollide = false
  647. Cloak.BrickColor = BrickColor.new("Institutional white")
  648.  
  649. local CloakMesh = Instance.new("SpecialMesh", Cloak)
  650. CloakMesh.MeshId = "http://www.roblox.com/asset?id=16150814"
  651. CloakMesh.TextureId = "http://www.roblox.com/asset?id=16150799"
  652.  
  653. local CloakWeld = CreateWeld(Cloak, CFrame.new(0,0,0) * CFrame.Angles(0,0,0), Head , Cloak, "ArkusToCharacter")
  654.  
  655. for i,v in pairs(Character:children()) do
  656. if v:IsA("Accessory") then
  657. v:Remove()
  658. elseif v:IsA("Shirt") then
  659. v:Remove()
  660. elseif v:IsA("Pants") then
  661. v:Remove()
  662. elseif v:IsA("BodyColors") then
  663.  
  664. Head.BrickColor =BrickColor.new("Really black")
  665. Torso.BrickColor = BrickColor.new("Really black")
  666. Right_Arm.BrickColor = BrickColor.new("Really black")
  667. Right_Leg.BrickColor = BrickColor.new("Really black")
  668. Left_Arm.BrickColor = BrickColor.new("Really black")
  669. Left_Leg.BrickColor = BrickColor.new("Really black")
  670.  
  671. v.HeadColor = BrickColor.new("Really black")
  672. v.TorsoColor = BrickColor.new("Really black")
  673. v.RightArmColor = BrickColor.new("Really black")
  674. v.LeftArmColor = BrickColor.new("Really black")
  675. v.RightLegColor = BrickColor.new("Really black")
  676. v.LeftLegColor = BrickColor.new("Really black")
  677.  
  678. end
  679. end
  680.  
  681.  
  682.  
  683. --[[ CLerp Declarations ]]--
  684.  
  685. function clerp(a,b,t)
  686. local qa = {QuaternionFromCFrame(a)}
  687. local qb = {QuaternionFromCFrame(b)}
  688. local ax, ay, az = a.x, a.y, a.z
  689. local bx, by, bz = b.x, b.y, b.z
  690. local _t = 1-t
  691. return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t))
  692. end
  693.  
  694. function QuaternionFromCFrame(cf) -- dis one
  695. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  696. local trace = m00 + m11 + m22
  697. if trace > 0 then
  698. local s = math.sqrt(1 + trace)
  699. local recip = 0.5/s
  700. return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5
  701. else
  702. local i = 0
  703. if m11 > m00 then
  704. i = 1
  705. end
  706. if m22 > (i == 0 and m00 or m11) then
  707. i = 2
  708. end
  709. if i == 0 then
  710. local s = math.sqrt(m00-m11-m22+1)
  711. local recip = 0.5/s
  712. return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip
  713. elseif i == 1 then
  714. local s = math.sqrt(m11-m22-m00+1)
  715. local recip = 0.5/s
  716. return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip
  717. elseif i == 2 then
  718. local s = math.sqrt(m22-m00-m11+1)
  719. local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip
  720. end
  721. end
  722. end
  723.  
  724. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  725. local xs, ys, zs = x + x, y + y, z + z
  726. local wx, wy, wz = w*xs, w*ys, w*zs
  727. local xx = x*xs
  728. local xy = x*ys
  729. local xz = x*zs
  730. local yy = y*ys
  731. local yz = y*zs
  732. local zz = z*zs
  733. 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))
  734. end
  735.  
  736. function QuaternionSlerp(a, b, t)
  737. local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4]
  738. local startInterp, finishInterp;
  739. if cosTheta >= 0.0001 then
  740. if (1 - cosTheta) > 0.0001 then
  741. local theta = math.acos(cosTheta)
  742. local invSinTheta = 1/math.sin(theta)
  743. startInterp = math.sin((1-t)*theta)*invSinTheta
  744. finishInterp = math.sin(t*theta)*invSinTheta
  745. else
  746. startInterp = 1-t
  747. finishInterp = t
  748. end
  749. else
  750. if (1+cosTheta) > 0.0001 then
  751. local theta = math.acos(-cosTheta)
  752. local invSinTheta = 1/math.sin(theta)
  753. startInterp = math.sin((t-1)*theta)*invSinTheta
  754. finishInterp = math.sin(t*theta)*invSinTheta
  755. else
  756. startInterp = t-1
  757. finishInterp = t
  758. end
  759. end
  760. 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
  761. end
  762.  
  763. function RayCast(Pos, Dir, Max, Ignore)
  764. return game:service("Workspace"):FindPartOnRay(Ray.new(Pos, Dir.unit * (Max or 999.999)), Ignore)
  765. end
  766.  
  767.  
  768. function Bars()
  769.  
  770. --[[ Mana Bar ]]--
  771. if Destruction ~= MaxDestruction then
  772.  
  773. Destruction = Destruction + 1
  774.  
  775. end
  776.  
  777. if Destruction >= MaxDestruction then
  778.  
  779. Destruction = Destruction
  780.  
  781. end
  782.  
  783.  
  784. ManaBarText.Text = "<{[ Destruction ]}> <|"..Destruction.."|> <{[ Destruction ]}>"
  785.  
  786. ManaBarP2.Size = UDim2.new(Destruction / Destruction,0,0,20)
  787.  
  788. end
  789. local EyeReference = CreatePart(Character, "Reference", "Dark stone grey", Vector3.new(), "SmoothPlastic", 1, "Block")
  790. local EyeReferenceWeld = CreateWeld(EyeReference, CFrame.new(0.15,-0.1,-0.7), EyeReference, Head)
  791.  
  792. coroutine.resume(coroutine.create(function()
  793.  
  794. while wait(3) do
  795.  
  796.  
  797. CircleEffect(EyeReference.Position, Services.Workspace, 1, 1, 1, 1, 1, 1, 0.5, "Bright red", "Neon", 0.5)
  798.  
  799.  
  800. end
  801.  
  802. end))
  803. --[[ Attacks ]]--
  804.  
  805. function Attack1()
  806. Attacking = true
  807. MakeSFX(EyeReference, 341336274, 1,1)
  808. wait(0.3)
  809. local Reference = CreatePart(Services.Workspace, "Reference", "Dark stone grey", Vector3.new(), "SmoothPlastic", 1, "Block")
  810. local ReferenceWeld = CreateWeld(Reference, CFrame.new(0,0.5,-5), Reference, Root)
  811.  
  812. local Reference2 = CreatePart(Services.Workspace, "Reference", "Dark stone grey", Vector3.new(), "SmoothPlastic", 1, "Block")
  813. local Reference2Weld = CreateWeld(Reference2, CFrame.new(0,0.5,-2), Reference2, Root)
  814.  
  815.  
  816. for i = 1,10 do
  817.  
  818. wait()
  819. RootJoint.C0 = clerp(RootJoint.C0,RootCFrame*CFrame.new(0,0,0)* CFrame.Angles(0,0,-1.6),0.5)
  820. Torso.Neck.C0 = clerp(Torso.Neck.C0,Necko * CFrame.Angles(0,0,1.3),0.2)
  821. Right_Shoulder.C0 = clerp(Right_Shoulder.C0, CFrame.new(1.5, 0.1, 0) * CFrame.Angles(0,0,0.2), 0.3)
  822. Left_Shoulder.C0 = clerp(Left_Shoulder.C0, CFrame.new(-1.5, 0.5, 0) * CFrame.Angles(0,0,-1.6), 0.4)
  823. Right_Hip.C0=clerp(Right_Hip.C0,CFrame.new(1,-1,0) * CFrame.Angles(0,1.6,0),0.3)
  824. Left_Hip.C0=clerp(Left_Hip.C0,CFrame.new(-1,-1,0) * CFrame.Angles(0,-1.6,0),0.3)
  825.  
  826. end
  827.  
  828. CircleEffect(Reference2.Position, Services.Workspace, 50, 50, 50, -5, -5, -5, 5, "Bright red", "Neon", 0.5)
  829. wait(0.5)
  830. CircleEffect(Reference2.Position, Services.Workspace, 50, 50, 50, -5, -5, -5, 5, "Bright red", "Neon", 0.5)
  831. wait(0.5)
  832. CircleEffect(Reference2.Position, Services.Workspace, 50, 50, 50, -5, -5, -5, 5, "Bright red", "Neon", 0.5)
  833. wait(0.5)
  834. CircleEffect(Reference2.Position, Services.Workspace, 50, 50, 50, -5, -5, -5, 5, "Bright red", "Neon", 0.5)
  835. wait(0.5)
  836. MakeSFX(Reference, 306247724, 1,1)
  837. CircleEffect(Reference.Position, Services.Workspace, 1, 1, 1, 5, 5, 5, 5, "Bright red", "Neon", 0.5)
  838. ValidateDamage(Reference, 10 ,10 , 14, "Shrink", "Penetration", 5)
  839. Attacking = false
  840. end
  841.  
  842. function Attack2()
  843.  
  844. Attacking = true
  845. Humanoid.WalkSpeed = 0
  846. Humanoid.JumpPower = 0
  847.  
  848.  
  849. for i = 1,25 do
  850. wait()
  851.  
  852. RootJoint.C0 = clerp(RootJoint.C0,RootCFrame*CFrame.new(0,0,0)* CFrame.Angles(-0.5,0,0),0.2)
  853. Torso.Neck.C0 = clerp(Torso.Neck.C0,Necko * CFrame.Angles(-0.5,0,0),0.3)
  854. Right_Shoulder.C0 = clerp(Right_Shoulder.C0, CFrame.new(1, 1, 0) * CFrame.Angles(3.2,0,-0.6), 0.3)
  855. Left_Shoulder.C0 = clerp(Left_Shoulder.C0, CFrame.new(-1, 1, 0) * CFrame.Angles(3.2,0,0.6), 0.3)
  856. Right_Hip.C0=clerp(Right_Hip.C0,CFrame.new(1,-1,0)*CFrame.Angles(0,1.6,-0.3),0.2)
  857. Left_Hip.C0=clerp(Left_Hip.C0,CFrame.new(-1,-1,-0.5)*CFrame.Angles(0,-1.6,0),0.2)
  858.  
  859. end
  860.  
  861. MakeSFX(Torso, 142070127, 1, 1)
  862. ValidateDamage(Torso, 60 ,23, 26, "Knockdown", "Penetration", 15)
  863. local Hit, Position = RayCast(Torso.Position,(CFrame.new(Root.Position,Root.Position - Vector3.new(0,1,0))).lookVector,100,Character)
  864. if Hit ~= nil then
  865. local Reference = CreatePart(Services.Workspace, "Reference", "Dark stone grey", Vector3.new(), "SmoothPlastic", 1, "Block")
  866. Reference.Anchored = true
  867. Reference.CFrame = CFrame.new(Position)
  868.  
  869. CircleEffect(Reference.Position, Services.Workspace, 1, 1, 1, 5, 5, 5, 5, "Bright red", "Neon", 0.5)
  870.  
  871. game:GetService("Debris"):AddItem(Reference,0.1)
  872. for i=1,50 do
  873.  
  874. local Ground = CreatePart(Services.Workspace, "Ground", Hit.BrickColor.Color, Vector3.new(math.random(1,3), math.random(1,3), math.random(1,3)), Hit.Material, 0, "Block")
  875. Ground.Anchored = true
  876. Ground.CanCollide = true
  877. Ground.CFrame = CFrame.new(Position) * CFrame.new(math.random(-30,30), 0, math.random(-30,30)) * CFrame.Angles(math.random(-50,50),math.random(-50,50), math.random(-50,50))
  878.  
  879. game:GetService("Debris"):AddItem(Ground,10)
  880.  
  881. end
  882. end
  883.  
  884. for i = 1,25 do
  885. wait()
  886.  
  887. RootJoint.C0 = clerp(RootJoint.C0,RootCFrame*CFrame.new(0,0,0)* CFrame.Angles(0,0,0),0.5)
  888. Torso.Neck.C0 = clerp(Torso.Neck.C0,Necko * CFrame.Angles(0.5,0,0),0.3)
  889. Right_Shoulder.C0 = clerp(Right_Shoulder.C0, CFrame.new(1.5, 0, 0.1) * CFrame.Angles(-0.2,0,0), 0.3)
  890. Left_Shoulder.C0 = clerp(Left_Shoulder.C0, CFrame.new(-1.5, 0, 0.1) * CFrame.Angles(-0.2,0,0), 0.3)
  891. Right_Hip.C0=clerp(Right_Hip.C0,CFrame.new(1,-1,0)*CFrame.Angles(0,1.6,-0.3),0.2)
  892. Left_Hip.C0=clerp(Left_Hip.C0,CFrame.new(-1,-1,-0.5)*CFrame.Angles(0,-1.6,0),0.2)
  893.  
  894. end
  895.  
  896. Attacking = false
  897. Humanoid.WalkSpeed = 16
  898. Humanoid.JumpPower = 50
  899.  
  900.  
  901.  
  902. end
  903.  
  904.  
  905. function Attack3()
  906. Humanoid.WalkSpeed = 0
  907. Humanoid.JumpPower = 0
  908. Attacking = true
  909. wait(1)
  910. MakeSFX(Torso, 341336274, 1, 1.2)
  911. CircleEffect(Torso.Position, Services.Workspace, 1, 1, 1, 20, 20, 20, 5, "Black", "Neon", 0.5)
  912. wait(1)
  913. MakeSFX(Torso, 341336274, 1, 1.2)
  914. CircleEffect(Torso.Position, Services.Workspace, 1, 1, 1, 20, 20, 20, 5, "Black", "Neon", 0.5)
  915. wait(1)
  916. MakeSFX(Torso, 341336274, 1, 1.2)
  917. CircleEffect(Torso.Position, Services.Workspace, 1, 1, 1, 20, 20, 20, 5, "Black", "Neon", 0.5)
  918. ValidateDamage(Torso, 60 ,0, 0, "Impale", "Penetration", 15)
  919. Humanoid.WalkSpeed = 16
  920. Humanoid.JumpPower = 50
  921. Attacking = false
  922. end
  923.  
  924. Mouse.Button1Down:connect(function()
  925. if not Attacking then
  926. if Combo == 1 then
  927.  
  928. Combo = 2
  929. Attack1()
  930.  
  931.  
  932. elseif Combo == 2 then
  933.  
  934. Attack2()
  935. Combo = 3
  936.  
  937. elseif Combo == 3 then
  938.  
  939. Attack3()
  940. Combo = 1
  941.  
  942. end
  943. end
  944. end)
  945.  
  946. --[[ CLerp Animations ]]--
  947. Change1 = 0
  948. Change2 = 0
  949. Change3 = 0
  950. Change4 = 0
  951.  
  952. while true do
  953. wait()
  954.  
  955. local Torvel = (Root.Velocity*Vector3.new(1,0,1)).magnitude
  956. local Velderp = Root.Velocity.y
  957. HitFloor,PosFloor = RayCast(Root.Position,(CFrame.new(Root.Position,Root.Position - Vector3.new(0,1,0))).lookVector,4,Character)
  958.  
  959. Bars()
  960.  
  961.  
  962. if Torvel < 1 and HitFloor ~= nil and Attacking == false then
  963. Anim = "Idle"
  964.  
  965. RootJoint.C0 = clerp(RootJoint.C0,RootCFrame*CFrame.new(0,0,0)* CFrame.Angles(0,0,0),0.2)
  966. Torso.Neck.C0 = clerp(Torso.Neck.C0,Necko * CFrame.Angles(0,-0.3,0),0.3)
  967. Right_Shoulder.C0 = clerp(Right_Shoulder.C0, CFrame.new(1.5, 0.1, 0) * CFrame.Angles(0,0,0.2), 0.3)
  968. Left_Shoulder.C0 = clerp(Left_Shoulder.C0, CFrame.new(-1.5, 0.1, 0) * CFrame.Angles(0,0,-0.2), 0.3)
  969. Right_Hip.C0=clerp(Right_Hip.C0,CFrame.new(1,-1,0)*CFrame.Angles(0,1.6,0) * CFrame.Angles(-0.1,0,0),0.2)
  970. Left_Hip.C0=clerp(Left_Hip.C0,CFrame.new(-1,-1,0)*CFrame.Angles(0,-1.6,0) * CFrame.Angles(-0.1,0,0),0.2)
  971.  
  972. end
  973.  
  974.  
  975. if 2 < Torvel and Torvel < 22 and HitFloor ~= nil and Attacking == false then
  976. Anim = "Walking"
  977.  
  978. if Invert == false then
  979. Change1 = Change1 + 0.1
  980.  
  981. elseif Invert == true then
  982.  
  983. Change1 = Change1 - 0.1
  984.  
  985. end
  986.  
  987. if Change1 > 0.5 then
  988.  
  989. Invert = true
  990.  
  991. elseif Change1 < -0.5 then
  992.  
  993. Invert = false
  994.  
  995. end
  996.  
  997. if Attacking == false then
  998.  
  999. RootJoint.C0 = clerp(RootJoint.C0,RootCFrame*CFrame.new(0,0,0)* CFrame.Angles(0,0,0),0.2)
  1000. Torso.Neck.C0 = clerp(Torso.Neck.C0,Necko * CFrame.Angles(0,-0.3,0),0.3)
  1001. Right_Shoulder.C0 = clerp(Right_Shoulder.C0, CFrame.new(1.5, 0, -Change1) * CFrame.Angles(Change1,0,0), 0.3)
  1002. Left_Shoulder.C0 = clerp(Left_Shoulder.C0, CFrame.new(-1.5, 0, Change1) * CFrame.Angles(-Change1,0,0), 0.3)
  1003. Right_Hip.C0=clerp(Right_Hip.C0,CFrame.new(1,-1,-Change1 / 4)*CFrame.Angles(Change1,1.6,0),0.2)
  1004. Left_Hip.C0=clerp(Left_Hip.C0,CFrame.new(-1,-1,Change1 / 4)*CFrame.Angles(-Change1,-1.6,0),0.2)
  1005.  
  1006. end
  1007. end
  1008.  
  1009. if Root.Velocity.y > 1 and HitFloor == nil and Attacking == false then
  1010. Anim = "Jump"
  1011.  
  1012. RootJoint.C0 = clerp(RootJoint.C0,RootCFrame*CFrame.new(0,0,0)* CFrame.Angles(0,0,0),0.2)
  1013. Torso.Neck.C0 = clerp(Torso.Neck.C0,Necko * CFrame.Angles(-0.5,0,0),0.3)
  1014. Right_Shoulder.C0 = clerp(Right_Shoulder.C0, CFrame.new(1.5, 0, 0.2) * CFrame.Angles(-0.4,0,0.2), 0.3)
  1015. Left_Shoulder.C0 = clerp(Left_Shoulder.C0, CFrame.new(-1.5, 0, 0.2) * CFrame.Angles(-0.4,0,-0.2), 0.3)
  1016. Right_Hip.C0=clerp(Right_Hip.C0,CFrame.new(1,-1,-0.2)*CFrame.Angles(-0.2,1.6,0),0.2)
  1017. Left_Hip.C0=clerp(Left_Hip.C0,CFrame.new(-1,-1,0)*CFrame.Angles(0,-1.6,0),0.2)
  1018.  
  1019. end
  1020.  
  1021. if Root.Velocity.y < -1 and HitFloor == nil and Attacking == false then
  1022. Anim = "Fall"
  1023.  
  1024. RootJoint.C0 = clerp(RootJoint.C0,RootCFrame*CFrame.new(0,0,0)* CFrame.Angles(0,0,0),0.2)
  1025. Torso.Neck.C0 = clerp(Torso.Neck.C0,Necko * CFrame.Angles(0.5,0,0),0.3)
  1026. Right_Shoulder.C0 = clerp(Right_Shoulder.C0, CFrame.new(1.5, 0, -0.2) * CFrame.Angles(0.4,0,0.2), 0.3)
  1027. Left_Shoulder.C0 = clerp(Left_Shoulder.C0, CFrame.new(-1.5, 0, -0.2) * CFrame.Angles(0.4,0,-0.2), 0.3)
  1028. Right_Hip.C0=clerp(Right_Hip.C0,CFrame.new(1,-1,-0.2)*CFrame.Angles(-0.2,1.6,0),0.2)
  1029. Left_Hip.C0=clerp(Left_Hip.C0,CFrame.new(-1,-1,0)*CFrame.Angles(0,-1.6,0),0.2)
  1030.  
  1031. end
  1032.  
  1033.  
  1034. if #Effects > 0 then
  1035. for E = 1, #Effects do
  1036. if Effects[E]~=nil then
  1037. local Effect = Effects[E]
  1038.  
  1039. if Effect ~= nil then
  1040.  
  1041. local Part = Effect[1]
  1042. local Mode = Effect[2]
  1043. local Time = Effect[3]
  1044. local SizeX = Effect[4]
  1045. local SizeY = Effect[5]
  1046. local SizeZ = Effect[6]
  1047.  
  1048. if Effect[1].Transparency <= 1 then
  1049. if Effect[2] == "Block" then
  1050. Effect[1].CFrame = Effect[1].CFrame * CFrame.Angles(math.random(-50,50),math.random(-50,50),math.random(-50,50))
  1051.  
  1052. Mesh = Effect[1]:FindFirstChild("Mesh")
  1053. if Mesh ~= nil then
  1054. Mesh.Scale = Mesh.Scale + Vector3.new(Effect[4],Effect[5],Effect[6])
  1055. end
  1056.  
  1057. elseif Effect[2] == "Circle" then
  1058.  
  1059. if Effect[1]:FindFirstChild("Mesh") ~= nil then
  1060. Mesh=Effect[1].Mesh
  1061. Mesh.Scale = Mesh.Scale + Vector3.new(Effect[4],Effect[5],Effect[6])
  1062. end
  1063.  
  1064. Effect[1].Transparency = Effect[1].Transparency + 0.05
  1065.  
  1066. else
  1067.  
  1068. Part.Parent=nil
  1069.  
  1070. table.remove(Effects, E)
  1071.  
  1072. end
  1073. end
  1074. end
  1075. end
  1076. end
  1077. end
  1078. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement