View difference between Paste ID: 13sPjM29 and bwmghfSL
SHOW: | | - or go back to the newest paste.
1
MainColor = "Bright red"
2-
Name = "KeroroGunso2016"
2+
Name = "overhaleren"
3
4
Plrs = game:GetService("Players")
5
6
me = Plrs[Name]
7
char = me.Character
8
Modelname = "xTool"
9
Toolname = "Tool"
10
Surfaces = {"FrontSurface", "BackSurface", "TopSurface", "BottomSurface", "LeftSurface", "RightSurface"}
11
necko = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0) 
12
selected = false
13
Hurt = false
14
Deb = true
15
Able = true
16
Prop = {Damage = 30}
17
18
ToolIcon = ""
19
MouseIc = ""
20
MouseDo = ""
21
22
Add = {
23
	Sphere = function(P)
24
		local m = Instance.new("SpecialMesh",P)
25
		m.MeshType = "Sphere"
26
		return m
27
	end,
28
	BF = function(P)
29
		local bf = Instance.new("BodyForce",P)
30
		bf.force = Vector3.new(0, P:GetMass()*187, 0)
31
		return bf
32
	end,
33
	BP = function(P)
34
		local bp = Instance.new("BodyPosition",P)
35
		bp.maxForce = Vector3.new(math.huge, 0, math.huge)
36
		bp.P = 14000
37
		return bp
38
	end,
39
	BG = function(P)
40
		local bg = Instance.new("BodyGyro",P)
41
		bg.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
42
		bg.P = 14000
43
		return bg
44
	end,
45
	Mesh = function(P, ID, x, y, z)
46
		local m = Instance.new("SpecialMesh")
47
		m.MeshId = ID
48
		m.Scale = Vector3.new(x, y, z)
49
		m.Parent = P
50
		return m
51
	end,
52
	Sound = function(P, ID, vol, pitch)
53
		local s = Instance.new("Sound")
54
		s.SoundId = ID
55
		s.Volume = vol
56
		s.Pitch = pitch
57
		s.Parent = P
58
		return s
59
	end
60
}
61
62
function find(tab, arg)
63
	local ah = nil
64
	for i,v in pairs(tab) do
65
		if v == arg then
66
			ah = v
67
		end
68
	end
69
	return ah
70
end
71
72
function getAllParts(from)
73
	local t = {}
74
	function getParts(where)
75
		for i, v in pairs(where:children()) do
76
			if v:IsA("BasePart") then
77
				if v.Parent ~= char and v.Parent.Parent ~= char then
78
					table.insert(t, v)
79
				end
80
			end
81
			getParts(v)
82
		end
83
	end
84
	getParts(workspace)
85
	return t
86
end
87
88
function RayCast(pos1, pos2, maxDist, forward)
89
	local list = getAllParts(workspace)
90
	local pos0 = pos1
91
	for dist = 1, maxDist, forward do
92
		pos0 = (CFrame.new(pos1, pos2) * CFrame.new(0, 0, -dist)).p
93
		for _, v in pairs(list) do
94
			local pos3 = v.CFrame:pointToObjectSpace(pos0)
95
			local s = v.Size
96
			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
97
				return pos0, v
98
			end
99
		end
100
	end
101
	return pos0, nil
102
end
103
104
function Part(Parent, Anchor, Collide, Tran, Ref, Color, X, Y, Z, Break)
105
	local p = Instance.new("Part")
106
	p.formFactor = "Custom"
107
	p.Anchored = Anchor
108
	p.CanCollide = Collide
109
	p.Transparency = Tran
110
	p.Reflectance = Ref
111
	p.BrickColor = BrickColor.new(Color)
112
	for _, Surf in pairs(Surfaces) do
113
		p[Surf] = "Smooth"
114
	end
115
	p.Size = Vector3.new(X, Y, Z)
116
	if Break then
117
		p:BreakJoints()
118
	else p:MakeJoints() end
119
	p.Parent = Parent
120
	return p
121
end
122
123
function Weld(p0, p1, x, y, z, a, b, c)
124
	local w = Instance.new("Weld")
125
	w.Parent = p0
126
	w.Part0 = p0
127
	w.Part1 = p1
128
	w.C1 = CFrame.new(x,y,z) * CFrame.Angles(a,b,c)
129
	return w
130
end
131
132
function ComputePos(pos1, pos2)
133
	local pos3 = Vector3.new(pos2.x, pos1.y, pos2.z)
134
	return CFrame.new(pos1, pos3)
135
end
136
137
function getHumanoid(c)
138
	local h = nil
139
	for i,v in pairs(c:children()) do
140
		if v:IsA("Humanoid") and c ~= char then
141
			if v.Health > 0 then
142
				h = v
143
			end
144
		end
145
	end
146
	return h
147
end
148
149
for i,v in pairs(char:children()) do
150
	if v.Name == Modelname then
151
		v:remove()
152
	end
153
end
154
155
torso = char.Torso
156
neck = torso.Neck
157
hum = char.Humanoid
158
Rarm = char["Right Arm"]
159
Larm = char["Left Arm"]
160
Rleg = char["Right Leg"]
161
Lleg = char["Left Leg"]
162
163
hc = Instance.new("Humanoid")
164
hc.Health = 0
165
hc.MaxHealth = 0
166
167
slash = Add.Sound(nil, "rbxasset://sounds//swordslash.wav", 0.9, 0.8)
168
hitsound = Add.Sound(nil, "http://www.roblox.com/asset/?id=2801263", 0.7, 0.6)
169
charge = Add.Sound(nil, "http://www.roblox.com/asset/?id=2101137", 0.8, 0.65)
170
boom = Add.Sound(nil, "http://www.roblox.com/asset/?id=2691586", 0.8, 0.3)
171
smashsound = Add.Sound(nil, "http://www.roblox.com/asset/?id=2692806", 0.8, 0.35)
172
boomboom = Add.Sound(nil, "http://www.roblox.com/asset/?id=2760979", 1, 0.18)
173
174
function PlaySound(sound, pitch, vol)
175
	local s = sound:clone()
176
	if pitch ~= nil then
177
		if tonumber(pitch) then
178
			s.Pitch = tonumber(pitch)
179
		end
180
	end
181
	if vol ~= nil then
182
		if tonumber(vol) then
183
			s.Volume = tonumber(vol)
184
		end
185
	end
186
	s.Parent = torso
187
	s.PlayOnRemove = true
188
	coroutine.resume(coroutine.create(function()
189
		wait()
190
		s:remove()
191
	end))
192
end
193
194
Mo = Instance.new("Model")
195
Mo.Name = Modelname
196
197
RABrick = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
198
LABrick = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
199
RLBrick = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
200
LLBrick = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
201
202
RABW = Weld(torso, RABrick, -1.5, -0.5, 0, 0, 0, 0)
203
LABW = Weld(torso, LABrick, 1.5, -0.5, 0, 0, 0, 0)
204
RLBW = Weld(torso, RLBrick, -0.5, 1.2, 0, 0, 0, 0)
205
LLBW = Weld(torso, LLBrick, 0.5, 1.2, 0, 0, 0, 0)
206
207
RAW = Weld(RABrick, nil, 0, 0.5, 0, 0, 0, 0)
208
LAW = Weld(LABrick, nil, 0, 0.5, 0, 0, 0, 0)
209
RLW = Weld(RLBrick, nil, 0, 0.8, 0, 0, 0, 0)
210
LLW = Weld(LLBrick, nil, 0, 0.8, 0, 0, 0, 0)
211
212
HB = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
213
HBW = Weld(Rarm, HB, 0, 1, 0, 0, 0, 0)
214
HW = Weld(HB, nil, 0, -1.3, 0, math.pi/2, 0, 0)
215
216
TH = Weld(torso, nil, -0.8, 0.4, -0.4, 0, math.pi/2, math.rad(80))
217
218
RAWStand, LAWStand, RLWStand, LLWStand, HWStand = nil
219
220
handle = Part(Mo, false, false, 0, 0, GuitarColour, 0.6, 1.5, 1.5, true)
221
handle.Name = "Handle"
222
223
Mo.Parent = char
224
TH.Part1 = handle
225
226
if script.Parent.className ~= "HopperBin" then
227
	h = Instance.new("HopperBin",me.Backpack)
228
	h.Name = Toolname
229
	h.TextureId = ToolIcon
230
	script.Parent = h
231
end
232
233
bin = script.Parent
234
235
function detach(bool)
236
	LLW.C0 = CFrame.new(0, 0, 0)
237
	RLW.C0 = CFrame.new(0, 0, 0)
238
	LAW.C0 = CFrame.new(0,0,0)
239
	RAW.C0 = CFrame.new(0, 0, 0)
240
	if bool then
241
		LLW.Part1 = nil
242
		RLW.Part1 = nil
243
		RAW.Part1 = nil
244
		LAW.Part1 = nil
245
	end
246
end
247
248
function attach()
249
	RAW.Part1 = Rarm
250
	LAW.Part1 = Larm
251
	RLW.Part1 = Rleg
252
	LLW.Part1 = Lleg
253
end
254
255
function normal()
256
	neck.C0 = NeckStand
257
	RAW.C0 = RAWStand
258
	LAW.C0 = LAWStand
259
	RLW.C0 = RLWStand
260
	LLW.C0 = LLWStand
261
	RAW.C1 = CFrame.new(0, 0.5, 0)
262
	LAW.C1 = CFrame.new(0, 0.5, 0)
263
	RLW.C1 = CFrame.new(0, 0.8, 0)
264
	LLW.C1 = CFrame.new(0, 0.8, 0)
265
	HW.C0 = HWStand
266
end
267
268
function idleanim()
269
	attach()
270
	for i = 0, 1, 0.03 do
271
		RAW.C0 = RAWStand * CFrame.Angles(0, 0, 0)
272
		LAW.C0 = LAWStand * CFrame.Angles(0, 0, 0)
273
		RLW.C0 = RLWStand * CFrame.Angles(0, 0, 0)
274
		LLW.C0 = LLWStand * CFrame.Angles(0, 0, 0)
275
		neck.C0 = NeckStand * CFrame.Angles(0, 0, 0)
276
		if selected == false or torso.Velocity.magnitude > 2 or Able == false then break end
277
		wait()
278
	end
279
	wait()
280
	for i = 1, 0, -0.02 do
281
		RAW.C0 = RAWStand * CFrame.Angles(0, 0, 0)
282
		LAW.C0 = LAWStand * CFrame.Angles(0, 0, 0)
283
		RLW.C0 = RLWStand * CFrame.Angles(0, 0, 0)
284
		LLW.C0 = LLWStand * CFrame.Angles(0, 0, 0)
285
		neck.C0 = NeckStand * CFrame.Angles(0, 0, 0)
286
		if selected == false or torso.Velocity.magnitude > 2 or Able == false then break end
287
		wait()
288
	end
289
	normal()
290
end
291
292
function runanim()
293
	RLW.Part1 = nil
294
	LLW.Part1 = nil
295
end
296
297
coroutine.resume(coroutine.create(function()
298
	while true do
299
		wait()
300
		if selected and Able == true then
301
			if torso.Velocity.magnitude < 2 then
302
				--idleanim()
303
				wait()
304
			else
305
				--runanim()
306
				wait()
307
			end
308
		end
309
	end
310
end))
311
312
function selectanim()
313
	attach()
314
	if RAWStand == nil then
315
		RAWStand = RAW.C0
316
		LAWStand = LAW.C0
317
		RLWStand = RLW.C0
318
		LLWStand = LLW.C0
319
		HWStand = HW.C0
320
	end
321
	normal()
322
end
323
324
function deselanim()
325
	neck.C0 = necko
326
	detach(true)
327
end
328
329
function select(mouse)
330
	selectanim()
331
	selected = true
332
	mouse.KeyDown:connect(function(key)
333
		key = key:lower()
334
	end)
335
	mouse.Button1Down:connect(function()
336
	end)
337
end
338
339
function deselect(mouse)
340
	selected = false
341
	deselanim()
342
end
343
344
bin.Selected:connect(select)
345
bin.Deselected:connect(deselect)