View difference between Paste ID: PtLZjiTA and 964SVQRu
SHOW: | | - or go back to the newest paste.
1-
Player = game:GetService("Players"):FindFirstChild("xZkills_Guerreroser")
1+
Player = game:GetService("Players"):FindFirstChild("ImpactReversion")
2
Name = "Levas's MLG Wand"
3
selected = false
4
dropped = false
5
Button1Down = false
6
canFire = true
7
spell = 0
8
spellText = "None"
9
power = 9999999
10
 
11
 
12
spellGui = Instance.new("ScreenGui")
13
spellGui.Name = Name
14
local frame = Instance.new("Frame")
15
frame.Name = "Frame"
16
frame.Size = UDim2.new(0, 165, 0, 60)
17
frame.Position = UDim2.new(0, 0, 1, -60)
18
frame.BackgroundColor3 = Color3.new(1, 1, 1)
19
frame.BorderColor3 = Color3.new(0, 0, 0)
20
frame.Parent = spellGui
21
local label = Instance.new("TextLabel")
22
label.Name = "Weapon"
23
label.Text = "Weapon: " ..Name
24
label.Size = UDim2.new(1, 0, 0, 20)
25
label.Position = UDim2.new(0, 0, 0, 0)
26
label.BackgroundColor3 = Color3.new(1, 0, 0)
27
label.BorderColor3 = Color3.new(0, 0, 0)
28
label.Parent = frame
29
local label = Instance.new("TextLabel")
30
label.Name = "SpellPrefix"
31
label.Text = "    Spell:"
32
label.TextXAlignment = "Left"
33
label.Size = UDim2.new(1, 0, 0, 20)
34
label.Position = UDim2.new(0, 0, 0, 20)
35
label.BackgroundColor3 = Color3.new(1, 1, 1)
36
label.BorderColor3 = Color3.new(0, 0, 0)
37
label.Parent = frame
38
local label = Instance.new("TextLabel")
39
label.Name = "Spell"
40
label.Text = "None"
41
label.TextXAlignment = "Right"
42
label.Size = UDim2.new(1, 0, 0, 20)
43
label.Position = UDim2.new(0, -10, 0, 20)
44
label.BackgroundTransparency = 1
45
label.BorderSizePixel = 0
46
label.Parent = frame
47
local label = Instance.new("TextLabel")
48
label.Name = "PowerPrefix"
49
label.Text = "    Power:"
50
label.TextXAlignment = "Left"
51
label.Size = UDim2.new(1, 0, 0, 20)
52
label.Position = UDim2.new(0, 0, 0, 40)
53
label.BackgroundColor3 = Color3.new(1, 1, 1)
54
label.BorderColor3 = Color3.new(0, 0, 0)
55
label.Parent = frame
56
local label = Instance.new("TextLabel")
57
label.Name = "Power"
58
label.Text = "100"
59
label.TextXAlignment = "Right"
60
label.Size = UDim2.new(1, 0, 0, 20)
61
label.Position = UDim2.new(0, -10, 0, 40)
62
label.BackgroundTransparency = 1
63
label.BorderSizePixel = 0
64
label.Parent = frame
65
 
66
 
67
function updateGui(format)
68
        if selected == false then return end
69
        if Player:FindFirstChild("PlayerGui") == nil then Instance.new("PlayerGui").Parent = Player end
70
        if Player.PlayerGui:FindFirstChild(Name) == nil then
71
                spellGui:Clone().Parent = Player.PlayerGui
72
        end
73
        Player.PlayerGui[Name].Frame.Spell.Text = spellText
74
        if power <= 0 then
75
                Player.PlayerGui[Name].Frame.Power.Text = "OVERHEAT (" ..math.abs(power).. ")"
76
        else
77
                Player.PlayerGui[Name].Frame.Power.Text = power
78
        end
79
end
80
 
81
 
82
function makeParts(format)
83
        local model = Instance.new("Model")
84
        model.Name = Name
85
        model.Parent = Player.Character
86
        local pm = Instance.new("Part")
87
        pm.Name = "Handle"
88
        pm.formFactor = "Symmetric"
89
        pm.Size = Vector3.new(1, 1, 1)
90
        pm.BrickColor = BrickColor.new("Reddish brown")
91
        pm.Locked = true
92
        pm.TopSurface = 0
93
        pm.BottomSurface = 0
94
        pm.Parent = model
95
        local m = Instance.new("SpecialMesh")
96
        m.MeshType = "Head"
97
        m.Scale = Vector3.new(0.3, 2, 0.3)
98
        m.Parent = pm
99
        if format ~= nil then
100
                local w = Instance.new("Weld")
101
                w.Part0 = pm
102
                if format == "hand" then
103
                        w.Part1 = Player.Character:FindFirstChild("Right Arm")
104
                        w.C0 = CFrame.new(0, -0.75, 0.9) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
105
                        w.C1 = CFrame.new()
106
                        w.Parent = pm
107
                elseif format == "holster" then
108
                        w.Part1 = Player.Character:FindFirstChild("Right Leg")
109
                        w.C0 = CFrame.new(0, 0.1, -0.55) * CFrame.fromEulerAnglesXYZ(0, 0, 0)
110
                        w.C1 = CFrame.new()
111
                        w.Parent = pm
112
                        model.Name = Name.. " (Holstered)"
113
                else
114
                        print("Error: Incorrect format string!")
115
                end
116
        end
117
        local s = Instance.new("Sound")
118
        s.Name = "Shine"
119
        s.SoundId = "http://www.roblox.com/asset/?id=2101144"
120
        s.Volume = 1
121
        s.Pitch = 1
122
        s.Looped = false
123
        s.Parent = pm
124
        local s = Instance.new("Sound")
125
        s.Name = "Bolt"
126
        s.SoundId = "http://www.roblox.com/asset/?id=2974000"
127
        s.Volume = 1
128
        s.Pitch = 1
129
        s.Looped = false
130
        s.Parent = pm
131
        local s = Instance.new("Sound")
132
        s.Name = "Impact1"
133
        s.SoundId = "http://roblox.com/asset/?id=10209596"
134
        s.Volume = 1
135
        s.Pitch = 1
136
        s.Looped = false
137
        s.Parent = pm
138
        local s = Instance.new("Sound")
139
        s.Name = "Charge1"
140
        s.SoundId = "http://www.roblox.com/asset/?id=1369158"
141
        s.Volume = 1
142
        s.Pitch = 1
143
        s.Looped = false
144
        s.Parent = pm
145
        local s = Instance.new("Sound")
146
        s.Name = "Charge2"
147
        s.SoundId = "http://www.roblox.com/asset/?id=2101137"
148
        s.Volume = 1
149
        s.Pitch = 1
150
        s.Looped = false
151
        s.Parent = pm
152
        local s = Instance.new("Sound")
153
        s.Name = "Charge3"
154
        s.SoundId = "http://www.roblox.com/asset/?id=2785493"
155
        s.Volume = 1
156
        s.Pitch = 1
157
        s.Looped = false
158
        s.Parent = pm
159
        local s = Instance.new("Sound")
160
        s.Name = "Charge4"
161
        s.SoundId = "http://www.roblox.com/asset/?id=35275769"
162
        s.Volume = 1
163
        s.Pitch = 1
164
        s.Looped = false
165
        s.Parent = pm
166
        local s = Instance.new("Sound")
167
        s.Name = "Fire1"
168
        s.SoundId = "http://roblox.com/asset/?id=10209268"
169
        s.Volume = 1
170
        s.Pitch = 1
171
        s.Looped = false
172
        s.Parent = pm
173
        local s = Instance.new("Sound")
174
        s.Name = "Fire2"
175
        s.SoundId = "http://www.roblox.com/asset/?id=13775466"
176
        s.Volume = 1
177
        s.Pitch = 1
178
        s.Looped = false
179
        s.Parent = pm
180
        local s = Instance.new("Sound")
181
        s.Name = "Fire3"
182
        s.SoundId = "http://www.roblox.com/asset/?id=2767090"
183
        s.Volume = 1
184
        s.Pitch = 1
185
        s.Looped = false
186
        s.Parent = pm
187
        local s = Instance.new("Sound")
188
        s.Name = "Fire4"
189
        s.SoundId = "http://www.roblox.com/asset/?id=2800815"
190
        s.Volume = 1
191
        s.Pitch = 1
192
        s.Looped = false
193
        s.Parent = pm
194
        local s = Instance.new("Sound")
195
        s.Name = "Fire5"
196
        s.SoundId = "http://www.roblox.com/asset/?id=2974249"
197
        s.Volume = 1
198
        s.Pitch = 1
199
        s.Looped = false
200
        s.Parent = pm
201
        local p = Instance.new("Part")
202
        p.Name = "Source"
203
        p.formFactor = "Symmetric"
204
        p.Size = Vector3.new(1, 1, 1)
205
        p.Transparency = 1
206
        p.BrickColor = BrickColor.new("Really black")
207
        p.CanCollide = false
208
        p.Locked = true
209
        p.TopSurface = 0
210
        p.BottomSurface = 0
211
        p.Parent = model
212
        local m = Instance.new("SpecialMesh")
213
        m.MeshType = "Sphere"
214
        m.Scale = Vector3.new(1, 1, 1)
215
        m.Parent = p
216
        local w = Instance.new("Weld")
217
        w.Part0 = p
218
        w.Part1 = pm
219
        w.C0 = CFrame.new()
220
        w.C1 = CFrame.new(0, 1, 0)
221
        w.Parent = p
222
        local f = Instance.new("Fire")
223
        f.Enabled = false
224
        f.Name = "Fire"
225
        f.Heat = 0
226
        f.Size = 1
227
        f.Parent = p
228
        --for i, p in pairs(model.Handle:GetChildren()) do if p.className == "Sound" then p:Play() m = Instance.new("Message") m.Parent = model m.Text = p.Name wait(2) m:Remove() end end
229
end
230
 
231
 
232
function removeParts(format)
233
        if format == "hand" then
234
                if Player.Character:FindFirstChild(Name) ~= nil then
235
                        Player.Character[Name]:Remove()
236
                end
237
        elseif format == "holster" then
238
                if Player.Character:FindFirstChild(Name.. " (Holstered)") ~= nil then
239
                        Player.Character[Name.. " (Holstered)"]:Remove()
240
                end
241
        end
242
end
243
 
244
 
245
function SetAngle(Joint, Angle, Character)
246
        if Character == nil then return false end
247
        local Joints = {
248
                Character.Torso:FindFirstChild("Right Shoulder 2"),
249
                Character.Torso:FindFirstChild("Left Shoulder 2"),
250
                Character.Torso:FindFirstChild("Right Hip 2"),
251
                Character.Torso:FindFirstChild("Left Hip 2")
252
        }
253
        if Joints[Joint] == nil then return false end
254
        if Joint == 1 or Joint == 3 then
255
                Joints[Joint].DesiredAngle = Angle
256
        end
257
        if Joint == 2 or Joint == 4 then
258
                Joints[Joint].DesiredAngle = -Angle
259
        end
260
end
261
 
262
 
263
function ForceAngle(Joint, Angle, Character)
264
        if Character == nil then return false end
265
        local Joints = {
266
                Character.Torso:FindFirstChild("Right Shoulder 2"),
267
                Character.Torso:FindFirstChild("Left Shoulder 2"),
268
                Character.Torso:FindFirstChild("Right Hip 2"),
269
                Character.Torso:FindFirstChild("Left Hip 2")
270
        }
271
        if Joints[Joint] == nil then return false end
272
        if Joint == 1 or Joint == 3 then
273
                Joints[Joint].DesiredAngle = Angle
274
                Joints[Joint].CurrentAngle = Angle
275
        end
276
        if Joint == 2 or Joint == 4 then
277
                Joints[Joint].DesiredAngle = -Angle
278
                Joints[Joint].CurrentAngle = -Angle
279
        end
280
end
281
 
282
 
283
function SetSpeed(Joint, Speed, Character)
284
        if Character == nil then return false end
285
        local Joints = {
286
                Character.Torso:FindFirstChild("Right Shoulder 2"),
287
                Character.Torso:FindFirstChild("Left Shoulder 2"),
288
                Character.Torso:FindFirstChild("Right Hip 2"),
289
                Character.Torso:FindFirstChild("Left Hip 2")
290
        }
291
        if Joints[Joint] == nil then return false end
292
        Joints[Joint].MaxVelocity = Speed
293
end
294
 
295
 
296
function DisableLimb(Limb, Character)
297
        if Character == nil then return false end
298
        if Character:FindFirstChild("Torso") == nil then return false end
299
        local Joints = {
300
                Character.Torso:FindFirstChild("Right Shoulder"),
301
                Character.Torso:FindFirstChild("Left Shoulder"),
302
                Character.Torso:FindFirstChild("Right Hip"),
303
                Character.Torso:FindFirstChild("Left Hip")
304
        }
305
        local Limbs = {
306
                Character:FindFirstChild("Right Arm"),
307
                Character:FindFirstChild("Left Arm"),
308
                Character:FindFirstChild("Right Leg"),
309
                Character:FindFirstChild("Left Leg")
310
        }
311
        if Joints[Limb] == nil then return false end
312
        if Limbs[Limb] == nil then return false end
313
        local Joint = Instance.new("Motor")
314
        Joint.Parent = Character.Torso
315
        Joint.Part0 = Character.Torso
316
        Joint.Part1 = Limbs[Limb]
317
        if Limb == 1 then
318
                Joint.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
319
                Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
320
                Joint.Name = "Right Shoulder 2"
321
        elseif Limb == 2 then
322
                Joint.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
323
                Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
324
                Joint.Name = "Left Shoulder 2"
325
        elseif Limb == 3 then
326
                Joint.C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
327
                Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
328
                Joint.Name = "Right Hip 2"
329
        elseif Limb == 4 then
330
                Joint.C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
331
                Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
332
                Joint.Name = "Left Hip 2"
333
        end
334
        Joint.MaxVelocity = Joints[Limb].MaxVelocity
335
        Joint.CurrentAngle = Joints[Limb].CurrentAngle
336
        Joint.DesiredAngle = Joints[Limb].DesiredAngle
337
        Joints[Limb]:Remove()
338
end
339
 
340
 
341
function ResetLimbCFrame(Limb, Character)
342
        if Character == nil then return false end
343
        if Character.Parent == nil then return false end
344
        if Character:FindFirstChild("Torso") == nil then return false end
345
        local Joints = {
346
                Character.Torso:FindFirstChild("Right Shoulder 2"),
347
                Character.Torso:FindFirstChild("Left Shoulder 2"),
348
                Character.Torso:FindFirstChild("Right Hip 2"),
349
                Character.Torso:FindFirstChild("Left Hip 2")
350
        }
351
        local Limbs = {
352
                Character:FindFirstChild("Right Arm"),
353
                Character:FindFirstChild("Left Arm"),
354
                Character:FindFirstChild("Right Leg"),
355
                Character:FindFirstChild("Left Leg")
356
        }
357
        if Joints[Limb] == nil then return false end
358
        if Limbs[Limb] == nil then return false end
359
        if Limb == 1 then
360
                Joints[Limb].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
361
                Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
362
        elseif Limb == 2 then
363
                Joints[Limb].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
364
                Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
365
        elseif Limb == 3 then
366
                Joints[Limb].C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
367
                Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
368
        elseif Limb == 4 then
369
                Joints[Limb].C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
370
                Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
371
        end
372
end
373
 
374
 
375
function EnableLimb(Limb, Character)
376
        if Character == nil then return false end
377
        if Character:FindFirstChild("Torso") == nil then return false end
378
        local Joints = {
379
                Character.Torso:FindFirstChild("Right Shoulder 2"),
380
                Character.Torso:FindFirstChild("Left Shoulder 2"),
381
                Character.Torso:FindFirstChild("Right Hip 2"),
382
                Character.Torso:FindFirstChild("Left Hip 2")
383
        }
384
        local Limbs = {
385
                Character:FindFirstChild("Right Arm"),
386
                Character:FindFirstChild("Left Arm"),
387
                Character:FindFirstChild("Right Leg"),
388
                Character:FindFirstChild("Left Leg")
389
        }
390
        if Joints[Limb] == nil then return false end
391
        if Limbs[Limb] == nil then return false end
392
        if Limb == 1 then
393
                Joints[Limb].Name = "Right Shoulder"
394
        elseif Limb == 2 then
395
                Joints[Limb].Name = "Left Shoulder"
396
        elseif Limb == 3 then
397
                Joints[Limb].Name = "Right Hip"
398
        elseif Limb == 4 then
399
                Joints[Limb].Name = "Left Hip"
400
        end
401
        Animate = Character:FindFirstChild("Animate")
402
        if Animate == nil then return false end
403
        Animate = Animate:Clone()
404
        Character.Animate:Remove()
405
        Animate.Parent = Character
406
end
407
 
408
 
409
function Weld(x, y)
410
        local weld = Instance.new("Weld")
411
        weld.Part0 = x
412
        weld.Part1 = y
413
        CJ = CFrame.new(x.Position)
414
        C0 = x.CFrame:inverse() * CJ
415
        C1 = y.CFrame:inverse() * CJ
416
        weld.C0 = C0
417
        weld.C1 = C1
418
        weld.Parent = x
419
end
420
 
421
 
422
function tagHumanoid(humanoid)
423
        local tag = Instance.new("ObjectValue")
424
        tag.Name = "creator"
425
        tag.Value = Player
426
        tag.Parent = humanoid
427
        local tag = Instance.new("StringValue")
428
        tag.Name = "creatorType1"
429
        tag.Value = Name
430
        tag.Parent = humanoid
431
        local tag = Instance.new("StringValue")
432
        tag.Name = "creatorType2"
433
        tag.Value = "killed with magic"
434
        tag.Parent = humanoid
435
end
436
 
437
 
438
function untagHumanoid(humanoid)
439
        if humanoid ~= nil then
440
                local tag = humanoid:FindFirstChild("creator")
441
                if tag ~= nil then
442
                        tag:Remove()
443
                end
444
                local tag = humanoid:FindFirstChild("creatorType1")
445
                if tag ~= nil then
446
                        tag:Remove()
447
                end
448
                local tag = humanoid:FindFirstChild("creatorType2")
449
                if tag ~= nil then
450
                        tag:Remove()
451
                end
452
        end
453
end
454
 
455
 
456
function onButton1Down(mouse)
457
        if selected == false or canFire == false or power <= 0 then return end
458
        if Player.Character == nil then return end
459
        if Player.Character:FindFirstChild("Humanoid") == nil then return end
460
        if Player.Character.Humanoid.Health <= 0 then return end
461
        if Player.Character:FindFirstChild(Name) == nil then return end
462
        if Player.Character[Name]:FindFirstChild("Handle") == nil then return end
463
        if Player.Character[Name]:FindFirstChild("Source") == nil then return end
464
        if mouse == nil then return end
465
        Button1Down = true
466
        if spell == 1 then
467
                --Arefu Slash, projectile class. Uses hardened air particles to create razor-sharp projectiles.
468
                canFire = false
469
                Player.Character[Name].Source.Mesh.MeshType = "Sphere"
470
                Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
471
                Player.Character[Name].Source.Transparency = 0.25
472
                Player.Character[Name].Source.BrickColor = BrickColor.new("Bright green")
473
                Player.Character[Name].Source.Fire.Enabled = true
474
                Player.Character[Name].Source.Fire.Heat = math.random(5, 10)
475
                Player.Character[Name].Source.Fire.Size = math.random(5, 10)
476
                Player.Character[Name].Source.Fire.Color = Color3.new(0, 1, 0)
477
                Player.Character[Name].Source.Fire.SecondaryColor = Color3.new(1, 1, 1)
478
                while Button1Down == true do
479
                        if power <= 0 then break end
480
                        coroutine.resume(coroutine.create(function()
481
                                for i = 0, 1, 0.1 do
482
                                        Player.Character[Name].Source.Mesh.Scale = (Vector3.new(i, i, i) * 5) + Vector3.new(1, 1, 1)
483
                                        Player.Character[Name].Source.Transparency = i
484
                                        wait()
485
                                end
486
                                Player.Character[Name].Source.Transparency = 1
487
                                Player.Character[Name].Source.Fire.Enabled = false
488
                        end))
489
                        Player.Character[Name].Handle.Fire2.Looped = false
490
                        Player.Character[Name].Handle.Fire2.Volume = 1
491
                        Player.Character[Name].Handle.Fire2.Pitch = 1
492
                        Player.Character[Name].Handle.Fire2:Play()
493
                        power = power - 1
494
                        local air = Instance.new("Part")
495
                        air.Name = "Air"
496
                        air.formFactor = "Symmetric"
497
                        air.Size = Vector3.new(1, 1, 2)
498
                        air.TopSurface = "Smooth"
499
                        air.BottomSurface = "Smooth"
500
                        air.BrickColor = BrickColor.new("Institutional white")
501
                        air.CanCollide = false
502
                        air.Anchored = true
503
                        air.Transparency = math.random(0, 5) / 10
504
                        air.CFrame = CFrame.new(mouse.Hit.p + Vector3.new(math.random(-100, 100), math.random(-100, 100), math.random(-100, 100)), mouse.Hit.p)
505
                        air.Parent = workspace
506
                        air:BreakJoints()
507
                        local m = Instance.new("SpecialMesh")
508
                        m.MeshType = "Sphere"
509
                        m.Scale = Vector3.new(0.5, 0.5, 1)
510
                        m.Parent = air
511
                        coroutine.resume(coroutine.create(function()
512
                                while air.Parent ~= nil do
513
                                        air.CFrame = CFrame.new(air.CFrame.p  + (air.CFrame.lookVector * 5)) * CFrame.fromEulerAnglesXYZ(air.CFrame:toEulerAnglesXYZ())
514
                                        for _, model in pairs(game:GetService("Workspace"):GetChildren()) do
515
                                                if model.className == "Part" then
516
                                                        if (air.Position - model.Position).magnitude <= 5 and model.Anchored == false then
517
                                                                model.Velocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10))
518
                                                                if math.random(1, 10) == 1 then model:BreakJoints() end
519
                                                                air:Remove()
520
                                                                return
521
                                                        end
522
                                                elseif model.className == "Model" and model ~= Player.Character then
523
                                                        for _, x in pairs(model:GetChildren()) do
524
                                                                if x.className == "Part" then
525
                                                                        if (air.Position - x.Position).magnitude <= 5 and x.Anchored == false then
526
                                                                                x.Velocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10))
527
                                                                                if math.random(1, 10) == 1 then x:BreakJoints() end
528
                                                                                if model:FindFirstChild("Humanoid") ~= nil then
529
                                                                                        model.Humanoid:TakeDamage(5)
530
                                                                                        model.Humanoid.Sit = true
531
                                                                                end
532
                                                                                air:Remove()
533
                                                                                return
534
                                                                        end
535
                                                                end
536
                                                        end
537
                                                end
538
                                        end
539
                                        local shock = Instance.new("Part")
540
                                        shock.formFactor = "Symmetric"
541
                                        shock.Size = Vector3.new(1, 1, 1)
542
                                        shock.BrickColor = BrickColor.new("Institutional white")
543
                                        shock.Anchored = true
544
                                        shock.Name = "Shock Ring"
545
                                        shock.CanCollide = false
546
                                        shock.Parent = game:GetService("Workspace")
547
                                        local mesh = Instance.new("SpecialMesh")
548
                                        mesh.MeshType = "FileMesh"
549
                                        mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
550
                                        mesh.Scale = Vector3.new(1, 1, 1)
551
                                        mesh.Parent = shock
552
                                        shock.CFrame = CFrame.new(air.CFrame.p + (air.CFrame.lookVector * 10), air.CFrame.p + (air.CFrame.lookVector * 50)) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
553
                                        coroutine.resume(coroutine.create(function()
554
                                                for i = 0, 10 do
555
                                                        shock.Mesh.Scale = Vector3.new(i / 5, i, i / 5)
556
                                                        shock.Transparency = i / 10
557
                                                        wait()
558
                                                end
559
                                                shock:Remove()
560
                                        end))
561
                                        wait()
562
                                end
563
                        end))
564
                        coroutine.resume(coroutine.create(function(part)
565
                                wait(10)
566
                                part:Remove()
567
                        end), air)
568
                        wait()
569
                end
570
                canFire = true
571
        elseif spell == 2 then
572
                --Arefu Metoria, projectile class. Uses meteors.
573
                local position, target = mouse.Hit.p, mouse.Target
574
                if target == nil then return end
575
                if target.Parent == nil then return end
576
                canFire = false
577
                power = power - 50
578
                local offset = position - target.Position
579
                local size = math.random(10, 30)
580
                Player.Character[Name].Source.Mesh.MeshType = "Sphere"
581
                Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
582
                Player.Character[Name].Source.Transparency = 0
583
                Player.Character[Name].Source.BrickColor = BrickColor.new("Bright green")
584
                Player.Character[Name].Handle.Charge2.Looped = false
585
                Player.Character[Name].Handle.Charge2.Volume = 1
586
                Player.Character[Name].Handle.Charge2.Pitch = 0.35
587
                Player.Character[Name].Handle.Charge2:Play()
588
                local beam = Instance.new("Part")
589
                beam.BrickColor = BrickColor.new("Bright green")
590
                beam.TopSurface = 0
591
                beam.BottomSurface = 0
592
                beam.Size = Vector3.new(1, 1, 1)
593
                beam.Transparency = 0.5
594
                beam.Anchored = true
595
                beam.CanCollide = false
596
                beam.CFrame = CFrame.new(position)
597
                beam.Parent = game:GetService("Workspace")
598
                local mesh = Instance.new("CylinderMesh")
599
                mesh.Parent = beam
600
                for i = 0, 60, 1 do
601
                        local shine = Instance.new("Part")
602
                        shine.Name = "Shine"
603
                        shine.formFactor = "Symmetric"
604
                        shine.Shape = "Ball"
605
                        shine.CanCollide = false
606
                        shine.BrickColor = BrickColor.new("Bright green")
607
                        shine.TopSurface = 0
608
                        shine.BottomSurface = 0
609
                        shine.Size = Vector3.new(1, 1, 1)
610
                        shine.Transparency = 0.25
611
                        shine.CFrame = CFrame.new(Player.Character[Name].Source.Position + Vector3.new(math.random(-5, 5), math.random(-5, 5), math.random(-5, 5)))
612
                        shine.Parent = game:GetService("Workspace")
613
                        local force = Instance.new("BodyPosition")
614
                        force.D = 7000
615
                        force.P = 100000
616
                        force.maxForce = Vector3.new(math.huge, math.huge, math.huge)
617
                        force.position = Player.Character[Name].Source.Position
618
                        force.Parent = shine
619
                        coroutine.resume(coroutine.create(function(part1, part2) for i = 0, 10 do if part1 ~= nil and part2 ~= nil then part1.BodyPosition.position = part2.Position wait() end end part1:Remove() end), shine, Player.Character[Name].Source)
620
                        mesh.Scale = Vector3.new(size * (i / 60), 10000, size * (i / 60))
621
                        Player.Character[Name].Source.Mesh.Scale = Vector3.new(i / 10, i / 10, i / 10)
622
                        Player.Character[Name].Source.Transparency = Player.Character[Name].Source.Transparency - 0.015
623
                        wait()
624
                end
625
                for i = 0, 10 do
626
                        beam.Transparency = beam.Transparency + 0.1
627
                        Player.Character[Name].Source.Transparency = Player.Character[Name].Source.Transparency + 0.1
628
                        wait()
629
                end
630
                if beam ~= nil then beam:Remove() end
631
                Player.Character[Name].Source.Transparency = 1
632
                canFire = true
633
                local meteor = Instance.new("Part")
634
                meteor.BrickColor = BrickColor.new("Bright red")
635
                meteor.Name = "Meteor"
636
                meteor.CanCollide = true
637
                meteor.Locked = true
638
                meteor.formFactor = "Symmetric"
639
                meteor.Shape = "Ball"
640
                meteor.Size = Vector3.new(size, size, size)
641
                meteor.RotVelocity = Vector3.new(math.random(-1000, 1000), math.random(-1000, 1000), math.random(-1000, 1000))
642
                meteor.Parent = game:GetService("Workspace")
643
                meteor:BreakJoints()
644
                local fire = Instance.new("Fire")
645
                fire.Heat = 0
646
                fire.Size = 50
647
                fire.Parent = meteor
648
                local smoke = Instance.new("Smoke")
649
                smoke.RiseVelocity = 0
650
                smoke.Size = size + 3
651
                smoke.Color = Color3.new(50 / 255, 50 / 255, 50 / 255)
652
                smoke.Opacity = 0.5
653
                smoke.Parent = meteor
654
                local mesh = Instance.new("SpecialMesh")
655
                mesh.MeshType = "FileMesh"
656
                mesh.MeshId = "http://www.roblox.com/asset/?id=1290033"
657
                mesh.TextureId = "http://www.roblox.com/asset/?id=1290030"
658
                mesh.Scale = meteor.Size / 1.5
659
                mesh.VertexColor = Vector3.new(1, 0, 0)
660
                mesh.Parent = meteor
661
                for i = 5000, 0, -100 do
662
                        meteor.CFrame = CFrame.new((target.Position + offset) + Vector3.new(0, i, 0))
663
                        meteor.Velocity = Vector3.new(0, 0, 0)
664
                        wait()
665
                end
666
                meteor.CFrame = CFrame.new((target.Position + offset) + Vector3.new(0, size / 2, 0))
667
                delay(0.1, function() Weld(target, meteor) meteor.Velocity = Vector3.new(0, 0, 0) end)
668
                meteor.Anchored = true
669
                local s = Instance.new("Sound")
670
                s.SoundId = "rbxasset://sounds\\Launching rocket.wav"
671
                s.Pitch = (30 - size) / 25
672
                s.Parent = game:GetService("Workspace")
673
                s:Play()
674
                local shards = {}
675
                for i = 0, math.random(10, 30) do
676
                        local shard = Instance.new("Part")
677
                        shard.Name = "Ground Shard"
678
                        shard.Anchored = true
679
                        shard.Locked = true
680
                        shard.BrickColor = target.BrickColor
681
                        shard.Size = Vector3.new(size + 10, 2, size)
682
                        shard.CFrame = CFrame.new(meteor.Position - Vector3.new(0, size / 2, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(0), math.rad(math.random(0, 360)), math.rad(math.random(0, 25)))
683
                        shard.Parent = game:GetService("Workspace")
684
                        table.insert(shards, shard)
685
                end
686
                local new = Instance.new("Part")
687
                new.Name = "Meteor"
688
                new.Transparency = 1
689
                new.CanCollide = false
690
                new.Anchored = true
691
                new.CFrame = CFrame.new(meteor.Position)
692
                new.Parent = game:GetService("Workspace")
693
                local fire = Instance.new("Fire")
694
                fire.Heat = 50
695
                fire.Size = 50
696
                fire.Parent = new
697
                meteor.Fire:Remove()
698
                local shock = Instance.new("Part")
699
                shock.formFactor = "Symmetric"
700
                shock.Size = Vector3.new(1, 1, 1)
701
                shock.BrickColor = BrickColor.new("Institutional white")
702
                shock.Anchored = true
703
                shock.Name = "Shock Ring"
704
                shock.CanCollide = false
705
                shock.Parent = game:GetService("Workspace")
706
                local mesh = Instance.new("SpecialMesh")
707
                mesh.MeshType = "FileMesh"
708
                mesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
709
                mesh.Parent = shock
710
                local tilt1 = math.random(-10, 10)
711
                local tilt2 = math.random(-10, 10)
712
                local tiltChance = math.random(1, 3)
713
                for i = 0, 50 do
714
                        shock.Mesh.Scale = Vector3.new(i, i, i)
715
                        if tiltChance == 1 then
716
                                shock.CFrame = CFrame.new(meteor.Position - Vector3.new(0, meteor.Size.y / 3, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90 + tilt1), 0, 0)
717
                        elseif tiltChance == 2 then
718
                                shock.CFrame = CFrame.new(meteor.Position - Vector3.new(0, meteor.Size.y / 3, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90), math.rad(tilt2), 0)
719
                        elseif tiltChance == 3 then
720
                                shock.CFrame = CFrame.new(meteor.Position - Vector3.new(0, meteor.Size.y / 3, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90 + tilt1), math.rad(tilt2), 0)
721
                        end
722
                        wait()
723
                end
724
                for i = 0, 1, 0.1 do
725
                        shock.Transparency = i
726
                        wait()
727
                end
728
                shock:Remove()
729
                wait(math.random(1, 10))
730
                if new ~= nil then new:Remove() end
731
                if meteor == nil then return end
732
                local e = Instance.new("Explosion")
733
                e.BlastPressure = 100000
734
                e.Position = meteor.Position
735
                e.BlastRadius = meteor.Size.y * 2
736
                e.Parent = game:GetService("Workspace")
737
                local s = Instance.new("Sound")
738
                s.Name = "Explosion"
739
                s.Pitch = (30 - size) / 20
740
                s.SoundId = "http://www.roblox.com/asset/?id=2101148"
741
                s.Parent = game:GetService("Workspace")
742
                s:Play()
743
                for i = 0, math.random(2, 10) do
744
                        local size = math.random(1, 5)
745
                        local new = meteor:Clone()
746
                        if new:FindFirstChild("Weld") ~= nil then new.Weld:Remove() end
747
                        new.Size = Vector3.new(size, size, size)
748
                        new.Mesh.Scale = Vector3.new(size, size, size)
749
                        new.CanCollide = false
750
                        new.Anchored = false
751
                        new.CFrame = CFrame.new(meteor.Position + Vector3.new(math.random(-meteor.Size.x / 2, meteor.Size.x / 2), math.random(-meteor.Size.y / 2, meteor.Size.y / 2), math.random(-meteor.Size.z / 2, meteor.Size.z / 2))) * CFrame.fromEulerAnglesXYZ(math.random(0, 360), math.random(0, 360), math.random(0, 360))
752
                        new.Velocity = Vector3.new(math.random(-100, 100), math.random(10, 250), math.random(-100, 100))
753
                        new.RotVelocity = Vector3.new(math.random(-500, 500), math.random(-500, 500), math.random(-500, 500))
754
                        new.Smoke:Remove()
755
                        new.Parent = game:GetService("Workspace")
756
                end
757
                for i = 1, #shards do
758
                        if shards[i] ~= nil then
759
                                if math.random(1, 2) == 1 then
760
                                        shards[i]:Remove()
761
                                else
762
                                        shards[i].CanCollide = false
763
                                        shards[i].Anchored = false
764
                                        shards[i].RotVelocity = Vector3.new(math.random(-500, 500), math.random(-500, 500), math.random(-500, 500))
765
                                        shards[i].Velocity = Vector3.new(math.random(-100, 100), math.random(10, 250), math.random(-100, 100))
766
                                end
767
                        end
768
                end
769
                meteor:Remove()
770
        elseif spell == 3 then
771
                --Eccrando Bolt, energy class. Fires a charged bolt of energy gathered in your wand.
772
                canFire = false
773
                Player.Character[Name].Source.Mesh.MeshType = "Sphere"
774
                Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
775
                Player.Character[Name].Source.Transparency = 0
776
                Player.Character[Name].Source.BrickColor = BrickColor.new("New Yeller")
777
                Player.Character[Name].Handle.Charge1.Looped = false
778
                Player.Character[Name].Handle.Charge1.Volume = 1
779
                Player.Character[Name].Handle.Charge1.Pitch = 1
780
                Player.Character[Name].Handle.Charge1:Play()
781
                for i = 0, 10 do
782
                        local shine = Instance.new("Part")
783
                        shine.Name = "Shine"
784
                        shine.formFactor = "Symmetric"
785
                        shine.Shape = "Ball"
786
                        shine.CanCollide = false
787
                        shine.BrickColor = BrickColor.new("New Yeller")
788
                        shine.TopSurface = 0
789
                        shine.BottomSurface = 0
790
                        shine.Size = Vector3.new(1, 1, 1)
791
                        shine.Transparency = 0.25
792
                        shine.CFrame = CFrame.new(Player.Character[Name].Source.Position + Vector3.new(math.random(-5, 5), math.random(-5, 5), math.random(-5, 5)))
793
                        shine.Parent = game:GetService("Workspace")
794
                        local force = Instance.new("BodyPosition")
795
                        force.D = 7000
796
                        force.P = 100000
797
                        force.maxForce = Vector3.new(math.huge, math.huge, math.huge)
798
                        force.position = Player.Character[Name].Source.Position
799
                        force.Parent = shine
800
                        coroutine.resume(coroutine.create(function(part1, part2) for i = 0, 10 do if part1 ~= nil and part2 ~= nil then part1.BodyPosition.position = part2.Position wait() end end part1:Remove() end), shine, Player.Character[Name].Source)
801
                        Player.Character[Name].Source.Mesh.Scale = Vector3.new(i / 7.5, i / 7.5, i / 7.5)
802
                        wait()
803
                        power = power - 1
804
                end
805
                for i = 10, 20 do
806
                        Player.Character[Name].Source.Mesh.Scale = Vector3.new(i / 7.5, i / 7.5, i / 7.5)
807
                        power = power - 1
808
                        wait()
809
                end
810
                local first = true
811
                while Button1Down == true or first == true do
812
                        first = false
813
                        if power < 0 then break end
814
                        power = power - 5
815
                        if Player.Character == nil then break end
816
                        if Player.Character:FindFirstChild("Humanoid") == nil then break end
817
                        if Player.Character.Humanoid.Health <= 0 then break end
818
                        if Player.Character:FindFirstChild(Name) == nil then break end
819
                        if Player.Character[Name]:FindFirstChild("Handle") == nil then break end
820
                        if Player.Character[Name]:FindFirstChild("Source") == nil then break end
821
                        if selected == false then break end
822
                        Player.Character[Name].Handle.Fire1.Looped = false
823
                        Player.Character[Name].Handle.Fire1.Volume = 1
824
                        Player.Character[Name].Handle.Fire1.Pitch = 1
825
                        Player.Character[Name].Handle.Fire1:Play()
826
                        local position = mouse.Hit.p
827
                        local e = Instance.new("Explosion")
828
                        e.BlastPressure = 500000
829
                        e.BlastRadius = 10
830
                        e.Position = position
831
                        e.Parent = game:GetService("Workspace")
832
                        for i = 1, math.random(5, 25) do
833
                                local shine = Instance.new("Part")
834
                                shine.Name = "Shine"
835
                                shine.formFactor = "Symmetric"
836
                                shine.Shape = "Block"
837
                                shine.CanCollide = false
838
                                shine.Anchored = true
839
                                shine.BrickColor = BrickColor.new("New Yeller")
840
                                shine.TopSurface = 0
841
                                shine.BottomSurface = 0
842
                                shine.Size = Vector3.new(1, 1, 1)
843
                                shine.Transparency = 0.25
844
                                shine.CFrame = CFrame.new(mouse.Hit.p)
845
                                shine.Parent = game:GetService("Workspace")
846
                                local mesh = Instance.new("SpecialMesh")
847
                                mesh.MeshType = "Brick"
848
                                local random = math.random(3, 10) / 10
849
                                mesh.Scale = Vector3.new(random, random, random)
850
                                mesh.Parent = shine
851
                                coroutine.resume(coroutine.create(function(part)
852
                                        for i = 0.25 * 25, 25 do
853
                                                part.Transparency = i / 25
854
                                                part.CFrame = CFrame.new(part.CFrame.p + Vector3.new(math.random(-10, 10) / 10, math.random(-10, 10) / 10, math.random(-10, 10) / 10)) * CFrame.fromEulerAnglesXYZ(math.rad(math.random(0, 360)), math.rad(math.random(0, 360)), math.rad(math.random(0, 360)))
855
                                                wait(math.random(1, 5) / 100)
856
                                        end
857
                                        part:Remove()
858
                                end), shine)
859
                        end
860
                        for i = 1, math.random(2, 5) do
861
                                local shine = Instance.new("Part")
862
                                shine.Name = "Shine"
863
                                shine.formFactor = "Symmetric"
864
                                shine.Shape = "Block"
865
                                shine.CanCollide = false
866
                                shine.Anchored = true
867
                                shine.BrickColor = BrickColor.new("New Yeller")
868
                                shine.TopSurface = 0
869
                                shine.BottomSurface = 0
870
                                shine.Size = Vector3.new(1, 1, 1)
871
                                shine.Transparency = 0.25
872
                                shine.CFrame = CFrame.new(mouse.Hit.p + Vector3.new(math.random(-10, 10) / 10, math.random(-10, 10) / 10, math.random(-10, 10) / 10))
873
                                shine.Parent = game:GetService("Workspace")
874
                                local mesh = Instance.new("SpecialMesh")
875
                                mesh.MeshType = "Sphere"
876
                                local random = math.random(3, 10) / 10
877
                                mesh.Scale = Vector3.new(random, random, random)
878
                                mesh.Parent = shine
879
                                coroutine.resume(coroutine.create(function(part)
880
                                        for i = 0.25, 1, 0.05 do
881
                                                part.Transparency = i
882
                                                part.Mesh.Scale = part.Mesh.Scale + Vector3.new(1, 1, 1)
883
                                                wait()
884
                                        end
885
                                        part:Remove()
886
                                end), shine)
887
                        end
888
                        local trail = Instance.new("Part")
889
                        trail.BrickColor = BrickColor.new("New Yeller")
890
                        trail.TopSurface = 0
891
                        trail.BottomSurface = 0
892
                        trail.Size = Vector3.new(1, 1, 1)
893
                        trail.Transparency = 0.4
894
                        trail.Anchored = true
895
                        trail.CanCollide = false
896
                        trail.CFrame = CFrame.new((Player.Character[Name].Source.Position + position) / 2, position)
897
                        trail.Parent = game:GetService("Workspace")
898
                        local mesh = Instance.new("SpecialMesh")
899
                        mesh.MeshType = "Brick"
900
                        mesh.Scale = Vector3.new(math.random(2, 5) / 10, math.random(2, 5) / 10, (position - Player.Character[Name].Source.Position).magnitude)
901
                        mesh.Parent = trail
902
                        coroutine.resume(coroutine.create(function(part) wait(0.1) for i = 1, 10 do part.Transparency = part.Transparency + 0.1 wait(0.1) end part:Remove() end), trail)
903
                        coroutine.resume(coroutine.create(function()
904
                                for i = 10, 0, -1 do
905
                                        Player.Character[Name].Source.Transparency = (10 - i) / 10
906
                                        Player.Character[Name].Source.Mesh.Scale = Vector3.new(i / 1.5, i / 1.5, i / 1.5)
907
                                        wait()
908
                                end
909
                        end))
910
                        wait(0.3)
911
                end
912
                Player.Character[Name].Source.Transparency = 1
913
                canFire = true
914
        elseif spell == 4 then
915
                --Eccrando Strike, energy class. Use the clouds to your advantage and fire bolts of lightning at the ground.
916
                while Button1Down == true do
917
                        if Player.Character == nil then break end
918
                        if Player.Character:FindFirstChild("Humanoid") == nil then break end
919
                        if Player.Character.Humanoid.Health <= 0 then break end
920
                        if Player.Character:FindFirstChild(Name) == nil then break end
921
                        if Player.Character[Name]:FindFirstChild("Handle") == nil then break end
922
                        if Player.Character[Name]:FindFirstChild("Source") == nil then break end
923
                        if selected == false then break end
924
                        while power <= 25 and Button1Down == true do
925
                                wait()
926
                        end
927
                        if power <= 0 then break end
928
                        canFire = false
929
                        Player.Character[Name].Source.Mesh.MeshType = "Sphere"
930
                        Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
931
                        Player.Character[Name].Source.Transparency = 0
932
                        Player.Character[Name].Source.BrickColor = BrickColor.new("New Yeller")
933
                        Player.Character[Name].Handle.Charge1.Looped = false
934
                        Player.Character[Name].Handle.Charge1.Volume = 1
935
                        Player.Character[Name].Handle.Charge1.Pitch = 0.4
936
                        Player.Character[Name].Handle.Charge1:Play()
937
                        for i = 0, 50 do
938
                                local shine = Instance.new("Part")
939
                                shine.Name = "Shine"
940
                                shine.formFactor = "Symmetric"
941
                                shine.Shape = "Ball"
942
                                shine.CanCollide = false
943
                                shine.BrickColor = BrickColor.new("New Yeller")
944
                                shine.TopSurface = 0
945
                                shine.BottomSurface = 0
946
                                shine.Size = Vector3.new(1, 1, 1)
947
                                shine.Transparency = 0.25
948
                                shine.CFrame = CFrame.new(Player.Character[Name].Source.Position + Vector3.new(math.random(-5, 5), math.random(-5, 5), math.random(-5, 5)))
949
                                shine.Parent = game:GetService("Workspace")
950
                                local force = Instance.new("BodyPosition")
951
                                force.D = 7000
952
                                force.P = 100000
953
                                force.maxForce = Vector3.new(math.huge, math.huge, math.huge)
954
                                force.position = Player.Character[Name].Source.Position
955
                                force.Parent = shine
956
                                coroutine.resume(coroutine.create(function(part1, part2) for i = 0, 10 do if part1 ~= nil and part2 ~= nil then part1.BodyPosition.position = part2.Position wait() end end part1:Remove() end), shine, Player.Character[Name].Source)
957
                                Player.Character[Name].Source.Mesh.Scale = Vector3.new(i / 7.5, i / 7.5, i / 7.5)
958
                                power = power - 1
959
                                wait()
960
                        end
961
                        power = power - 10
962
                        if math.random(1, 2) == 1 then id = "Thunder" else id = "Lightning" end
963
                        local s = Instance.new("Sound")
964
                        s.Volume = math.random(10, 50) / 10
965
                        s.SoundId = "rbxasset://sounds\\Halloween" ..id.. ".wav"
966
                        s.Pitch = math.random(9, 11) / 10
967
                        s.Parent = game:GetService("Workspace")
968
                        s:Play()
969
                        if math.random(1, 2) == 1 then id = "Thunder" else id = "Lightning" end
970
                        local s = Instance.new("Sound")
971
                        s.Volume = math.random(1, 10) / 10
972
                        s.SoundId = "rbxasset://sounds\\Halloween" ..id.. ".wav"
973
                        s.Pitch = math.random(1, 30) / 10
974
                        s.Parent = game:GetService("Workspace")
975
                        s:Play()
976
                        if selected == false then break end
977
                        local e = Instance.new("Explosion")
978
                        e.BlastPressure = 1000000
979
                        e.BlastRadius = 25
980
                        e.Position = mouse.Hit.p
981
                        e.Parent = game:GetService("Workspace")
982
                        local pos = (mouse.Hit.p + Vector3.new(math.random(-100, 100), 1000, math.random(-100, 100)))
983
                        local trail = Instance.new("Part")
984
                        trail.BrickColor = BrickColor.new("New Yeller")
985
                        trail.TopSurface = 0
986
                        trail.BottomSurface = 0
987
                        trail.Size = Vector3.new(1, 1, 1)
988
                        trail.Transparency = 0.4
989
                        trail.Anchored = true
990
                        trail.CanCollide = false
991
                        trail.CFrame = CFrame.new((pos + mouse.Hit.p) / 2, mouse.Hit.p)
992
                        trail.Parent = game:GetService("Workspace")
993
                        local mesh = Instance.new("SpecialMesh")
994
                        mesh.MeshType = "Brick"
995
                        mesh.Scale = Vector3.new(math.random(40, 50) / 10, math.random(40, 50) / 10, (mouse.Hit.p - pos).magnitude + 10)
996
                        mesh.Parent = trail
997
                        coroutine.resume(coroutine.create(function(part) wait(0.1) for i = 1, 10 do part.Transparency = part.Transparency + 0.1 wait(0.1) end part:Remove() end), trail)
998
                        for i = 10, 0, -1 do
999
                                Player.Character[Name].Source.Transparency = Player.Character[Name].Source.Transparency + 0.1
1000
                                Player.Character[Name].Source.Mesh.Scale = Vector3.new(i / 1.5, i / 1.5, i / 1.5)
1001
                                wait()
1002
                        end
1003
                        Player.Character[Name].Source.Transparency = 1
1004
                        wait(0.1)
1005
                        canFire = true
1006
                end
1007
        elseif spell == 5 then
1008
                --Thius Dae, health-based class. Seep life from your enemies to save yourself. Works as a general defense against multiple enemies.
1009
                canFire = false
1010
                Player.Character[Name].Source.Mesh.MeshType = "Brick"
1011
                Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
1012
                Player.Character[Name].Source.Transparency = 0.25
1013
                Player.Character[Name].Source.BrickColor = BrickColor.new("Really black")
1014
                Player.Character[Name].Handle.Charge4.Looped = true
1015
                Player.Character[Name].Handle.Charge4.Volume = 1
1016
                Player.Character[Name].Handle.Charge4.Pitch = 1
1017
                Player.Character[Name].Handle.Charge4:Play()
1018
                for i = 0, 10 do
1019
                        Player.Character[Name].Source.Mesh.Scale = Player.Character[Name].Source.Mesh.Scale * 1.11
1020
                        Player.Character[Name].Source.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(math.random(0, 360)), math.rad(math.random(0, 360)), math.rad(math.random(0, 360)))
1021
                        wait()
1022
                end
1023
                for i = 0, math.huge, 0.1 do
1024
                        if Button1Down == false then break end
1025
                        if Player.Character == nil then break end
1026
                        if Player.Character:FindFirstChild("Humanoid") == nil then break end
1027
                        if Player.Character.Humanoid.Health <= 0 then break end
1028
                        if Player.Character:FindFirstChild(Name) == nil then break end
1029
                        if Player.Character[Name]:FindFirstChild("Handle") == nil then break end
1030
                        if Player.Character[Name]:FindFirstChild("Source") == nil then break end
1031
                        if power <= 0 then break end
1032
                        local endstr = string.sub(tostring(i), string.len(tostring(i)), string.len(tostring(i)))
1033
                        if endstr == "0" or endstr == "2" or endstr == "4" or endstr == "6" or endstr == "8" then
1034
                                power = power - 1
1035
                        end
1036
                        Player.Character[Name].Source.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(math.random(0, 360)), math.rad(math.random(0, 360)), math.rad(math.random(0, 360)))
1037
                        Player.Character[Name].Source.Mesh.Scale = Vector3.new(math.sin(i) + 3, math.sin(i) + 3, math.sin(i) + 3)
1038
                        local shine = Instance.new("Part")
1039
                        shine.Name = "Shine"
1040
                        shine.formFactor = "Symmetric"
1041
                        shine.Shape = "Block"
1042
                        shine.CanCollide = false
1043
                        shine.Anchored = true
1044
                        shine.BrickColor = BrickColor.new("Really black")
1045
                        shine.TopSurface = 0
1046
                        shine.BottomSurface = 0
1047
                        shine.Size = Vector3.new(1, 1, 1)
1048
                        shine.Transparency = 0.25
1049
                        shine.CFrame = CFrame.new(Player.Character[Name].Source.Position)
1050
                        shine.Parent = game:GetService("Workspace")
1051
                        local mesh = Instance.new("SpecialMesh")
1052
                        mesh.MeshType = "Brick"
1053
                        local random = math.random(3, 10) / 10
1054
                        mesh.Scale = Vector3.new(random, random, random)
1055
                        mesh.Parent = shine
1056
                        coroutine.resume(coroutine.create(function(part)
1057
                                for i = 0.25 * 25, 25 do
1058
                                        part.Transparency = i / 25
1059
                                        part.CFrame = CFrame.new(part.CFrame.p + Vector3.new(math.random(-10, 10) / 10, math.random(-10, 10) / 10, math.random(-10, 10) / 10)) * CFrame.fromEulerAnglesXYZ(math.rad(math.random(0, 360)), math.rad(math.random(0, 360)), math.rad(math.random(0, 360)))
1060
                                        wait(math.random(1, 5) / 100)
1061
                                end
1062
                                part:Remove()
1063
                        end), shine)
1064
                        for _, model in pairs(game:GetService("Workspace"):GetChildren()) do
1065
                                if model ~= Player.Character then
1066
                                        if model:FindFirstChild("Torso") ~= nil and model:FindFirstChild("Humanoid") ~= nil then
1067
                                                if (Player.Character.Torso.Position - model.Torso.Position).magnitude <= 25 then
1068
                                                        local trail = Instance.new("Part")
1069
                                                        trail.BrickColor = BrickColor.new("Really black")
1070
                                                        trail.TopSurface = 0
1071
                                                        trail.BottomSurface = 0
1072
                                                        trail.Size = Vector3.new(1, 1, 1)
1073
                                                        trail.Transparency = 0.4
1074
                                                        trail.Anchored = true
1075
                                                        trail.CanCollide = false
1076
                                                        trail.CFrame = CFrame.new((Player.Character[Name].Source.Position + model.Torso.Position) / 2, model.Torso.Position)
1077
                                                        trail.Parent = game:GetService("Workspace")
1078
                                                        local mesh = Instance.new("SpecialMesh")
1079
                                                        mesh.MeshType = "Brick"
1080
                                                        mesh.Scale = Vector3.new(math.random(2, 5) / 10, math.random(2, 5) / 10, (model.Torso.Position - Player.Character[Name].Source.Position).magnitude)
1081
                                                        mesh.Parent = trail
1082
                                                        coroutine.resume(coroutine.create(function(part) wait() part:Remove() end), trail)
1083
                                                        if model.Humanoid.Health > 0 then
1084
                                                                model.Humanoid:TakeDamage(1.25)
1085
                                                                Player.Character.Humanoid.Health = Player.Character.Humanoid.Health + (1.25 / 2)
1086
                                                        elseif model.Humanoid.Health <= 0 then
1087
                                                                model.Humanoid.Health = 0
1088
                                                                model.Humanoid.Name = "HumanoidAbsorbed"
1089
                                                                for _, part in pairs(model:GetChildren()) do
1090
                                                                        if part.className == "Part" then
1091
                                                                                local position = Instance.new("BodyPosition")
1092
                                                                                position.Name = "Thius Dae"
1093
                                                                                position.maxForce = Vector3.new(math.huge, math.huge, math.huge)
1094
                                                                                position.P = 1000
1095
                                                                                position.D = 50
1096
                                                                                position.Parent = part
1097
                                                                                position.position = Player.Character[Name].Source.Position
1098
                                                                                coroutine.resume(coroutine.create(function() while position.Parent ~= nil do position.position = Player.Character[Name].Source.Position part.CanCollide = false wait() end end))
1099
                                                                                coroutine.resume(coroutine.create(function() wait(3.5) position:Remove() end))
1100
                                                                        end
1101
                                                                end
1102
                                                                Player.Character.Humanoid.Health = Player.Character.Humanoid.Health + 5
1103
                                                                power = power + 25
1104
                                                                Player.Character[Name].Handle.Fire4.Looped = false
1105
                                                                Player.Character[Name].Handle.Fire4.Volume = 1
1106
                                                                Player.Character[Name].Handle.Fire4.Pitch = 1
1107
                                                                Player.Character[Name].Handle.Fire4:Play()
1108
                                                        end
1109
                                                end
1110
                                        end
1111
                                end
1112
                        end
1113
                        wait()
1114
                end
1115
                for i = 0, 25 do
1116
                        Player.Character[Name].Source.Mesh.Scale = Player.Character[Name].Source.Mesh.Scale / 1.15
1117
                        Player.Character[Name].Source.Weld.C0 = CFrame.fromEulerAnglesXYZ(math.rad(math.random(0, 360)), math.rad(math.random(0, 360)), math.rad(math.random(0, 360)))
1118
                        Player.Character[Name].Handle.Charge4.Volume = (25 - i) / 25
1119
                        wait()
1120
                end
1121
                Player.Character[Name].Handle.Charge4:Stop()
1122
                Player.Character[Name].Source.Transparency = 1
1123
                Player.Character[Name].Source.Weld.C0 = CFrame.new()
1124
                canFire = true
1125
        elseif spell == 6 then
1126
                --Thius Heed, health-based class. Heal people around you and sheild them.
1127
                canFire = false
1128
                Player.Character[Name].Source.Mesh.MeshType = "Sphere"
1129
                Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
1130
                Player.Character[Name].Source.Transparency = 0.25
1131
                Player.Character[Name].Source.BrickColor = BrickColor.new("Institutional white")
1132
                Player.Character[Name].Source.Fire.Enabled = true
1133
                Player.Character[Name].Source.Fire.Heat = 10
1134
                Player.Character[Name].Source.Fire.Size = 1
1135
                Player.Character[Name].Source.Fire.Color = Color3.new(1, 1, 1)
1136
                Player.Character[Name].Source.Fire.SecondaryColor = Color3.new(1, 1, 1)
1137
                Player.Character[Name].Handle.Shine.Looped = true
1138
                Player.Character[Name].Handle.Shine.Volume = 1
1139
                Player.Character[Name].Handle.Shine.Pitch = 1
1140
                Player.Character[Name].Handle.Shine:Play()
1141
                for i = 0, 5 do
1142
                        Player.Character[Name].Source.Mesh.Scale = Player.Character[Name].Source.Mesh.Scale * 1.2
1143
                        Player.Character[Name].Source.Fire.Size = Player.Character[Name].Source.Fire.Size * 1.2
1144
                        wait()
1145
                end
1146
                local heed = Instance.new("ForceField")
1147
                heed.Name = "HeedShield"
1148
                for i = 0, math.huge, 0.1 do
1149
                        if Button1Down == false then break end
1150
                        if Player.Character == nil then break end
1151
                        if Player.Character:FindFirstChild("Humanoid") == nil then break end
1152
                        if Player.Character.Humanoid.Health <= 0 then break end
1153
                        if Player.Character:FindFirstChild(Name) == nil then break end
1154
                        if Player.Character[Name]:FindFirstChild("Handle") == nil then break end
1155
                        if Player.Character[Name]:FindFirstChild("Source") == nil then break end
1156
                        if power <= 0 then break end
1157
                        local endstr = string.sub(tostring(i), string.len(tostring(i)), string.len(tostring(i)))
1158
                        if endstr == "0" or endstr == "2" or endstr == "4" or endstr == "6" or endstr == "8" then
1159
                                power = power - 1
1160
                        end
1161
                        Player.Character[Name].Source.Mesh.Scale = Vector3.new(math.sin(i) + 3, math.sin(i) + 3, math.sin(i) + 3)
1162
                        Player.Character[Name].Source.Fire.Size = math.sin(i) + 10
1163
                        Player.Character[Name].Source.Fire.Heat = math.sin(i) + 10
1164
                        for _, model in pairs(game:GetService("Workspace"):GetChildren()) do
1165
                                if model:FindFirstChild("Torso") ~= nil and model:FindFirstChild("Humanoid") ~= nil then
1166
                                        if (Player.Character.Torso.Position - model.Torso.Position).magnitude <= 25 then
1167
                                                local trail = Instance.new("Part")
1168
                                                trail.BrickColor = BrickColor.new("Institutional white")
1169
                                                trail.TopSurface = 0
1170
                                                trail.BottomSurface = 0
1171
                                                trail.Size = Vector3.new(1, 1, 1)
1172
                                                trail.Transparency = 0.4
1173
                                                trail.Anchored = true
1174
                                                trail.CanCollide = false
1175
                                                trail.CFrame = CFrame.new((Player.Character[Name].Source.Position + model.Torso.Position) / 2, model.Torso.Position)
1176
                                                trail.Parent = game:GetService("Workspace")
1177
                                                local mesh = Instance.new("SpecialMesh")
1178
                                                mesh.MeshType = "Brick"
1179
                                                mesh.Scale = Vector3.new(math.random(2, 5) / 10, math.random(2, 5) / 10, (model.Torso.Position - Player.Character[Name].Source.Position).magnitude)
1180
                                                mesh.Parent = trail
1181
                                                coroutine.resume(coroutine.create(function(part) wait() part:Remove() end), trail)
1182
                                                model.Humanoid.Health = model.Humanoid.Health + 1.25
1183
                                                heed:Clone().Parent = model
1184
                                                coroutine.resume(coroutine.create(function(part) wait() part:Remove() end), model.HeedShield)
1185
                                        end
1186
                                end
1187
                        end
1188
                        wait()
1189
                end
1190
                for i = 0, 25 do
1191
                        Player.Character[Name].Source.Mesh.Scale = Player.Character[Name].Source.Mesh.Scale / 1.15
1192
                        Player.Character[Name].Source.Fire.Size = Player.Character[Name].Source.Fire.Size / 1.15
1193
                        Player.Character[Name].Source.Fire.Heat = Player.Character[Name].Source.Fire.Heat / 1.15
1194
                        Player.Character[Name].Handle.Shine.Volume = (25 - i) / 25
1195
                        wait()
1196
                end
1197
                Player.Character[Name].Handle.Shine:Stop()
1198
                Player.Character[Name].Source.Transparency = 1
1199
                Player.Character[Name].Source.Fire.Enabled = false
1200
                canFire = true
1201
        elseif spell == 7 then
1202
                --Combuscus Phore, fire/explosives class. A small explosion with a bit of magic makes to be a spectacular performance.
1203
                canFire = false
1204
                Player.Character[Name].Source.Mesh.MeshType = "Sphere"
1205
                Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
1206
                Player.Character[Name].Source.Transparency = 0.25
1207
                Player.Character[Name].Source.BrickColor = BrickColor.new("Really red")
1208
                Player.Character[Name].Source.Fire.Enabled = true
1209
                Player.Character[Name].Source.Fire.Heat = 10
1210
                Player.Character[Name].Source.Fire.Size = 10
1211
                Player.Character[Name].Source.Fire.Color = Color3.new(1, 0, 0)
1212
                Player.Character[Name].Source.Fire.SecondaryColor = Color3.new(1, 1, 1)
1213
                Player.Character[Name].Handle.Bolt.Looped = false
1214
                Player.Character[Name].Handle.Bolt.Volume = 1
1215
                Player.Character[Name].Handle.Bolt.Pitch = 1.5
1216
                Player.Character[Name].Handle.Bolt:Play()
1217
                power = power - 75
1218
                local shock = Instance.new("Part")
1219
                shock.formFactor = "Symmetric"
1220
                shock.Size = Vector3.new(1, 1, 1)
1221
                shock.BrickColor = BrickColor.new("Really red")
1222
                shock.Anchored = true
1223
                shock.Name = "Shock Ring"
1224
                shock.CanCollide = false
1225
                shock.Parent = game:GetService("Workspace")
1226
                local mesh = Instance.new("SpecialMesh")
1227
                mesh.MeshType = "FileMesh"
1228
                mesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
1229
                mesh.Parent = shock
1230
                local tilt1 = math.random(-10, 10)
1231
                local tilt2 = math.random(-10, 10)
1232
                local tiltChance = math.random(1, 3)
1233
                for i = 0, 25 do
1234
                        Player.Character[Name].Handle.Bolt.Pitch = Player.Character[Name].Handle.Bolt.Pitch - 0.1
1235
                        shock.Mesh.Scale =  Vector3.new(i, i, i) * (25 - i)
1236
                        if tiltChance == 1 then
1237
                                shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90 + tilt1), 0, 0)
1238
                        elseif tiltChance == 2 then
1239
                                shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90), math.rad(tilt2), 0)
1240
                        elseif tiltChance == 3 then
1241
                                shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90 + tilt1), math.rad(tilt2), 0)
1242
                        end
1243
                        Player.Character[Name].Source.Mesh.Scale = (Vector3.new(i, i, i) / 5) * (25 - i)
1244
                        Player.Character[Name].Source.Fire.Size = (i / 5) * (25 - i)
1245
                        Player.Character[Name].Source.Fire.Heat = (i / 5) * (25 - i)
1246
                        for _, model in pairs(game:GetService("Workspace"):GetChildren()) do
1247
                                if model.className == "Part" then
1248
                                        if (Player.Character.Torso.Position - model.Position).magnitude <= (i * (25 - i)) / 2 and model.Anchored == false then
1249
                                                model.Velocity = ((model.Position - Player.Character.Torso.Position) * (math.sin(i / 4) * 10)) + Vector3.new(0, 25, 0)
1250
                                                if math.random(1, 10) == 1 then model:BreakJoints() end
1251
                                        end
1252
                                elseif model.className == "Model" and model ~= Player.Character then
1253
                                        for _, x in pairs(model:GetChildren()) do
1254
                                                if x.className == "Part" then
1255
                                                        if (Player.Character.Torso.Position - x.Position).magnitude <= (i * (25 - i)) / 2 and x.Anchored == false then
1256
                                                                x.Velocity = ((x.Position - Player.Character.Torso.Position) * (math.sin(i / 4) * 10)) + Vector3.new(0, 25, 0)
1257
                                                                if math.random(1, 10) == 1 then x:BreakJoints() end
1258
                                                                if model:FindFirstChild("Humanoid") ~= nil then
1259
                                                                        model.Humanoid:TakeDamage(10)
1260
                                                                        model.Humanoid.Sit = true
1261
                                                                end
1262
                                                        end
1263
                                                end
1264
                                        end
1265
                                end
1266
                        end
1267
                        wait(0.03)
1268
                end
1269
                shock:Remove()
1270
                Player.Character[Name].Source.Transparency = 1
1271
                Player.Character[Name].Source.Fire.Enabled = false
1272
                canFire = true
1273
        elseif spell == 8 then
1274
                --Combuscus Burn, fire/explosives class. Basically, light things on fire.
1275
                canFire = false
1276
                Player.Character[Name].Source.Mesh.MeshType = "Sphere"
1277
                Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
1278
                Player.Character[Name].Source.BrickColor = BrickColor.new("Really red")
1279
                Player.Character[Name].Handle.Fire3.Looped = false
1280
                Player.Character[Name].Handle.Fire3.Volume = 1
1281
                Player.Character[Name].Handle.Fire3.Pitch = 1
1282
                Player.Character[Name].Handle.Fire3:Play()
1283
                Player.Character[Name].Handle.Fire4.Looped = false
1284
                Player.Character[Name].Handle.Fire4.Volume = 1
1285
                Player.Character[Name].Handle.Fire4.Pitch = 1
1286
                Player.Character[Name].Handle.Fire4:Play()
1287
                coroutine.resume(coroutine.create(function()
1288
                        for i = 0, 1, 0.1 do
1289
                                Player.Character[Name].Source.Mesh.Scale = (Vector3.new(i, i, i) * 5) + Vector3.new(1, 1, 1)
1290
                                Player.Character[Name].Source.Transparency = i
1291
                        wait()
1292
                        end
1293
                        Player.Character[Name].Source.Transparency = 1
1294
                end))
1295
                if mouse.Target == nil then return end
1296
                if mouse.Target.Parent == nil then return end
1297
                local function SetFire(target, offset)
1298
                        if target == nil then return end
1299
                        if offset == nil then offset = Vector3.new(0, 0, 0) end
1300
                        if target:getMass() > 3500 then return end
1301
                        if target.Name == "CombuscusBurnFire" then return end
1302
                        if target:FindFirstChild("CombuscusBurnFire") ~= nil then return end
1303
                        if target:FindFirstChild("ForceField") ~= nil then return end
1304
                        if target.Parent == nil then return end
1305
                        if target.Parent:FindFirstChild("ForceField") ~= nil then return end
1306
                        if target.Parent:FindFirstChild("HeedShield") ~= nil then return end
1307
                        local check = Instance.new("Model")
1308
                        check.Name = "CombuscusBurnFire"
1309
                        check.Parent = target
1310
                        delay(math.random(0.1, 2), function() if target ~= nil then target.Touched:connect(function(hit) if target:FindFirstChild("CombuscusBurnFire") ~= nil then SetFire(hit) end end) end end)
1311
                        local part = Instance.new("Part")
1312
                        part.Name = "CombuscusBurnFire"
1313
                        part.CanCollide = false
1314
                        part.Anchored = true
1315
                        part.formFactor = "Symmetric"
1316
                        part.Size = Vector3.new(1, 1, 1)
1317
                        part.TopSurface = 0
1318
                        part.BottomSurface = 0
1319
                        part.Transparency = 1
1320
                        part.Parent = game:GetService("Workspace")
1321
                        local fire = Instance.new("Fire")
1322
                        fire.Color = Color3.new(1, math.random(10, 30) / 100, 0)
1323
                        fire.SecondaryColor = Color3.new(1, 1, 1)
1324
                        fire.Size = math.random(4, 15)
1325
                        fire.Heat = fire.Size + 3
1326
                        fire.Parent = part
1327
                        local smoke = Instance.new("Smoke")
1328
                        smoke.Color = Color3.new(0.5, 0.5, 0.5)
1329
                        smoke.Size = fire.Size + 3
1330
                        smoke.RiseVelocity = fire.Heat / 5
1331
                        smoke.Opacity = math.random(1, 15) / 100
1332
                        smoke.Parent = part
1333
                        local sound = Instance.new("Sound")
1334
                        sound.SoundId = "http://www.roblox.com/asset/?id=31760113"
1335
                        sound.Volume = 1
1336
                        sound.Pitch = 1
1337
                        sound.Looped = true
1338
                        sound.Parent = part
1339
                        sound:Play()
1340
                        coroutine.resume(coroutine.create(function()
1341
                                for i = 1, math.random(100, 1000) do
1342
                                        if part.Parent == nil then break end
1343
                                        if target.Parent == nil then break end
1344
                                        if target.Parent.Parent == nil then break end
1345
                                        if target:FindFirstChild("CombuscusBurnFire") == nil then break end
1346
                                        if Player.Character == nil then break end
1347
                                        if Player.Character:FindFirstChild("Humanoid") == nil then break end
1348
                                        if Player.Character.Humanoid.Health <= 0 then break end
1349
                                        part.CFrame = CFrame.new(target.CFrame.p + offset)
1350
                                        if target.Parent:FindFirstChild("Humanoid") ~= nil then
1351
                                                target.Parent.Humanoid:TakeDamage(0.25)
1352
                                        end
1353
                                        if math.random(1, 100) == 1 then target:BreakJoints() end
1354
                                        if math.random(1, 25) == 1 and target.Anchored == false then target.BrickColor = BrickColor.new("Really black") end
1355
                                        if math.random(1, 50) == 1 and target.Anchored == false then target.Velocity = target.Velocity + Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)) end
1356
                                        wait()
1357
                                end
1358
                                for i = 1, 0, -0.05 do
1359
                                        sound.Volume = i
1360
                                        fire.Size = fire.Size / 1.025
1361
                                        fire.Heat = fire.Heat / 1.01
1362
                                        fire.Color = Color3.new(1 * i, 0.25 * i, 0)
1363
                                        fire.SecondaryColor = Color3.new(1 * i, 1 * i, 1 * i)
1364
                                        smoke.Size = smoke.Size / 1.05
1365
                                        smoke.RiseVelocity = smoke.RiseVelocity / 1.05
1366
                                        smoke.Opacity = smoke.Opacity / 1.05
1367
                                        wait()
1368
                                end
1369
                                sound:Stop()
1370
                                fire.Enabled = false
1371
                                smoke.Enabled = false
1372
                                if target ~= nil then if target:FindFirstChild("CombuscusBurnFire") ~= nil then target.CombuscusBurnFire:Remove() end end
1373
                                wait(3)
1374
                                part:Remove()
1375
                        end))
1376
                end
1377
                SetFire(mouse.Target, mouse.Hit.p - mouse.Target.CFrame.p)
1378
                canFire = true
1379
        elseif spell == 9 then
1380
                --Combuscus Vortex, fire/explosives class. A tornado in a can.
1381
                canFire = false
1382
                Player.Character[Name].Source.Mesh.MeshType = "Sphere"
1383
                Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
1384
                Player.Character[Name].Source.Transparency = 0.25
1385
                Player.Character[Name].Source.BrickColor = BrickColor.new("Really red")
1386
                Player.Character[Name].Source.Fire.Enabled = true
1387
                Player.Character[Name].Source.Fire.Heat = 10
1388
                Player.Character[Name].Source.Fire.Size = 10
1389
                Player.Character[Name].Source.Fire.Color = Color3.new(1, 0, 0)
1390
                Player.Character[Name].Source.Fire.SecondaryColor = Color3.new(1, 1, 1)
1391
                Player.Character[Name].Handle.Charge2.Looped = false
1392
                Player.Character[Name].Handle.Charge2.Volume = 1
1393
                Player.Character[Name].Handle.Charge2.Pitch = 0.125
1394
                Player.Character[Name].Handle.Charge2:Play()
1395
                power = power - 50
1396
                for i = 0, 75 do
1397
                        if math.random(1, 3) == 1 then
1398
                                local shock = Instance.new("Part")
1399
                                shock.formFactor = "Symmetric"
1400
                                shock.Size = Vector3.new(1, 1, 1)
1401
                                shock.BrickColor = BrickColor.new("Really red")
1402
                                shock.Anchored = true
1403
                                shock.Name = "Shock Ring"
1404
                                shock.CanCollide = false
1405
                                shock.Parent = game:GetService("Workspace")
1406
                                local mesh = Instance.new("SpecialMesh")
1407
                                mesh.MeshType = "FileMesh"
1408
                                mesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
1409
                                mesh.Parent = shock
1410
                                coroutine.resume(coroutine.create(function()
1411
                                        local tilt1 = math.random(-10, 10)
1412
                                        local tilt2 = math.random(-10, 10)
1413
                                        local tiltChance = math.random(1, 3)
1414
                                        local randomSize = math.random(-10, 10)
1415
                                        for x = 1, 25 do
1416
                                                shock.Mesh.Scale = Vector3.new(5 + x, 5 + x, 5 + (x / 5)) + Vector3.new(randomSize, randomSize, randomSize)
1417
                                                if tiltChance == 1 then
1418
                                                        shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0) + Vector3.new(0, x, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90 + (tilt1 / (25 - x))), 0, 0)
1419
                                                elseif tiltChance == 2 then
1420
                                                        shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0) + Vector3.new(0, x, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90), math.rad(tilt2 / (25 - x)), 0)
1421
                                                elseif tiltChance == 3 then
1422
                                                        shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0) + Vector3.new(0, x, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(90 + (tilt1 / (25 - x))), math.rad(tilt2 / (25 - x)), 0)
1423
                                                end
1424
                                                wait()
1425
                                        end
1426
                                end))
1427
                        end
1428
                        Player.Character[Name].Source.Mesh.Scale = Vector3.new(i, i, i) / 5
1429
                        Player.Character[Name].Source.Fire.Size = i / 5
1430
                        Player.Character[Name].Source.Fire.Heat = i / 5
1431
                        for _, model in pairs(game:GetService("Workspace"):GetChildren()) do
1432
                                if model.className == "Part" then
1433
                                        if (Player.Character.Torso.Position - model.Position).magnitude <= 50 and model.Anchored == false then
1434
                                                model.CanCollide = false
1435
                                                model.Transparency = 0.5
1436
                                                local Position = Instance.new("BodyPosition")
1437
                                                Position.maxForce = Vector3.new(math.huge, math.huge, math.huge)
1438
                                                Position.P = 100
1439
                                                Position.D = 10
1440
                                                Position.position = Player.Character.Torso.Position + Vector3.new(math.sin(i / (math.random(500, 750) / 100)) * (i / 2) + 4, (i / (math.random(800, 1200) / 100)) + 5, math.cos(i / (math.random(500, 750) / 100)) * (i / 2) + 4)
1441
                                                Position.Parent = model
1442
                                                coroutine.resume(coroutine.create(function() wait(0.1) Position:Remove() end))
1443
                                                if math.random(1, 10) == 1 then model:BreakJoints() end
1444
                                        end
1445
                                elseif model.className == "Model" and model ~= Player.Character then
1446
                                        for _, x in pairs(model:GetChildren()) do
1447
                                                if x.className == "Part" then
1448
                                                        if (Player.Character.Torso.Position - x.Position).magnitude <= 50 and x.Anchored == false then
1449
                                                                x.CanCollide = false
1450
                                                                local Position = Instance.new("BodyPosition")
1451
                                                                Position.maxForce = Vector3.new(math.huge, math.huge, math.huge)
1452
                                                                Position.P = 500
1453
                                                                Position.D = 10
1454
                                                                Position.position = Player.Character.Torso.Position + Vector3.new(math.sin(i / (math.random(500, 750) / 100)) * (i / 2) + 4, (i / (math.random(800, 1200) / 100)) + 7.5, math.cos(i / (math.random(500, 750) / 100)) * (i / 2) + 4)
1455
                                                                Position.Parent = x
1456
                                                                coroutine.resume(coroutine.create(function() wait(0.1) Position:Remove() end))
1457
                                                                if math.random(1, 10) == 1 then x:BreakJoints() end
1458
                                                                if model:FindFirstChild("Humanoid") ~= nil then
1459
                                                                        model.Humanoid:TakeDamage(10)
1460
                                                                        model.Humanoid.Sit = true
1461
                                                                end
1462
                                                        end
1463
                                                end
1464
                                        end
1465
                                end
1466
                        end
1467
                        wait(0.03)
1468
                end
1469
                Player.Character[Name].Handle.Fire2.Looped = false
1470
                Player.Character[Name].Handle.Fire2.Volume = 1
1471
                Player.Character[Name].Handle.Fire2.Pitch = 0.3
1472
                Player.Character[Name].Handle.Fire2:Play()
1473
                Player.Character[Name].Source.Fire.Enabled = false
1474
                for i = 0.25, 1, 0.05 do
1475
                        Player.Character[Name].Source.Transparency = i
1476
                        wait()
1477
                end
1478
                Player.Character[Name].Source.Transparency = 1
1479
                canFire = true
1480
        elseif spell == 10 then
1481
                --Combuscus Phore Nexus, fire/explosives class. Basically the outcome is similar to that of a nuclear warhead.
1482
                canFire = false
1483
                Player.Character[Name].Source.Mesh.MeshType = "Sphere"
1484
                Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
1485
                Player.Character[Name].Source.Transparency = 0.25
1486
                Player.Character[Name].Source.BrickColor = BrickColor.new("Really red")
1487
                Player.Character[Name].Source.Fire.Enabled = true
1488
                Player.Character[Name].Source.Fire.Heat = 10
1489
                Player.Character[Name].Source.Fire.Size = 10
1490
                Player.Character[Name].Source.Fire.Color = Color3.new(1, 0, 0)
1491
                Player.Character[Name].Source.Fire.SecondaryColor = Color3.new(1, 1, 1)
1492
                Player.Character[Name].Handle.Fire1.Looped = false
1493
                Player.Character[Name].Handle.Fire1.Volume = 1
1494
                Player.Character[Name].Handle.Fire1.Pitch = math.random(3, 6) / 10
1495
                local new = Player.Character[Name].Handle.Fire1:Clone()
1496
                new.Parent = game:GetService("Workspace")
1497
                new:Play()
1498
                Player.Character[Name].Handle.Charge3.Looped = false
1499
                Player.Character[Name].Handle.Charge3.Volume = 1
1500
                Player.Character[Name].Handle.Charge3.Pitch = math.random(15, 20) / 10
1501
                local new = Player.Character[Name].Handle.Charge3:Clone()
1502
                new.Parent = game:GetService("Workspace")
1503
                new:Play()
1504
                Player.Character[Name].Handle.Fire4.Looped = false
1505
                Player.Character[Name].Handle.Fire4.Volume = 1
1506
                Player.Character[Name].Handle.Fire4.Pitch = math.random(2, 4) / 10
1507
                local new = Player.Character[Name].Handle.Fire4:Clone()
1508
                new.Parent = game:GetService("Workspace")
1509
                new:Play()
1510
                power = power - 100
1511
                local shock = Instance.new("Part")
1512
                shock.formFactor = "Symmetric"
1513
                shock.Size = Vector3.new(1, 1, 1)
1514
                shock.BrickColor = BrickColor.new("Really red")
1515
                shock.Anchored = true
1516
                shock.Name = "Shock Ring"
1517
                shock.CanCollide = false
1518
                shock.Parent = game:GetService("Workspace")
1519
                local mesh = Instance.new("SpecialMesh")
1520
                mesh.MeshType = "FileMesh"
1521
                mesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
1522
                mesh.Parent = shock
1523
                local shock2 = shock:Clone()
1524
                shock2.Parent = game:GetService("Workspace")
1525
                local shock3 = shock:Clone()
1526
                shock3.Parent = game:GetService("Workspace")
1527
                local shockAngle = CFrame.fromEulerAnglesXYZ(math.rad(90 + math.random(-5, 5)), math.rad(math.random(-5, 5)), math.rad(math.random(-5, 5)))
1528
                local shock2Angle = CFrame.fromEulerAnglesXYZ(math.rad(90 + math.random(-5, 5)), math.rad(math.random(-5, 5)), math.rad(math.random(-5, 5)))
1529
                local shock3Angle = CFrame.fromEulerAnglesXYZ(math.rad(90 + math.random(-5, 5)), math.rad(math.random(-5, 5)), math.rad(math.random(-5, 5)))
1530
                local shock2Size = math.random(2, 3)
1531
                local shock3Size = math.random(4, 6)
1532
                for i = 0, 500, 10 do
1533
                        if string.sub(tostring(i), string.len(tostring(i)), string.len(tostring(i))) == "0" then
1534
                                local shock4 = Instance.new("Part")
1535
                                shock4.formFactor = "Symmetric"
1536
                                shock4.Size = Vector3.new(1, 1, 1)
1537
                                shock4.BrickColor = BrickColor.new("Really red")
1538
                                shock4.Anchored = true
1539
                                shock4.Name = "Shock Ring"
1540
                                shock4.CanCollide = false
1541
                                shock4.Parent = game:GetService("Workspace")
1542
                                shock4.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 2, 0)) * CFrame.fromEulerAnglesXYZ(math.rad(math.random(-25, 25)), math.rad(math.random(-25, 25)), math.rad(math.random(-25, 25)))
1543
                                local mesh = Instance.new("SpecialMesh")
1544
                                mesh.MeshType = "FileMesh"
1545
                                mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
1546
                                mesh.Parent = shock4
1547
                                coroutine.resume(coroutine.create(function(part)
1548
                                        for i = 0, 1, 0.05 do
1549
                                                part.Transparency = i
1550
                                                part.Mesh.Scale = Vector3.new(i * 25, i * 25, i * 25)
1551
                                                wait()
1552
                                        end
1553
                                        part:Remove()
1554
                                end), shock4)
1555
                        end
1556
                        shock.Transparency = i / 500
1557
                        shock2.Transparency = i / 500
1558
                        shock3.Transparency = i / 500
1559
                        Player.Character[Name].Source.Transparency = i / 250
1560
                        shock.Mesh.Scale = Vector3.new(i, i, i)
1561
                        shock2.Mesh.Scale = Vector3.new(i, i, i) / shock2Size
1562
                        shock3.Mesh.Scale = Vector3.new(i, i, i) / shock3Size
1563
                        shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0)) * shockAngle
1564
                        shock2.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0)) * shock2Angle
1565
                        shock3.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 3, 0)) * shock3Angle
1566
                        Player.Character[Name].Source.Mesh.Scale = (Vector3.new(i, i, i) / 15)
1567
                        Player.Character[Name].Source.Fire.Size = (i / 15)
1568
                        Player.Character[Name].Source.Fire.Heat = (i / 15)
1569
                        for _, model in pairs(game:GetService("Workspace"):GetChildren()) do
1570
                                if model.className == "Part" then
1571
                                        if (Player.Character.Torso.Position - model.Position).magnitude <= i / 2 and model.Anchored == false then
1572
                                                model.Velocity = (model.Position - Player.Character.Torso.Position) * 10 + Vector3.new(0, 25, 0)
1573
                                                if math.random(1, 10) == 1 then model:BreakJoints() end
1574
                                        end
1575
                                elseif model.className == "Model" and model ~= Player.Character then
1576
                                        for _, x in pairs(model:GetChildren()) do
1577
                                                if x.className == "Part" then
1578
                                                        if (Player.Character.Torso.Position - x.Position).magnitude <= i / 2 and x.Anchored == false then
1579
                                                                x.Velocity = (x.Position - Player.Character.Torso.Position) * 10 + Vector3.new(0, 25, 0)
1580
                                                                if math.random(1, 10) == 1 then x:BreakJoints() end
1581
                                                                if model:FindFirstChild("Humanoid") ~= nil then
1582
                                                                        model.Humanoid:TakeDamage(10)
1583
                                                                        model.Humanoid.Sit = true
1584
                                                                end
1585
                                                        end
1586
                                                end
1587
                                        end
1588
                                end
1589
                        end
1590
                        wait(0.03)
1591
                end
1592
                shock:Remove()
1593
                shock2:Remove()
1594
                shock3:Remove()
1595
                Player.Character[Name].Source.Transparency = 1
1596
                Player.Character[Name].Source.Fire.Enabled = false
1597
                canFire = true
1598
        elseif spell == 11 then
1599
                --Kanamla Cysis, object manipulation class. The easiest spell in it's class allows you to lightly pick things up.
1600
                local target = mouse.Target
1601
                if target == nil then return end
1602
                if target.Parent == nil then return end
1603
                if target.Anchored == true then return end
1604
                if (target.Position - Player.Character[Name].Source.Position).magnitude > 25 then return end
1605
                if game:GetService("Players"):getPlayerFromCharacter(target.Parent) ~= nil then
1606
                        if game:GetService("Players"):getPlayerFromCharacter(target.Parent).Character:FindFirstChild("Torso") ~= nil then
1607
                                target = game:GetService("Players"):getPlayerFromCharacter(target.Parent).Character.Torso
1608
                                if game:GetService("Players"):getPlayerFromCharacter(target.Parent).Character:FindFirstChild("Humanoid") ~= nil then
1609
                                        game:GetService("Players"):getPlayerFromCharacter(target.Parent).Character.Humanoid.PlatformStand = true
1610
                                end
1611
                        end
1612
                end
1613
                local position = Instance.new("BodyPosition")
1614
                position.Name = "Cysis"
1615
                position.maxForce = Vector3.new(math.huge, math.huge, math.huge)
1616
                position.P = 1000
1617
                position.D = 50
1618
                position.Parent = target
1619
                position.position = Player.Character[Name].Source.Position + ((mouse.Hit.p - Player.Character[Name].Source.Position).unit * 10)
1620
                canFire = false
1621
                Player.Character[Name].Source.Mesh.MeshType = "Sphere"
1622
                Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
1623
                Player.Character[Name].Source.Transparency = 0.25
1624
                Player.Character[Name].Source.BrickColor = BrickColor.new("Bright blue")
1625
                Player.Character[Name].Source.Fire.Enabled = true
1626
                Player.Character[Name].Source.Fire.Heat = 10
1627
                Player.Character[Name].Source.Fire.Size = 2
1628
                Player.Character[Name].Source.Fire.Color = Color3.new(0, 0, 1)
1629
                Player.Character[Name].Source.Fire.SecondaryColor = Color3.new(0.5, 0.5, 1)
1630
                Player.Character[Name].Handle.Shine.Looped = false
1631
                Player.Character[Name].Handle.Shine.Volume = 1
1632
                Player.Character[Name].Handle.Shine.Pitch = 0.75
1633
                Player.Character[Name].Handle.Shine:Play()
1634
                for i = 0, math.huge do
1635
                        if Button1Down == false then break end
1636
                        if Player.Character == nil then break end
1637
                        if Player.Character:FindFirstChild("Humanoid") == nil then break end
1638
                        if Player.Character.Humanoid.Health <= 0 then break end
1639
                        if Player.Character:FindFirstChild(Name) == nil then break end
1640
                        if Player.Character[Name]:FindFirstChild("Handle") == nil then break end
1641
                        if Player.Character[Name]:FindFirstChild("Source") == nil then break end
1642
                        if power <= 0 then break end
1643
                        if string.sub(tostring(i), string.len(tostring(i)), string.len(tostring(i))) == "0" then
1644
                                power = power - 1
1645
                        end
1646
                        if target ~= nil and position ~= nil then
1647
                                position.position = Player.Character[Name].Source.Position + ((mouse.Hit.p - Player.Character[Name].Source.Position).unit * 10)
1648
                        end
1649
                        wait()
1650
                end
1651
                if position ~= nil then position:Remove() end
1652
                if target ~= nil then
1653
                        if target.Parent:FindFirstChild("Humanoid") ~= nil then
1654
                                target.Parent.Humanoid.PlatformStand = false
1655
                                target.Parent.Humanoid.Sit = true
1656
                        end
1657
                end
1658
                for i = 0.25, 1, 0.05 do
1659
                        Player.Character[Name].Source.Transparency = i
1660
                        wait()
1661
                end
1662
                Player.Character[Name].Source.Transparency = 1
1663
                Player.Character[Name].Source.Fire.Enabled = false
1664
                canFire = true
1665
        elseif spell == 12 then
1666
                --Kanamla Tepidift, object manipulation class. Allows you to teleport from one area to another.
1667
                canFire = false
1668
                Player.Character[Name].Source.Mesh.MeshType = "Sphere"
1669
                Player.Character[Name].Source.BrickColor = BrickColor.new("Bright blue")
1670
                Player.Character[Name].Source.Fire.Enabled = true
1671
                Player.Character[Name].Source.Fire.Heat = 0
1672
                Player.Character[Name].Source.Fire.Color = Color3.new(0, 0, 1)
1673
                Player.Character[Name].Source.Fire.SecondaryColor = Color3.new(1, 1, 1)
1674
                Player.Character[Name].Handle.Shine.Looped = true
1675
                Player.Character[Name].Handle.Shine.Pitch = 1.5
1676
                Player.Character[Name].Handle.Shine.Volume = 1
1677
                Player.Character[Name].Handle.Shine:Play()
1678
                for i = 1, 0, -0.05 do
1679
                        Player.Character[Name].Source.Transparency = i
1680
                        Player.Character[Name].Source.Mesh.Scale = (Vector3.new(1 - i, 1 - i, 1 - i) * 15)
1681
                        Player.Character[Name].Source.Fire.Size = (1 - i) * 15
1682
                        wait()
1683
                end
1684
                local maxDistance = (Player.Character.Torso.CFrame.p - mouse.Hit.p).magnitude
1685
                if maxDistance < 500 then 
1686
                        local pos1 = Player.Character.Torso.CFrame.p
1687
                        local pos2 = mouse.Hit.p + Vector3.new(0, 3, 0)
1688
                        local pos0 = pos1
1689
                        for distance = 1, maxDistance, 5 do
1690
                                pos0 = (CFrame.new(pos1, pos2) * CFrame.new(0, 0, -distance)).p
1691
                                Player.Character.Torso.CFrame = CFrame.new(pos0, pos2)
1692
                                Player.Character.Torso.Velocity = Vector3.new()
1693
                                power = power - 1
1694
                                wait()
1695
                        end
1696
                        Player.Character.Torso.CFrame = CFrame.new(pos2)
1697
                        for i = 0, 1, 0.05 do
1698
                                Player.Character[Name].Source.Transparency = i
1699
                                Player.Character[Name].Source.Mesh.Scale = (Vector3.new(1 - i, 1 - i, 1 - i) * 15)
1700
                                Player.Character[Name].Source.Fire.Size = (1 - i) * 15
1701
                                Player.Character[Name].Handle.Shine.Volume = (1 - i)
1702
                                wait()
1703
                        end
1704
                        Player.Character[Name].Handle.Shine:Stop()
1705
                else
1706
                        for i = 0, 1, 0.05 do
1707
                                Player.Character[Name].Source.BrickColor = Player.Character[Name].Source.BrickColor == BrickColor.new("Bright blue") and BrickColor.new("Really red") or BrickColor.new("Bright blue")
1708
                                Player.Character[Name].Source.Transparency = i
1709
                                Player.Character[Name].Source.Mesh.Scale = (Vector3.new(1 - i, 1 - i, 1 - i) * 15)
1710
                                Player.Character[Name].Source.Fire.Size = (1 - i) * 15
1711
                                Player.Character[Name].Source.Fire.Color = Player.Character[Name].Source.Fire.Color == Color3.new(0, 0, 1) and Color3.new(1, 0, 0) or Color3.new(0, 0, 1)
1712
                                Player.Character[Name].Source.Fire.SecondaryColor = Player.Character[Name].Source.Fire.SecondaryColor == Color3.new(1, 1, 1) and Color3.new(1, 0, 0) or Color3.new(1, 1, 1)
1713
                                Player.Character[Name].Handle.Shine.Pitch = (1 - i) + 0.5
1714
                                wait()
1715
                        end
1716
                        Player.Character[Name].Handle.Shine:Stop()
1717
                end
1718
                Player.Character[Name].Source.Transparency = 1
1719
                Player.Character[Name].Source.Fire.Enabled = false
1720
                canFire = true
1721
        elseif spell == 13 then
1722
                --Kanamla Jump, object manipulation class. Allows you to jump really high.
1723
                canFire = false
1724
                while Button1Down == true do
1725
                        if power <= 0 then break end
1726
                        Player.Character[Name].Handle.Fire3.Looped = false
1727
                        Player.Character[Name].Handle.Fire3.Pitch = 1
1728
                        Player.Character[Name].Handle.Fire3.Volume = 1
1729
                        for i = 1, 2 do Player.Character[Name].Handle.Fire3:Play() end
1730
                        Player.Character[Name].Source.BrickColor = BrickColor.new("Really blue")
1731
                        Player.Character.Humanoid.PlatformStand = true
1732
                        Player.Character.Torso.Velocity = Vector3.new(Player.Character.Torso.Velocity.x, (Player.Character.Torso.Velocity.y / 2) + 100, Player.Character.Torso.Velocity.z)
1733
                        power = power - 5
1734
                        local shock = Instance.new("Part")
1735
                        shock.formFactor = "Symmetric"
1736
                        shock.Size = Vector3.new(1, 1, 1)
1737
                        shock.BrickColor = BrickColor.new("Really blue")
1738
                        shock.Anchored = true
1739
                        shock.Name = "Shock Ring"
1740
                        shock.CanCollide = false
1741
                        shock.Parent = game:GetService("Workspace")
1742
                        local mesh = Instance.new("SpecialMesh")
1743
                        mesh.MeshType = "FileMesh"
1744
                        mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
1745
                        mesh.Scale = Vector3.new(1, 1, 1)
1746
                        mesh.Parent = shock
1747
                        shock.CFrame = CFrame.new(Player.Character.Torso.Position - Vector3.new(0, 2.5, 0))
1748
                        coroutine.resume(coroutine.create(function()
1749
                                for i = 0, 50 do
1750
                                        mesh.Scale = Vector3.new(i, i / 5, i)
1751
                                        shock.Transparency = i / 50
1752
                                        wait()
1753
                                end
1754
                                shock:Remove()
1755
                        end))
1756
                        for i = 0, 1, 0.2 do
1757
                                Player.Character[Name].Source.Transparency = i
1758
                                Player.Character[Name].Source.Mesh.Scale = (Vector3.new(i, i, i) * 5)
1759
                                wait()
1760
                        end
1761
                        Player.Character[Name].Source.Transparency = 1
1762
                        Player.Character.Humanoid.PlatformStand = false
1763
                end
1764
                canFire = true
1765
        elseif spell == 14 then
1766
                --Candora Hide, light manipulation class. The Hide spell makes you and your wand seem invisible to the naked eye by bending light around your limbs.
1767
                canFire = false
1768
                Player.Character[Name].Source.Mesh.MeshType = "Sphere"
1769
                Player.Character[Name].Source.Mesh.Scale = Vector3.new(1, 1, 1)
1770
                Player.Character[Name].Source.Transparency = 0.25
1771
                Player.Character[Name].Source.BrickColor = BrickColor.new("Bright purple")
1772
                for i = 1, 0, -0.05 do
1773
                        Player.Character[Name].Source.Transparency = i
1774
                        Player.Character[Name].Source.Mesh.Scale = Vector3.new(1 - i, 1 - i, 1 - i) * 2
1775
                        wait()
1776
                end
1777
                Player.Character[Name].Source.Transparency = 0
1778
                if Player.Character:FindFirstChild("Head") ~= nil then
1779
                        if Player.Character.Head:FindFirstChild("face") ~= nil then
1780
                                Player.Character.Head.face.Face = "Bottom"
1781
                        end
1782
                end
1783
                Player.Character[Name].Handle.Shine.Looped = false
1784
                Player.Character[Name].Handle.Shine.Volume = 1
1785
                Player.Character[Name].Handle.Shine:Play()
1786
                for i = 0, 1.1, 0.01 do
1787
                        Player.Character[Name].Handle.Shine.Pitch = math.sin(i)
1788
                        Player.Character[Name].Source.Mesh.Scale = Vector3.new(math.sin(i), math.sin(i), math.sin(i)) + Vector3.new(2, 2, 2)
1789
                        for _, children in pairs(Player.Character:GetChildren()) do
1790
                                if children.className == "Part" and children.Name ~= "" then
1791
                                        children.Transparency = i
1792
                                end
1793
                                if children.Name == Name then
1794
                                        for _, children2 in pairs(children:GetChildren()) do
1795
                                                if children2.className == "Part" then
1796
                                                        children2.Transparency = i
1797
                                                end
1798
                                        end
1799
                                end
1800
                        end
1801
                        wait()
1802
                end
1803
                while Button1Down == true do
1804
                        if Player.Character == nil then break end
1805
                        if Player.Character:FindFirstChild("Humanoid") == nil then break end
1806
                        if Player.Character.Humanoid.Health <= 0 then break end
1807
                        if Player.Character:FindFirstChild(Name) == nil then break end
1808
                        if Player.Character[Name]:FindFirstChild("Handle") == nil then break end
1809
                        if Player.Character[Name]:FindFirstChild("Source") == nil then break end
1810
                        if power <= 0 then break end
1811
                        power = power - 1
1812
                        wait(0.5)
1813
                end
1814
                Player.Character[Name].Handle.Shine:Play()
1815
                for i = 1, -0.1, -0.01 do
1816
                        Player.Character[Name].Handle.Shine.Pitch = math.sin(i)
1817
                        Player.Character[Name].Source.Mesh.Scale = Vector3.new(math.sin(i), math.sin(i), math.sin(i)) + Vector3.new(2, 2, 2)
1818
                        for _, children in pairs(Player.Character:GetChildren()) do
1819
                                if children.className == "Part" and children.Name ~= "" then
1820
                                        children.Transparency = i
1821
                                end
1822
                                if children.Name == Name then
1823
                                        for _, children2 in pairs(children:GetChildren()) do
1824
                                                if children2.className == "Part" then
1825
                                                        children2.Transparency = i
1826
                                                end
1827
                                        end
1828
                                end
1829
                        end
1830
                        wait()
1831
                end
1832
                Player.Character[Name].Handle.Shine:Stop()
1833
                if Player.Character:FindFirstChild("Head") ~= nil then
1834
                        if Player.Character.Head:FindFirstChild("face") ~= nil then
1835
                                Player.Character.Head.face.Face = "Front"
1836
                        end
1837
                end
1838
                for i = 0, 1, 0.05 do
1839
                        Player.Character[Name].Source.Transparency = i
1840
                        Player.Character[Name].Source.Mesh.Scale = Vector3.new(1 - i, 1 - i, 1 - i) * 2
1841
                        wait()
1842
                end
1843
                Player.Character[Name].Source.Transparency = 1
1844
                canFire = true
1845
        end
1846
end
1847
 
1848
 
1849
function onButton1Up(mouse)
1850
        if selected == false then return end
1851
        Button1Down = false
1852
        while canFire == false do wait() end
1853
        mouse.Icon = "rbxasset://textures\\GunCursor.png"
1854
end
1855
 
1856
 
1857
function onMove(mouse)
1858
        --Stuffs.
1859
end
1860
 
1861
 
1862
function onKeyDown(key, mouse)
1863
        if selected == false or canFire == false or Button1Down == true then return end
1864
        key = key:lower()
1865
        if key == "q" then
1866
                if mouse.Target == nil then return end
1867
                if game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent) ~= nil then
1868
                        onDeselected(mouse)
1869
                        removeParts("holster")
1870
                        script.Parent.Parent = game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent).Backpack
1871
                end
1872
        end
1873
        if key == "e" then
1874
                spell = spell - 1
1875
                if spell < 0 then
1876
                        spell = 14
1877
                end
1878
        end
1879
        if key == "r" then
1880
                spell = spell + 1
1881
                if spell > 14 then
1882
                        spell = 0
1883
                end
1884
        end
1885
        if spell == 1 then
1886
                spellText = "Arefu Slash (1P)"
1887
        elseif spell == 2 then
1888
                spellText = "Arefu Metoria (50P)"
1889
        elseif spell == 3 then
1890
                spellText = "Eccrando Bolt (25P)"
1891
        elseif spell == 4 then
1892
                spellText = "Eccrando Strike (~60P)"
1893
        elseif spell == 5 then
1894
                spellText = "Thius Dae (1P/2ms)"
1895
        elseif spell == 6 then
1896
                spellText = "Thius Heed (1P/2ms)"
1897
        elseif spell == 7 then
1898
                spellText = "Combuscus Phore (75P)"
1899
        elseif spell == 8 then
1900
                spellText = "Combuscus Burn (10P)"
1901
        elseif spell == 9 then
1902
                spellText = "Combuscus Vortex (50P)"
1903
        elseif spell == 10 then
1904
                spellText = "C. Phore Nexus (100P)"
1905
        elseif spell == 11 then
1906
                spellText = "Kanamla Cysis (2P/1sec)"
1907
        elseif spell == 12 then
1908
                spellText = "Kanamla Tepidift (50P)"
1909
        elseif spell == 13 then
1910
                spellText = "Kanamla Jump (5P)"
1911
        elseif spell == 14 then
1912
                spellText = "Candora Hide (2P/1sec)"
1913
        else
1914
                spellText = "None"
1915
        end
1916
        updateGui()
1917
end
1918
 
1919
 
1920
function onSelected(mouse)
1921
        if selected == true or dropped == true then return end
1922
        selected = true
1923
        mouse.Icon = "rbxasset://textures\\GunWaitCursor.png"
1924
        while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
1925
                if Player.Character.WeaponActivated.Value == nil then break end
1926
                if Player.Character.WeaponActivated.Value.Parent == nil then break end
1927
                wait()
1928
        end
1929
        mouse.Icon = "rbxasset://textures\\GunCursor.png"
1930
        updateGui()
1931
        removeParts("holster")
1932
        makeParts("hand")
1933
        local weapon = Instance.new("ObjectValue")
1934
        weapon.Name = "WeaponActivated"
1935
        weapon.Value = script.Parent
1936
        weapon.Parent = Player.Character
1937
        DisableLimb(1, Player.Character)
1938
        SetAngle(1, math.rad(90), Player.Character)
1939
        mouse.Button1Down:connect(function() onButton1Down(mouse) end)
1940
        mouse.Button1Up:connect(function() onButton1Up(mouse) end)
1941
        mouse.Move:connect(function() onMove(mouse) end)
1942
        mouse.KeyDown:connect(function(key) onKeyDown(key, mouse) end)
1943
        while selected == true do
1944
                if canFire == true then
1945
                        if power < 100 and power >= 0 then
1946
                                power = power + 1
1947
                                wait(0.05)
1948
                        elseif power < 0 then
1949
                                power = power + 1
1950
                                wait(0.3)
1951
                        else
1952
                                power = 100
1953
                        end
1954
                end
1955
                updateGui()
1956
                wait()
1957
        end
1958
end
1959
 
1960
 
1961
function onDeselected(mouse)
1962
        if selected == false then return end
1963
        selected = false
1964
        Button1Down = false
1965
        while canFire == false do
1966
                wait()
1967
        end
1968
        if Player.Character:FindFirstChild("WeaponActivated") ~= nil then
1969
                if Player.Character.WeaponActivated.Value == script.Parent then
1970
                        Player.Character.WeaponActivated:Remove()
1971
                end
1972
        end
1973
        while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
1974
                if Player.Character.WeaponActivated.Value == nil then break end
1975
                if pcall(function() if Player.Character.WeaponActivated.Value.Parent == nil then return true end end) then break end
1976
                wait()
1977
        end
1978
        if Player.PlayerGui:FindFirstChild(Name) ~= nil then Player.PlayerGui[Name]:Remove() end
1979
        removeParts("hand")
1980
        makeParts("holster")
1981
        SetAngle(1, 0, Player.Character)
1982
        EnableLimb(1, Player.Character)
1983
end
1984
 
1985
 
1986
if script.Parent.className ~= "HopperBin" then
1987
        if Player == nil then print("Error: Player not found!") return end
1988
        local Tool = Instance.new("HopperBin")
1989
        Tool.Name = Name
1990
        Tool.Parent = Player.Backpack
1991
        script.Name = "Main"
1992
        script.Parent = Tool
1993
elseif script.Parent.className == "HopperBin" then
1994
        while script.Parent.Parent.className ~= "Backpack" do
1995
                wait()
1996
        end
1997
        Player = script.Parent.Parent.Parent
1998
        makeParts("holster")
1999
        script.Parent.Selected:connect(onSelected)
2000
        script.Parent.Deselected:connect(onDeselected)
2001
end