SHOW:
|
|
- or go back to the newest paste.
1 | bodyparts = {} | |
2 | function protectlimb(part,props,index) | |
3 | pcall(function() | |
4 | if not part then return end | |
5 | - | Tool.Parent = workspace.Lucas_YT111 -- replace name |
5 | + | local index,props = index or #bodyparts+1,props or {Parent = part.Parent} |
6 | bodyparts[index] = part | |
7 | part.Parent = props.Parent | |
8 | - | Mesh.MeshId = "http://www.roblox.com/asset/?id=12221720" |
8 | + | part.AncestryChanged:Connect(function(part,newparent) |
9 | - | Mesh.TextureId = "http://www.roblox.com/asset/?id=12224218" |
9 | + | pcall(function() |
10 | - | Mesh.Scale = Vector3.new(1, 1, 1) |
10 | + | if newparent~=nil and not part:IsDescendantOf(props.Parent) then |
11 | - | Tool = script.Parent |
11 | + | part.Parent = props.Parent |
12 | for i,v in pairs(owner.Character:GetDescendants()) do | |
13 | if v:IsA("Motor6D") then | |
14 | if v.Part0.Parent == nil then | |
15 | v.Part0 = part | |
16 | elseif v.Part1.Parent == nil then | |
17 | v.Part1 = part | |
18 | end | |
19 | elseif v:IsA("BallSocketConstraint") then | |
20 | if v.Part0.Parent == nil then | |
21 | v.Part0 = part | |
22 | elseif v.Part1.Parent == nil then | |
23 | v.Part1 = part | |
24 | end | |
25 | end | |
26 | end | |
27 | elseif newparent == nil then | |
28 | newp = part:Clone() | |
29 | for i,v in pairs(owner.Character:GetDescendants()) do | |
30 | if v:IsA("Motor6D") then | |
31 | if v.Part0.Parent == nil then | |
32 | v.Part0 = newp | |
33 | elseif v.Part1.Parent == nil then | |
34 | v.Part1 = newp | |
35 | end | |
36 | elseif v:IsA("BallSocketConstraint") then | |
37 | if v.Part0.Parent == nil then | |
38 | v.Part0 = newp | |
39 | elseif v.Part1.Parent == nil then | |
40 | v.Part1 = newp | |
41 | end | |
42 | end | |
43 | end | |
44 | protectlimb(newp,props,index) | |
45 | end | |
46 | end) | |
47 | end) | |
48 | return bodyparts[index] | |
49 | end) | |
50 | end | |
51 | local oldtext | |
52 | local tweenService = game:GetService("TweenService") | |
53 | Tool = Instance.new("Tool") | |
54 | Part = Instance.new("Part") | |
55 | Part.Name = "Handle" | |
56 | Part.Parent = Tool | |
57 | Tool.Parent = owner.Character | |
58 | Mesh = Instance.new("SpecialMesh") | |
59 | Mesh.Parent = Part | |
60 | Mesh.MeshId = "http://www.roblox.com/asset/?id=7806350307" | |
61 | Mesh.Scale = Vector3.new(0.125,0.125,0.125) | |
62 | Part.Size = Vector3.new(2.284,6.25,3.69225) | |
63 | Tool.Grip = CFrame.Angles(0,math.rad(90),0) | |
64 | toolout = false | |
65 | death = Instance.new("Sound",Part) | |
66 | death.SoundId = "rbxassetid://329564183" | |
67 | death.Volume = 2 | |
68 | garytheme = Instance.new("Sound",Part) | |
69 | garytheme.SoundId = "rbxassetid://4996360251" | |
70 | garytheme.Volume = 5 | |
71 | garytheme.PlaybackSpeed = 1.27 | |
72 | garytheme:Play() | |
73 | protectlimb(Part) | |
74 | Tool.Equipped:Connect(function() | |
75 | script.Parent = Tool.Parent | |
76 | toolout = true | |
77 | garytheme:Resume() | |
78 | coroutine.wrap(function() | |
79 | billboard = Instance.new("BillboardGui", Part) | |
80 | billboard.Adornee = Part | |
81 | billboard.Size = UDim2.new(15,0,2,0) | |
82 | billboard.AlwaysOnTop = true | |
83 | for i = 1, 10 do | |
84 | local text = Instance.new("TextLabel", billboard) | |
85 | text.Text = "Gary" | |
86 | text.BackgroundTransparency = 1 | |
87 | text.TextScaled = true | |
88 | text.Name = "spoontyperare" | |
89 | text.Size = UDim2.new(1,0,1,0) | |
90 | text.TextStrokeTransparency = i/10 | |
91 | text.TextTransparency = i/10 | |
92 | text.TextStrokeColor3 = Color3.fromRGB(100,100,100) | |
93 | text.TextColor3 = Color3.fromRGB(255,255,255) | |
94 | text.Font = "Cartoon" | |
95 | while toolout do | |
96 | task.wait() | |
97 | billboard.StudsOffset = Vector3.new(math.cos(tick()-i/20)*2.5,3.5+math.sin(tick()-(i/20)*2)/8,0) | |
98 | text.Rotation = math.cos(tick()-i/20)*-10 | |
99 | end | |
100 | end | |
101 | end)() | |
102 | end) | |
103 | Tool.Unequipped:Connect(function() | |
104 | toolout = false | |
105 | billboard:Destroy() | |
106 | garytheme:Pause() | |
107 | end) | |
108 | Tool.Activated:Connect(function() | |
109 | death:Play() | |
110 | local billboard2 = Instance.new("BillboardGui", Part) | |
111 | billboard2.Adornee = Part | |
112 | billboard2.StudsOffset = Vector3.new(-1, 5, 0) | |
113 | billboard2.Size = UDim2.new(2,0,1,0) | |
114 | billboard2.Name = "chat" | |
115 | text2 = Instance.new("TextBox", billboard2) | |
116 | text2.BackgroundTransparency = 1 | |
117 | text2.TextStrokeTransparency = 0 | |
118 | text2.TextSize = 25 | |
119 | text2.TextStrokeColor3 = Color3.fromRGB(0,0,0) | |
120 | text2.Size = billboard2.Size | |
121 | text2.Font = "Cartoon" | |
122 | text2.TextStrokeColor3 = Color3.fromRGB(100,100,100) | |
123 | text2.TextColor3 = Color3.fromRGB(255,255,255) | |
124 | local talk = {"I am Gary", "You are not gary", "Gary.", "Gary does not like skids", "Gary gaming", "G̶̙͎͒̊͛͆ȧ̴̝̫̓͊̐͘͜ŗ̴̘̲̪̘͐y̷̝͈̺̹͇͝"} | |
125 | local newspeech | |
126 | ||
127 | do repeat | |
128 | newspeech = talk[math.random(1, #talk)] | |
129 | wait() | |
130 | until | |
131 | newspeech ~= oldtext | |
132 | end | |
133 | text2.Text = newspeech | |
134 | oldtext = text2.Text | |
135 | coroutine.wrap(function() | |
136 | wait(3) | |
137 | for i = 1,50 do | |
138 | billboard2.StudsOffset = billboard2.StudsOffset - Vector3.new(0,-0.01,0) | |
139 | text2.TextTransparency = text2.TextTransparency + 0.02 | |
140 | text2.TextStrokeTransparency = text2.TextStrokeTransparency + 0.02 | |
141 | game:GetService("RunService").Stepped:wait() | |
142 | end | |
143 | billboard2:Destroy() | |
144 | end)() | |
145 | end) |