View difference between Paste ID: Dj9H6v4L and qwU5LJfx
SHOW: | | - or go back to the newest paste.
1
-- Local Script : Just run it no need to put name in it
2
3
-------------------------------------------------------------------------------------
4
5
Players = game:GetService("Players")
6
Me = Players.LocalPlayer
7
Char = Me.Character
8
necko = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0) 
9
ShootColors = {"Bright yellow", "New Yeller", "Bright orange", "Neon orange", "Really red", "Bright red"}
10
PlaceId = game.PlaceId
11
12
Selected = false
13
Attacking = false
14-
Accuracy = 5
14+
Accuracy = 500
15
Debounce = true
16
Hurt = false
17
Damage = {15,42}
18
19
ContentProvider = game:GetService("ContentProvider")
20
21
V3 = Vector3.new
22
C3 = Color3.new
23
BN = BrickColor.new
24
CN = CFrame.new
25
CA = CFrame.Angles
26
MR = math.rad
27
MRA = math.random
28
MP = math.pi
29
MH = math.huge
30
UD = UDim2.new
31
32
function RC(Pos, Dir, Max, Ignore)
33
	return workspace:FindPartOnRay(Ray.new(Pos, Dir.unit * (Max or 999)), Ignore)
34
end
35
36
function RayC(Start, En, MaxDist, Ignore)
37
	return RC(Start, (En - Start), MaxDist, Ignore)
38
end
39
40
function ComputePos(pos1, pos2)
41
	return CN(pos1, V3(pos2.x, pos1.y, pos2.z))
42
end
43
44
function DetectSurface(pos, part)
45
	local surface = nil
46
	local pospos = part.CFrame
47
	local pos2 = pospos:pointToObjectSpace(pos)
48
	local siz = part.Size
49
	local shaep = part.Shape
50
	if shaep == Enum.PartType.Ball or shaep == Enum.PartType.Cylinder then
51
		surface = {"Anything", CN(pospos.p, pos)*CN(0, 0, -(pospos.p - pos).magnitude)*CA(MR(-90), 0, 0)}
52
	else
53
		if pos2.Y > ((siz.Y/2)-0.04) then
54
			surface = {"Top", CA(0, 0, 0)}
55
		elseif pos2.Y < -((siz.Y/2)-0.04) then
56
			surface = {"Bottom", CA(-MP, 0, 0)}
57
		elseif pos2.X > ((siz.X/2)-0.04) then
58
			surface = {"Right", CA(0, 0, MR(-90))}
59
		elseif pos2.X < -((siz.X/2)-0.04) then
60
			surface = {"Left", CA(0, 0, MR(90))}
61
		elseif pos2.Z > ((siz.Z/2)-0.04) then
62
			surface = {"Back", CA(MR(90), 0, 0)}
63
		elseif pos2.Z < -((siz.Z/2)-0.04) then
64
			surface = {"Front", CA(MR(-90), 0, 0)}
65
		end
66
	end
67
	return surface
68
end
69
70
function Compute(pos1, pos2)
71
	local pos3 = Vector3.new(pos2.x, pos1.y, pos2.z)
72
	return CN(pos1, pos3)
73
end
74
75
function waitChild(n, p)
76
	local c = p:findFirstChild(n)
77
	if c then return c end
78
	while true do
79
		c = p.ChildAdded:wait()
80
		if c.Name == n then return c end
81
	end
82
end
83
84
function Notime(func)
85
	coroutine.resume(coroutine.create(function()
86
		func()
87
	end))
88
end
89
90
Torso = waitChild("Torso", Char)
91
Head = waitChild("Head", Char)
92
Rarm = waitChild("Right Arm", Char)
93
Larm = waitChild("Left Arm", Char)
94
Rleg = waitChild("Right Leg", Char)
95
Lleg = waitChild("Left Leg", Char)
96
Neck = waitChild("Neck", Torso)
97
Hum = waitChild("Humanoid", Char)
98
99
RSH = waitChild("Right Shoulder", Torso)
100
LSH = waitChild("Left Shoulder", Torso)
101
RH = waitChild("Right Hip", Torso)
102
LH = waitChild("Left Hip", Torso)
103
104
RSH.Part0 = Torso
105
LSH.Part0 = Torso
106
RH.Part0 = Torso
107
LH.Part0 = Torso
108
109
Add = {
110
	Mesh = function(P, ID, Scale, Tex)
111
		local m = Instance.new("SpecialMesh")
112
		m.MeshType = "FileMesh"
113
		m.MeshId = ID or ""
114
		m.Scale = Scale or V3(1, 1, 1)
115
		m.TextureId = Tex or ""
116
		m.Parent = P
117
		return m
118
	end,
119
	Sphere = function(P, Scale)
120
		local m = Instance.new("SpecialMesh")
121
		m.MeshType = "Sphere"
122
		m.Scale = Scale or V3(1, 1, 1)
123
		m.Parent = P
124
		return m
125
	end
126
}
127
128
Sounds = {
129
	Shoot = {Id = "http://www.roblox.com/asset/?id=2697431", Pitch = 0.3, Volume = 0.5},
130
	Boom = {Id = "http://www.roblox.com/asset/?id=2692806", Pitch = 0.55, Volume = 0.4},
131
	Slash = {Id = "rbxasset://sounds//swordslash.wav", Pitch = 0.5, Volume = 0.5},
132
	Hit = {Id = "http://www.roblox.com/asset/?id=2801263", Pitch = 0.85, Volume = 0.35},
133
	Reload = {Id = "rbxasset://sounds\\metal.ogg", Pitch = 1, Volume = 0.45},
134
}
135
136
for _,v in pairs(Sounds) do
137
	ContentProvider:Preload(v.Id)
138
end
139
140
function PlaySound(Sound, bool)
141
	local s = Instance.new("Sound")
142
	s.Looped = false
143
	s.Volume = Sound.Volume
144
	s.SoundId = Sound.Id
145
	if bool then
146
		s.Pitch = MRA((Sound.Pitch*0.75)*1000, (Sound.Pitch*1.15)*1000)/1000
147
	else
148
		s.Pitch = Sound.Pitch
149
	end
150
	s.PlayOnRemove = true
151
	s.Parent = Torso
152
	Notime(function()
153
		wait(0)
154
		s.Parent = nil
155
	end)
156
end
157
158
function GetParts(pos, dist)
159
	local parts = {}
160
	local function o(p)
161
		for _,v in pairs(p:children()) do
162
			if v:IsA("BasePart") then
163
				if (pos - v.Position).magnitude <= dist then
164
					table.insert(parts, {v, (pos - v.Position).magnitude, v.Anchored})
165
				end
166
			end
167
			o(v)
168
		end
169
	end
170
	o(workspace)
171
	return parts
172
end
173
174
function GetHum(P)
175
	for _,v in pairs(P:children()) do
176
		if v:IsA("Humanoid") then
177
			if v.Health > 0 then
178
				return v
179
			end
180
		end
181
	end
182
end
183
184
function GetGroup(Pos, Distance, Hit)
185
	local tab = {}
186
	for _,v in pairs(workspace:children()) do
187
		local h = GetHum(v)
188
		local t = v:findFirstChild("Torso")
189
		if h and t and v ~= Hit.Parent then
190
			if (t.Position - Pos).magnitude <= Distance then
191
				table.insert(tab, {h, v, (t.Position - Pos).magnitude})
192
			end
193
		end
194
	end
195
	if Hit then
196
		local h = GetHum(Hit.Parent)
197
		if h then
198
			table.insert(tab, {h, Hit.Parent, 0})
199
		end
200
	end
201
	return tab
202
end
203
204
function Tag(hum)
205
	if PlaceId == 48513881 then
206
		local tag = Instance.new("ObjectValue")
207
		tag.Name = "creator"
208
		tag.Value = Me
209
		tag.Parent = hum
210
	end
211
end
212
213
function Part(Par, Anc, Colli, Tran, Ref, Col, Siz)
214
	local p = Instance.new("Part")
215
	p.formFactor = "Custom"
216
	p.TopSurface = 0
217
	p.BottomSurface = 0
218
	p.Transparency = Tran
219
	p.Reflectance = Ref
220
	p.Anchored = Anc
221
	p.CanCollide = Colli
222
	p.BrickColor = Col
223
	p.Size = Siz
224
	p.Locked = true
225
	p.Parent = Par
226
	p:BreakJoints()
227
	return p
228
end
229
230
function Weld(P0, P1, C0, C1)
231
	local w = Instance.new("Weld")
232
	w.Part0 = P0
233
	w.Part1 = P1
234
	if C0 then
235
		w.C0 = C0
236
	end
237
	if C1 then
238
		w.C1 = C1
239
	end
240
	w.Parent = P0
241
	return w
242
end
243
244
for _,v in pairs(Char:children()) do
245
	if v.Name == "Hand Cannon" then
246
		v:remove()
247
	end
248
end
249
250
Model = Instance.new("Model")
251
Model.Name = "Hand Cannon"
252
253
FTorso = Part(Model, false, false, 1, 0, Torso.BrickColor, V3(2, 2, 1))
254
FW = Weld(Torso, FTorso)
255
256
RAB = Part(Model, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
257
LAB = Part(Model, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
258
RLB = Part(Model, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
259
LLB = Part(Model, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
260
261
RABW = Weld(Torso, RAB, CN(), CN(-1.5, -0.5, 0))
262
LABW = Weld(Torso, LAB, CN(), CN(1.5, -0.5, 0))
263
RLBW = Weld(Torso, RLB, CN(), CN(-0.5, 1, 0))
264
LLBW = Weld(Torso, LLB, CN(), CN(0.5, 1, 0))
265
266
RAW = Weld(RAB, nil, CN(), CN(0, 0.5, 0))
267
LAW = Weld(LAB, nil, CN(), CN(0, 0.5, 0))
268
RLW = Weld(RLB, nil, CN(), CN(0, 1, 0))
269
LLW = Weld(LLB, nil, CN(), CN(0, 1, 0))
270
271
TW = Weld(Torso, nil, CN(0.7, 0.8, 1.2), CA(0, MR(180), MR(55)))
272
273
Weapon = Instance.new("Model")
274
Weapon.Name = "Cannon"
275
276
HB = Part(Weapon, false, false, 1, 0, BN("White"), V3(0.2, 0.2, 0.2))
277
HBW = Weld(Rarm, HB, CN(0, -0.7, 0), CA(0, MR(90), MR(90)))
278
HW = Weld(HB, nil)
279
280
Handle = Part(Weapon, false, false, 0, 0, BN("Dark grey"), V3(0.5, 0.5, 0.3))
281
Add.Mesh(Handle, "http://www.roblox.com/asset/?id=3270017", V3(1, 0.7, 2.2), "")
282
TW.Part1 = Handle
283
284
Main = Part(Weapon, false, false, 0, 0, BN("Dark grey"), V3(1.5, 1.5, 2.5))
285
Add.Mesh(Main, "http://www.roblox.com/asset/?id=3270017", V3(1.6, 1.6, 15), "")
286
Weld(Handle, Main, CA(0, MR(90), MR(90)), CN(1, 0, 0.2))
287
288
Main2 = Part(Weapon, false, false, 0, 0, BN("Gun metallic"), V3(1, 1, 1.5))
289
Add.Mesh(Main2, "http://www.roblox.com/asset/?id=3270017", V3(1.2, 1.2, 8), "")
290
Weld(Main, Main2, CN(), CN(0, 0, 1.7))
291
292
Handle2 = Part(Weapon, false, false, 0, 0, BN("Dark grey"), V3(0.5, 0.5, 0.3))
293
Add.Mesh(Handle2, "http://www.roblox.com/asset/?id=3270017", V3(0.7, 0.8, 2.2), "")
294
Weld(Main2, Handle2, CA(0, MR(90), MR(90)), CN(-0.65, 0, 0))
295
296
Tip = Part(Weapon, false, false, 0, 0, BN("Earth yellow"), V3(1.6, 1.6, 0.6))
297
Add.Sphere(Tip, V3(1.05, 1.05, 1))
298
Weld(Main, Tip, CN(), CN(0, 0, -1.15))
299
300
Tip4 = Part(Weapon, false, false, 0, 0, BN("Black"), V3(1.2, 1.2, 0.3))
301
Add.Mesh(Tip4, "http://www.roblox.com/asset/?id=3270017", V3(1.7, 1.7, 10), "")
302
Weld(Main, Tip4, CN(), CN(0, 0, -0.15))
303
304
for i = 1.3, 1.45, 0.1 do
305
	local Tip3 = Part(Weapon, false, false, 0, 0, BN("Dark grey"), V3(1.2, 1.2, 0.3))
306
	Add.Mesh(Tip3, "http://www.roblox.com/asset/?id=3270017", V3(i, i, 2), "")
307
	Weld(Main2, Tip3, CN(), CN(0, 0, 0.6))
308
end
309
310
for i = -0.95, 0.66, 1.55 do
311
	local Tip3 = Part(Weapon, false, false, 0, 0, BN("Dark Curry"), V3(1.2, 1.2, 0.3))
312
	Add.Mesh(Tip3, "http://www.roblox.com/asset/?id=3270017", V3(1.65, 1.65, 3), "")
313
	Weld(Main, Tip3, CN(), CN(0, 0, i))
314
end
315
316
for i = 1.3, 1.5, 0.1 do
317
	local Tip2 = Part(Weapon, false, false, 0, 0, BN("Earth yellow"), V3(1.6, 1.6, 0.6))
318
	Add.Mesh(Tip2, "http://www.roblox.com/asset/?id=3270017", V3(i, i, 2), "")
319
	Weld(Main, Tip2, CN(), CN(0, 0, 1.1))
320
end
321
322
for i = -0.3, 1, 0.15 do
323
	local p = Part(Weapon, false, false, 0.7, 0, BN("Black"), V3(0.2, 0.2, 0.2))
324
	Add.Sphere(p, V3(6, 6, 2))
325
	Weld(Main2, p, CN(0, 0, i))
326
end
327
328
function Show_Damage(P, D)
329
	local mo = Instance.new("Model")
330
	mo.Name = "- "..D
331
	local p = Part(mo, false, false, 0, 0, BN("Bright red"), V3(0.2, 0.2, 0.2))
332
	p.Name = "Head"
333
	local m = Instance.new("SpecialMesh")
334
	m.MeshType = "Brick"
335
	m.Scale = Vector3.new(4.5, 2.3, 4.5)
336
	m.Parent = p
337
	local bp = Instance.new("BodyPosition", p)
338
	bp.maxForce = V3(MH, MH, MH)
339
	bp.P = 9001
340
	bp.position = CN(P) * CN(0, 1.5, 0).p
341
	local h = Instance.new("Humanoid")
342
	h.Health = 0
343
	h.MaxHealth = 0
344
	h.Name = "asd"
345
	h.Parent = mo
346
	local nah = true
347
	mo.Parent = workspace
348
	p.CFrame = CN(P) 
349
	Notime(function()
350
		wait(0)
351
		for i = 0, 1, 0.05 do
352
			p.Transparency = i
353
			if nah then mo.Name = "" nah = false else mo.Name = "- "..D nah = true end
354
			wait(0)
355
		end
356
		mo:remove()
357
	end)
358
end
359
360
function Kill(hit)
361
	if Debounce and Hurt then
362
		local Hu = GetHum(hit.Parent)
363
		if Hu then
364
			Debounce = false
365
			local Dmg = MRA(Damage[1], Damage[2])
366
			Hu.Health = Hu.Health - Dmg
367
			Show_Damage(Tip.Position, Dmg)
368
			PlaySound(Sounds.Hit, true)
369
			Tag(Hu)
370
			local chance = MRA(1, 10)
371
			if chance >=5 then
372
				Hu.PlatformStand = true
373
				wait(0)
374
				hit.Velocity = (CN(Torso.CFrame * CN(0, 0.5, 0).p, hit.Position).lookVector * 45)
375
				hit.RotVelocity = V3(MRA(-10, 10), MRA(-10, 10), MRA(-10, 10))
376
				wait(0)
377
				Hu.PlatformStand = false
378
			end
379
		end
380
	end
381
end
382
383
Main.Touched:connect(Kill)
384
385
Weapon.Parent = Model
386
Model.Parent = Char
387
388
if script.Parent.className ~= "HopperBin" then
389
	h = Instance.new("HopperBin", Me.Backpack)
390
	h.Name = "Hand Cannon"
391
	script.Parent = h
392
end
393
394
bin = script.Parent
395
396
function Attach(t)
397
	RSH.Part0 = t
398
	LSH.Part0 = t
399
	RH.Part0 = t
400
	LH.Part0 = t
401
	RABW.Part0 = t
402
	LABW.Part0 = t
403
	LLBW.Part0 = t
404
	RLBW.Part0 = t
405
	if t == Torso then
406
		FTorso.Transparency = 1
407
	else
408
		Torso.Transparency = 1
409
	end
410
	t.Transparency = 0
411
end
412
413
function SelectAnim()
414
	RAW.Part1 = Rarm
415
	for i = 0.25, 1, 0.25 do
416
		RAW.C0 = CA(MR(-10*i), 0, MR(-5*i))
417
		wait(0)
418
	end
419
	for i = 0.1, 1, 0.1 do
420
		RAW.C0 = CA(MR(-10-90*i), 0, MR(-5-30*i))
421
		wait(0)
422
	end
423
	for i = 0.5, 1, 0.5 do
424
		RAW.C0 = CA(MR(-100-5*i), 0, MR(-35))
425
		wait(0)
426
	end
427
	HW.Part1 = Handle
428
	HW.C0 = CA(MR(50), 0, MR(-37))
429
	TW.Part1 = nil
430
	Attach(FTorso)
431
	LAW.Part1 = Larm
432
	for i = 0.25, 1, 0.25 do
433
		RAW.C0 = CA(MR(-105+10*i), 0, MR(-35+5*i))
434
		LAW.C0 = CA(MR(15*i), 0, MR(5*i))
435
		FW.C0 = CA(0, MR(-5*i), 0)
436
		HW.C0 = CA(MR(50-5*i), 0, MR(-37))
437
		wait(0)
438
	end
439
	for i = 0.06, 1, 0.06 do
440
		RAW.C0 = CA(MR(-95+95*i), MR(35*i), MR(-30+50*i))
441
		LAW.C0 = CA(MR(15+25*i), 0, MR(5+15*i)) * CN(0, -0.4*i, 0)
442
		FW.C0 = CA(0, MR(-5-30*i), 0)
443
		HW.C0 = CA(MR(45), 0, MR(-37+15*i))
444
		wait(0)
445
	end
446
	Hum.WalkSpeed = 10
447
	for i = 0.1, 1, 0.1 do
448
		RAW.C0 = CA(MR(15*i), MR(35+10*i), MR(20+8*i))
449
		LAW.C0 = CA(MR(40+7*i), 0, MR(20+6*i)) * CN(0, -0.4-0.2*i, 0)
450
		FW.C0 = CA(0, MR(-35-10*i), 0)
451
		HW.C0 = CA(MR(45-11*i), 0, MR(-22+15*i))
452
		wait(0)
453
	end
454
	for i = 0.25, 1, 0.25 do
455
		RAW.C0 = CA(MR(15+5*i), MR(45+5*i), MR(28+2*i))
456
		LAW.C0 = CA(MR(47+3*i), 0, MR(26+4*i)) * CN(0, -0.6, 0)
457
		FW.C0 = CA(0, MR(-45-5*i), 0)
458
		HW.C0 = CA(MR(34-4*i), 0, MR(-7+7*i))
459
		wait(0)
460
	end
461
end
462
463
function DeselAnim()
464
	for i = 0.25, 1, 0.25 do
465
		RAW.C0 = CA(MR(20-5*i), MR(50-5*i), MR(30-5*i))
466
		LAW.C0 = CA(MR(50-5*i), 0, MR(30-5*i)) * CN(0, -0.6+0.1*i, 0)
467
		FW.C0 = CA(0, MR(-50+5*i), 0)
468
		HW.C0 = CA(MR(30+5*i), 0, MR(-10*i))
469
		wait(0)
470
	end
471
	for i = 0.15, 1, 0.15 do
472
		RAW.C0 = CA(MR(15-30*i), MR(45-10*i), MR(25-5*i))
473
		LAW.C0 = CA(MR(45-20*i), 0, MR(25-15*i)) * CN(0, -0.5+0.2*i, 0)
474
		FW.C0 = CA(0, MR(-45+10*i), 0)
475
		HW.C0 = CA(MR(35+10*i), 0, MR(-10-15*i))
476
		wait(0)
477
	end
478
	for i = 0.12, 1, 0.12 do
479
		RAW.C0 = CA(MR(-15-70*i), MR(35-30*i), MR(20-30*i))
480
		LAW.C0 = CA(MR(25-25*i), 0, MR(10-10*i)) * CN(0, -0.3+0.3*i, 0)
481
		FW.C0 = CA(0, MR(-35+20*i), 0)
482
		HW.C0 = CA(MR(45+5*i), 0, MR(-25-12*i))
483
		wait(0)
484
	end
485
	LAW.Part1 = nil
486
	HW.C0 = CA(MR(50), 0, MR(-37))
487
	for i = 0.25, 1, 0.25 do
488
		RAW.C0 = CA(MR(-85-20*i), MR(5-5*i), MR(-10-25*i))
489
		FW.C0 = CA(0, MR(-15+15*i), 0)
490
		wait(0)
491
	end
492
	Attach(Torso)
493
	HW.Part1 = nil
494
	TW.Part1 = Handle
495
	Hum.WalkSpeed = 16
496
	for i = 0.15, 1, 0.15 do
497
		RAW.C0 = CA(MR(-105+95*i), 0, MR(-35+30*i))
498
		wait(0)
499
	end
500
	for i = 0.33, 1, 0.33 do
501
		RAW.C0 = CA(MR(-10+10*i), 0, MR(-5+5*i))
502
		wait(0)
503
	end
504
	RAW.Part1 = nil
505
end
506
507
--Norms:
508
--RAW.C0 = CA(MR(20), MR(50), MR(30))
509
--LAW.C0 = CA(MR(50), 0, MR(30)) * CN(0, -0.6, 0)
510
--FW.C0 = CA(0, MR(-50), 0)
511
--HW.C0 = CA(MR(30), 0, 0)
512
--
513
--
514
515
function Explode(Par, Pos, surface)
516
	Notime(function()
517
		local cf = CN(Pos) * CA(Par.CFrame:toEulerAnglesXYZ()) * surface[2] * CN(0, 1, 0)
518
		if surface[1] == "Anything" then
519
			cf = surface[2]
520
		end
521
		local col = Par.BrickColor.Color
522
		local r, g, b = col.r, col.g, col.b
523
		local col1, col2, col3 = C3(MRA(r*60, r*100)/100, MRA(g*60, g*100)/100, MRA(b*60, b*100)/100), C3(MRA(r*60, r*100)/100, MRA(g*60, g*100)/100, MRA(b*60, b*100)/100), C3(MRA(r*60, r*100)/100, MRA(g*60, g*100)/100, MRA(b*60, b*100)/100)
524
		local p = Part(workspace, true, false, 0, 0, BN(col1.r, col1.g, col1.b), V3(0.2, 0.2, 0.2))
525
		local p2 = Part(workspace, true, false, 0, 0, BN(col2.r, col2.g, col2.b), V3(0.2, 0.2, 0.2))
526
		local p3 = Part(workspace, true, false, 0, 0, BN(col3.r, col3.g, col3.b), V3(0.2, 0.2, 0.2))
527
		p.CFrame = cf
528
		p2.CFrame = cf
529
		p3.CFrame = cf
530
		local m = Add.Mesh(p, "http://www.roblox.com/asset/?id=20329976", V3(1, 1, 1))
531
		local m2 = Add.Mesh(p2, "http://www.roblox.com/asset/?id=20329976", V3(1, 1, 1))
532
		local m3 = Add.Mesh(p3, "http://www.roblox.com/asset/?id=20329976", V3(1, 1, 1))
533
		for i = -0.2, 1, 0.12 do
534
			p2.Transparency = i+0.1
535
			p.Transparency = i
536
			p3.Transparency = i+0.2
537
			m.Scale = V3(1+2.5*i, 1.4+1*i, 1+2.5*i)
538
			m2.Scale = V3(0.8+2*i, 1.2+1*i, 0.8+2*i)
539
			m3.Scale = V3(0.5+1*i, 1+1*i, 0.5+1*i)
540
			wait(0)
541
		end
542
		p2:remove()
543
		p3:remove()
544
		p:remove()
545
	end)
546
end
547
548
function Shoot(Pos)
549
	coroutine.resume(coroutine.create(function()
550
	local acc = Accuracy*100
551
	local Start = Main2.CFrame * CN(0, 0, -0.5).p
552
	local Face = CN(Start, Pos) * CA(MR(MRA(-acc, acc))/100, MR(MRA(-acc, acc))/100, MR(MRA(-acc, acc))/100)
553
	local Cannonball = Part(Model, true, false, 0, 0, BN("Black"), V3(1.3, 1.3, 1.3))
554
	Add.Sphere(Cannonball)
555
	Cannonball.CFrame = Face
556
	local Go = 3
557
	local Drop = 0.55/(Go*3)
558
	local Dist = 500
559
	local lastP = Start
560
	local omg = 0
561
	for i = Go, Dist, Go do
562
		Drop = Drop + 1/(Go*3)
563
		omg = omg + Drop
564
		local dropping = CA(MR(-Drop), 0, 0)
565
		if omg > 130 then
566
			dropping = CN()
567
		end
568
		Face = Face * dropping * CN(0, 0, -Go)
569
		Cannonball.CFrame = Face
570
		local Magn = (Face.p - lastP).magnitude
571
		local T = Part(Model, true, false, 0.1, 0, BN("Mid gray"), V3(0.2, 1, 0.2))
572
		local M = Instance.new("SpecialMesh",T)
573
		M.MeshType = "Head"
574
		M.Scale = V3(5, Magn, 5)
575
		T.CFrame = CN(lastP, Face.p) * CA(MR(-90), 0, 0) * CN(0, Magn/2, 0)
576
		Notime(function()
577
			wait(0)
578
			for i = 0.1, 1, 0.1 do
579
				T.Transparency = i+0.1
580
				M.Scale = V3(5-5*i, Magn+0.5, 5-5*i)
581
				wait(0)
582
			end
583
			T:remove()
584
		end)
585
		local Hit, Hitpos = RayC(lastP, Face.p, Go*2, Char)
586
		lastP = Face.p
587
		if Hit then
588
			PlaySound(Sounds.Boom, true)
589
			local s = DetectSurface(Hitpos, Hit)
590
			Explode(Hit, Hitpos, s)
591
			Cannonball.CFrame = CN(Hitpos)
592
			local hu = GetHum(Hit.Parent)
593
			if hu == nil and Hit.Parent.className ~= "Hat" and Hit.Anchored then
594
				coroutine.resume(coroutine.create(function()
595
					wait(0)
596
					for i = 0, 1, 0.04 do
597
						Cannonball.Transparency = i
598
						wait(0)
599
					end
600
					Cannonball:remove()
601
				end))
602
			else
603
				Cannonball:remove()
604
			end
605
			local Noobs = GetGroup(Hitpos, 5, Hit)
606
			for _,v in pairs(Noobs) do
607
				local dm = 60/((v[3]+3)/3)
608
				dm = MRA(dm*0.9, dm*1.04)
609
				v[1].Health = v[1].Health - dm
610
				local t = v[2]:findFirstChild("Head")
611
				if t then
612
					Show_Damage(t.Position, dm)
613
				end
614
				pcall(function()
615
				Tag(v[1])
616
				end)
617
			end
618
			local Parts = GetParts(Hitpos, 7)
619
			for _,v in pairs(Parts) do
620
				if v[3] == false then
621
					Notime(function()
622
						if v[1].Name == "Brick wall" then
623
							v[1]:BreakJoints()
624
							v[1].Velocity = (CN(Hitpos, v[1].Position).lookVector * (110/((v[2]+2)/3)))
625
							wait(0)
626
							v[1].Velocity = (CN(Hitpos, v[1].Position).lookVector * (110/((v[2]+2)/3)))
627
						else
628
							v[1].Velocity = (CN(Hitpos, v[1].Position).lookVector * (80/((v[2]+2)/3)))
629
						end
630
					end)
631
				end
632
			end
633
			break
634
		end
635
		wait(0)
636
	end
637
	end))
638
end
639
640
function ShootAnim(pos)
641
	RLW.Part1 = Rleg
642
	LLW.Part1 = Lleg
643
	local cf = ComputePos(Torso.Position, pos)
644
	local bp = Instance.new("BodyPosition",Torso)
645
	bp.maxForce = V3(MH, 0, MH)
646
	bp.P = 10000
647
	PlaySound(Sounds.Shoot, true)
648
	local effect = Part(Model, false, false, 0, 0, BN(ShootColors[MRA(1,#ShootColors)]), V3(0.2, 0.2, 0.2))
649
	local effect2 = Part(Model, false, false, 0, 0, BN(ShootColors[MRA(1,#ShootColors)]), V3(0.2, 0.2, 0.2))
650
	local m1 = Add.Mesh(effect, "http://www.roblox.com/asset/?id=20329976", V3(1,1,1))
651
	local m2 = Add.Mesh(effect2, "http://www.roblox.com/asset/?id=20329976", V3(1,1,1))
652
	local w1 = Weld(Main2, effect, CA(MR(-90), 0, 0), CN(0, -1, 0))
653
	local w2 = Weld(Main2, effect2, CA(MR(-90), 0, 0), CN(0, -1, 0))
654
	for i = 0, 1, 0.5 do
655
		RAW.C0 = CA(MR(20-50*i), MR(50-25*i), MR(30+45*i))
656
		LAW.C0 = CA(MR(50-10*i), 0, MR(30+20*i)) * CN(0, -0.6-0.3*i, 0)
657
		RLW.C0 = CA(MR(30*i), 0, MR(-15*i))
658
		LLW.C0 = CA(MR(10*i), 0, MR(-35*i))
659
		FW.C0 = CA(MR(5*i), MR(-50-15*i), 0)
660
		HW.C0 = CA(MR(30), MR(35*i), MR(-25*i))
661
		Neck.C0 = necko * CA(MR(10*i), 0, 0)
662
		bp.position = cf * CN(0, 0, 3*i).p
663
		m1.Scale = V3(0.5+0.6*i, 0.4+0.2*i, 0.5+0.6*i)
664
		m2.Scale = V3(0.3+0.5*i, 0.5+1*i, 0.3+0.5*i)
665
		w1.C1 = CN(0, -1-0.2*i, 0)
666
		w2.C1 = CN(0, -1-0.5*i, 0)
667
		effect.Transparency = 0.2*i
668
		effect2.Transparency = 0.2*i
669
		wait(0)
670
	end
671
	for i = 0.2, 1, 0.2 do
672
		RAW.C0 = CA(MR(-30-10*i), MR(25-5*i), MR(75+5*i))
673
		LAW.C0 = CA(MR(40-5*i), 0, MR(50+5*i)) * CN(0, -0.9-0.05*i, 0)
674
		RLW.C0 = CA(MR(30+5*i), 0, MR(-15))
675
		LLW.C0 = CA(MR(10+5*i), 0, MR(-35-5*i))
676
		FW.C0 = CA(MR(5+5*i), MR(-65-5*i), 0)
677
		HW.C0 = CA(MR(30), MR(35+5*i), MR(-25-5*i))
678
		Neck.C0 = necko * CA(MR(10+5*i), 0, 0)
679
		bp.position = cf * CN(0, 0, 3+1*i).p
680
		m1.Scale = V3(1+1*i, 0.7+0.9*i, 1+1*i)
681
		m2.Scale = V3(0.8+0.6*i, 1.5+1.6*i, 0.8+0.6*i)
682
		w1.C1 = CN(0, -1.2-0.6*i, 0)
683
		w2.C1 = CN(0, -1.5-1.8*i, 0)
684
		effect.Transparency = 0.2+0.9*i
685
		effect2.Transparency = 0.2+0.9*i
686
		wait(0)
687
	end
688
	effect:remove()
689
	effect2:remove()
690
	for i = 0.2, 1, 0.2 do
691
		bp.position = cf * CN(0, 0, 4+0.8*i).p
692
		wait(0)
693
	end
694
	for i = 0.08, 1, 0.06 do
695
		RAW.C0 = CA(MR(-40+50*i), MR(20+15*i), MR(80-35*i))
696
		LAW.C0 = CA(MR(35-30*i), 0, MR(55-45*i)) * CN(0, -0.95+0.5*i, 0)
697
		RLW.C0 = CA(MR(35-35*i), 0, MR(-15+25*i))
698
		LLW.C0 = CA(MR(15-15*i), 0, MR(-40+30*i))
699
		FW.C0 = CA(MR(10-7*i), MR(-70+40*i), 0)
700
		HW.C0 = CA(MR(30), MR(40-40*i), MR(-30-10*i))
701
		Neck.C0 = necko * CA(MR(15+5*i), 0, MR(20*i))
702
		bp.position = cf * CN(0, 0, 4.8+0.8*i).p
703
		wait(0)
704
	end
705
	bp:remove()
706
	for i = 0.33, 1, 0.33 do
707
		RAW.C0 = CA(MR(10+10*i), MR(35+5*i), MR(45-5*i))
708
		LAW.C0 = CA(MR(5), 0, MR(10)) * CN(0, -0.45+0.1*i, 0)
709
		FW.C0 = CA(MR(3-3*i), MR(-30+5*i), 0)
710
		HW.C0 = CA(MR(30), 0, MR(-40-10*i))
711
		wait(0)
712
	end
713
	for i = 0.12, 1, 0.12 do
714
		RAW.C0 = CA(MR(20+5*i), MR(40+5*i), MR(40+5*i))
715
		LAW.C0 = CA(MR(5), 0, MR(10)) * CN(0, -0.35-0.3*i, 0)
716
		FW.C0 = CA(0, MR(-25+5*i), 0)
717
		HW.C0 = CA(MR(30), 0, MR(-50-5*i))
718
		wait(0)
719
	end
720
	local b = Part(Model, false, false, 0, 0, BN("Black"), V3(1.1, 1.1, 1.1))
721
	local m = Add.Sphere(b)
722
	local w = Weld(Larm, b, CN(), CN(0, 1.4, 0))
723
	for i = 0.16, 1, 0.16 do
724
		LAW.C0 = CA(MR(5+30*i), 0, MR(10+10*i)) * CN(0, -0.65+0.65*i, 0)
725
		RAW.C0 = CA(MR(25), MR(45+3*i), MR(40))
726
		m.Scale = V3(0.5+0.5*i, 0.5+0.5*i, 0.5+0.5*i)
727
		Neck.C0 = necko * CA(MR(20-10*i), 0, MR(20-15*i))
728
		wait(0)
729
	end
730
	for i = 0.1, 1, 0.1 do
731
		LAW.C0 = CA(MR(35+105*i), 0, MR(20+20*i)) * CN(0, -0.9*i, 0)
732
		RAW.C0 = CA(MR(25), MR(48+6*i), MR(40))
733
		Neck.C0 = necko * CA(MR(10-10*i), 0, MR(5-35*i))
734
		wait(0)
735
	end
736
	for i = 0.16, 1, 0.16 do
737
		LAW.C0 = CA(MR(140-10*i), 0, MR(40-15*i)) * CN(0, -0.9-0.2*i, 0)
738
		RAW.C0 = CA(MR(25), MR(54), MR(40))
739
		Neck.C0 = necko * CA(MR(5*i), 0, MR(-30))
740
		w.C0 = CN(1.5*i, 0.55*i, 1.1*i)
741
		wait(0)
742
	end
743
	PlaySound(Sounds.Reload, true)
744
	b:remove()
745
	w:remove()
746
	for i = 0.2, 1, 0.2 do
747
		LAW.C0 = CA(MR(130-10*i), 0, MR(25-15*i)) * CN(0, -1.1+0.2*i, 0)
748
		RAW.C0 = CA(MR(25-10*i), MR(54), MR(40))
749
		Neck.C0 = necko * CA(MR(5-3*i), 0, MR(-30+5*i))
750
		HW.C0 = CA(MR(30), 0, MR(-55+10*i))
751
		FW.C0 = CA(0, MR(-20-5*i), 0)
752
		wait(0)
753
	end
754
	for i = 0.11, 1, 0.11 do
755
		LAW.C0 = CA(MR(120-60*i), 0, MR(10+15*i)) * CN(0, -0.9+0.3*i, 0)
756
		RAW.C0 = CA(MR(15+5*i), MR(54-4*i), MR(40-10*i))
757
		Neck.C0 = necko * CA(MR(2-2*i), 0, MR(-25+25*i))
758
		HW.C0 = CA(MR(30), 0, MR(-45+45*i))
759
		FW.C0 = CA(0, MR(-25-20*i), 0)
760
		RLW.C0 = CA(0, 0, MR(10-8*i))
761
		LLW.C0 = CA(0, 0, MR(-10+8*i))
762
		wait(0)
763
	end
764
	Neck.C0 = necko
765
	for i = 0.25, 1, 0.25 do
766
		LAW.C0 = CA(MR(60-10*i), 0, MR(25+5*i)) * CN(0, -0.6, 0)
767
		RAW.C0 = CA(MR(20), MR(50), MR(30))
768
		HW.C0 = CA(MR(30), 0, 0)
769
		FW.C0 = CA(0, MR(-45-5*i), 0)
770
		RLW.C0 = CA(0, 0, MR(2-2*i))
771
		LLW.C0 = CA(0, 0, MR(-2+2*i))
772
		wait(0)
773
	end
774
	RLW.Part1 = nil
775
	LLW.Part1 = nil
776
	RAW.C0 = CA(MR(20), MR(50), MR(30))
777
	LAW.C0 = CA(MR(50), 0, MR(30)) * CN(0, -0.6, 0)
778
	FW.C0 = CA(0, MR(-50), 0)
779
	HW.C0 = CA(MR(30), 0, 0)
780
	Neck.C0 = necko
781
end
782
783
function Melee()
784
	PlaySound(Sounds.Slash, true)
785
	for i = 0.25, 1, 0.25 do
786
		RAW.C0 = CA(MR(20+5*i), MR(50-5*i), MR(30+3*i))
787
		LAW.C0 = CA(MR(50), 0, MR(30+4*i)) * CN(0, -0.6-0.05*i, 0)
788
		HW.C0 = CA(MR(30), MR(5*i), 0)
789
		FW.C0 = CA(0, MR(-50-5*i), 0)
790
		wait(0)
791
	end
792
	for i = 0.12, 1, 0.12 do
793
		RAW.C0 = CA(MR(25+25*i), MR(45-30*i), MR(33+7*i))
794
		LAW.C0 = CA(MR(50), 0, MR(34+11*i)) * CN(0, -0.65-0.25*i, 0)
795
		HW.C0 = CA(MR(30), MR(5+25*i), 0)
796
		FW.C0 = CA(0, MR(-55-25*i), 0)
797
		wait(0)
798
	end
799
	for i = 0.33, 1, 0.33 do
800
		RAW.C0 = CA(MR(50+15*i), MR(15-5*i), MR(40-10*i)) * CN(0, -0.2*i, 0)
801
		LAW.C0 = CA(MR(50+10*i), 0, MR(45-5*i)) * CN(0, -0.9+0.15*i, 0)
802
		HW.C0 = CA(MR(30+2*i), MR(30+5*i), 0)
803
		FW.C0 = CA(0, MR(-80+10*i), MR(-5*i))
804
		wait(0)
805
	end
806
	Hurt = true
807
	Debounce = true
808
	for i = 0.07, 1, 0.07 do
809
		RAW.C0 = CA(MR(65+55*i), MR(10), MR(30-70*i)) * CN(0, -0.2-1.1*i, 0)
810
		LAW.C0 = CA(MR(60+120*i), 0, MR(40-70*i)) * CN(0, -0.75+0.7*i, 0)
811
		HW.C0 = CA(MR(32+6*i), MR(35+20*i), MR(-4*i))
812
		FW.C0 = CA(0, MR(-70+110*i), 0)
813
		wait(0)
814
	end
815
	for i = 0.16, 1, 0.16 do
816
		RAW.C0 = CA(MR(120+10*i), MR(10), MR(-40-5*i)) * CN(0, -1.3-0.1*i, 0)
817
		LAW.C0 = CA(MR(180+15*i), 0, MR(-30-20*i)) * CN(0, -0.05+0.1*i, 0)
818
		HW.C0 = CA(MR(38+2*i), MR(55-6*i), MR(-4-1*i))
819
		FW.C0 = CA(0, MR(40+10*i), 0)
820
		wait(0)
821
	end
822
	Hurt = false
823
	for i = 0.2, 1, 0.2 do
824
		RAW.C0 = CA(MR(130+5*i), MR(10), MR(-45-2*i)) * CN(0, -1.4-0.05*i, 0)
825
		LAW.C0 = CA(MR(195+5*i), 0, MR(-50-8*i)) * CN(0, 0.05+0.05*i, 0)
826
		HW.C0 = CA(MR(40), MR(49-2*i), MR(-5))
827
		FW.C0 = CA(0, MR(50+3*i), 0)
828
		wait(0)
829
	end
830
	wait(0)
831
	for i = 0.2, 1, 0.2 do
832
		RAW.C0 = CA(MR(135-10*i), MR(10+5*i), MR(-47+10*i)) * CN(0, -1.45+0.25*i, 0)
833
		LAW.C0 = CA(MR(200-10*i), 0, MR(-58+10*i)) * CN(0, 0.1-0.1*i, 0)
834
		HW.C0 = CA(MR(40), MR(47-5*i), MR(-5+5*i))
835
		FW.C0 = CA(0, MR(53-10*i), 0)
836
		wait(0)
837
	end
838
	for i = 0.08, 1, 0.08 do
839
		RAW.C0 = CA(MR(125-90*i), MR(15+30*i), MR(-37+57*i)) * CN(0, -1.2+1.1*i, 0)
840
		LAW.C0 = CA(MR(190-125*i), 0, MR(-48+68*i)) * CN(0, -0.5*i, 0)
841
		HW.C0 = CA(MR(40-7*i), MR(42-37*i), 0)
842
		FW.C0 = CA(0, MR(43-82*i), 0)
843
		wait(0)
844
	end
845
	for i = 0.2, 1, 0.2 do
846
		RAW.C0 = CA(MR(35-15*i), MR(45+5*i), MR(20+10*i)) * CN(0, -0.1+0.1*i, 0)
847
		LAW.C0 = CA(MR(65-15*i), 0, MR(20+10*i)) * CN(0, -0.5-0.1*i, 0)
848
		HW.C0 = CA(MR(33-3*i), MR(5-5*i), 0)
849
		FW.C0 = CA(0, MR(-41-9*i), 0)
850
		wait(0)
851
	end
852
	RLW.Part1 = nil
853
	LLW.Part1 = nil
854
	RAW.C0 = CA(MR(20), MR(50), MR(30))
855
	LAW.C0 = CA(MR(50), 0, MR(30)) * CN(0, -0.6, 0)
856
	FW.C0 = CA(0, MR(-50), 0)
857
	HW.C0 = CA(MR(30), 0, 0)
858
	Neck.C0 = necko
859
end
860
861
function onSelected(mouse)
862
	SelectAnim()
863
	Selected = true
864
	mouse.Button1Down:connect(function()
865
		if Attacking == false then
866
			Attacking = true
867
			mouse.Button1Up:wait(0)
868
			Shoot(mouse.Hit.p)
869
			ShootAnim(mouse.Hit.p)
870
			Attacking = false
871
		end
872
	end)
873
	mouse.KeyDown:connect(function(key)
874
		key = key:lower()
875
		if key == "q" then
876
			if Attacking == false then
877
				Attacking = true
878
				Melee()
879
				Attacking = false
880
			end
881
		end
882
	end)
883
end
884
885
function onDeselected(mouse)
886
	Selected = false
887
	DeselAnim()
888
end
889
890
bin.Selected:connect(onSelected)
891
bin.Deselected:connect(onDeselected)