View difference between Paste ID: AZP2kVLe and 1BdviRe5
SHOW: | | - or go back to the newest paste.
1
function clerp(c1,c2,al)
2
    local com1 = {c1.X,c1.Y,c1.Z,c1:toEulerAnglesXYZ()}
3
    local com2 = {c2.X,c2.Y,c2.Z,c2:toEulerAnglesXYZ()}
4
    for i,v in pairs(com1) do 
5
        com1[i] = v+(com2[i]-v)*al
6
    end
7
    return CFrame.new(com1[1],com1[2],com1[3]) * CFrame.Angles(select(4,unpack(com1)))
8
end
9
10
plr = game:service'Players'.LocalPlayer
11
char = plr.Character
12
mouse = plr:GetMouse()
13
humanoid = char:findFirstChild("Humanoid")
14
torso = char:findFirstChild("Torso")
15
head = char.Head
16
ra = char:findFirstChild("Right Arm")
17
la = char:findFirstChild("Left Arm")
18
rl = char:findFirstChild("Right Leg")
19
ll = char:findFirstChild("Left Leg")
20
rs = torso:findFirstChild("Right Shoulder")
21
ls = torso:findFirstChild("Left Shoulder")
22
rh = torso:findFirstChild("Right Hip")
23
lh = torso:findFirstChild("Left Hip")
24
neck = torso:findFirstChild("Neck")
25
rj = char:findFirstChild("HumanoidRootPart"):findFirstChild("RootJoint")
26
anim = char:findFirstChild("Animate")
27
do --Removing ROBLOX's new Looped bug >_>
28
            local function rec(x)
29
                for i,v in pairs(x:children()) do
30
                    if v:IsA'Animation' then
31
                        v.AnimationId = 'rbxassetid://28159255'
32
                    end
33
                    rec(v)
34
                end
35
            end
36
            rec(anim) --the Animate script
37
        end
38
39
        humanoid.Jump = true
40
41
        wait(.4)
42
43
44
        if anim then
45
        anim:Destroy()
46
        end
47
rootpart = char:findFirstChild("HumanoidRootPart")
48
camera = workspace.CurrentCamera
49
modelforparts = char:findFirstChild("ModelForParts") or Instance.new("Model", char)
50
modelforparts.Name = "ModelForParts"
51
52
function trailconnect(obj, wat)
53
local trail = {}
54
for i = 1, 4 do 
55
local p = Instance.new("Part") 
56
p.BrickColor = obj.BrickColor
57
p.formFactor = "Custom" 
58
p.Size = Vector3.new(1,1,1)
59
p.Locked = true 
60
p.Anchored = true 
61
p.CanCollide = false 
62
local mesh = Instance.new("CylinderMesh", p) 
63
mesh.Name = "Mesh" 
64
table.insert(trail,{p,0}) 
65
end
66
local lastpos = obj.Position 
67
local updatethis = 0 
68
local dontdothis = false
69
game:service'RunService'.Stepped:connect(function()
70
    if wat == true then if dontdothis then return end
71
        for i,v in pairs(trail) do
72
        game:service'Debris':AddItem(obj, 0)
73
        table.remove(v, i)
74
        end
75
        dontdothis = true
76
        return 
77
    end
78
updatethis = ((updatethis) % 4) + 1
79
local dstnc = (obj.Position - lastpos).magnitude 
80
trail[updatethis][1].Mesh.Scale = Vector3.new(.2,dstnc,.2)
81
trail[updatethis][1].Parent = obj.Parent
82
trail[updatethis][1].CFrame = CFrame.new((obj.Position + lastpos)/2,obj.Position) * CFrame.Angles(math.pi/2, 0, 0)
83
trail[updatethis][2] = 0 
84
for i,v in pairs(trail) do 
85
v[2] = v[2] + .15
86
v[1].Transparency = v[2] 
87
end 
88
lastpos = obj.Position
89
end)
90
end 
91
92
do --rayCast
93
    function rayCast(startpos, Speed, Gravity, Dmg, color)
94
        local ran,err = ypcall(function()
95
    local rayPart         = Instance.new("Part")
96
    rayPart.Name          = "RayPart"
97
    rayPart.BrickColor    = BrickColor.new(color)
98
    rayPart.Anchored      = true
99
    rayPart.CanCollide    = false
100
    rayPart.Locked        = true
101
    rayPart.FormFactor    = "Custom"
102
    rayPart.TopSurface    = Enum.SurfaceType.Smooth
103
    rayPart.BottomSurface = Enum.SurfaceType.Smooth
104
    rayPart.Size          = Vector3.new(.2, 50, .2)
105
    rayPart:breakJoints()
106
    Instance.new("CylinderMesh", rayPart)
107
    local fire = Instance.new("Fire", rayPart)
108
    fire.Color = rayPart.BrickColor.Color
109
    fire.SecondaryColor = rayPart.BrickColor.Color
110
    fire.Heat = 0
111
    fire.Size = 10
112
    local pl = Instance.new("PointLight", rayPart)
113
    pl.Color = Color3.new(rayPart.BrickColor.r/1.5, rayPart.BrickColor.g/1.5, rayPart.BrickColor.b/1.5)
114
    pl.Range = 18
115
116
    local hitobj = false
117
    local bulletposition = startpos.Position
118
    rayPart.CFrame = startpos.CFrame
119
    trailconnect(rayPart, hitobj)
120
121
   local bulletvelocity = (Vector3.new(math.random(-2,2), math.random(-2,2), math.random(-2,2)))+( mouse.Hit.p - bulletposition).unit*Speed
122
    local bulletlastposition = bulletposition
123
    
124
    coroutine.resume(coroutine.create(function()
125
        while true do
126
127
            local dt = wait()
128
            bulletlastposition = bulletposition
129
            bulletvelocity = bulletvelocity + (Vector3.new(0, -3.81*Gravity, 0)*dt)
130
            bulletposition = bulletposition + (bulletvelocity*dt)
131
            local ray = Ray.new(bulletlastposition,  (bulletposition - bulletlastposition))
132
            local hit, hitposition = workspace:FindPartOnRayWithIgnoreList( ray, {char, modelforparts} )
133
                
134
    if (torso.Position - rayPart.Position).magnitude > 840 then
135
        rayPart:Destroy()
136
        hitobj = true
137
     break
138
    end
139
140
    
141
            if hit then
142
                hitobj = true
143
                    local damage = math.random(Dmg, Dmg+6)
144
                if hit.Parent:findFirstChild("Humanoid") ~= nil then
145
                    hit.Parent.Humanoid.Health = hit.Parent.Humanoid.Health - damage
146
                elseif hit.Parent:IsA("Hat") and hit.Parent.Parent:findFirstChild("Humanoid") then
147
                    hit.Parent.Parent.Humanoid.Health = hit.Parent.Parent.Humanoid.Health - damage
148
                end
149
                local boom = Instance.new("Part", modelforparts)
150
                boom.BrickColor = rayPart.BrickColor
151
                boom.Anchored = true
152
                boom.FormFactor = "Custom"
153
                boom.Size = Vector3.new(1,1,1)
154
                boom.CanCollide = false
155
                boom.Transparency = 0.25
156
                boom.CFrame = CFrame.new(hitposition.x, hitposition.y, hitposition.z)
157
                boom.TopSurface = 0
158
                boom.BottomSurface = 0
159
                local sphere = Instance.new("SpecialMesh", boom)
160
                sphere.MeshType = "Sphere"
161
                local pl = Instance.new("PointLight", boom)
162
                pl.Color = Color3.new(boom.BrickColor.r/1.5, boom.BrickColor.g/1.5, boom.BrickColor.b/1.5)
163
                pl.Range = 20
164
                for ye = 0, 8 do
165
                    local lite = Instance.new("Part", boom)
166
                    lite.FormFactor = "Custom"
167
                    lite.Size = Vector3.new(.2, 1.5, .2)
168
                    lite.BrickColor = boom.BrickColor
169
                    lite.CanCollide = false
170
                    lite.TopSurface = 0
171
                    lite.Anchored = false
172
                    lite.BottomSurface = 0
173
                    lite.Position = boom.Position + Vector3.new(math.random(-10, 10), math.random(6,15), math.random(-10, 10))
174
                end
175
                    
176
                for i = 0, 20, 2.5 do
177
                    sphere.Scale = sphere.Scale + Vector3.new(i,i,i)
178
                    boom.Transparency = boom.Transparency + i/60
179
                    pl.Range = pl.Range + i/15
180
                 wait()
181
                end
182
                boom:Destroy()
183
            for i,v in pairs(workspace:children()) do
184
                if v:IsA("Model") and v:findFirstChild("Humanoid") then
185
                    if v:findFirstChild("Head") and v:findFirstChild("Torso") then
186
                    if (v:findFirstChild("Torso").Position - boom.Position).magnitude < 16 and v.Name ~= char.Name then
187
                    v:findFirstChild("Humanoid"):TakeDamage(math.random(Dmg+2,Dmg+6))
188
                    end
189
                    end
190
                end
191
                if v and v:IsA("Part") and v.Name ~= "Base" then
192
                    if (v.Position - boom.Position).magnitude < 16 then
193
                    v:BreakJoints()
194
                    v.TopSurface = 0
195
                    v.BottomSurface = 0
196
                    v.LeftSurface = 0
197
                    v.RightSurface = 0
198
                    v.FrontSurface = 0
199
                    v.BackSurface = 0
200
                    v.Anchored = false
201
                    end
202
                end
203
        end
204
            pcall(function()
205
                bulletposition = hitposition
206
                rayPart.CFrame = CFrame.new(bulletposition, bulletposition+bulletvelocity) * CFrame.Angles(math.pi/2, 0, 0)
207
                rayPart:Destroy()
208
            end)
209
                break
210
            end
211
            rayPart.CFrame = CFrame.new(bulletposition, bulletposition+bulletvelocity) * CFrame.Angles(math.pi/2, 0, 0)
212
            rayPart.Parent = modelforparts
213
        end
214
    end))
215
 for i = 70, 65, -1.5 do
216
    firing = true
217
    camera.FieldOfView = i
218
    wait()
219
end
220
for i = 65, 70, 2.5 do
221
    firing = false
222
    camera.FieldOfView = i
223
    wait()
224
end
225
end)
226
if err then
227
    print(err)
228
    end
229
end
230
end
231
232
233
charge = 100
234
235
plrgui = game:service'Players'.LocalPlayer:findFirstChild("PlayerGui")
236
237
local statusgui = Instance.new("ScreenGui", plrgui)
238
local mainframe = Instance.new("Frame", statusgui)
239
    mainframe.Size = UDim2.new(0, 200, 0, 200)
240
    mainframe.Position = UDim2.new(.75, 0, .75, 0)
241
    mainframe.Style = 3
242
    local image = Instance.new("ImageLabel", mainframe)
243
    image.Size = UDim2.new(1, 0, .47, 0)
244
    image.Position = UDim2.new(0, 0, .235, 0)
245
    image.BackgroundTransparency = 1
246
    image.Image = "rbxassetid://145057975"
247
    local chargetext = Instance.new("TextLabel", mainframe)
248
    chargetext.FontSize = "Size18"
249
    chargetext.Size = UDim2.new(1, 0, .95, 0)
250
    chargetext.TextYAlignment = "Bottom"
251
    chargetext.BackgroundTransparency = 1
252
    chargetext.TextColor3 = Color3.new(1,1,1)
253
    game:service'RunService'.Stepped:connect(function()
254
        chargetext.Text = math.floor(charge).."%"
255
    end)
256
    
257
    
258
259
local rm = Instance.new("Weld", torso)
260
rm.C0 = CFrame.new(1.5, 0.5, 0)
261
rm.C1 = CFrame.new(0, 0.5, 0)
262
rm.Part0 = torso
263
rm.Part1 = ra
264
local lm = Instance.new("Weld", torso)
265
lm.C0 = CFrame.new(-1.5, 0.5, 0)
266
lm.C1 = CFrame.new(0, 0.5, 0)
267
lm.Part0 = torso
268
lm.Part1 = la
269
270
sound = Instance.new("Sound", head)
271
sound.Volume = 1
272-
sound.SoundId = "rbxassetid://144834276"
272+
sound.SoundId = "rbxassetid://626758033"
273
sound.Looped = true
274
275
276
dancemode = true
277
debounceofsprint = false
278
279
--create func
280
function part(parent, size, color, formfactor, collide, transparency)
281
    if transparency == nil then transparency=0 end
282
    if collide == nil then collide=false end
283
        if formfactor == nil then formfactor="Custom" end
284
        local p = Instance.new("Part", parent)
285
        p.FormFactor = formfactor
286
        p.CanCollide = collide
287
        p.Size = size
288
        p.Locked = true
289
        p.Transparency = transparency
290
        p.Position = torso.Position + Vector3.new(0, 1, 0)
291
        p.BrickColor = color
292
        p.FrontSurface = "SmoothNoOutlines" 
293
        p.BackSurface = "SmoothNoOutlines"         
294
        p.LeftSurface = "SmoothNoOutlines" 
295
        p.BottomSurface = "SmoothNoOutlines" 
296
        p.TopSurface = "SmoothNoOutlines"  
297
        p.RightSurface = "SmoothNoOutlines"
298
        return p
299
end
300
function wedge(parent, size, color, formfactor, collide, transparency)
301
        if transparency==nil then transparency=0 end
302
    if collide==nil then collide=false end
303
        if formfactor==nil then formfactor="Custom" end
304
        local p = Instance.new("WedgePart", parent)
305
        p.FormFactor = formfactor
306
        p.CanCollide = collide
307
        p.Size = size
308
        p.Locked = true
309
        p.Position = torso.Position
310
        p.BrickColor = color
311
        p.FrontSurface = "SmoothNoOutlines" 
312
        p.BackSurface = "SmoothNoOutlines"         
313
        p.LeftSurface = "SmoothNoOutlines" 
314
        p.BottomSurface = "SmoothNoOutlines" 
315
        p.TopSurface = "SmoothNoOutlines"  
316
        p.RightSurface = "SmoothNoOutlines"
317
        return p
318
end 
319
function weld(part0, part1, c0, parent, c1)
320
    if parent == nil then parent=char end
321
    if c1 == nil then c1=CFrame.new() end
322
323
        local wel = Instance.new("Weld", parent)
324
        wel.Part0 = part0
325
        wel.Part1 = part1
326
        wel.C0 = c0
327
        wel.C1 = c1
328
        return wel
329
end
330
function specialmesh(parent, meshType, scale, meshId)
331
    if meshId==nil then meshId="" end
332
        local mesh = Instance.new("SpecialMesh", parent)
333
        mesh.Scale = scale
334
        mesh.MeshType = meshType
335
        mesh.MeshId = meshId
336
        return mesh
337
end
338
----------------------------------------------------------------------------------------------------------
339
--function part(parent, size, color, formfactor, collide, transparency)
340
--function weld(part0, part1, c0, parent, c1)
341
342
----------------------------------------------------------------------------------------------------------
343
function animatehuman(animationid, object)
344
            local animation = object:findFirstChild("Humanoid"):LoadAnimation(animationid)
345
            animation:Play()
346
end
347
local danceAnim = Instance.new("Animation", char)
348
danceAnim.AnimationId = "http://www.roblox.com/asset/?id=130018893"
349
danceAnim.Name = "DancingAnimation"
350
----------------------------------------------------------------------------------------------------------
351
local main = Instance.new("Part", char)
352
        main.FormFactor = "Custom"
353
        main.CanCollide = false
354
        main.Size = Vector3.new(.75, 1, 1.2)
355
        main.Locked = true
356
        main.BrickColor = BrickColor.new("Black")
357
        main.TopSurface = 0
358
        main.BottomSurface = 0
359
        main.Position = torso.Position
360
        main:BreakJoints()
361
local weld1 = weld(main, ra, CFrame.new(), char, CFrame.new(0, -.8, -.6))
362
    local speaker = Instance.new("Part", char)
363
        speaker.FormFactor = "Custom"
364
        speaker.CanCollide = false
365
        speaker.Size = Vector3.new(1.5, .25, 1.4)
366
        speaker.Locked = true
367
        speaker.BrickColor = BrickColor.new("Black")
368
        speaker.TopSurface = 0
369
        speaker.BottomSurface = 0
370
        speaker.Position = torso.Position
371
        speaker:BreakJoints()
372
local weld2 = weld(speaker, main, CFrame.new(), char, CFrame.new(-.25, -1.7, .6))
373
        local speaker2 = Instance.new("Part", char)
374
        speaker2.FormFactor = "Custom"
375
        speaker2.CanCollide = false
376
        speaker2.Size = Vector3.new(1, .25, 2)
377
        speaker2.Locked = true
378
        speaker2.BrickColor = BrickColor.new("Black")
379
        speaker2.TopSurface = 0
380
        speaker2.BottomSurface = 0
381
        speaker2.Position = torso.Position
382
        speaker2:BreakJoints()
383
local weld3 = weld(speaker2, main, CFrame.new(), char, CFrame.new(0, -1.7, -.2))
384
        local main2 = Instance.new("Part", char)
385
        main2.FormFactor = "Custom"
386
        main2.CanCollide = false
387
        main2.Size = Vector3.new(.751, 1, .6)
388
        main2.Locked = true
389
        main2.BrickColor = BrickColor.new("Black")
390
        main2.TopSurface = 0
391
        main2.BottomSurface = 0
392
        main2.Position = torso.Position
393
        main2:BreakJoints()
394
local weld4 = weld(main2, ra, CFrame.new(), char, CFrame.new(0, 0, -.9))
395
    local main3 = Instance.new("Part", char)
396
        main3.FormFactor = "Custom"
397
        main3.CanCollide = false
398
        main3.Size = Vector3.new(.751, 1.45, 1)
399
        main3.Locked = true
400
        main3.BrickColor = BrickColor.new("Black")
401
        main3.TopSurface = 0
402
        main3.BottomSurface = 0
403
        main3.Position = torso.Position
404
        main3:BreakJoints()
405
local weld5 = weld(main3, ra, CFrame.new(), char, CFrame.new(0, -1.6, -.9))
406
    local main4 = Instance.new("Part", char)
407
        main4.FormFactor = "Custom"
408
        main4.CanCollide = false
409
        main4.Size = Vector3.new(1, .76, 1)
410
        Instance.new("CylinderMesh", main4)
411
        main4.Locked = true
412
        main4.BrickColor = BrickColor.new("Black")
413
        main4.TopSurface = 0
414
        main4.BottomSurface = 0
415
        main4.Position = torso.Position
416
        main4:BreakJoints()
417
local weld6 = weld(main4, main, CFrame.new(), char, CFrame.new(0, -.15, -.5)*CFrame.Angles(math.pi/2, 0, math.pi/2))
418
    local speaker3 = Instance.new("Part", char)
419
        speaker3.FormFactor = "Custom"
420
        speaker3.CanCollide = false
421
        speaker3.Size = Vector3.new(1.5, .5, 1.4)
422
        speaker3.Locked = true
423
        speaker3.BrickColor = BrickColor.new("Black")
424
        speaker3.TopSurface = 0
425
        speaker3.BottomSurface = 0
426
        speaker3.Position = torso.Position
427
        speaker3:BreakJoints()
428
local welds1 = weld(speaker3, main, CFrame.new(), char, CFrame.new(-.25, -2.2, .6))
429
        local speaker4 = Instance.new("Part", char)
430
        speaker4.FormFactor = "Custom"
431
        speaker4.CanCollide = false
432
        speaker4.Size = Vector3.new(1, .5, 2)
433
        speaker4.Locked = true
434
        speaker4.BrickColor = BrickColor.new("Black")
435
        speaker4.TopSurface = 0
436
        speaker4.BottomSurface = 0
437
        speaker4.Position = torso.Position
438
        speaker4:BreakJoints()
439
local welds2 = weld(speaker4, main, CFrame.new(), char, CFrame.new(0, -2.205, -.2))
440
        local speaker5 = Instance.new("Part", char)
441
        speaker5.FormFactor = "Custom"
442
        speaker5.CanCollide = false
443
        speaker5.Size = Vector3.new(1.4, .4, 1.3)
444
        speaker5.Locked = true
445
        speaker5.BrickColor = BrickColor.new("Black")
446
        speaker5.TopSurface = 0
447
        speaker5.BottomSurface = 0
448
        speaker5.Position = torso.Position
449
        speaker5:BreakJoints()
450
local welds3 = weld(speaker5, main, CFrame.new(), char, CFrame.new(-.25, -2, .6))
451
        local speaker6 = Instance.new("Part", char)
452
        speaker6.FormFactor = "Custom"
453
        speaker6.CanCollide = false
454
        speaker6.Size = Vector3.new(.9, .4, 1.9)
455
        speaker6.Locked = true
456
        speaker6.BrickColor = BrickColor.new("Black")
457
        speaker6.TopSurface = 0
458
        speaker6.BottomSurface = 0
459
        speaker6.Position = torso.Position
460
        speaker6:BreakJoints()
461
local welds4 = weld(speaker6, main, CFrame.new(), char, CFrame.new(0, -2, -.2))
462
    
463
        local support = Instance.new("Part", char)
464
        support.FormFactor = "Custom"
465
        support.CanCollide = false
466
        support.Size = Vector3.new(.3, .4, .6)
467
        support.Locked = true
468
        support.BrickColor = BrickColor.new("Black")
469
        support.TopSurface = 0
470
        support.BottomSurface = 0
471
        support.Position = torso.Position
472
        support:BreakJoints()
473
local welds5 = weld(support, main, CFrame.new(), char, CFrame.new(0, -1.5, -.4))
474
475
476
debounce = false
477
478
function stopsound()
479
if debounce then return end
480
    if not sound.IsPlaying then return end
481
    sound:stop()
482
    debounce = true
483
    local dancebro = Instance.new("StringValue", game:service'Lighting')
484
    dancebro.Name = ('STOPDANCING'..plr.Name)
485
    game:service'Debris':AddItem(dancebro, 1)
486
        coroutine.wrap(function()
487
        while not sound.IsPlaying do
488
            if charge <= 100 then
489
            charge = charge + .1
490
            wait()
491
            elseif charge > 100 then
492
            charge = 100
493
            break
494
            end
495
        end
496
    end)()
497
        wait(.1)
498
    debounce = false
499
end
500
mouse.Button1Down:connect(function(mous)
501
    if debounceofsprint then return end
502
    if sound.IsPlaying then return end
503
    if debounce then return end
504
    sound:play()
505
 for i = 70, 55, -.35 do
506
     if not sound.IsPlaying then debounce = true camera.FieldOfView = 70 return end
507
    camera.FieldOfView = i
508
    wait()
509
end
510
for i = 65, 70, 2.5 do
511
    if not sound.IsPlaying then debounce = true camera.FieldOfView = 70 return end
512
    camera.FieldOfView = i
513
    wait()
514
end
515
if debounce then debounce = false return end
516
    if dancemode then
517
    for i,v in pairs(workspace:children()) do
518
        if not sound.IsPlaying then break end
519
                coroutine.wrap(function()
520
                if v:IsA("Model") and v:findFirstChild("Humanoid") and v.Name ~= char.Name and v:findFirstChild("ModelForParts") == nil and v:findFirstChild("Torso") and (v:findFirstChild("Torso").Position - head.Position).magnitude < 30 then
521
                        danceAnimClone = danceAnim:clone()
522
                        danceAnimClone.Parent = v
523
                        danceAnimClone.AnimationId = "http://www.roblox.com/asset/?id=130018893"
524
                        wait()
525
                        NLS([[
526
                        function animatehuman(animationid, object)
527
                            local animation = object:findFirstChild("Humanoid"):LoadAnimation(animationid)
528
                            animation:Play()
529
                        end
530
                        while wait(.5) do
531
                        if game:service'Lighting':findFirstChild("STOPDANCING]]..plr.Name..[[") and game:service'Lighting':findFirstChild("STOPDANCING]]..plr.Name..[["):IsA("StringValue") then game:service'Debris':AddItem(script.Parent:findFirstChild("DancingAnimation"), 5) break end
532
                        animatehuman(script.Parent:findFirstChild("DancingAnimation"), script.Parent)
533
                        end
534
                        ]], v)
535
                end
536
                end)()
537
        end
538
end
539
    coroutine.wrap(function()
540
        while sound.IsPlaying do
541
            if charge <= 1 then 
542
                if debounce then break end
543
                if not sound.IsPlaying then break end
544
                    sound:stop()
545
                    debounce = true
546
                    chargetext.TextColor3 = Color3.new(1,0,0)
547
                    dancebro = Instance.new("StringValue", game:service'Lighting')
548
                    dancebro.Name = ('STOPDANCING'..plr.Name)
549
                    game:service'Debris':AddItem(dancebro, 1)
550
                    coroutine.wrap(function()
551
                        repeat wait() until charge >= 10
552
                        debounce = false
553
                        chargetext.TextColor3 = Color3.new(1,1,1)
554
                    end)()
555
                    coroutine.wrap(function()
556
                        while not sound.IsPlaying do
557
                            if charge <= 100 then
558
                            charge = charge + .1
559
                            wait()
560
                            elseif charge > 100 then
561
                            charge = 100
562
                            break
563
                            end
564
                        end
565
                    end)() 
566
            else
567
            charge = charge - .08
568
            wait()
569
            end
570
        end
571
    end)()
572
    coroutine.wrap(function()
573
        local ran,err = ypcall(function()
574
        while sound.IsPlaying and Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude <= 20 do
575
    if Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude >= 20 then stopsound() break end
576
    if not sound.IsPlaying then break end
577
    rayCast(speaker, 1250, 0, 5, "Lavender")
578
    wait(.35)
579
    if Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude >= 20 then stopsound() break end
580
    if not sound.IsPlaying then break end
581
    rayCast(speaker, 1250, 0, 5, "Pink")
582
    wait(.95)
583
    if Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude >= 20 then stopsound() break end
584
    if not sound.IsPlaying then break end
585
    rayCast(speaker, 1250, 0, 5, "Bright bluish green")
586
    wait(.55)
587
    if Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude >= 20 then stopsound() break end
588
    if not sound.IsPlaying then break end
589
    rayCast(speaker, 1250, 0, 5, "Pink")
590
    wait(.4)
591
    if Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude >= 20 then stopsound() break end
592
    if not sound.IsPlaying then break end
593
    rayCast(speaker, 1250, 0, 5, "Bright bluish green")
594
    local pl = Instance.new("PointLight", torso)
595
    pl.Color = Color3.new(153/255/1.25, 102/255/1.25, 204/255/1.25)
596
    pl.Range = 30
597
    pl.Brightness = 0.7
598
    game:service'Debris':AddItem(pl, .3)
599
    wait(.45)
600
    if Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude >= 20 then stopsound() break end
601
    if not sound.IsPlaying then break end
602
    rayCast(speaker, 1250, 0, 5, "Lavender")
603
    wait(.75)
604
    end
605
    end) if err then print(err) end
606
    end)()
607
end)
608
609
mouse.Button1Up:connect(function(mous)
610
    stopsound()
611
end)
612
ctrl = false
613
mouse.KeyDown:connect(function(k)
614
    if string.byte(k) == 50 then
615
        ctrl = true
616
        humanoid.WalkSpeed = 8
617
    end
618
    if string.byte(k) == 48 then
619
    humanoid.WalkSpeed = 28
620
    end
621
end)
622
623
mouse.KeyUp:connect(function(k)
624
    if string.byte(k) == 50 then
625
        ctrl = false
626
        humanoid.WalkSpeed = 16
627
    end
628
    if string.byte(k) == 48 then
629
    humanoid.WalkSpeed = 16
630
        if ctrl then
631
            humanoid.WalkSpeed = 8
632
        end
633
    end
634
end)
635
636
humanoid.Died:connect(function()
637
    deathpos = torso.Position
638
    WorkModel = Instance.new("Model", workspace)
639
    WorkModel.Name = " "
640
        wait(1/60)
641
        humanoid.Parent = nil
642
    if torso then
643
        local Head = char:FindFirstChild("Head")
644
        if Head then
645
            local Neck = Instance.new("Weld")
646
            Neck.Name = "Neck"
647
            Neck.Part0 = torso
648
            Neck.Part1 = Head
649
            Neck.C0 = CFrame.new(0, 1.5, 0)
650
            Neck.C1 = CFrame.new()
651
            Neck.Parent = torso
652
        end
653
        local Limb = char:FindFirstChild("Right Arm")
654
        if Limb then
655
656
            Limb.CFrame = torso.CFrame * CFrame.new(1.5, 0, 0)
657
            local Joint = Instance.new("Glue")
658
            Joint.Name = "RightShoulder"
659
            Joint.Part0 = torso
660
            Joint.Part1 = Limb
661
            Joint.C0 = CFrame.new(1.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
662
            Joint.C1 = CFrame.new(-0, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
663
            Joint.Parent = torso
664
665
            local B = Instance.new("Part")
666
            B.TopSurface = 0
667
            B.BottomSurface = 0
668
            B.formFactor = "Symmetric"
669
            B.Size = Vector3.new(1, 1, 1)
670
            B.Transparency = 1
671
            B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0)
672
            B.Parent = char
673
            B.CanCollide = false
674
            local W = Instance.new("Weld")
675
            W.Part0 = Limb
676
            W.Part1 = B
677
            W.C0 = CFrame.new(0, -0.5, 0)
678
            W.Parent = Limb
679
680
        end
681
        local Limb = char:FindFirstChild("Left Arm")
682
        if Limb then
683
684
            Limb.CFrame = torso.CFrame * CFrame.new(-1.5, 0, 0)
685
            local Joint = Instance.new("Glue")
686
            Joint.Name = "LeftShoulder"
687
            Joint.Part0 = torso
688
            Joint.Part1 = Limb
689
            Joint.C0 = CFrame.new(-1.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
690
            Joint.C1 = CFrame.new(0, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
691
            Joint.Parent = torso
692
693
            local B = Instance.new("Part")
694
            B.TopSurface = 0
695
            B.BottomSurface = 0
696
            B.formFactor = "Symmetric"
697
            B.Size = Vector3.new(1, 1, 1)
698
            B.Transparency = 1
699
            B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0)
700
            B.Parent = char
701
            B.CanCollide = false
702
            local W = Instance.new("Weld")
703
            W.Part0 = Limb
704
            W.Part1 = B
705
            W.C0 = CFrame.new(0, -0.5, 0)
706
            W.Parent = Limb
707
708
        end
709
        local Limb = char:FindFirstChild("Right Leg")
710
        if Limb then
711
712
            Limb.CFrame = torso.CFrame * CFrame.new(0.5, -2, 0)
713
            local Joint = Instance.new("Glue")
714
            Joint.Name = "RightHip"
715
            Joint.Part0 = torso
716
            Joint.Part1 = Limb
717
            Joint.C0 = CFrame.new(0.5, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
718
            Joint.C1 = CFrame.new(0, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
719
            Joint.Parent = torso
720
721
            local B = Instance.new("Part")
722
            B.TopSurface = 0
723
            B.BottomSurface = 0
724
            B.formFactor = "Symmetric"
725
            B.Size = Vector3.new(1, 1, 1)
726
            B.Transparency = 1
727
            B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0)
728
            B.Parent = char
729
            B.CanCollide = false
730
            local W = Instance.new("Weld")
731
            W.Part0 = Limb
732
            W.Part1 = B
733
            W.C0 = CFrame.new(0, -0.5, 0)
734
            W.Parent = Limb
735
736
        end
737
        local Limb = char:FindFirstChild("Left Leg")
738
        if Limb then
739
740
            Limb.CFrame = torso.CFrame * CFrame.new(-0.5, -2, 0)
741
            local Joint = Instance.new("Glue")
742
            Joint.Name = "LeftHip"
743
            Joint.Part0 = torso
744
            Joint.Part1 = Limb
745
            Joint.C0 = CFrame.new(-0.5, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
746
            Joint.C1 = CFrame.new(-0, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
747
            Joint.Parent = torso
748
749
            local B = Instance.new("Part")
750
            B.TopSurface = 0
751
            B.BottomSurface = 0
752
            B.formFactor = "Symmetric"
753
            B.Size = Vector3.new(1, 1, 1)
754
            B.Transparency = 1
755
            B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0)
756
            B.Parent = char
757
            B.CanCollide = false
758
            local W = Instance.new("Weld")
759
            W.Part0 = Limb
760
            W.Part1 = B
761
            W.C0 = CFrame.new(0, -0.5, 0)
762
            W.Parent = Limb
763
        end
764
        for blood = 0, 3 do
765
            local blood = Instance.new("Part", workspace)
766
            blood.BrickColor = BrickColor.Red()
767
            blood.FormFactor = "Custom"
768
            blood.Size = Vector3.new(.2,.2,.2)
769
            blood.Anchored = true
770
            blood.TopSurface = "Smooth"
771
            blood.BackSurface = "Smooth"
772
            local bloodmesh = Instance.new("CylinderMesh", blood)
773
            bloodmesh.Scale = Vector3.new(3, 0, 3)
774
            local rayzb = Ray.new(torso.Position, Vector3.new(0, -20, 0) + Vector3.new(math.random(-2, 2), 0, math.random(-2, 2)))
775
            local hitzb, hitposb = workspace:findPartOnRay(rayzb, char)
776
            if hitzb then
777
            blood.CFrame = CFrame.new(hitposb.x,hitposb.y,hitposb.z)
778
            blood.CFrame = blood.CFrame * CFrame.new(0, .05, 0)
779
                coroutine.wrap(function()
780
                    for cframe = 0, math.random(16, 24) do
781
                        bloodmesh.Scale = bloodmesh.Scale + Vector3.new(.45, 0, .45)
782
                        wait()
783
                    end
784
                end)()
785
            elseif not hitzb then
786
            blood:Destroy()
787
            end
788
        end
789
        local BP = Instance.new("BodyPosition", torso)
790
        BP.maxForce = Vector3.new(1,1,1)/0
791
        BP.position = deathpos
792
        for i,v in pairs(char:children()) do
793
            if v:IsA("Part") then v.Parent = WorkModel end
794
        end
795
        wait(.3)
796
        BP:Destroy()
797
    end
798
end)
799
800
local rlegm = Instance.new("Motor", torso)
801
rlegm.C0 = CFrame.new(0.5, -1, 0)
802
rlegm.C1 = CFrame.new(0, 1, 0)
803
rlegm.Part0 = torso
804
rlegm.Part1 = rl
805
rlegm.Name = "Right Hip"
806
local llegm = Instance.new("Motor", torso)
807
llegm.C0 = CFrame.new(-0.5, -1, 0)
808
llegm.C1 = CFrame.new(0, 1, 0)
809
llegm.Part0 = torso
810
llegm.Part1 = ll
811
llegm.Name = "Left Hip"
812
neck.C0 = CFrame.new(0, 1, 0)
813
neck.C1 = CFrame.new(0, -0.5, 0)
814
rj.C0 = CFrame.new(0, -1, 0)
815
rj.C1 = CFrame.new(0, -1, 0)
816
rsc0 = rm.C0
817
lsc0 = lm.C0
818
neckc0 = neck.C0
819
rootc0 = rj.C0
820
llc0 = llegm.C0
821
rlc0 = rlegm.C0
822
speed = 0.4
823
angle = 0
824
anglespeed = 0
825
mvmnt = 0
826
game:service'RunService'.RenderStepped:connect(function()
827
    angle = (angle % 100) + anglespeed/10
828
    mvmnt = math.pi * math.sin(math.pi*2/100*(angle*10))
829
        local rscf = rsc0
830
        local lscf = lsc0
831
        local rlcf = rlc0
832
        local llcf = llc0
833
        local rjcf = rootc0
834
        local ncf = neckc0
835
        local rayz = Ray.new(rootpart.Position, Vector3.new(0, -4.1, 0))
836
        local hitz, enz = workspace:findPartOnRay(rayz, char)
837
        --math.asin(mouse.UnitRay.Direction.y)
838
        ncf = neckc0 * CFrame.Angles(camera.CoordinateFrame.lookVector.y, 0, 0)
839
        rscf = rsc0 * CFrame.new(-.55, 0, .35) * CFrame.Angles(camera.CoordinateFrame.lookVector.y+math.pi/2, 0, 0)
840
        lscf = lsc0 * CFrame.new(.85, 0, -.65) * CFrame.Angles(camera.CoordinateFrame.lookVector.y+math.pi/2, 0, math.rad(45))
841
        if firing then
842
            rscf = rsc0 * CFrame.new(-.55, .15, .65) * CFrame.Angles(camera.CoordinateFrame.lookVector.y+math.pi/2, 0, 0)
843
            lscf = lsc0 * CFrame.new(.85, .15, -.35) * CFrame.Angles(camera.CoordinateFrame.lookVector.y+math.pi/2, 0, math.rad(45)) 
844
        end
845
        if not hitz then
846
            ncf = neckc0 * CFrame.Angles(math.pi/18, 0, 0)
847
                rscf = rsc0 * CFrame.new(-.45, 0, -.75) * CFrame.Angles(math.pi/5+math.pi/18, 0, math.rad(-70))
848
                lscf = lsc0 * CFrame.new(.35, 0, 0) * CFrame.Angles(math.pi/3.5+math.pi/18, 0, 0)
849
            rjcf = rootc0 * CFrame.Angles(-math.pi/32, 0, 0)
850
                rlcf = rlc0 * CFrame.new(0, 0.7, -0.5) * CFrame.Angles(-math.pi/14, 0, 0)
851
                llcf = llc0 * CFrame.Angles(-math.pi/20, 0, 0)
852
        elseif humanoid.Sit then
853
            ncf = neckc0 * CFrame.Angles(0, 0, 0)
854
            rjcf = rootc0 * CFrame.new(0, -.2, 0)
855
            rlcf = rlc0 * CFrame.Angles(math.pi/2, 0, math.rad(7.5))
856
            llcf = llc0 * CFrame.Angles(math.pi/2, 0, -math.rad(7.5))
857
            if sprinting then
858
                debounceofsprint = false
859
                sprinting = false
860
            end
861
        elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude <= 2 then
862
            speed = 0.3
863
            if ctrl then
864
                rjcf = rootc0 * CFrame.new(0, -1.25, 0)
865
                llcf = llc0 * CFrame.new(0, 0, -.45) * CFrame.Angles(-math.pi/2.2, 0, 0)
866
                rlcf = rlcf * CFrame.new(0, 1.25, -.85)
867
            else
868
                rjcf = rootc0
869
                rlcf = rlc0 * CFrame.Angles(-math.rad(.5), 0, math.rad(1.5))
870
                llcf = llc0 * CFrame.Angles(math.rad(1.5), 0, -math.rad(1.5))
871
            end
872
    elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude <= 20 then
873
        if not humanoid.Sit then
874
            anglespeed = 2
875
            if ctrl then
876
                anglespeed = 3
877
                ncf = neckc0 * CFrame.Angles(camera.CoordinateFrame.lookVector.y+math.pi/18, 0, 0)
878
                rjcf = rootc0 * CFrame.new(0, -.35, 0) * CFrame.Angles(-math.pi/18, 0, 0)
879
                rscf = rsc0 * CFrame.new(-.55, 0, .35) * CFrame.Angles(camera.CoordinateFrame.lookVector.y+math.pi/2+math.pi/18, 0, 0)
880
                lscf = lsc0 * CFrame.new(.85, 0, -.65) * CFrame.Angles(camera.CoordinateFrame.lookVector.y+math.pi/2+math.pi/18, 0, math.rad(45))
881
                llcf = llc0 * CFrame.new(0, .45, -.35) * CFrame.Angles(math.pi/18 - math.sin(angle)*.45, 0, 0)
882
                rlcf = rlcf * CFrame.new(0, .45, -.35) * CFrame.Angles(math.pi/18 + math.sin(angle)*.45, 0, 0)
883
            else
884
                rjcf = rootc0
885
                rlcf = rlc0 * CFrame.Angles(math.sin(-angle)*.65, 0, math.rad(.5))
886
                llcf = llc0 * CFrame.Angles(math.sin(angle)*.65, 0, -math.rad(.5))
887
            end
888
            if sprinting then
889
                debounceofsprint = false
890
                sprinting = false
891
            end
892
            end
893
        elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude >= 20 then
894
            if not humanoid.Sit then
895
            anglespeed = 2.7
896
                ncf = neckc0 * CFrame.Angles(math.pi/18, 0, 0)
897
                rscf = rsc0 * CFrame.new(-.45, 0, -.75) * CFrame.Angles(math.pi/5+math.pi/18, 0, math.rad(-70))
898
                lscf = lsc0 * CFrame.new(.35, 0, 0) * CFrame.Angles(math.pi/3.5+math.pi/18, 0, 0)
899
                rjcf = rootc0 * CFrame.new(0, 0, 0) * CFrame.Angles(-math.pi/18, math.sin(angle)*.1, math.sin(angle)*.045)
900
                rlcf = rlc0 * CFrame.new(0, .3 + -math.cos(-angle)*.3, -.2+math.sin(angle)*0.25) * CFrame.Angles(-math.pi/18+math.sin(-angle)*1.3, 0, math.rad(.5))
901
                llcf = llc0 * CFrame.new(0, .3 - -math.cos(angle)*.3, -.05-math.sin(angle)*0.25) * CFrame.Angles(-math.pi/18+math.sin(angle)*1.3, 0, -math.rad(.5))
902
            sprinting = true
903
            debounceofsprint = true
904
            end
905
        end
906
    rm.C0 = clerp(rm.C0,rscf,speed)
907
    lm.C0 = clerp(lm.C0,lscf,speed)
908
    rj.C0 = clerp(rj.C0,rjcf,speed)
909
    rlegm.C0 = clerp(rlegm.C0,rlcf,speed)
910
    llegm.C0 = clerp(llegm.C0,llcf,speed)
911
    neck.C0 = clerp(neck.C0,ncf,speed)
912
end)