Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --https://github.com/Mokiros/roblox-FE-compatibility
- if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
- local Player,game,owner = owner,game
- local RealPlayer = Player
- do
- print("FE Compatibility code V2 by Mokiros")
- local RealPlayer = RealPlayer
- script.Parent = RealPlayer.Character
- --Fake event to make stuff like Mouse.KeyDown work
- local Disconnect_Function = function(this)
- this[1].Functions[this[2]] = nil
- end
- local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
- local FakeEvent_Metatable = {__index={
- Connect = function(this,f)
- local i = tostring(math.random(0,10000))
- while this.Functions[i] do
- i = tostring(math.random(0,10000))
- end
- this.Functions[i] = f
- return setmetatable({this,i},Disconnect_Metatable)
- end
- }}
- FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
- local function fakeEvent()
- return setmetatable({Functions={}},FakeEvent_Metatable)
- end
- --Creating fake input objects with fake variables
- local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
- FakeMouse.keyUp = FakeMouse.KeyUp
- FakeMouse.keyDown = FakeMouse.KeyDown
- local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
- local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
- CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
- end}
- --Merged 2 functions into one by checking amount of arguments
- CAS.UnbindAction = CAS.BindAction
- --This function will trigger the events that have been :Connect()'ed
- local function TriggerEvent(self,ev,...)
- for _,f in pairs(self[ev].Functions) do
- f(...)
- end
- end
- FakeMouse.TriggerEvent = TriggerEvent
- UIS.TriggerEvent = TriggerEvent
- --Client communication
- local Event = Instance.new("RemoteEvent")
- Event.Name = "UserInput_Event"
- Event.OnServerEvent:Connect(function(plr,io)
- if plr~=RealPlayer then return end
- FakeMouse.Target = io.Target
- FakeMouse.Hit = io.Hit
- if not io.isMouse then
- local b = io.UserInputState == Enum.UserInputState.Begin
- if io.UserInputType == Enum.UserInputType.MouseButton1 then
- return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
- end
- if io.UserInputType == Enum.UserInputType.MouseButton2 then
- return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
- end
- for _,t in pairs(CAS.Actions) do
- for _,k in pairs(t.Keys) do
- if k==io.KeyCode then
- t.Function(t.Name,io.UserInputState,io)
- end
- end
- end
- FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
- UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
- end
- end)
- Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
- local Mouse = owner:GetMouse()
- local UIS = game:GetService("UserInputService")
- local input = function(io,RobloxHandled)
- if RobloxHandled then return end
- --Since InputObject is a client-side instance, we create and pass table instead
- Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
- end
- UIS.InputBegan:Connect(input)
- UIS.InputEnded:Connect(input)
- local h,t
- --Give the server mouse data every second frame, but only if the values changed
- --If player is not moving their mouse, client won't fire events
- local HB = game:GetService("RunService").Heartbeat
- while true do
- if h~=Mouse.Hit or t~=Mouse.Target then
- h,t=Mouse.Hit,Mouse.Target
- Event:FireServer({isMouse=true,Target=t,Hit=h})
- end
- --Wait 2 frames
- for i=1,2 do
- HB:Wait()
- end
- end]==],script)
- ----Sandboxed game object that allows the usage of client-side methods and services
- --Real game object
- local RealGame = game
- --Metatable for fake service
- local FakeService_Metatable = {
- __index = function(self,k)
- local s = rawget(self,"_RealService")
- if s then
- return typeof(s[k])=="function"
- and function(_,...)return s[k](s,...)end or s[k]
- end
- end,
- __newindex = function(self,k,v)
- local s = rawget(self,"_RealService")
- if s then s[k]=v end
- end
- }
- local function FakeService(t,RealService)
- t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
- return setmetatable(t,FakeService_Metatable)
- end
- --Fake game object
- local FakeGame = {
- GetService = function(self,s)
- return rawget(self,s) or RealGame:GetService(s)
- end,
- Players = FakeService({
- LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
- },"Players"),
- UserInputService = FakeService(UIS,"UserInputService"),
- ContextActionService = FakeService(CAS,"ContextActionService"),
- RunService = FakeService({
- _btrs = {},
- RenderStepped = RealGame:GetService("RunService").Heartbeat,
- BindToRenderStep = function(self,name,_,fun)
- self._btrs[name] = self.Heartbeat:Connect(fun)
- end,
- UnbindFromRenderStep = function(self,name)
- self._btrs[name]:Disconnect()
- end,
- },"RunService")
- }
- rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
- FakeGame.service = FakeGame.GetService
- FakeService(FakeGame,game)
- --Changing owner to fake player object to support owner:GetMouse()
- game,owner = FakeGame,FakeGame.Players.LocalPlayer
- end
- pcall(function()
- script.DSource.Value = ""
- script.DSource:Destroy()
- end)
- script.Parent = nil
- local owner = game.Players.LocalPlayer
- local dawn = false
- local up = true
- local fromup = 1
- local fire = false
- local ice = false
- local heal = false
- local col1 = BrickColor.new("Really black")
- local col2 = BrickColor.new("Silver")
- repeat wait() until owner ~= nil
- ma=Instance.new("HopperBin")
- ma.Name="Tool"
- ma.Parent=owner.Backpack
- Instance.new("Script", ma)
- local BlackMagic = Instance.new("Model", workspace)
- BlackMagic.Name = "aqsdfgsf"
- local bin = owner.Backpack:findFirstChild("Tool")
- length = 3
- away = 2
- gap = 0
- segs = 40
- distance = length/3
- speed = 1
- Wave = 0
- part1 = Instance.new("Part")
- part1.BrickColor = BrickColor.Green()
- part1.Transparency = 0
- part1.Locked = true
- part1.Size = Vector3.new(1,1,1)
- part1.Anchored = true
- part1.CanCollide = true
- part1.Parent = nil
- part1.Name = "Part1"
- part1.TopSurface = "Smooth"
- part1.BottomSurface = "Smooth"
- local Tail = {}
- local Tail2 = {}
- local part0 = Instance.new("Part")
- part0.BrickColor = col1
- part0.TopSurface = 0
- part0.BottomSurface = 0
- part0.Locked = true
- part0.FormFactor = "Symmetric"
- part0.Size = Vector3.new(3,3,4)
- part0.Anchored = true
- part0.Shape = 1
- part0.CanCollide = true
- part0.Parent = nil
- part0.Name = "Part0"
- local A = Instance.new("SpecialMesh")
- A.MeshType = "Brick"
- A.Parent = part0
- A.Name = "Mesh"
- A.Scale = Vector3.new(1.1, 1.1, 1.1)
- local part1 = Instance.new("Part")
- part1.BrickColor = col2
- part1.TopSurface = 0
- part1.BottomSurface = 0
- part1.Locked = true
- part1.FormFactor = "Symmetric"
- part1.Size = Vector3.new(1,2,1)
- part1.Anchored = true
- part1.Shape = 1
- part1.CanCollide = true
- part1.Parent = nil
- part1.Name = "Part1"
- local A2 = Instance.new("SpecialMesh")
- A2.MeshId = "http://www.roblox.com/asset/?id=19326912"
- A2.Parent = part1
- A2.Scale = Vector3.new(3,1,1)
- A2.Name = "Mesh"
- for p = 1,segs do
- Tail[p] = part0:Clone()
- Tail[p].Parent = nil
- Tail[p].Name = "Part"..p
- Tail[p].CFrame = CFrame.new(math.random(-100, 100), math.random(-100, 100), math.random(-100, 100))
- Tail[p].Mesh.Scale = Vector3.new(1.1 - (p/1000), 1.4 - (p/1000), 1.1 - (p/1000))
- Tail2[p] = part1:Clone()
- Tail2[p].Size = Vector3.new(1,2,1)
- Tail2[p].BrickColor = col2
- Tail2[p].Parent = nil
- Tail2[p].Name = "Limb"..p
- Tail2[p].CFrame = CFrame.new(math.random(-100, 100), math.random(-100, 100), math.random(-100, 100))
- end
- for z=26,28 do
- Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.1,0.1,0.1)
- Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(0.5,0.1,0.1)
- end
- for z=29,31 do
- Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.2,0.2,0.2)
- Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(1,0.2,0.2)
- end
- for z=32,34 do
- Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.3,0.3,0.3)
- Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(1.5,0.3,0.3)
- end
- for z=35,37 do
- Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.4,0.4,0.4)
- Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(2,0.4,0.4)
- end
- for z=38,40 do
- Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.5,0.5,0.5)
- Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(2.5,0.5,0.5)
- end
- limb6 = part1:clone()
- limb6.Size = Vector3.new(1,1,1)
- limb6.BrickColor = col2
- limb6.Name = "Head4"
- limb6.Mesh.Scale = Vector3.new(3,4,4)
- limb7 = part0:clone()
- limb7.Size = Vector3.new(1,2,3)
- limb7.BrickColor = col1
- limb7.Name = "Head3"
- limb7.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
- limb8 = part0:clone()
- limb8.Size = Vector3.new(1,1,4)
- limb8.BrickColor = col2
- limb8.Name = "horn1"
- limb8.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
- limb9 = part0:clone()
- limb9.Size = Vector3.new(1,1,4)
- limb9.BrickColor = col2
- limb9.Name = "horn2"
- limb9.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
- limb10 = part0:clone()
- limb10.Size = Vector3.new(2,2,5)
- limb10.BrickColor = col1
- limb10.Name = "Head2"
- limb10.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
- limb11 = part0:clone()
- limb11.Size = Vector3.new(1,2,1)
- limb11.BrickColor = col1
- limb11.Name = "Leg1"
- limb11.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
- limb12 = part0:clone()
- limb12.Size = Vector3.new(1,2,1)
- limb12.BrickColor = col1
- limb12.Name = "Leg2"
- limb12.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
- limb13 = part0:clone()
- limb13.Size = Vector3.new(1,2,1)
- limb13.BrickColor = col1
- limb13.Name = "Leg3"
- limb13.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
- limb14 = part0:clone()
- limb14.Size = Vector3.new(1,2,1)
- limb14.BrickColor = col1
- limb14.Name = "Leg4"
- limb14.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
- limb15 = part0:clone()
- limb15.Size = Vector3.new(1,2,1)
- limb15.BrickColor = col1
- limb15.Name = "Leg5"
- limb15.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
- limb16 = part0:clone()
- limb16.Size = Vector3.new(1,2,1)
- limb16.BrickColor = col1
- limb16.Name = "Leg6"
- limb16.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
- limb17 = part0:clone()
- limb17.Size = Vector3.new(1,2,1)
- limb17.BrickColor = col1
- limb17.Name = "Leg7"
- limb17.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
- limb18 = part0:clone()
- limb18.Size = Vector3.new(1,2,1)
- limb18.BrickColor = col1
- limb18.Name = "Leg8"
- limb18.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
- local main = part0:Clone()
- main.Name = "Head"
- main.Size = Vector3.new(3, 4, 4)
- main.Transparency = 0
- main.Anchored = true
- main.BrickColor = col1
- main.TopSurface = 0
- main.BottomSurface = 0
- pos = Instance.new("BodyVelocity", main)
- stay = Instance.new("BodyGyro", main)
- pos.maxForce = Vector3.new(100000,100000,100000)
- stay.maxTorque = Vector3.new(math.huge,math.huge,math.huge)
- stay.cframe = CFrame.new(0,0,0)
- function onButton1Down(mouse)
- local player = game.Players.LocalPlayer
- if player == nil then return end
- if player ~= nil then
- player.Parent = nil
- end
- print("trigger")
- if main.Parent ~= BlackMagic then
- main.Parent = BlackMagic
- limb6.Parent = BlackMagic
- limb7.Parent = BlackMagic
- limb8.Parent = BlackMagic
- limb9.Parent = BlackMagic
- limb10.Parent = BlackMagic
- limb11.Parent = BlackMagic
- limb12.Parent = BlackMagic
- limb13.Parent = BlackMagic
- limb14.Parent = BlackMagic
- limb15.Parent = BlackMagic
- limb16.Parent = BlackMagic
- limb17.Parent = BlackMagic
- limb18.Parent = BlackMagic
- end
- -- find the best cf
- me = BlackMagic
- workspace.CurrentCamera.CameraSubject = main
- workspace.CurrentCamera.CameraType = "Track"
- for p = 1,segs do
- Tail[p].Parent = me
- Tail2[p].Parent = me
- end
- part1 = Tail[1]
- follow = true
- while follow do
- Wave = Wave + 0.02
- distance = length/3
- mousehit = mouse.Hit.p
- if (main.Position - mousehit).magnitude >speed then
- main_mousehit = (main.Position - mousehit).unit*speed
- else
- main_mousehit = (main.Position - mousehit).unit*1
- end
- start1 = main.Position-main_mousehit
- main.CFrame = CFrame.new(start1.x, start1.y, start1.z)
- p1pos = part1.Position
- start1_p1pos = (start1 - p1pos).unit
- spreadp1 = start1_p1pos*(distance+away)
- part1.CFrame = CFrame.new(start1-spreadp1, start1)
- main.CFrame=Tail[1].CFrame*CFrame.new(0,0.5,-4)*CFrame.fromEulerAnglesXYZ(-math.pi/5,0,0)
- Wave = Wave + 0.02
- pc = main.CFrame
- starti = main.Position-(pc.lookVector*distance)
- pipos = Tail[1].Position
- starti_pipos = (starti - pipos).unit
- spreadpi = starti_pipos*(distance+gap)
- Tail[1].CFrame = CFrame.new(starti-spreadpi, starti) + (part0.CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6)/4
- --[[
- for i = 1,39 do
- wait()
- print("p2c = Tail["..i.."].CFrame\
- start3 = Tail["..i.."].Position-(p2c.lookVector*distance)\
- p3pos = Tail["..(i+1).."].Position\
- start3_p3pos = (start3 - p3pos).unit\
- spreadp3 = start3_p3pos*(distance+gap)\
- 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)\
- " )
- end
- ]]
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- for i=1,40 do
- Tail2[i].CFrame = Tail[i].CFrame * CFrame.new(0,2,0) *CFrame.Angles(-3.8,-1.5,2)
- end
- limb8.CFrame = main.CFrame * CFrame.new(-1,1.5,4)
- limb9.CFrame = limb8.CFrame * CFrame.new(2,0,0)
- limb10.CFrame = main.CFrame - Vector3.new(0,2,0)
- limb10.CFrame = limb10.CFrame * CFrame.Angles(-0.25,0,0)
- limb6.CFrame = main.CFrame * CFrame.new(0,-1.5,0)
- limb6.CFrame = limb6.CFrame*CFrame.Angles(2,0,0)
- limb7.CFrame = limb10.CFrame * CFrame.new(0,1.5,-1)
- back2 = Tail[10].CFrame
- limb11.CFrame = back2 * CFrame.new(1,-2,0) * CFrame.Angles(2.5,0,0)
- limb12.CFrame = back2 * CFrame.new(-1,-2,0) * CFrame.Angles(2.5,0,0)
- limb13.CFrame = limb11.CFrame * CFrame.new(0,1.5 ,0.8) * CFrame.Angles(-2.2,0,0)
- limb14.CFrame = limb12.CFrame * CFrame.new(0,1.5 ,0.8) * CFrame.Angles(-2.2,0,0)
- back3 = Tail[25].CFrame
- limb15.CFrame = back3 * CFrame.new(1,-2,0) * CFrame.Angles(-2.5,0,0)
- limb16.CFrame = back3 * CFrame.new(-1,-2,0) * CFrame.Angles(-2.5,0,0)
- limb17.CFrame = limb15.CFrame * CFrame.new(0,0.8 ,-0.8) * CFrame.Angles(-1.5,0,0)
- limb18.CFrame = limb16.CFrame * CFrame.new(0,0.8 ,-0.8) * CFrame.Angles(-1.5,0,0)
- wait()
- end
- end
- function onButton1Up(mouse)
- follow = false
- end
- function chat()
- ChatColor = "Green"
- if main ~= nil then
- owner.Chatted:connect(function(Message)game:GetService("Chat"):Chat(workspace:findFirstChild("").Head,Message,Enum.ChatColor[ChatColor]) end)
- end
- end
- chat()
- function keys(key)
- key:lower()
- if key == "f" then
- if fire == false then
- fire = true
- end
- elseif key == "g" then
- if ice == false then
- ice = true
- end
- elseif key == "h" then
- if heal == false then
- heal = true
- end
- elseif key == "r" then
- BlackMagic.Parent = workspace
- BlackMagic:MakeJoints()
- main.Parent = BlackMagic
- limb6.Parent = BlackMagic
- limb7.Parent = BlackMagic
- limb8.Parent = BlackMagic
- limb9.Parent = BlackMagic
- limb10.Parent = BlackMagic
- limb11.Parent = BlackMagic
- limb12.Parent = BlackMagic
- limb13.Parent = BlackMagic
- limb14.Parent = BlackMagic
- limb15.Parent = BlackMagic
- limb16.Parent = BlackMagic
- limb17.Parent = BlackMagic
- limb18.Parent = BlackMagic
- for i=1,40 do
- Tail[i].Parent = BlackMagic
- Tail2[i].Parent = BlackMagic
- end
- main.Anchored = true
- limb6.Anchored = true
- limb7.Anchored = true
- limb8.Anchored = true
- limb9.Anchored = true
- limb10.Anchored = true
- limb11.Anchored = true
- limb12.Anchored = true
- limb13.Anchored = true
- limb14.Anchored = true
- limb15.Anchored = true
- limb16.Anchored = true
- limb17.Anchored = true
- limb18.Anchored = true
- for i=1,40 do
- Tail[i].Anchored = true
- Tail2[i].Anchored = true
- end
- main.Transparency = 0
- limb6.Transparency = 0
- limb7.Transparency = 0
- limb8.Transparency = 0
- limb9.Transparency = 0
- limb10.Transparency = 0
- limb11.Transparency = 0
- limb12.Transparency = 0
- limb13.Transparency = 0
- limb14.Transparency = 0
- limb15.Transparency = 0
- limb16.Transparency = 0
- limb17.Transparency = 0
- limb18.Transparency = 0
- for i=1,40 do
- Tail[i].Transparency = 0
- Tail2[i].Transparency = 0
- end
- main.BrickColor = col1
- limb6.BrickColor = col2
- limb7.BrickColor = col1
- limb8.BrickColor = col2
- limb9.BrickColor = col2
- limb10.BrickColor = col1
- limb11.BrickColor = col1
- limb12.BrickColor = col1
- limb13.BrickColor = col1
- limb14.BrickColor = col1
- limb15.BrickColor = col1
- limb16.BrickColor = col1
- limb17.BrickColor = col1
- limb18.BrickColor = col1
- for i=1,40 do
- Tail[i].BrickColor = col1
- Tail2[i].BrickColor = col2
- end
- BlackMagic:MakeJoints()
- chat()
- end
- end
- function keyss()
- if fire == true then
- fire = false
- end
- if ice == true then
- ice = false
- end
- if heal == true then
- heal = false
- end
- end
- function onSelected(mouse)
- print("select")
- mouse.Icon = "rbxasset://textures\\GunCursor.png"
- mouse.Button1Down:connect(function() onButton1Down(mouse) end)
- mouse.Button1Up:connect(function() onButton1Up(mouse) end)
- mouse.KeyDown:connect(keys)
- mouse.KeyUp:connect(keyss)
- end
- bin.Selected:connect(onSelected)
- while true do
- wait()
- for i,v in pairs(BlackMagic:GetChildren()) do
- if v.Name ~= "Breeze" and v.Name ~= "Flame" and v.Name ~= "Heal" then
- for i,d in pairs(v:GetChildren()) do
- if d.ClassName ~= "SpecialMesh" then
- d:Destroy()
- end
- end
- end
- end
- Stuff = Workspace:GetChildren()
- for i = 1 , #Stuff do
- Stuff2 = Stuff[i]:GetChildren()
- for i = 1 , #Stuff2 do
- Stuff3 = Stuff2[i]:GetChildren()
- for i = 1 , #Stuff3 do
- if Stuff3[i].className == "ForceField" then
- Stuff3[i]:Remove()
- end
- end
- if Stuff2[i].className == "ForceField" then
- Stuff2[i]:Remove()
- end
- end
- end
- if fire == true then
- Flame = Instance.new("Part")
- Flame.Parent = BlackMagic
- Flame.Anchored = true
- Flame.BrickColor = BrickColor.new("Really black")
- Flame.CanCollide = false
- Flame.Name = "Flame"
- Color = math.random(1, 3)
- if Color == 1 then
- Flame.BrickColor = BrickColor.new(21)
- else
- if Color == 2 then
- Flame.BrickColor = BrickColor.new(24)
- end
- if Color == 3 then
- Flame.BrickColor = BrickColor.new(105)
- end
- end
- Flame.Locked = true
- Flame.Shape = "Ball"
- Flame.Transparency = 0.2
- Flame.Size = Vector3.new(1, 1, 1)
- Flame.TopSurface = "Smooth"
- Flame.BottomSurface = "Smooth"
- Flame.CFrame = main.CFrame * CFrame.new(math.random(-2, 2), math.random(-2, 2), 0)
- FlameMesh = Instance.new("SpecialMesh")
- FlameMesh.MeshType = "Sphere"
- FlameMesh.Parent = Flame
- FlameMesh.Scale = Vector3.new(1, 1, 1)
- end
- if heal == true then
- Heal = Instance.new("Part")
- Heal.Parent = BlackMagic
- Heal.Anchored = true
- Heal.BrickColor = BrickColor.new("Br. yellowish green")
- Heal.CanCollide = false
- Heal.Name = "Heal"
- Color = math.random(1, 3)
- if Color == 1 then
- Heal.BrickColor = BrickColor.new(28)
- else
- if Color == 2 then
- Heal.BrickColor = BrickColor.new(37)
- end
- if Color == 3 then
- Heal.BrickColor = BrickColor.new(119)
- end
- end
- Heal.Locked = true
- Heal.Shape = "Ball"
- Heal.Transparency = 0.2
- Heal.Size = Vector3.new(1, 1, 1)
- Heal.TopSurface = "Smooth"
- Heal.BottomSurface = "Smooth"
- Heal.CFrame = main.CFrame * CFrame.new(math.random(-2, 2), math.random(-2, 2), 0)
- HealMesh = Instance.new("SpecialMesh")
- HealMesh.MeshType = "Sphere"
- HealMesh.Parent = Heal
- HealMesh.Scale = Vector3.new(1, 1, 1)
- end
- if ice == true then
- Breeze = Instance.new("Part")
- Breeze.Parent = BlackMagic
- Breeze.Anchored = true
- Breeze.BrickColor = BrickColor.new("White")
- Breeze.CanCollide = false
- Breeze.Name = "Breeze"
- Color = math.random(1, 3)
- if Color == 1 then
- Breeze.BrickColor = BrickColor.new(23)
- else
- if Color == 2 then
- Breeze.BrickColor = BrickColor.new(42)
- end
- if Color == 3 then
- Breeze.BrickColor = BrickColor.new(43)
- end
- end
- Breeze.Locked = true
- Breeze.Shape = "Ball"
- Breeze.Transparency = 0.2
- Breeze.Size = Vector3.new(1, 1, 1)
- Breeze.TopSurface = "Smooth"
- Breeze.BottomSurface = "Smooth"
- Breeze.CFrame = main.CFrame * CFrame.new(math.random(-2, 2), math.random(-2, 2), 0)
- BreezeMesh = Instance.new("SpecialMesh")
- BreezeMesh.MeshType = "Sphere"
- BreezeMesh.Parent = Breeze
- BreezeMesh.Scale = Vector3.new(1, 1, 1)
- end
- Stuff = BlackMagic:GetChildren()
- for i = 1 , #Stuff do
- if Stuff[i].className == "Part" then
- if Stuff[i].Name == "Shadow" then
- Stuff[i].Transparency = Stuff[i].Transparency + 0.2
- if Stuff[i].Transparency >= 1 then
- Stuff[i]:Remove()
- end
- end
- if Stuff[i].Name == "Flame" then
- p = Stuff[i].CFrame * CFrame.new(math.random(-1, 1), math.random(-1, 1), math.random(-1, 1))
- Size = math.random(1, 3)
- Stuff[i].Mesh.Scale = Stuff[i].Mesh.Scale + Vector3.new(Size, Size, Size)
- Stuff[i].Transparency = Stuff[i].Transparency + 0.0785
- Stuff[i].CFrame = p
- Stuff[i].CFrame = Stuff[i].CFrame * CFrame.new(0, 0,math.random(-5, -3))
- Stuff2 = Workspace:GetChildren()
- for ii = 1 , #Stuff2 do
- if Stuff2[ii].className == "Part" then
- if (Stuff[i].Position-Stuff2[ii].Position).magnitude <= Stuff[i].Mesh.Scale.X then
- if Stuff2[ii].Name ~= "Base" then
- Stuff2[ii].Anchored = false
- Stuff2[ii].Material = "Concrete"
- Stuff2[ii].BrickColor = BrickColor.new("Really black")
- Stuff2[ii]:BreakJoints()
- Stuff2[ii].Reflectance = 0
- end
- end
- end
- if Stuff2[ii].className == "Model" and Stuff2[ii].Name ~= "" then
- Torso = Stuff2[ii]:findFirstChild("Torso")
- Humanoid = Stuff2[ii]:findFirstChild("Humanoid")
- if Humanoid ~= nil and Torso ~= nil then
- if (Stuff[i].Position-Torso.Position).magnitude <= Stuff[i].Mesh.Scale.X then
- Humanoid.MaxHealth = 100
- Damage = 15
- Humanoid:TakeDamage(Damage)
- Parts = Humanoid.Parent:GetChildren()
- for i = 1 , #Parts do
- if Parts[i].className == "Part" then
- Parts[i].BrickColor = BrickColor.new("Really black")
- Parts[i].Material = "Concrete"
- Parts[i].Reflectance = 0
- Parts[i].Anchored = false
- if Humanoid.Health <= 0 then
- Parts[i]:BreakJoints()
- end
- end
- end
- end
- end
- end
- end
- if Stuff[i].Transparency >= 1 then
- Stuff[i]:Remove()
- end
- end
- if Stuff[i].Name == "Breeze" then
- p = Stuff[i].CFrame * CFrame.new(math.random(-1, 1), math.random(-1, 1), math.random(-1, 1))
- Size = math.random(1, 3)
- Stuff[i].Mesh.Scale = Stuff[i].Mesh.Scale + Vector3.new(Size, Size, Size)
- Stuff[i].Transparency = Stuff[i].Transparency + 0.0785
- Stuff[i].CFrame = p
- Stuff[i].CFrame = Stuff[i].CFrame * CFrame.new(0, 0,math.random(-5, -3))
- Stuff2 = Workspace:GetChildren()
- for ii = 1 , #Stuff2 do
- if Stuff2[ii].className == "Part" then
- if (Stuff[i].Position-Stuff2[ii].Position).magnitude <= Stuff[i].Mesh.Scale.X then
- if Stuff2[ii].Name ~= "Base" then
- Stuff2[ii].BrickColor = BrickColor.new("Light blue")
- Stuff2[ii].Anchored = true
- Stuff2[ii].Reflectance = 0.1
- Stuff2[ii].Material = "Ice"
- end
- end
- end
- if Stuff2[ii].className == "Model" and Stuff2[ii].Name ~= "" then
- Torso = Stuff2[ii]:findFirstChild("Torso")
- Humanoid = Stuff2[ii]:findFirstChild("Humanoid")
- if Humanoid ~= nil and Torso ~= nil then
- if (Stuff[i].Position-Torso.Position).magnitude <= Stuff[i].Mesh.Scale.X then
- Humanoid.MaxHealth = 100
- Damage = 10
- Humanoid:TakeDamage(Damage)
- Parts = Humanoid.Parent:GetChildren()
- for i = 1 , #Parts do
- if Parts[i].className == "Part" then
- Parts[i].BrickColor = BrickColor.new("Light blue")
- Parts[i].Anchored = true
- Parts[i].Reflectance = 0.1
- Parts[i].Material = "Ice"
- end
- end
- end
- end
- end
- end
- end
- if Stuff[i].Transparency >= 1 then
- Stuff[i]:Remove()
- end
- if Stuff[i].Name == "Heal" then
- p = Stuff[i].CFrame * CFrame.new(math.random(-1, 1), math.random(-1, 1), math.random(-1, 1))
- Size = math.random(1, 3)
- Stuff[i].Mesh.Scale = Stuff[i].Mesh.Scale + Vector3.new(Size, Size, Size)
- Stuff[i].Transparency = Stuff[i].Transparency + 0.0785
- Stuff[i].CFrame = p
- Stuff[i].CFrame = Stuff[i].CFrame * CFrame.new(0, 0,math.random(-5, -3))
- Stuff2 = Workspace:GetChildren()
- for ii = 1 , #Stuff2 do
- if Stuff2[ii].className == "Part" then
- if (Stuff[i].Position-Stuff2[ii].Position).magnitude <= Stuff[i].Mesh.Scale.X then
- if Stuff2[ii].Name ~= "Base" then
- Stuff2[ii].BrickColor = BrickColor.new("Bright green")
- Stuff2[ii].Anchored = false
- Stuff2[ii].Material = "Grass"
- end
- end
- end
- if Stuff2[ii].className == "Model" and Stuff2[ii].Name ~= "" then
- Torso = Stuff2[ii]:findFirstChild("Torso")
- Humanoid = Stuff2[ii]:findFirstChild("Humanoid")
- if Humanoid ~= nil and Torso ~= nil then
- if (Stuff[i].Position-Torso.Position).magnitude <= Stuff[i].Mesh.Scale.X then
- Healness = 10
- Humanoid.Health = Humanoid.Health + Healness;
- Parts = Humanoid.Parent:GetChildren()
- for i = 1 , #Parts do
- if Parts[i].className == "Part" then
- Parts[i].Anchored = false
- Parts[i].Reflectance = 0
- Parts[i].Material = "Plastic"
- end
- end
- end
- end
- end
- end
- end
- if Stuff[i].Transparency >= 1 then
- Stuff[i]:Remove()
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement