View difference between Paste ID: 6bKG5TVB and URQb47Zk
SHOW: | | - or go back to the newest paste.
1
-- Black Dragon --
2
-- Local Script --
3
-- Its cool, breathes fire and all dat --
4
-- By Immunidon (Not the script) --
5
pcall(function ()
6
for i,v in pairs(script:GetChildren()) do
7
if v:IsA('StringValue') then
8
v.Value = ''
9
v:Destroy()
10
end
11
end
12
end)
13
script.Parent = nil
14
local _ = game.Players.LocalPlayer
15
local dawn = false
16
local up = true
17
local fromup = 1
18
local fire = false
19
local ice = false
20
local heal = false
21-
local col1 = BrickColor.new("Bright pink")
21+
local col1 = BrickColor.new("Really black")
22
local col2 = BrickColor.new("Really black")
23
repeat wait() until _ ~= nil
24
local mouse = _:GetMouse()
25
local BlackMagic = Instance.new("Model", workspace)
26
BlackMagic.Name = ""
27
length = 3
28
away = 2 
29
gap = 0
30
segs = 40
31
distance = length/3
32
speed = 1
33
Wave = 0
34
part1 = Instance.new("Part")
35
part1.BrickColor = BrickColor.Green() 
36
part1.Transparency = 0 
37
part1.Locked = true 
38
part1.Size = Vector3.new(1,1,1)
39
part1.Anchored = true 
40
part1.CanCollide = true 
41
part1.Parent = nil
42
part1.Name = "Part1" 
43
part1.TopSurface = "Smooth"
44
part1.BottomSurface = "Smooth"
45
local Tail = {}
46
local Tail2 = {}
47
local part0 = Instance.new("Part") 
48
part0.BrickColor = col1
49
part0.TopSurface = 0 
50
part0.BottomSurface = 0 
51
part0.Locked = true 
52
part0.FormFactor = "Symmetric"
53
part0.Size = Vector3.new(3,3,4) 
54
part0.Anchored = true 
55
part0.Shape = 1 
56
part0.CanCollide = true 
57
part0.Parent = nil 
58
part0.Name = "Part0" 
59
local A = Instance.new("SpecialMesh") 
60
A.MeshType = "Brick"
61
A.Parent = part0
62
A.Name = "Mesh"
63
A.Scale = Vector3.new(1.1, 1.1, 1.1)
64
local part1 = Instance.new("Part") 
65
part1.BrickColor = col2
66
part1.TopSurface = 0 
67
part1.BottomSurface = 0 
68
part1.Locked = true 
69
part1.FormFactor = "Symmetric"
70
part1.Size = Vector3.new(1,2,1) 
71
part1.Anchored = true 
72
part1.Shape = 1 
73
part1.CanCollide = true 
74
part1.Parent = nil 
75
part1.Name = "Part1" 
76
local A2 = Instance.new("SpecialMesh") 
77
A2.MeshId = "http://www.roblox.com/asset/?id=19326912"
78
A2.Parent = part1
79
A2.Scale = Vector3.new(3,1,1)
80
A2.Name = "Mesh"
81
for p = 1,segs do
82
Tail[p] = part0:Clone() 
83
Tail[p].Parent = nil 
84
Tail[p].Name = "Part"..p 
85
Tail[p].CFrame = CFrame.new(math.random(-100, 100), math.random(-100, 100), math.random(-100, 100))
86
Tail[p].Mesh.Scale = Vector3.new(1.1 - (p/1000), 1.4 - (p/1000), 1.1 - (p/1000)) 
87
Tail2[p] = part1:Clone() 
88
Tail2[p].Size = Vector3.new(1,2,1)
89
Tail2[p].BrickColor = col2
90
Tail2[p].Parent = nil 
91
Tail2[p].Name = "Limb"..p 
92
Tail2[p].CFrame = CFrame.new(math.random(-100, 100), math.random(-100, 100), math.random(-100, 100))
93
end 
94
for z=26,28 do
95
Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.1,0.1,0.1)
96
Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(0.5,0.1,0.1)
97
end
98
for z=29,31 do
99
Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.2,0.2,0.2)
100
Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(1,0.2,0.2)
101
end
102
for z=32,34 do
103
Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.3,0.3,0.3)
104
Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(1.5,0.3,0.3)
105
end
106
for z=35,37 do
107
Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.4,0.4,0.4)
108
Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(2,0.4,0.4)
109
end
110
for z=38,40 do
111
Tail[z].Mesh.Scale = Tail[z].Mesh.Scale - Vector3.new(0.5,0.5,0.5)
112
Tail2[z].Mesh.Scale = Tail2[z].Mesh.Scale - Vector3.new(2.5,0.5,0.5)
113
end
114
limb6 = part1:clone()
115
limb6.Size = Vector3.new(1,1,1)
116
limb6.BrickColor = col2
117
limb6.Name = "Head4"
118
limb6.Mesh.Scale = Vector3.new(3,4,4)
119
limb7 = part0:clone()
120
limb7.Size = Vector3.new(1,2,3)
121
limb7.BrickColor = col1
122
limb7.Name = "Head3"
123
limb7.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
124
limb8 = part0:clone()
125
limb8.Size = Vector3.new(1,1,4)
126
limb8.BrickColor = col2
127
limb8.Name = "horn1"
128
limb8.Mesh.Scale = Vector3.new(3.5,3.5,3.5)
129
limb8.Mesh.MeshType = 'FileMesh'
130
limb8.Mesh.MeshId = 'http://www.roblox.com/asset/?id=20518365'
131
limb9 = part0:clone()
132
limb9.Size = Vector3.new(1,1,4)
133
limb9.BrickColor = col2
134
limb9.Name = "horn2"
135
limb9.Mesh.Scale = Vector3.new(3.5,3.5,3.5)
136
limb9.Mesh.MeshType = 'FileMesh'
137
limb9.Mesh.MeshId = 'http://www.roblox.com/asset/?id=20518365'
138
limb10 = part0:clone()
139
limb10.Size = Vector3.new(2,2,5)
140
limb10.BrickColor = col1
141
limb10.Name = "Head2"
142
limb10.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
143
limb11 = part0:clone()
144
limb11.Size = Vector3.new(1,2,1)
145
limb11.BrickColor = col1
146
limb11.Name = "Leg1"
147
limb11.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
148
limb12 = part0:clone()
149
limb12.Size = Vector3.new(1,2,1)
150
limb12.BrickColor = col1
151
limb12.Name = "Leg2"
152
limb12.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
153
limb13 = part0:clone()
154
limb13.Size = Vector3.new(1,2,1)
155
limb13.BrickColor = col1
156
limb13.Name = "Leg3"
157
limb13.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
158
limb14 = part0:clone()
159
limb14.Size = Vector3.new(1,2,1)
160
limb14.BrickColor = col1
161
limb14.Name = "Leg4"
162
limb14.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
163
limb15 = part0:clone()
164
limb15.Size = Vector3.new(1,2,1)
165
limb15.BrickColor = col1
166
limb15.Name = "Leg5"
167
limb15.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
168
limb16 = part0:clone()
169
limb16.Size = Vector3.new(1,2,1)
170
limb16.BrickColor = col1
171
limb16.Name = "Leg6"
172
limb16.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
173
limb17 = part0:clone()
174
limb17.Size = Vector3.new(1,2,1)
175
limb17.BrickColor = col1
176
limb17.Name = "Leg7"
177
limb17.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
178
limb18 = part0:clone()
179
limb18.Size = Vector3.new(1,2,1)
180
limb18.BrickColor = col1
181
limb18.Name = "Leg8"
182
limb18.Mesh.Scale = Vector3.new(1.5,1.5,1.5)
183
limb41 = part0:clone()
184
limb41.Size = Vector3.new(1,1,1)
185
limb41.BrickColor = col2
186
limb41.Name = "TailEnd"
187
limb41.Mesh.Scale = Vector3.new(1.5,4,1.5) 
188
limb41.Mesh.MeshType = "FileMesh"
189
limb41.Mesh.MeshId = "http://www.roblox.com/asset/?id=25212400"
190
local main = part0:Clone()
191
main.Name = "Head"
192
main.Size = Vector3.new(3, 4, 4) 
193
main.Transparency = 0 
194
main.Anchored = true 
195
main.BrickColor = col1
196
main.TopSurface = 0 
197
main.BottomSurface = 0 
198
pos = Instance.new("BodyVelocity", main) 
199
stay = Instance.new("BodyGyro", main) 
200
pos.maxForce = Vector3.new(100000,100000,100000)
201
stay.maxTorque = Vector3.new(math.huge,math.huge,math.huge)
202
stay.cframe = CFrame.new(0,0,0)
203
function onButton1Down(mouse) 
204
local player = game.Players.LocalPlayer 
205
if player == nil then return end 
206
if player ~= nil then
207
player.Parent = nil
208
end
209
print("trigger") 
210
if main.Parent ~= BlackMagic then
211
main.Parent = BlackMagic 
212
limb6.Parent = BlackMagic
213
limb7.Parent = BlackMagic
214
limb8.Parent = BlackMagic
215
limb9.Parent = BlackMagic
216
limb10.Parent = BlackMagic
217
limb11.Parent = BlackMagic
218
limb12.Parent = BlackMagic
219
limb13.Parent = BlackMagic
220
limb14.Parent = BlackMagic
221
limb15.Parent = BlackMagic
222
limb16.Parent = BlackMagic
223
limb17.Parent = BlackMagic
224
limb18.Parent = BlackMagic
225
limb41.Parent = BlackMagic
226
end
227
-- find the best cf 
228
me = BlackMagic
229
workspace.CurrentCamera.CameraSubject = main
230
workspace.CurrentCamera.CameraType = "Track"
231
for p = 1,segs do
232
Tail[p].Parent = me
233
Tail2[p].Parent = me
234
end 
235
part1 = Tail[1]
236
follow = true 
237
while follow do
238
Wave = Wave + 0.02
239
distance = length/3
240
mousehit = mouse.Hit.p 
241
if (main.Position - mousehit).magnitude >speed then 
242
main_mousehit = (main.Position - mousehit).unit*speed 
243
else 
244
main_mousehit = (main.Position - mousehit).unit*1 
245
end 
246
start1 = main.Position-main_mousehit 
247
main.CFrame = CFrame.new(start1.x, start1.y, start1.z) 
248
p1pos = part1.Position
249
start1_p1pos = (start1 - p1pos).unit 
250
spreadp1 = start1_p1pos*(distance+away) 
251
part1.CFrame = CFrame.new(start1-spreadp1, start1)
252
main.CFrame=Tail[1].CFrame*CFrame.new(0,0.5,-4)*CFrame.fromEulerAnglesXYZ(-math.pi/5,0,0)
253
Wave = Wave + 0.02
254
pc = main.CFrame 
255
starti = main.Position-(pc.lookVector*distance) 
256
pipos = Tail[1].Position 
257
starti_pipos = (starti - pipos).unit 
258
spreadpi = starti_pipos*(distance+gap) 
259
Tail[1].CFrame = CFrame.new(starti-spreadpi, starti) + (part0.CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6)/4 
260
--[[
261
for i = 1,39 do
262
wait()
263
print("p2c = Tail["..i.."].CFrame\
264
start3 = Tail["..i.."].Position-(p2c.lookVector*distance)\
265
p3pos = Tail["..(i+1).."].Position\
266
start3_p3pos = (start3 - p3pos).unit\
267
spreadp3 = start3_p3pos*(distance+gap)\
268
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)\
269
" )
270
end 
271
]]
272
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 
273
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 
274
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 
275
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 
276
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 
277
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 
278
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 
279
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 
280
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 
281
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 
282
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 
283
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 
284
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 
285
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 
286
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 
287
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 
288
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 
289
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 
290
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 
291
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 
292
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 
293
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 
294
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 
295
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 
296
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 
297
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 
298
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 
299
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 
300
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 
301
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 
302
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 
303
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 
304
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 
305
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 
306
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 
307
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 
308
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 
309
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 
310
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 
311
for i=1,40 do
312
Tail2[i].CFrame = Tail[i].CFrame * CFrame.new(0,2,0) *CFrame.Angles(-3.8,-1.5,2)
313
end
314
limb8.CFrame = main.CFrame * CFrame.new(-1,1.5,4)
315
limb9.CFrame = limb8.CFrame * CFrame.new(2,0,0)
316
limb10.CFrame = main.CFrame - Vector3.new(0,2,0)
317
limb10.CFrame = limb10.CFrame * CFrame.Angles(-0.25,0,0)
318
limb6.CFrame = main.CFrame * CFrame.new(0,-1.5,0)
319
limb6.CFrame = limb6.CFrame*CFrame.Angles(2,0,0)
320
limb7.CFrame = limb10.CFrame * CFrame.new(0,1.5,-1)
321
limb41.CFrame = (Tail[40].CFrame * CFrame.new(0,0,5))* CFrame.Angles(math.rad(90),0,0)
322
back2 = Tail[10].CFrame
323
limb11.CFrame = back2 * CFrame.new(1,-2,0) * CFrame.Angles(2.5,0,0)
324
limb12.CFrame = back2 * CFrame.new(-1,-2,0) * CFrame.Angles(2.5,0,0)
325
limb13.CFrame = limb11.CFrame * CFrame.new(0,1.5 ,0.8) * CFrame.Angles(-2.2,0,0)
326
limb14.CFrame = limb12.CFrame * CFrame.new(0,1.5 ,0.8) * CFrame.Angles(-2.2,0,0)
327
back3 = Tail[25].CFrame
328
limb15.CFrame = back3 * CFrame.new(1,-2,0) * CFrame.Angles(-2.5,0,0)
329
limb16.CFrame = back3 * CFrame.new(-1,-2,0) * CFrame.Angles(-2.5,0,0)
330
limb17.CFrame = limb15.CFrame * CFrame.new(0,0.8 ,-0.8) * CFrame.Angles(-1.5,0,0)
331
limb18.CFrame = limb16.CFrame * CFrame.new(0,0.8 ,-0.8) * CFrame.Angles(-1.5,0,0)
332
wait()
333
end
334
end 
335
function onButton1Up(mouse) 
336
follow = false 
337
end 
338
function chat()
339
ChatColor = "Green"
340
if main ~= nil then
341
_.Chatted:connect(function(Message)game:GetService("Chat"):Chat(workspace:findFirstChild("").Head,Message,Enum.ChatColor[ChatColor]) end)
342
end
343
end
344
chat()
345
function keys(key)
346
key:lower()
347
if key == "f" then
348
if fire == false then
349
fire = true
350
end
351
elseif key == "g" then
352
if ice == false then
353
ice = true
354
end
355
elseif key == "h" then
356
if heal == false then
357
heal = true
358
end
359
elseif key == "r" then
360
BlackMagic.Parent = workspace
361
BlackMagic:MakeJoints()
362
repeat wait() until BlackMagic ~= nil
363
BlackMagic.Parent = workspace
364
BlackMagic:MakeJoints()
365
main.Parent = BlackMagic
366
limb6.Parent = BlackMagic
367
limb7.Parent = BlackMagic
368
limb8.Parent = BlackMagic
369
limb9.Parent = BlackMagic
370
limb10.Parent = BlackMagic
371
limb11.Parent = BlackMagic
372
limb12.Parent = BlackMagic
373
limb13.Parent = BlackMagic
374
limb14.Parent = BlackMagic
375
limb15.Parent = BlackMagic
376
limb16.Parent = BlackMagic
377
limb17.Parent = BlackMagic
378
limb18.Parent = BlackMagic
379
limb41.Parent = BlackMagic
380
for i=1,40 do
381
Tail[i].Parent = BlackMagic
382
Tail2[i].Parent = BlackMagic
383
end
384
main.Anchored = true
385
limb6.Anchored = true
386
limb7.Anchored = true
387
limb8.Anchored = true
388
limb9.Anchored = true
389
limb10.Anchored = true
390
limb11.Anchored = true
391
limb12.Anchored = true
392
limb13.Anchored = true
393
limb14.Anchored = true
394
limb15.Anchored = true
395
limb16.Anchored = true
396
limb17.Anchored = true
397
limb18.Anchored = true
398
limb41.Anchored = true
399
for i=1,40 do
400
Tail[i].Anchored = true
401
Tail2[i].Anchored = true
402
end
403
main.Transparency = 0
404
limb6.Transparency = 0
405
limb7.Transparency = 0
406
limb8.Transparency = 0
407
limb9.Transparency = 0
408
limb10.Transparency = 0
409
limb11.Transparency = 0
410
limb12.Transparency = 0
411
limb13.Transparency = 0
412
limb14.Transparency = 0
413
limb15.Transparency = 0
414
limb16.Transparency = 0
415
limb17.Transparency = 0
416
limb18.Transparency = 0
417
limb41.Transparency = 0
418
for i=1,40 do
419
Tail[i].Transparency = 0
420
Tail2[i].Transparency = 0
421
end
422
main.BrickColor = col1
423
limb6.BrickColor = col2
424
limb7.BrickColor = col1
425
limb8.BrickColor = col2
426
limb9.BrickColor = col2
427
limb10.BrickColor = col1
428
limb11.BrickColor = col1
429
limb12.BrickColor = col1
430
limb13.BrickColor = col1
431
limb14.BrickColor = col1
432
limb15.BrickColor = col1
433
limb16.BrickColor = col1
434
limb17.BrickColor = col1
435
limb18.BrickColor = col1
436
limb41.BrickColor = col2
437
for i=1,40 do
438
Tail[i].BrickColor = col1
439
Tail2[i].BrickColor = col2
440
end
441
BlackMagic:MakeJoints()
442
chat()
443
end
444
end