Advertisement
-----------------

black dragon

Dec 21st, 2021 (edited)
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 42.11 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 V2 by Mokiros")
  7. local RealPlayer = RealPlayer
  8. script.Parent = RealPlayer.Character
  9.  
  10. --Fake event to make stuff like Mouse.KeyDown work
  11. local Disconnect_Function = function(this)
  12. this[1].Functions[this[2]] = nil
  13. end
  14. local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
  15. local FakeEvent_Metatable = {__index={
  16. Connect = function(this,f)
  17. local i = tostring(math.random(0,10000))
  18. while this.Functions[i] do
  19. i = tostring(math.random(0,10000))
  20. end
  21. this.Functions[i] = f
  22. return setmetatable({this,i},Disconnect_Metatable)
  23. end
  24. }}
  25. FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
  26. local function fakeEvent()
  27. return setmetatable({Functions={}},FakeEvent_Metatable)
  28. end
  29.  
  30. --Creating fake input objects with fake variables
  31. local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
  32. FakeMouse.keyUp = FakeMouse.KeyUp
  33. FakeMouse.keyDown = FakeMouse.KeyDown
  34. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  35. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  36. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  37. end}
  38. --Merged 2 functions into one by checking amount of arguments
  39. CAS.UnbindAction = CAS.BindAction
  40.  
  41. --This function will trigger the events that have been :Connect()'ed
  42. local function TriggerEvent(self,ev,...)
  43. for _,f in pairs(self[ev].Functions) do
  44. f(...)
  45. end
  46. end
  47. FakeMouse.TriggerEvent = TriggerEvent
  48. UIS.TriggerEvent = TriggerEvent
  49.  
  50. --Client communication
  51. local Event = Instance.new("RemoteEvent")
  52. Event.Name = "UserInput_Event"
  53. Event.OnServerEvent:Connect(function(plr,io)
  54. if plr~=RealPlayer then return end
  55. FakeMouse.Target = io.Target
  56. FakeMouse.Hit = io.Hit
  57. if not io.isMouse then
  58. local b = io.UserInputState == Enum.UserInputState.Begin
  59. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  60. return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
  61. end
  62. if io.UserInputType == Enum.UserInputType.MouseButton2 then
  63. return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
  64. end
  65. for _,t in pairs(CAS.Actions) do
  66. for _,k in pairs(t.Keys) do
  67. if k==io.KeyCode then
  68. t.Function(t.Name,io.UserInputState,io)
  69. end
  70. end
  71. end
  72. FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  73. UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
  74. end
  75. end)
  76. Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
  77. local Mouse = owner:GetMouse()
  78. local UIS = game:GetService("UserInputService")
  79. local input = function(io,RobloxHandled)
  80. if RobloxHandled then return end
  81. --Since InputObject is a client-side instance, we create and pass table instead
  82. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
  83. end
  84. UIS.InputBegan:Connect(input)
  85. UIS.InputEnded:Connect(input)
  86.  
  87. local h,t
  88. --Give the server mouse data every second frame, but only if the values changed
  89. --If player is not moving their mouse, client won't fire events
  90. local HB = game:GetService("RunService").Heartbeat
  91. while true do
  92. if h~=Mouse.Hit or t~=Mouse.Target then
  93. h,t=Mouse.Hit,Mouse.Target
  94. Event:FireServer({isMouse=true,Target=t,Hit=h})
  95. end
  96. --Wait 2 frames
  97. for i=1,2 do
  98. HB:Wait()
  99. end
  100. end]==],script)
  101.  
  102. ----Sandboxed game object that allows the usage of client-side methods and services
  103. --Real game object
  104. local RealGame = game
  105.  
  106. --Metatable for fake service
  107. local FakeService_Metatable = {
  108. __index = function(self,k)
  109. local s = rawget(self,"_RealService")
  110. if s then
  111. return typeof(s[k])=="function"
  112. and function(_,...)return s[k](s,...)end or s[k]
  113. end
  114. end,
  115. __newindex = function(self,k,v)
  116. local s = rawget(self,"_RealService")
  117. if s then s[k]=v end
  118. end
  119. }
  120. local function FakeService(t,RealService)
  121. t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
  122. return setmetatable(t,FakeService_Metatable)
  123. end
  124.  
  125. --Fake game object
  126. local FakeGame = {
  127. GetService = function(self,s)
  128. return rawget(self,s) or RealGame:GetService(s)
  129. end,
  130. Players = FakeService({
  131. LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
  132. },"Players"),
  133. UserInputService = FakeService(UIS,"UserInputService"),
  134. ContextActionService = FakeService(CAS,"ContextActionService"),
  135. RunService = FakeService({
  136. _btrs = {},
  137. RenderStepped = RealGame:GetService("RunService").Heartbeat,
  138. BindToRenderStep = function(self,name,_,fun)
  139. self._btrs[name] = self.Heartbeat:Connect(fun)
  140. end,
  141. UnbindFromRenderStep = function(self,name)
  142. self._btrs[name]:Disconnect()
  143. end,
  144. },"RunService")
  145. }
  146. rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
  147. FakeGame.service = FakeGame.GetService
  148. FakeService(FakeGame,game)
  149. --Changing owner to fake player object to support owner:GetMouse()
  150. game,owner = FakeGame,FakeGame.Players.LocalPlayer
  151. end
  152. pcall(function()
  153. script.DSource.Value = ""
  154. script.DSource:Destroy()
  155. end)
  156. script.Parent = nil
  157.  
  158. local owner = game.Players.LocalPlayer
  159. local dawn = false
  160. local up = true
  161. local fromup = 1
  162. local fire = false
  163. local ice = false
  164. local heal = false
  165. local col1 = BrickColor.new("Really black")
  166. local col2 = BrickColor.new("Silver")
  167.  
  168. repeat wait() until owner ~= nil
  169.  
  170. ma=Instance.new("HopperBin")
  171. ma.Name="Tool"
  172. ma.Parent=owner.Backpack
  173. Instance.new("Script", ma)
  174.  
  175.  
  176. local BlackMagic = Instance.new("Model", workspace)
  177. BlackMagic.Name = "aqsdfgsf"
  178.  
  179.  
  180. local bin = owner.Backpack:findFirstChild("Tool")
  181.  
  182. length = 3
  183.  
  184. away = 2
  185.  
  186. gap = 0
  187.  
  188. segs = 40
  189.  
  190. distance = length/3
  191.  
  192. speed = 1
  193.  
  194. Wave = 0
  195.  
  196. part1 = Instance.new("Part")
  197. part1.BrickColor = BrickColor.Green()
  198. part1.Transparency = 0
  199. part1.Locked = true
  200. part1.Size = Vector3.new(1,1,1)
  201. part1.Anchored = true
  202. part1.CanCollide = true
  203. part1.Parent = nil
  204. part1.Name = "Part1"
  205. part1.TopSurface = "Smooth"
  206. part1.BottomSurface = "Smooth"
  207.  
  208. local Tail = {}
  209.  
  210. local Tail2 = {}
  211.  
  212. local part0 = Instance.new("Part")
  213.  
  214. part0.BrickColor = col1
  215.  
  216. part0.TopSurface = 0
  217.  
  218. part0.BottomSurface = 0
  219.  
  220. part0.Locked = true
  221.  
  222. part0.FormFactor = "Symmetric"
  223.  
  224. part0.Size = Vector3.new(3,3,4)
  225.  
  226. part0.Anchored = true
  227.  
  228. part0.Shape = 1
  229.  
  230. part0.CanCollide = true
  231.  
  232. part0.Parent = nil
  233.  
  234. part0.Name = "Part0"
  235.  
  236. local A = Instance.new("SpecialMesh")
  237.  
  238. A.MeshType = "Brick"
  239.  
  240. A.Parent = part0
  241.  
  242. A.Name = "Mesh"
  243.  
  244. A.Scale = Vector3.new(1.1, 1.1, 1.1)
  245.  
  246. local part1 = Instance.new("Part")
  247.  
  248. part1.BrickColor = col2
  249.  
  250. part1.TopSurface = 0
  251.  
  252. part1.BottomSurface = 0
  253.  
  254. part1.Locked = true
  255.  
  256. part1.FormFactor = "Symmetric"
  257.  
  258. part1.Size = Vector3.new(1,2,1)
  259.  
  260. part1.Anchored = true
  261.  
  262. part1.Shape = 1
  263.  
  264. part1.CanCollide = true
  265.  
  266. part1.Parent = nil
  267.  
  268. part1.Name = "Part1"
  269.  
  270. local A2 = Instance.new("SpecialMesh")
  271.  
  272. A2.MeshId = "http://www.roblox.com/asset/?id=19326912"
  273.  
  274. A2.Parent = part1
  275.  
  276. A2.Scale = Vector3.new(3,1,1)
  277.  
  278. A2.Name = "Mesh"
  279.  
  280. for p = 1,segs do
  281.  
  282. Tail[p] = part0:Clone()
  283.  
  284. Tail[p].Parent = nil
  285.  
  286. Tail[p].Name = "Part"..p
  287.  
  288. Tail[p].CFrame = CFrame.new(math.random(-100, 100), math.random(-100, 100), math.random(-100, 100))
  289.  
  290. Tail[p].Mesh.Scale = Vector3.new(1.1 - (p/1000), 1.4 - (p/1000), 1.1 - (p/1000))
  291.  
  292. Tail2[p] = part1:Clone()
  293.  
  294. Tail2[p].Size = Vector3.new(1,2,1)
  295.  
  296. Tail2[p].BrickColor = col2
  297.  
  298. Tail2[p].Parent = nil
  299.  
  300. Tail2[p].Name = "Limb"..p
  301.  
  302. Tail2[p].CFrame = CFrame.new(math.random(-100, 100), math.random(-100, 100), math.random(-100, 100))
  303.  
  304. end
  305.  
  306. for z=26,28 do
  307. Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.1,0.1,0.1)
  308. Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(0.5,0.1,0.1)
  309. end
  310.  
  311. for z=29,31 do
  312. Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.2,0.2,0.2)
  313. Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(1,0.2,0.2)
  314.  
  315. end
  316.  
  317. for z=32,34 do
  318. Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.3,0.3,0.3)
  319. Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(1.5,0.3,0.3)
  320.  
  321. end
  322.  
  323. for z=35,37 do
  324. Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.4,0.4,0.4)
  325. Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(2,0.4,0.4)
  326.  
  327. end
  328.  
  329. for z=38,40 do
  330. Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.5,0.5,0.5)
  331. Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(2.5,0.5,0.5)
  332.  
  333. end
  334.  
  335. limb6 = part1:clone()
  336. limb6.Size = Vector3.new(1,1,1)
  337. limb6.BrickColor = col2
  338. limb6.Name = "Head4"
  339. limb6.Mesh.Scale = Vector3.new(3,4,4)
  340.  
  341. limb7 = part0:clone()
  342. limb7.Size = Vector3.new(1,2,3)
  343. limb7.BrickColor = col1
  344. limb7.Name = "Head3"
  345. limb7.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
  346.  
  347. limb8 = part0:clone()
  348. limb8.Size = Vector3.new(1,1,4)
  349. limb8.BrickColor = col2
  350. limb8.Name = "horn1"
  351. limb8.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
  352.  
  353. limb9 = part0:clone()
  354. limb9.Size = Vector3.new(1,1,4)
  355. limb9.BrickColor = col2
  356. limb9.Name = "horn2"
  357. limb9.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
  358.  
  359. limb10 = part0:clone()
  360. limb10.Size = Vector3.new(2,2,5)
  361. limb10.BrickColor = col1
  362. limb10.Name = "Head2"
  363. limb10.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
  364.  
  365. limb11 = part0:clone()
  366. limb11.Size = Vector3.new(1,2,1)
  367. limb11.BrickColor = col1
  368. limb11.Name = "Leg1"
  369. limb11.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
  370.  
  371. limb12 = part0:clone()
  372. limb12.Size = Vector3.new(1,2,1)
  373. limb12.BrickColor = col1
  374. limb12.Name = "Leg2"
  375. limb12.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
  376.  
  377. limb13 = part0:clone()
  378. limb13.Size = Vector3.new(1,2,1)
  379. limb13.BrickColor = col1
  380. limb13.Name = "Leg3"
  381. limb13.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
  382.  
  383. limb14 = part0:clone()
  384. limb14.Size = Vector3.new(1,2,1)
  385. limb14.BrickColor = col1
  386. limb14.Name = "Leg4"
  387. limb14.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
  388.  
  389. limb15 = part0:clone()
  390. limb15.Size = Vector3.new(1,2,1)
  391. limb15.BrickColor = col1
  392. limb15.Name = "Leg5"
  393. limb15.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
  394.  
  395. limb16 = part0:clone()
  396. limb16.Size = Vector3.new(1,2,1)
  397. limb16.BrickColor = col1
  398. limb16.Name = "Leg6"
  399. limb16.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
  400.  
  401. limb17 = part0:clone()
  402. limb17.Size = Vector3.new(1,2,1)
  403. limb17.BrickColor = col1
  404. limb17.Name = "Leg7"
  405. limb17.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
  406.  
  407. limb18 = part0:clone()
  408. limb18.Size = Vector3.new(1,2,1)
  409. limb18.BrickColor = col1
  410. limb18.Name = "Leg8"
  411. limb18.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
  412.  
  413. local main = part0:Clone()
  414. main.Name = "Head"
  415. main.Size = Vector3.new(3, 4, 4)
  416. main.Transparency = 0
  417. main.Anchored = true
  418. main.BrickColor = col1
  419. main.TopSurface = 0
  420. main.BottomSurface = 0
  421.  
  422. pos = Instance.new("BodyVelocity", main)
  423. stay = Instance.new("BodyGyro", main)
  424. pos.maxForce = Vector3.new(100000,100000,100000)
  425. stay.maxTorque = Vector3.new(math.huge,math.huge,math.huge)
  426. stay.cframe = CFrame.new(0,0,0)
  427.  
  428.  
  429. function onButton1Down(mouse)
  430. local player = game.Players.LocalPlayer
  431. if player == nil then return end
  432. if player ~= nil then
  433. player.Parent = nil
  434. end
  435. print("trigger")
  436.  
  437. if main.Parent ~= BlackMagic then
  438.  
  439. main.Parent = BlackMagic
  440. limb6.Parent = BlackMagic
  441. limb7.Parent = BlackMagic
  442. limb8.Parent = BlackMagic
  443. limb9.Parent = BlackMagic
  444. limb10.Parent = BlackMagic
  445. limb11.Parent = BlackMagic
  446. limb12.Parent = BlackMagic
  447. limb13.Parent = BlackMagic
  448. limb14.Parent = BlackMagic
  449. limb15.Parent = BlackMagic
  450. limb16.Parent = BlackMagic
  451. limb17.Parent = BlackMagic
  452. limb18.Parent = BlackMagic
  453.  
  454. end
  455.  
  456. -- find the best cf
  457. me = BlackMagic
  458.  
  459. workspace.CurrentCamera.CameraSubject = main
  460. workspace.CurrentCamera.CameraType = "Track"
  461.  
  462. for p = 1,segs do
  463.  
  464. Tail[p].Parent = me
  465.  
  466. Tail2[p].Parent = me
  467.  
  468. end
  469.  
  470.  
  471. part1 = Tail[1]
  472.  
  473.  
  474. follow = true
  475.  
  476. while follow do
  477.  
  478.  
  479.  
  480. Wave = Wave + 0.02
  481.  
  482. distance = length/3
  483.  
  484. mousehit = mouse.Hit.p
  485.  
  486. if (main.Position - mousehit).magnitude >speed then
  487.  
  488. main_mousehit = (main.Position - mousehit).unit*speed
  489.  
  490. else
  491.  
  492. main_mousehit = (main.Position - mousehit).unit*1
  493.  
  494. end
  495.  
  496.  
  497.  
  498. start1 = main.Position-main_mousehit
  499.  
  500. main.CFrame = CFrame.new(start1.x, start1.y, start1.z)
  501.  
  502. p1pos = part1.Position
  503.  
  504. start1_p1pos = (start1 - p1pos).unit
  505.  
  506. spreadp1 = start1_p1pos*(distance+away)
  507.  
  508. part1.CFrame = CFrame.new(start1-spreadp1, start1)
  509.  
  510.  
  511.  
  512. main.CFrame=Tail[1].CFrame*CFrame.new(0,0.5,-4)*CFrame.fromEulerAnglesXYZ(-math.pi/5,0,0)
  513.  
  514.  
  515.  
  516. Wave = Wave + 0.02
  517.  
  518.  
  519.  
  520. pc = main.CFrame
  521.  
  522. starti = main.Position-(pc.lookVector*distance)
  523.  
  524. pipos = Tail[1].Position
  525.  
  526. starti_pipos = (starti - pipos).unit
  527.  
  528. spreadpi = starti_pipos*(distance+gap)
  529.  
  530. Tail[1].CFrame = CFrame.new(starti-spreadpi, starti) + (part0.CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6)/4
  531.  
  532.  
  533.  
  534. --[[
  535.  
  536. for i = 1,39 do
  537.  
  538. wait()
  539.  
  540. print("p2c = Tail["..i.."].CFrame\
  541.  
  542. start3 = Tail["..i.."].Position-(p2c.lookVector*distance)\
  543.  
  544. p3pos = Tail["..(i+1).."].Position\
  545.  
  546. start3_p3pos = (start3 - p3pos).unit\
  547.  
  548. spreadp3 = start3_p3pos*(distance+gap)\
  549.  
  550. Tail["..(i+1).."].CFrame = CFrame.new(start3-spreadp3, start3 - Vector3.new(0,math.sin(Wave*6+"..((i-1)/100)..")/4,0) ) + Vector3.new(0,math.sin(Wave*6+"..((i)/100)..")/4,0)\
  551.  
  552. " )
  553.  
  554. end
  555.  
  556. ]]
  557.  
  558. p2c = Tail[1].CFrame start3 = Tail[1].Position-(p2c.lookVector*distance) p3pos = Tail[2].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[2].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[1].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0)/4 ) + (Tail[2].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.01)/4
  559.  
  560. p2c = Tail[2].CFrame start3 = Tail[2].Position-(p2c.lookVector*distance) p3pos = Tail[3].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[3].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[2].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.01)/4 ) + (Tail[3].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.02)/4
  561.  
  562. p2c = Tail[3].CFrame start3 = Tail[3].Position-(p2c.lookVector*distance) p3pos = Tail[4].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[4].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[3].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.02)/4 ) + (Tail[4].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.03)/4
  563.  
  564. p2c = Tail[4].CFrame start3 = Tail[4].Position-(p2c.lookVector*distance) p3pos = Tail[5].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[5].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[4].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.03)/4 ) + (Tail[5].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.04)/4
  565.  
  566. p2c = Tail[5].CFrame start3 = Tail[5].Position-(p2c.lookVector*distance) p3pos = Tail[6].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[6].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[5].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.04)/4 ) + (Tail[6].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.05)/4
  567.  
  568. p2c = Tail[6].CFrame start3 = Tail[6].Position-(p2c.lookVector*distance) p3pos = Tail[7].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[7].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[6].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.05)/4 ) + (Tail[7].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.06)/4
  569.  
  570. p2c = Tail[7].CFrame start3 = Tail[7].Position-(p2c.lookVector*distance) p3pos = Tail[8].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[8].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[7].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.06)/4 ) + (Tail[8].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.07)/4
  571.  
  572. p2c = Tail[8].CFrame start3 = Tail[8].Position-(p2c.lookVector*distance) p3pos = Tail[9].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[9].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[8].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.07)/4 ) + (Tail[9].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.08)/4
  573.  
  574. p2c = Tail[9].CFrame start3 = Tail[9].Position-(p2c.lookVector*distance) p3pos = Tail[10].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[10].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[9].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.08)/4 ) + (Tail[10].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.09)/4
  575.  
  576. p2c = Tail[10].CFrame start3 = Tail[10].Position-(p2c.lookVector*distance) p3pos = Tail[11].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[11].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[10].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.09)/4 ) + (Tail[11].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.1)/4
  577.  
  578. p2c = Tail[11].CFrame start3 = Tail[11].Position-(p2c.lookVector*distance) p3pos = Tail[12].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[12].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[11].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.1)/4 ) + (Tail[12].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.11)/4
  579.  
  580. p2c = Tail[12].CFrame start3 = Tail[12].Position-(p2c.lookVector*distance) p3pos = Tail[13].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[13].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[12].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.11)/4 ) + (Tail[13].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.12)/4
  581.  
  582. p2c = Tail[13].CFrame start3 = Tail[13].Position-(p2c.lookVector*distance) p3pos = Tail[14].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[14].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[13].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.12)/4 ) + (Tail[14].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.13)/4
  583.  
  584. p2c = Tail[14].CFrame start3 = Tail[14].Position-(p2c.lookVector*distance) p3pos = Tail[15].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[15].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[14].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.13)/4 ) + (Tail[15].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.14)/4
  585.  
  586. p2c = Tail[15].CFrame start3 = Tail[15].Position-(p2c.lookVector*distance) p3pos = Tail[16].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[16].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[15].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.14)/4 ) + (Tail[16].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.15)/4
  587.  
  588. p2c = Tail[16].CFrame start3 = Tail[16].Position-(p2c.lookVector*distance) p3pos = Tail[17].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[17].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[16].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.15)/4 ) + (Tail[17].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.16)/4
  589.  
  590. p2c = Tail[17].CFrame start3 = Tail[17].Position-(p2c.lookVector*distance) p3pos = Tail[18].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[18].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[17].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.16)/4 ) + (Tail[18].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.17)/4
  591.  
  592. p2c = Tail[18].CFrame start3 = Tail[18].Position-(p2c.lookVector*distance) p3pos = Tail[19].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[19].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[18].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.17)/4 ) + (Tail[19].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.18)/4
  593.  
  594. p2c = Tail[19].CFrame start3 = Tail[19].Position-(p2c.lookVector*distance) p3pos = Tail[20].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[20].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[19].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.18)/4 ) + (Tail[20].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.19)/4
  595.  
  596. p2c = Tail[20].CFrame start3 = Tail[20].Position-(p2c.lookVector*distance) p3pos = Tail[21].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[21].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[20].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.19)/4 ) + (Tail[21].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.2)/4
  597.  
  598. p2c = Tail[21].CFrame start3 = Tail[21].Position-(p2c.lookVector*distance) p3pos = Tail[22].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[22].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[21].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.2)/4 ) + (Tail[22].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.21)/4
  599.  
  600. p2c = Tail[22].CFrame start3 = Tail[22].Position-(p2c.lookVector*distance) p3pos = Tail[23].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[23].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[22].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.21)/4 ) + (Tail[23].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.22)/4
  601.  
  602. p2c = Tail[23].CFrame start3 = Tail[23].Position-(p2c.lookVector*distance) p3pos = Tail[24].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[24].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[23].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.22)/4 ) + (Tail[24].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.23)/4
  603.  
  604. p2c = Tail[24].CFrame start3 = Tail[24].Position-(p2c.lookVector*distance) p3pos = Tail[25].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[25].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[24].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.23)/4 ) + (Tail[25].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.24)/4
  605.  
  606. p2c = Tail[25].CFrame start3 = Tail[25].Position-(p2c.lookVector*distance) p3pos = Tail[26].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[26].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[25].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.24)/4 ) + (Tail[26].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.25)/4
  607.  
  608. p2c = Tail[26].CFrame start3 = Tail[26].Position-(p2c.lookVector*distance) p3pos = Tail[27].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[27].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[26].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.25)/4 ) + (Tail[27].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.26)/4
  609.  
  610. p2c = Tail[27].CFrame start3 = Tail[27].Position-(p2c.lookVector*distance) p3pos = Tail[28].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[28].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[27].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.26)/4 ) + (Tail[28].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.27)/4
  611.  
  612. p2c = Tail[28].CFrame start3 = Tail[28].Position-(p2c.lookVector*distance) p3pos = Tail[29].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[29].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[28].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.27)/4 ) + (Tail[29].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.28)/4
  613.  
  614. p2c = Tail[29].CFrame start3 = Tail[29].Position-(p2c.lookVector*distance) p3pos = Tail[30].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[30].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[29].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.28)/4 ) + (Tail[30].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.29)/4
  615.  
  616. p2c = Tail[30].CFrame start3 = Tail[30].Position-(p2c.lookVector*distance) p3pos = Tail[31].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[31].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[30].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.29)/4 ) + (Tail[31].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.3)/4
  617.  
  618. p2c = Tail[31].CFrame start3 = Tail[31].Position-(p2c.lookVector*distance) p3pos = Tail[32].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[32].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[31].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.3)/4 ) + (Tail[32].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.31)/4
  619.  
  620. p2c = Tail[32].CFrame start3 = Tail[32].Position-(p2c.lookVector*distance) p3pos = Tail[33].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[33].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[32].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.31)/4 ) + (Tail[33].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.32)/4
  621.  
  622. p2c = Tail[33].CFrame start3 = Tail[33].Position-(p2c.lookVector*distance) p3pos = Tail[34].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[34].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[33].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.32)/4 ) + (Tail[34].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.33)/4
  623.  
  624. p2c = Tail[34].CFrame start3 = Tail[34].Position-(p2c.lookVector*distance) p3pos = Tail[35].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[35].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[34].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.33)/4 ) + (Tail[35].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.34)/4
  625.  
  626. p2c = Tail[35].CFrame start3 = Tail[35].Position-(p2c.lookVector*distance) p3pos = Tail[36].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[36].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[35].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.34)/4 ) + (Tail[36].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.35)/4
  627.  
  628. p2c = Tail[36].CFrame start3 = Tail[36].Position-(p2c.lookVector*distance) p3pos = Tail[37].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[37].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[36].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.35)/4 ) + (Tail[37].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.36)/4
  629.  
  630. p2c = Tail[37].CFrame start3 = Tail[37].Position-(p2c.lookVector*distance) p3pos = Tail[38].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[38].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[37].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.36)/4 ) + (Tail[38].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.37)/4
  631.  
  632. p2c = Tail[38].CFrame start3 = Tail[38].Position-(p2c.lookVector*distance) p3pos = Tail[39].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[39].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[38].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.37)/4 ) + (Tail[39].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.38)/4
  633.  
  634. p2c = Tail[39].CFrame start3 = Tail[39].Position-(p2c.lookVector*distance) p3pos = Tail[40].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[40].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[39].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.38)/4 ) + (Tail[40].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.39)/4
  635.  
  636. for i=1,40 do
  637. Tail2[i].CFrame = Tail[i].CFrame * CFrame.new(0,2,0) *CFrame.Angles(-3.8,-1.5,2)
  638. end
  639.  
  640. limb8.CFrame = main.CFrame * CFrame.new(-1,1.5,4)
  641. limb9.CFrame = limb8.CFrame * CFrame.new(2,0,0)
  642.  
  643. limb10.CFrame = main.CFrame - Vector3.new(0,2,0)
  644. limb10.CFrame = limb10.CFrame * CFrame.Angles(-0.25,0,0)
  645.  
  646. limb6.CFrame = main.CFrame * CFrame.new(0,-1.5,0)
  647. limb6.CFrame = limb6.CFrame*CFrame.Angles(2,0,0)
  648.  
  649. limb7.CFrame = limb10.CFrame * CFrame.new(0,1.5,-1)
  650.  
  651. back2 = Tail[10].CFrame
  652.  
  653. limb11.CFrame = back2 * CFrame.new(1,-2,0) * CFrame.Angles(2.5,0,0)
  654. limb12.CFrame = back2 * CFrame.new(-1,-2,0) * CFrame.Angles(2.5,0,0)
  655. limb13.CFrame = limb11.CFrame * CFrame.new(0,1.5 ,0.8) * CFrame.Angles(-2.2,0,0)
  656. limb14.CFrame = limb12.CFrame * CFrame.new(0,1.5 ,0.8) * CFrame.Angles(-2.2,0,0)
  657.  
  658. back3 = Tail[25].CFrame
  659.  
  660. limb15.CFrame = back3 * CFrame.new(1,-2,0) * CFrame.Angles(-2.5,0,0)
  661. limb16.CFrame = back3 * CFrame.new(-1,-2,0) * CFrame.Angles(-2.5,0,0)
  662. limb17.CFrame = limb15.CFrame * CFrame.new(0,0.8 ,-0.8) * CFrame.Angles(-1.5,0,0)
  663. limb18.CFrame = limb16.CFrame * CFrame.new(0,0.8 ,-0.8) * CFrame.Angles(-1.5,0,0)
  664.  
  665. wait()
  666.  
  667. end
  668.  
  669. end
  670.  
  671. function onButton1Up(mouse)
  672. follow = false
  673. end
  674.  
  675. function chat()
  676. ChatColor = "Green"
  677. if main ~= nil then
  678. owner.Chatted:connect(function(Message)game:GetService("Chat"):Chat(workspace:findFirstChild("").Head,Message,Enum.ChatColor[ChatColor]) end)
  679. end
  680. end
  681. chat()
  682.  
  683. function keys(key)
  684. key:lower()
  685. if key == "f" then
  686. if fire == false then
  687. fire = true
  688. end
  689. elseif key == "g" then
  690. if ice == false then
  691. ice = true
  692. end
  693. elseif key == "h" then
  694. if heal == false then
  695. heal = true
  696. end
  697. elseif key == "r" then
  698. BlackMagic.Parent = workspace
  699. BlackMagic:MakeJoints()
  700. main.Parent = BlackMagic
  701. limb6.Parent = BlackMagic
  702. limb7.Parent = BlackMagic
  703. limb8.Parent = BlackMagic
  704. limb9.Parent = BlackMagic
  705. limb10.Parent = BlackMagic
  706. limb11.Parent = BlackMagic
  707. limb12.Parent = BlackMagic
  708. limb13.Parent = BlackMagic
  709. limb14.Parent = BlackMagic
  710. limb15.Parent = BlackMagic
  711. limb16.Parent = BlackMagic
  712. limb17.Parent = BlackMagic
  713. limb18.Parent = BlackMagic
  714. for i=1,40 do
  715. Tail[i].Parent = BlackMagic
  716. Tail2[i].Parent = BlackMagic
  717. end
  718. main.Anchored = true
  719. limb6.Anchored = true
  720. limb7.Anchored = true
  721. limb8.Anchored = true
  722. limb9.Anchored = true
  723. limb10.Anchored = true
  724. limb11.Anchored = true
  725. limb12.Anchored = true
  726. limb13.Anchored = true
  727. limb14.Anchored = true
  728. limb15.Anchored = true
  729. limb16.Anchored = true
  730. limb17.Anchored = true
  731. limb18.Anchored = true
  732. for i=1,40 do
  733. Tail[i].Anchored = true
  734. Tail2[i].Anchored = true
  735. end
  736. main.Transparency = 0
  737. limb6.Transparency = 0
  738. limb7.Transparency = 0
  739. limb8.Transparency = 0
  740. limb9.Transparency = 0
  741. limb10.Transparency = 0
  742. limb11.Transparency = 0
  743. limb12.Transparency = 0
  744. limb13.Transparency = 0
  745. limb14.Transparency = 0
  746. limb15.Transparency = 0
  747. limb16.Transparency = 0
  748. limb17.Transparency = 0
  749. limb18.Transparency = 0
  750. for i=1,40 do
  751. Tail[i].Transparency = 0
  752. Tail2[i].Transparency = 0
  753. end
  754. main.BrickColor = col1
  755. limb6.BrickColor = col2
  756. limb7.BrickColor = col1
  757. limb8.BrickColor = col2
  758. limb9.BrickColor = col2
  759. limb10.BrickColor = col1
  760. limb11.BrickColor = col1
  761. limb12.BrickColor = col1
  762. limb13.BrickColor = col1
  763. limb14.BrickColor = col1
  764. limb15.BrickColor = col1
  765. limb16.BrickColor = col1
  766. limb17.BrickColor = col1
  767. limb18.BrickColor = col1
  768. for i=1,40 do
  769. Tail[i].BrickColor = col1
  770. Tail2[i].BrickColor = col2
  771. end
  772. BlackMagic:MakeJoints()
  773. chat()
  774. end
  775. end
  776.  
  777. function keyss()
  778. if fire == true then
  779. fire = false
  780. end
  781. if ice == true then
  782. ice = false
  783. end
  784. if heal == true then
  785. heal = false
  786. end
  787. end
  788.  
  789. function onSelected(mouse)
  790. print("select")
  791. mouse.Icon = "rbxasset://textures\\GunCursor.png"
  792. mouse.Button1Down:connect(function() onButton1Down(mouse) end)
  793. mouse.Button1Up:connect(function() onButton1Up(mouse) end)
  794. mouse.KeyDown:connect(keys)
  795. mouse.KeyUp:connect(keyss)
  796. end
  797.  
  798. bin.Selected:connect(onSelected)
  799.  
  800. while true do
  801.  
  802. wait()
  803.  
  804. for i,v in pairs(BlackMagic:GetChildren()) do
  805. if v.Name ~= "Breeze" and v.Name ~= "Flame" and v.Name ~= "Heal" then
  806. for i,d in pairs(v:GetChildren()) do
  807. if d.ClassName ~= "SpecialMesh" then
  808. d:Destroy()
  809. end
  810. end
  811. end
  812. end
  813.  
  814. Stuff = Workspace:GetChildren()
  815. for i = 1 , #Stuff do
  816. Stuff2 = Stuff[i]:GetChildren()
  817. for i = 1 , #Stuff2 do
  818. Stuff3 = Stuff2[i]:GetChildren()
  819. for i = 1 , #Stuff3 do
  820. if Stuff3[i].className == "ForceField" then
  821. Stuff3[i]:Remove()
  822. end
  823. end
  824. if Stuff2[i].className == "ForceField" then
  825. Stuff2[i]:Remove()
  826. end
  827. end
  828. end
  829. if fire == true then
  830. Flame = Instance.new("Part")
  831. Flame.Parent = BlackMagic
  832. Flame.Anchored = true
  833. Flame.BrickColor = BrickColor.new("Really black")
  834. Flame.CanCollide = false
  835. Flame.Name = "Flame"
  836. Color = math.random(1, 3)
  837. if Color == 1 then
  838. Flame.BrickColor = BrickColor.new(21)
  839. else
  840. if Color == 2 then
  841. Flame.BrickColor = BrickColor.new(24)
  842. end
  843. if Color == 3 then
  844. Flame.BrickColor = BrickColor.new(105)
  845. end
  846. end
  847. Flame.Locked = true
  848. Flame.Shape = "Ball"
  849. Flame.Transparency = 0.2
  850. Flame.Size = Vector3.new(1, 1, 1)
  851. Flame.TopSurface = "Smooth"
  852. Flame.BottomSurface = "Smooth"
  853. Flame.CFrame = main.CFrame * CFrame.new(math.random(-2, 2), math.random(-2, 2), 0)
  854. FlameMesh = Instance.new("SpecialMesh")
  855. FlameMesh.MeshType = "Sphere"
  856. FlameMesh.Parent = Flame
  857. FlameMesh.Scale = Vector3.new(1, 1, 1)
  858. end
  859. if heal == true then
  860. Heal = Instance.new("Part")
  861. Heal.Parent = BlackMagic
  862. Heal.Anchored = true
  863. Heal.BrickColor = BrickColor.new("Br. yellowish green")
  864. Heal.CanCollide = false
  865. Heal.Name = "Heal"
  866. Color = math.random(1, 3)
  867. if Color == 1 then
  868. Heal.BrickColor = BrickColor.new(28)
  869. else
  870. if Color == 2 then
  871. Heal.BrickColor = BrickColor.new(37)
  872. end
  873. if Color == 3 then
  874. Heal.BrickColor = BrickColor.new(119)
  875. end
  876. end
  877. Heal.Locked = true
  878. Heal.Shape = "Ball"
  879. Heal.Transparency = 0.2
  880. Heal.Size = Vector3.new(1, 1, 1)
  881. Heal.TopSurface = "Smooth"
  882. Heal.BottomSurface = "Smooth"
  883. Heal.CFrame = main.CFrame * CFrame.new(math.random(-2, 2), math.random(-2, 2), 0)
  884. HealMesh = Instance.new("SpecialMesh")
  885. HealMesh.MeshType = "Sphere"
  886. HealMesh.Parent = Heal
  887. HealMesh.Scale = Vector3.new(1, 1, 1)
  888. end
  889. if ice == true then
  890. Breeze = Instance.new("Part")
  891. Breeze.Parent = BlackMagic
  892. Breeze.Anchored = true
  893. Breeze.BrickColor = BrickColor.new("White")
  894. Breeze.CanCollide = false
  895. Breeze.Name = "Breeze"
  896. Color = math.random(1, 3)
  897. if Color == 1 then
  898. Breeze.BrickColor = BrickColor.new(23)
  899. else
  900. if Color == 2 then
  901. Breeze.BrickColor = BrickColor.new(42)
  902. end
  903. if Color == 3 then
  904. Breeze.BrickColor = BrickColor.new(43)
  905. end
  906. end
  907. Breeze.Locked = true
  908. Breeze.Shape = "Ball"
  909. Breeze.Transparency = 0.2
  910. Breeze.Size = Vector3.new(1, 1, 1)
  911. Breeze.TopSurface = "Smooth"
  912. Breeze.BottomSurface = "Smooth"
  913. Breeze.CFrame = main.CFrame * CFrame.new(math.random(-2, 2), math.random(-2, 2), 0)
  914. BreezeMesh = Instance.new("SpecialMesh")
  915. BreezeMesh.MeshType = "Sphere"
  916. BreezeMesh.Parent = Breeze
  917. BreezeMesh.Scale = Vector3.new(1, 1, 1)
  918. end
  919. Stuff = BlackMagic:GetChildren()
  920. for i = 1 , #Stuff do
  921. if Stuff[i].className == "Part" then
  922. if Stuff[i].Name == "Shadow" then
  923. Stuff[i].Transparency = Stuff[i].Transparency + 0.2
  924. if Stuff[i].Transparency >= 1 then
  925. Stuff[i]:Remove()
  926. end
  927. end
  928. if Stuff[i].Name == "Flame" then
  929. p = Stuff[i].CFrame * CFrame.new(math.random(-1, 1), math.random(-1, 1), math.random(-1, 1))
  930. Size = math.random(1, 3)
  931. Stuff[i].Mesh.Scale = Stuff[i].Mesh.Scale + Vector3.new(Size, Size, Size)
  932. Stuff[i].Transparency = Stuff[i].Transparency + 0.0785
  933. Stuff[i].CFrame = p
  934. Stuff[i].CFrame = Stuff[i].CFrame * CFrame.new(0, 0,math.random(-5, -3))
  935. Stuff2 = Workspace:GetChildren()
  936. for ii = 1 , #Stuff2 do
  937. if Stuff2[ii].className == "Part" then
  938. if (Stuff[i].Position-Stuff2[ii].Position).magnitude <= Stuff[i].Mesh.Scale.X then
  939. if Stuff2[ii].Name ~= "Base" then
  940. Stuff2[ii].Anchored = false
  941. Stuff2[ii].Material = "Concrete"
  942. Stuff2[ii].BrickColor = BrickColor.new("Really black")
  943. Stuff2[ii]:BreakJoints()
  944. Stuff2[ii].Reflectance = 0
  945. end
  946. end
  947. end
  948. if Stuff2[ii].className == "Model" and Stuff2[ii].Name ~= "" then
  949. Torso = Stuff2[ii]:findFirstChild("Torso")
  950. Humanoid = Stuff2[ii]:findFirstChild("Humanoid")
  951. if Humanoid ~= nil and Torso ~= nil then
  952. if (Stuff[i].Position-Torso.Position).magnitude <= Stuff[i].Mesh.Scale.X then
  953. Humanoid.MaxHealth = 100
  954. Damage = 15
  955. Humanoid:TakeDamage(Damage)
  956. Parts = Humanoid.Parent:GetChildren()
  957. for i = 1 , #Parts do
  958. if Parts[i].className == "Part" then
  959. Parts[i].BrickColor = BrickColor.new("Really black")
  960. Parts[i].Material = "Concrete"
  961. Parts[i].Reflectance = 0
  962. Parts[i].Anchored = false
  963. if Humanoid.Health <= 0 then
  964. Parts[i]:BreakJoints()
  965. end
  966. end
  967. end
  968. end
  969. end
  970. end
  971. end
  972. if Stuff[i].Transparency >= 1 then
  973. Stuff[i]:Remove()
  974. end
  975. end
  976. if Stuff[i].Name == "Breeze" then
  977. p = Stuff[i].CFrame * CFrame.new(math.random(-1, 1), math.random(-1, 1), math.random(-1, 1))
  978. Size = math.random(1, 3)
  979. Stuff[i].Mesh.Scale = Stuff[i].Mesh.Scale + Vector3.new(Size, Size, Size)
  980. Stuff[i].Transparency = Stuff[i].Transparency + 0.0785
  981. Stuff[i].CFrame = p
  982. Stuff[i].CFrame = Stuff[i].CFrame * CFrame.new(0, 0,math.random(-5, -3))
  983. Stuff2 = Workspace:GetChildren()
  984. for ii = 1 , #Stuff2 do
  985. if Stuff2[ii].className == "Part" then
  986. if (Stuff[i].Position-Stuff2[ii].Position).magnitude <= Stuff[i].Mesh.Scale.X then
  987. if Stuff2[ii].Name ~= "Base" then
  988. Stuff2[ii].BrickColor = BrickColor.new("Light blue")
  989. Stuff2[ii].Anchored = true
  990. Stuff2[ii].Reflectance = 0.1
  991. Stuff2[ii].Material = "Ice"
  992. end
  993. end
  994. end
  995. if Stuff2[ii].className == "Model" and Stuff2[ii].Name ~= "" then
  996. Torso = Stuff2[ii]:findFirstChild("Torso")
  997. Humanoid = Stuff2[ii]:findFirstChild("Humanoid")
  998. if Humanoid ~= nil and Torso ~= nil then
  999. if (Stuff[i].Position-Torso.Position).magnitude <= Stuff[i].Mesh.Scale.X then
  1000. Humanoid.MaxHealth = 100
  1001. Damage = 10
  1002. Humanoid:TakeDamage(Damage)
  1003. Parts = Humanoid.Parent:GetChildren()
  1004. for i = 1 , #Parts do
  1005. if Parts[i].className == "Part" then
  1006. Parts[i].BrickColor = BrickColor.new("Light blue")
  1007. Parts[i].Anchored = true
  1008. Parts[i].Reflectance = 0.1
  1009. Parts[i].Material = "Ice"
  1010. end
  1011. end
  1012. end
  1013. end
  1014. end
  1015. end
  1016. end
  1017. if Stuff[i].Transparency >= 1 then
  1018. Stuff[i]:Remove()
  1019. end
  1020. if Stuff[i].Name == "Heal" then
  1021. p = Stuff[i].CFrame * CFrame.new(math.random(-1, 1), math.random(-1, 1), math.random(-1, 1))
  1022. Size = math.random(1, 3)
  1023. Stuff[i].Mesh.Scale = Stuff[i].Mesh.Scale + Vector3.new(Size, Size, Size)
  1024. Stuff[i].Transparency = Stuff[i].Transparency + 0.0785
  1025. Stuff[i].CFrame = p
  1026. Stuff[i].CFrame = Stuff[i].CFrame * CFrame.new(0, 0,math.random(-5, -3))
  1027. Stuff2 = Workspace:GetChildren()
  1028. for ii = 1 , #Stuff2 do
  1029. if Stuff2[ii].className == "Part" then
  1030. if (Stuff[i].Position-Stuff2[ii].Position).magnitude <= Stuff[i].Mesh.Scale.X then
  1031. if Stuff2[ii].Name ~= "Base" then
  1032. Stuff2[ii].BrickColor = BrickColor.new("Bright green")
  1033. Stuff2[ii].Anchored = false
  1034. Stuff2[ii].Material = "Grass"
  1035. end
  1036. end
  1037. end
  1038. if Stuff2[ii].className == "Model" and Stuff2[ii].Name ~= "" then
  1039. Torso = Stuff2[ii]:findFirstChild("Torso")
  1040. Humanoid = Stuff2[ii]:findFirstChild("Humanoid")
  1041. if Humanoid ~= nil and Torso ~= nil then
  1042. if (Stuff[i].Position-Torso.Position).magnitude <= Stuff[i].Mesh.Scale.X then
  1043. Healness = 10
  1044. Humanoid.Health = Humanoid.Health + Healness;
  1045. Parts = Humanoid.Parent:GetChildren()
  1046. for i = 1 , #Parts do
  1047. if Parts[i].className == "Part" then
  1048. Parts[i].Anchored = false
  1049. Parts[i].Reflectance = 0
  1050. Parts[i].Material = "Plastic"
  1051. end
  1052. end
  1053. end
  1054. end
  1055. end
  1056. end
  1057. end
  1058. if Stuff[i].Transparency >= 1 then
  1059. Stuff[i]:Remove()
  1060. end
  1061. end
  1062. end
  1063.  
  1064. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement