View difference between Paste ID: GTy4Q4q7 and tyYi844Y
SHOW: | | - or go back to the newest paste.
1
--when you see YOURDRAGONNAME that means type your dragon name and when you see YOURNAMEHERE that mean you have to put your name--
2
MainColor = "Bright blue"
3
4-
Name = "YOURDRAGONNAME."
4+
Name = "megatron2006."
5
6
7
8
Plrs = game:GetService("Players")
9
10
11
12-
me = Plrs.YOURNAMEHERE
12+
me = Plrs.megatron2006
13
14
char = me.Character
15
16
Modelname = "xDragon"
17
18
PetName = "xDragon"
19
20
Toolname = "Dragon"
21
22
Surfaces = {"FrontSurface", "BackSurface", "TopSurface", "BottomSurface", "LeftSurface", "RightSurface"}
23
24
necko = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0) 
25
26
selected = false
27
28
Hurt = false
29
30
Deb = true
31
32
Able = true
33
34
Prop = {Damage = 30}
35
36
37
38
ToolIcon = ""
39
40
MouseIc = ""
41
42
MouseDo = ""
43
44
45
46
Add = {
47
48
	Sphere = function(P)
49
50
		local m = Instance.new("SpecialMesh",P)
51
52
		m.MeshType = "Sphere"
53
54
		return m
55
56
	end,
57
58
	BF = function(P)
59
60
		local bf = Instance.new("BodyForce",P)
61
62
		bf.force = Vector3.new(0, P:GetMass()*187, 0)
63
64
		return bf
65
66
	end,
67
68
	BP = function(P)
69
70
		local bp = Instance.new("BodyPosition",P)
71
72
		bp.maxForce = Vector3.new(math.huge, 0, math.huge)
73
74
		bp.P = 14000
75
76
		return bp
77
78
	end,
79
80
	BG = function(P)
81
82
		local bg = Instance.new("BodyGyro",P)
83
84
		bg.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
85
86
		bg.P = 14000
87
88
		return bg
89
90
	end,
91
92
	Mesh = function(P, ID, x, y, z)
93
94
		local m = Instance.new("SpecialMesh")
95
96
		m.MeshId = ID
97
98
		m.Scale = Vector3.new(x, y, z)
99
100
		m.Parent = P
101
102
		return m
103
104
	end,
105
106
	Sound = function(P, ID, vol, pitch)
107
108
		local s = Instance.new("Sound")
109
110
		s.SoundId = ID
111
112
		s.Volume = vol
113
114
		s.Pitch = pitch
115
116
		s.Parent = P
117
118
		return s
119
120
	end
121
122
}
123
124
125
126
function find(tab, arg)
127
128
	local ah = nil
129
130
	for i,v in pairs(tab) do
131
132
		if v == arg then
133
134
			ah = v
135
136
		end
137
138
	end
139
140
	return ah
141
142
end
143
144
145
146
function getAllParts(from)
147
148
	local t = {}
149
150
	function getParts(where)
151
152
		for i, v in pairs(where:children()) do
153
154
			if v:IsA("BasePart") then
155
156
				if v.Parent ~= char and v.Parent.Parent ~= char then
157
158
					table.insert(t, v)
159
160
				end
161
162
			end
163
164
			getParts(v)
165
166
		end
167
168
	end
169
170
	getParts(workspace)
171
172
	return t
173
174
end
175
176
177
178
function RayCast(pos1, pos2, maxDist, forward)
179
180
	local list = getAllParts(workspace)
181
182
	local pos0 = pos1
183
184
	for dist = 1, maxDist, forward do
185
186
		pos0 = (CFrame.new(pos1, pos2) * CFrame.new(0, 0, -dist)).p
187
188
		for _, v in pairs(list) do
189
190
			local pos3 = v.CFrame:pointToObjectSpace(pos0)
191
192
			local s = v.Size
193
194
			if pos3.x > -(s.x/2) and pos3.x < (s.x/2) and pos3.y > -(s.y/2) and pos3.y < (s.y/2) and pos3.z > -(s.z/2) and pos3.x < (s.z/2) and v.CanCollide == true then
195
196
				return pos0, v
197
198
			end
199
200
		end
201
202
	end
203
204
	return pos0, nil
205
206
end
207
208
209
210
function Part(Parent, Anchor, Collide, Tran, Ref, Color, X, Y, Z, Break)
211
212
	local p = Instance.new("Part")
213
214
	p.formFactor = "Custom"
215
216
	p.Anchored = Anchor
217
218
	p.CanCollide = Collide
219
220
	p.Transparency = Tran
221
222
	p.Reflectance = Ref
223
224
	p.BrickColor = BrickColor.new(Color)
225
226
	for _, Surf in pairs(Surfaces) do
227
228
		p[Surf] = "Smooth"
229
230
	end
231
232
	p.Size = Vector3.new(X, Y, Z)
233
234
	if Break then
235
236
		p:BreakJoints()
237
238
	else p:MakeJoints() end
239
240
	p.Parent = Parent
241
242
	return p
243
244
end
245
246
247
248
function Weld(p0, p1, x, y, z, a, b, c)
249
250
	local w = Instance.new("Weld")
251
252
	w.Parent = p0
253
254
	w.Part0 = p0
255
256
	w.Part1 = p1
257
258
	w.C1 = CFrame.new(x,y,z) * CFrame.Angles(a,b,c)
259
260
	return w
261
262
end
263
264
265
266
function ComputePos(pos1, pos2)
267
268
	local pos3 = Vector3.new(pos2.x, pos1.y, pos2.z)
269
270
	return CFrame.new(pos1, pos3)
271
272
end
273
274
275
276
function getHumanoid(c)
277
278
	local h = nil
279
280
	for i,v in pairs(c:children()) do
281
282
		if v:IsA("Humanoid") and c ~= char then
283
284
			if v.Health > 0 then
285
286
				h = v
287
288
			end
289
290
		end
291
292
	end
293
294
	return h
295
296
end
297
298
299
300
for i,v in pairs(char:children()) do
301
302
	if v.Name == Modelname or v.Name == PetName then
303
304
		v:remove()
305
306
	end
307
308
end
309
310
311
312
torso = char.Torso
313
314
neck = torso.Neck
315
316
hum = char.Humanoid
317
318
Rarm = char["Right Arm"]
319
320
Larm = char["Left Arm"]
321
322
Rleg = char["Right Leg"]
323
324
Lleg = char["Left Leg"]
325
326
327
328
hc = Instance.new("Humanoid")
329
330
hc.Health = 0
331
332
hc.MaxHealth = 0
333
334
335
336
slash = Add.Sound(nil, "rbxasset://sounds//swordslash.wav", 0.9, 0.8)
337
338
hitsound = Add.Sound(nil, "http://www.roblox.com/asset/?id=2801263", 0.7, 0.6)
339
340
charge = Add.Sound(nil, "http://www.roblox.com/asset/?id=2101137", 0.8, 0.65)
341
342
boom = Add.Sound(nil, "http://www.roblox.com/asset/?id=2691586", 0.8, 0.3)
343
344
smashsound = Add.Sound(nil, "http://www.roblox.com/asset/?id=2692806", 0.8, 0.35)
345
346
boomboom = Add.Sound(nil, "http://www.roblox.com/asset/?id=2760979", 1, 0.18)
347
348
349
350
function PlaySound(sound, pitch, vol)
351
352
	local s = sound:clone()
353
354
	if pitch ~= nil then
355
356
		if tonumber(pitch) then
357
358
			s.Pitch = tonumber(pitch)
359
360
		end
361
362
	end
363
364
	if vol ~= nil then
365
366
		if tonumber(vol) then
367
368
			s.Volume = tonumber(vol)
369
370
		end
371
372
	end
373
374
	s.Parent = torso
375
376
	s.PlayOnRemove = true
377
378
	coroutine.resume(coroutine.create(function()
379
380
		wait()
381
382
		s:remove()
383
384
	end))
385
386
end
387
388
389
390
Mo = Instance.new("Model")
391
392
Mo.Name = Modelname
393
394
395
396
RABrick = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
397
398
LABrick = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
399
400
RLBrick = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
401
402
LLBrick = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
403
404
405
406
RABW = Weld(torso, RABrick, -1.5, -0.5, 0, 0, 0, 0)
407
408
LABW = Weld(torso, LABrick, 1.5, -0.5, 0, 0, 0, 0)
409
410
RLBW = Weld(torso, RLBrick, -0.5, 1.2, 0, 0, 0, 0)
411
412
LLBW = Weld(torso, LLBrick, 0.5, 1.2, 0, 0, 0, 0)
413
414
415
416
RAW = Weld(RABrick, nil, 0, 0.5, 0, 0, 0, 0)
417
418
LAW = Weld(LABrick, nil, 0, 0.5, 0, 0, 0, 0)
419
420
RLW = Weld(RLBrick, nil, 0, 0.8, 0, 0, 0, 0)
421
422
LLW = Weld(LLBrick, nil, 0, 0.8, 0, 0, 0, 0)
423
424
425
426
HB = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
427
428
HBW = Weld(Rarm, HB, 0, 1, 0, 0, 0, 0)
429
430
HW = Weld(HB, nil, 0, -1.3, 0, math.pi/2, 0, 0)
431
432
433
434
TH = Weld(torso, nil, -0.8, 0.4, -0.4, 0, math.pi/2, math.rad(80))
435
436
437
438
RAWStand, LAWStand, RLWStand, LLWStand, HWStand = nil
439
440
441
442
--handle = Part(Mo, false, false, 0, 0, GuitarColour, 0.6, 1.5, 1.5, true)
443
444
445
446
Pet = Instance.new("Model")
447
448
Pet.Name = PetName
449
450
451
452
petbody = Part(Pet, false, true, 0, 0, MainColor, 3, 2.6, 6, true)
453
454
Add.Sphere(petbody)
455
456
petbody.CFrame = torso.CFrame * CFrame.new(4, 0, 0)
457
458
459
460
bodytrim = Part(Pet, false, true, 0, 0, "Cool yellow", 2.7, 2.4, 5.4, true)
461
462
Add.Sphere(bodytrim)
463
464
Weld(petbody, bodytrim, 0, 0.25, 0, 0, 0, 0)
465
466
467
468
neckplace = Part(Pet, false, false, 0, 0, "Cool yellow", 0.1, 0.1, 0.1, true)
469
470
Weld(petbody, neckplace, 0, -0.2, 2.6, 0, 0, 0)
471
472
473
474
Mo.Parent = char
475
476
Pet.Parent = char
477
478
TH.Part1 = handle
479
480
481
482
if script.Parent.className ~= "HopperBin" then
483
484
	h = Instance.new("HopperBin",me.Backpack)
485
486
	h.Name = Toolname
487
488
	h.TextureId = ToolIcon
489
490
	script.Parent = h
491
492
end
493
494
495
496
bin = script.Parent
497
498
499
500
function detach(bool)
501
502
	LLW.C0 = CFrame.new(0, 0, 0)
503
504
	RLW.C0 = CFrame.new(0, 0, 0)
505
506
	LAW.C0 = CFrame.new(0,0,0)
507
508
	RAW.C0 = CFrame.new(0, 0, 0)
509
510
	if bool then
511
512
		LLW.Part1 = nil
513
514
		RLW.Part1 = nil
515
516
		RAW.Part1 = nil
517
518
		LAW.Part1 = nil
519
520
	end
521
522
end
523
524
525
526
function attach()
527
528
	RAW.Part1 = Rarm
529
530
	LAW.Part1 = Larm
531
532
	RLW.Part1 = Rleg
533
534
	LLW.Part1 = Lleg
535
536
end
537
538
539
540
function normal()
541
542
	neck.C0 = NeckStand
543
544
	RAW.C0 = RAWStand
545
546
	LAW.C0 = LAWStand
547
548
	RLW.C0 = RLWStand
549
550
	LLW.C0 = LLWStand
551
552
	RAW.C1 = CFrame.new(0, 0.5, 0)
553
554
	LAW.C1 = CFrame.new(0, 0.5, 0)
555
556
	RLW.C1 = CFrame.new(0, 0.8, 0)
557
558
	LLW.C1 = CFrame.new(0, 0.8, 0)
559
560
	HW.C0 = HWStand
561
562
end
563
564
565
566
function idleanim()
567
568
	attach()
569
570
	for i = 0, 1, 0.03 do
571
572
		RAW.C0 = RAWStand * CFrame.Angles(0, 0, 0)
573
574
		LAW.C0 = LAWStand * CFrame.Angles(0, 0, 0)
575
576
		RLW.C0 = RLWStand * CFrame.Angles(0, 0, 0)
577
578
		LLW.C0 = LLWStand * CFrame.Angles(0, 0, 0)
579
580
		neck.C0 = NeckStand * CFrame.Angles(0, 0, 0)
581
582
		if selected == false or torso.Velocity.magnitude > 2 or Able == false then break end
583
584
		wait()
585
586
	end
587
588
	wait()
589
590
	for i = 1, 0, -0.02 do
591
592
		RAW.C0 = RAWStand * CFrame.Angles(0, 0, 0)
593
594
		LAW.C0 = LAWStand * CFrame.Angles(0, 0, 0)
595
596
		RLW.C0 = RLWStand * CFrame.Angles(0, 0, 0)
597
598
		LLW.C0 = LLWStand * CFrame.Angles(0, 0, 0)
599
600
		neck.C0 = NeckStand * CFrame.Angles(0, 0, 0)
601
602
		if selected == false or torso.Velocity.magnitude > 2 or Able == false then break end
603
604
		wait()
605
606
	end
607
608
	normal()
609
610
end
611
612
613
614
function runanim()
615
616
	RLW.Part1 = nil
617
618
	LLW.Part1 = nil
619
620
end
621
622
623
624
coroutine.resume(coroutine.create(function()
625
626
	while true do
627
628
		wait()
629
630
		if selected and Able == true then
631
632
			if torso.Velocity.magnitude < 2 then
633
634
				--idleanim()
635
636
				wait()
637
638
			else
639
640
				--runanim()
641
642
				wait()
643
644
			end
645
646
		end
647
648
	end
649
650
end))
651
652
653
654
function selectanim()
655
656
	attach()
657
658
	if RAWStand == nil then
659
660
		RAWStand = RAW.C0
661
662
		LAWStand = LAW.C0
663
664
		RLWStand = RLW.C0
665
666
		LLWStand = LLW.C0
667
668
		HWStand = HW.C0
669
670
	end
671
672
	normal()
673
674
end
675
676
677
678
function deselanim()
679
680
	neck.C0 = necko
681
682
	detach(true)
683
684
end
685
686
687
688
function select(mouse)
689
690
	selectanim()
691
692
	selected = true
693
694
	mouse.KeyDown:connect(function(key)
695
696
		key = key:lower()
697
698
	end)
699
700
	mouse.Button1Down:connect(function()
701
702
	end)
703
704
end
705
706
707
708
function deselect(mouse)
709
710
	selected = false
711
712
	deselanim()
713
714
end
715
716
717
718
bin.Selected:connect(select)
719
720
bin.Deselected:connect(deselect)