SHOW:
|
|
- or go back to the newest paste.
1 | --Saber | |
2 | ||
3 | z = Instance.new("Sound", game.workspace.PabloRV.Torso) | |
4 | z.SoundId = "rbxassetid://526682665" -- Put Music ID Here. | |
5 | z.Looped = true | |
6 | z.Volume = 1 | |
7 | wait(.1) | |
8 | z:Play() | |
9 | ||
10 | local plr = game:service'Players'.LocalPlayer | |
11 | local char = plr.Character | |
12 | local mouse = plr:GetMouse() | |
13 | local torso = char:findFirstChild("Torso") | |
14 | local head = char.Head | |
15 | local ra = char:findFirstChild("Right Arm") | |
16 | local la = char:findFirstChild("Left Arm") | |
17 | local rl = char:findFirstChild("Right Leg") | |
18 | local ll = char:findFirstChild("Left Leg") | |
19 | local rs = torso:findFirstChild("Right Shoulder") | |
20 | local ls = torso:findFirstChild("Left Shoulder") | |
21 | local equipped = false | |
22 | local debounce = false | |
23 | local slashing = false | |
24 | local blocking = false | |
25 | local blocking2 = false | |
26 | local stoopidstuff = Instance.new("BoolValue", char) | |
27 | stoopidstuff.Name = "stoopidstuff" | |
28 | stoopidstuff.Value = true | |
29 | local healing = false | |
30 | local storedhealth | |
31 | local storewalkspeed = char:findFirstChild("Humanoid").WalkSpeed | |
32 | local damage = 30 | |
33 | local colors = {"Royal purple", "Cyan", "Really red", "Lime green"} | |
34 | function part(parent, size, formfactor, color, collide, transparency) | |
35 | local p=Instance.new("Part", parent) | |
36 | p.FormFactor=formfactor | |
37 | p.CanCollide=false | |
38 | p.Size=size | |
39 | p.Locked=true | |
40 | p.Transparency=transparency | |
41 | p.Position=torso.Position | |
42 | p.BrickColor=color | |
43 | p.FrontSurface="SmoothNoOutlines" | |
44 | p.BackSurface="SmoothNoOutlines" | |
45 | p.LeftSurface="SmoothNoOutlines" | |
46 | p.BottomSurface="SmoothNoOutlines" | |
47 | p.TopSurface="SmoothNoOutlines" | |
48 | p.RightSurface="SmoothNoOutlines" | |
49 | return p | |
50 | end | |
51 | function wedge(parent, size, formfactor, color, collide) | |
52 | local p=Instance.new("Wedge", parent) | |
53 | p.FormFactor=formfactor | |
54 | p.CanCollide=false | |
55 | p.Size=size | |
56 | p.Locked=true | |
57 | p.Position = torso.Position | |
58 | p.BrickColor=color | |
59 | p.FrontSurface="SmoothNoOutlines" | |
60 | p.BackSurface="SmoothNoOutlines" | |
61 | p.LeftSurface="SmoothNoOutlines" | |
62 | p.BottomSurface="SmoothNoOutlines" | |
63 | p.TopSurface="SmoothNoOutlines" | |
64 | p.RightSurface="SmoothNoOutlines" | |
65 | return p | |
66 | end | |
67 | function weld(c0, c1, part1, part0) | |
68 | local wel=Instance.new("Weld", char) | |
69 | wel.Part0 = part0 | |
70 | wel.Part1 = part1 | |
71 | wel.C0 = c0 | |
72 | wel.C1 = c1 | |
73 | return wel | |
74 | end | |
75 | function specialmesh(parent, meshType, scale, meshId) | |
76 | local mesh = Instance.new("SpecialMesh", parent) | |
77 | mesh.Scale = scale | |
78 | mesh.MeshType = meshType | |
79 | mesh.MeshId = meshId | |
80 | return mesh | |
81 | end | |
82 | function equip() | |
83 | ar = Instance.new("Part", char) | |
84 | ar.FormFactor = "Custom" | |
85 | ar.Size = Vector3.new(1, 1, 1) | |
86 | ar.Transparency = 1 | |
87 | ar.CanCollide = false | |
88 | ar.Locked = true | |
89 | ar:BreakJoints() | |
90 | fakel = Instance.new("Weld", char) | |
91 | fakel.Part0 = char.Torso | |
92 | fakel.Part1 = ar | |
93 | coroutine.wrap(function() | |
94 | for angle = 0, 45, 5 do | |
95 | if fakel == nil then return end | |
96 | fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(angle), math.rad(0), math.rad(0)) | |
97 | wait() | |
98 | end | |
99 | end)() | |
100 | welditbro = Instance.new("Weld", char) | |
101 | welditbro.C0 = CFrame.new(0, 0.5, 0) | |
102 | welditbro.Part0 = ra | |
103 | welditbro.Part1 = ar | |
104 | end | |
105 | function block() | |
106 | if not equipped then return end | |
107 | stoopidstuff.Value = true | |
108 | damage = 2 | |
109 | char:findFirstChild("Humanoid").WalkSpeed = 6 | |
110 | storedhealth = char:findFirstChild("Humanoid").Health | |
111 | for angle = 0, 70, 10 do | |
112 | fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(45), math.rad(angle), 0) | |
113 | wait() | |
114 | end | |
115 | coroutine.wrap(function() | |
116 | while blocking do | |
117 | if not blocking then return end | |
118 | char:findFirstChild("Humanoid").Health = storedhealth | |
119 | game:service'RunService'.Stepped:wait() | |
120 | end | |
121 | end)() | |
122 | end | |
123 | function unblock() | |
124 | stoopidstuff.Value = false | |
125 | if not equipped then return end | |
126 | damage = 30 | |
127 | char:findFirstChild("Humanoid").WalkSpeed = storewalkspeed | |
128 | for angle = 70, 0, -10 do | |
129 | fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(45), math.rad(angle), 0) | |
130 | wait() | |
131 | end | |
132 | blocking = false | |
133 | end | |
134 | function block2() | |
135 | if not equipped then return end | |
136 | stoopidstuff.Value = true | |
137 | damage = 2 | |
138 | char:findFirstChild("Humanoid").WalkSpeed = 6 | |
139 | storedhealth = char:findFirstChild("Humanoid").Health | |
140 | for angle = 0, 50, 10 do | |
141 | fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(45 + angle/6), 0, -math.rad(angle)) | |
142 | wait() | |
143 | end | |
144 | coroutine.wrap(function() | |
145 | while blocking2 do | |
146 | if not blocking2 then return end | |
147 | char:findFirstChild("Humanoid").Health = storedhealth | |
148 | game:service'RunService'.Stepped:wait() | |
149 | end | |
150 | end)() | |
151 | end | |
152 | function unblock2() | |
153 | stoopidstuff.Value = false | |
154 | if not equipped then return end | |
155 | damage = 30 | |
156 | char:findFirstChild("Humanoid").WalkSpeed = storewalkspeed | |
157 | for angle = 50, 0, -10 do | |
158 | fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(45 + angle/6), math.rad(0), -math.rad(angle)) | |
159 | wait() | |
160 | end | |
161 | blocking2 = false | |
162 | end | |
163 | function heal() | |
164 | ar2 = Instance.new("Part", char) | |
165 | ar2.FormFactor = "Custom" | |
166 | ar2.Size = Vector3.new(1, 1, 1) | |
167 | ar2.Transparency = 1 | |
168 | ar2.CanCollide = false | |
169 | ar2.Locked = true | |
170 | ar2:BreakJoints() | |
171 | fakel2 = Instance.new("Weld", char) | |
172 | fakel2.Part0 = torso | |
173 | fakel2.Part1 = ar2 | |
174 | welditbro2 = Instance.new("Weld", char) | |
175 | welditbro2.C0 = CFrame.new(0, 0.5, 0) | |
176 | welditbro2.Part0 = la | |
177 | welditbro2.Part1 = ar2 | |
178 | for angle = 0, 170, 5 do | |
179 | fakel2.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.Angles(math.rad(angle), math.rad(0), math.rad(0)) | |
180 | wait() | |
181 | end | |
182 | local ball = Instance.new("Part", char) | |
183 | ball.FormFactor = "Custom" | |
184 | ball.BrickColor = BrickColor.new("Red") | |
185 | ball.Anchored = true | |
186 | ball.CanCollide = false | |
187 | ball.TopSurface = 0 | |
188 | ball.BottomSurface = 0 | |
189 | ball.Transparency = 0.4 | |
190 | ball.Locked = true | |
191 | ball.Shape = "Ball" | |
192 | ball.CFrame = torso.CFrame | |
193 | local mesh = Instance.new("SpecialMesh", ball) | |
194 | mesh.MeshType = "Sphere" | |
195 | coroutine.wrap(function() | |
196 | for i = 0.2, 8, 0.1 do | |
197 | mesh.Scale = Vector3.new(i, i, i) | |
198 | ball.Transparency = ball.Transparency + 0.005 | |
199 | wait() | |
200 | end | |
201 | ball:Destroy() | |
202 | end)() | |
203 | local splash = Instance.new("Part", char) | |
204 | splash.FormFactor = "Custom" | |
205 | splash.BrickColor = BrickColor.new("Cyan") | |
206 | splash.Transparency = 0 | |
207 | splash.Anchored = true | |
208 | splash.CanCollide = false | |
209 | splash.BottomSurface = 0 | |
210 | splash.TopSurface = 0 | |
211 | splash.Locked = true | |
212 | local mesh = Instance.new("SpecialMesh", splash) | |
213 | mesh.MeshType = "FileMesh" | |
214 | mesh.Scale = Vector3.new(1, 1, 1) | |
215 | mesh.MeshId = "http://www.roblox.com/asset/?id=3270017" | |
216 | splash:BreakJoints() | |
217 | splash.CFrame = ball.CFrame * CFrame.Angles(math.rad(90), 0, 0) | |
218 | coroutine.resume(coroutine.create(function() | |
219 | for i = 0, 50, 0.5 do | |
220 | mesh.Scale = Vector3.new(i, i, 1) | |
221 | splash.Transparency = splash.Transparency + 0.01 | |
222 | wait() | |
223 | end | |
224 | splash:Destroy() | |
225 | end)) | |
226 | ||
227 | char:findFirstChild("Humanoid").Health = char:findFirstChild("Humanoid").Health + 1000 | |
228 | wait(0.5) | |
229 | welditbro2:Destroy() | |
230 | fakel2:Destroy() | |
231 | ar2:Destroy() | |
232 | ls.Parent = torso | |
233 | wait(1) | |
234 | healing = false | |
235 | end | |
236 | ||
237 | function slash() | |
238 | if blocking then return end | |
239 | if blocking2 then return end | |
240 | if not equipped then return end | |
241 | damage = 80 | |
242 | for angle = 45, 95, 10 do | |
243 | fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(angle), math.rad(angle/2), 0) | |
244 | wait() | |
245 | end | |
246 | for angle = 95, 5, -20 do | |
247 | fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(angle), math.rad(angle/2), 0) | |
248 | wait() | |
249 | end | |
250 | for angle = 5, 45, 10 do | |
251 | fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(angle), math.rad(angle/angle - 5), 0) | |
252 | wait() | |
253 | end | |
254 | slashing = false | |
255 | fakel.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.Angles(math.rad(45), 0, 0) | |
256 | damage = 30 | |
257 | wait(0.2) | |
258 | end | |
259 | function deequip() | |
260 | pcall(function() | |
261 | ar:Destroy() | |
262 | fakel:Destroy() | |
263 | welditbro:Destroy() | |
264 | end) | |
265 | end | |
266 | ||
267 | local part1 = part(char, Vector3.new(0.2, 1.4, 0.2), "Custom", BrickColor.new("Black"), 0) | |
268 | Instance.new("CylinderMesh", part1) | |
269 | local weld1 = weld(CFrame.new(0, 0, 1) * CFrame.Angles(math.pi/2, 0, 0), CFrame.new(), ra, part1) | |
270 | local part2 = part(char, Vector3.new(0.4, 0.4, 0.4), "Custom", BrickColor.new("Black"), 0) | |
271 | Instance.new("CylinderMesh", part2) | |
272 | local weld3 = weld(CFrame.new(0, 0.65, 0), CFrame.new(), part2, part1) | |
273 | local part3 = part(char, Vector3.new(0.3, 4.4, 0.3), "Custom", BrickColor.White(), 0) | |
274 | local mesh1 = specialmesh(part3, "Head", Vector3.new(0.8, 1, 0.8), "") | |
275 | local weld4 = weld(CFrame.new(0, 2.9, 0), CFrame.new(), part3, part1) | |
276 | local part4 = part(char, Vector3.new(0.4, 4.4, 0.4), "Custom", BrickColor.new(colors[math.random(1, #colors)]), 0) | |
277 | local mesh2 = specialmesh(part4, "Head", Vector3.new(1, 1.01, 1), "") | |
278 | local weld5 = weld(CFrame.new(0, 2.9, 0), CFrame.new(), part4, part1) | |
279 | local pl = Instance.new("PointLight", part4) | |
280 | pl.Color = part4.BrickColor.Color | |
281 | pl.Brightness = 0 | |
282 | part3.Transparency = 1 | |
283 | part4.Transparency = 1 | |
284 | part4.Touched:connect(function(hit) | |
285 | if not equipped then return end | |
286 | if debounce then return end | |
287 | debounce = true | |
288 | coroutine.wrap(function() | |
289 | pcall(function() | |
290 | if hit.Parent:FindFirstChild("Humanoid") ~= nil then | |
291 | if hit.Parent.Name == char.Name then return end | |
292 | if hit.Parent:findFirstChild("stoopidstuff") ~= nil and hit.Parent:findFirstChild("stoopidstuff").Value == true then | |
293 | return | |
294 | end | |
295 | damagerandom = damage + math.random(0, 10) | |
296 | hit.Parent.Humanoid.Health = hit.Parent.Humanoid.Health - damagerandom | |
297 | coroutine.wrap(function() | |
298 | local prt = Instance.new("Part", char) | |
299 | prt.FormFactor = "Custom" | |
300 | prt.Size = Vector3.new(0.1, 0.1, 0.1) | |
301 | prt.Transparency = 1 | |
302 | prt.CanCollide = false | |
303 | prt.CFrame = CFrame.new(part4.CFrame.x, part4.CFrame.y, part4.CFrame.z) | |
304 | prt.Anchored = true | |
305 | coroutine.resume(coroutine.create(function() | |
306 | for i = 2, 10, 0.05 do | |
307 | if prt == nil then return end | |
308 | prt.CFrame = prt.CFrame * CFrame.new(0, 0.05, 0) | |
309 | game:service'RunService'.Stepped:wait() | |
310 | end | |
311 | end)) | |
312 | ||
313 | local bg = Instance.new("BillboardGui") | |
314 | bg.Parent = prt | |
315 | bg.Adornee = prt | |
316 | bg.Size = UDim2.new(4, 0, 3.5, 0) | |
317 | bg.ExtentsOffset = Vector3.new(0, 0, 0) | |
318 | local lol = Instance.new("TextLabel") | |
319 | lol.Size = UDim2.new(1.3, 0, 0.4, 0) | |
320 | lol.TextScaled = true | |
321 | lol.TextWrapped = true | |
322 | lol.BackgroundTransparency = 0.4 | |
323 | lol.Parent = bg | |
324 | lol.FontSize = "Size24" | |
325 | lol.TextColor3 = Color3.new(1, 0, 0) | |
326 | lol.TextStrokeTransparency = 0 | |
327 | lol.Font = "ArialBold" | |
328 | lol.Text = "-"..damagerandom | |
329 | ||
330 | wait(5) | |
331 | prt:Destroy() | |
332 | end)() | |
333 | end | |
334 | end) | |
335 | end)() | |
336 | wait(0.1) | |
337 | debounce = false | |
338 | end) | |
339 | mouse.Button1Down:connect(function(mouse) | |
340 | if slashing then return end | |
341 | if not equipped then return end | |
342 | if blocking2 then return end | |
343 | if blocking then return end | |
344 | slashing = true | |
345 | slash() | |
346 | end) | |
347 | mouse.KeyUp:connect(function(key) | |
348 | ||
349 | if key == "f" then | |
350 | if not equipped then return end | |
351 | if not blocking then return end | |
352 | unblock() | |
353 | char:findFirstChild("Humanoid").MaxHealth = 100 | |
354 | end | |
355 | if key == "g" then | |
356 | if not equipped then return end | |
357 | if not blocking2 then return end | |
358 | unblock2() | |
359 | char:findFirstChild("Humanoid").MaxHealth = 100 | |
360 | end | |
361 | end) | |
362 | mouse.KeyDown:connect(function(key) | |
363 | if key == "f" then | |
364 | if not equipped then return end | |
365 | if blocking then return end | |
366 | if blocking2 then return end | |
367 | blocking = true | |
368 | block() | |
369 | end | |
370 | if key == "g" then | |
371 | if not equipped then return end | |
372 | if blocking then return end | |
373 | if blocking2 then return end | |
374 | blocking2 = true | |
375 | block2() | |
376 | end | |
377 | if key == "v" then | |
378 | if healing then return end | |
379 | if slashing then return end | |
380 | healing = true | |
381 | heal() | |
382 | end | |
383 | if key == "q" then | |
384 | if blocking2 then return end | |
385 | if blocking then return end | |
386 | equipped = not equipped | |
387 | if equipped then | |
388 | coroutine.wrap(function() | |
389 | while equipped do | |
390 | part4.Transparency = 0.6 | |
391 | pl.Brightness = 0.6 | |
392 | wait(0.05) | |
393 | part4.Transparency = 0.7 | |
394 | pl.Brightness = 0.8 | |
395 | wait(0.05) | |
396 | end | |
397 | end)() | |
398 | weld1.Part1 = ra | |
399 | weld1.C0 = CFrame.new(0, 0, 1) * CFrame.Angles(math.pi/2, 0, 0) | |
400 | part3.Transparency = 0 | |
401 | local sound = Instance.new("Sound", char.Head) | |
402 | sound.SoundId = [[rbxasset://sounds\Rocket whoosh 01.wav]] | |
403 | sound.Pitch = 3 | |
404 | sound.Volume = 1 | |
405 | sound:play() | |
406 | equip() | |
407 | wait(1) | |
408 | sound:stop() | |
409 | sound:Destroy() | |
410 | else | |
411 | deequip() | |
412 | wait(0.1) | |
413 | weld1.Part1 = rl | |
414 | weld1.C0 = CFrame.new(-0.6,-0.8,-0.2) * CFrame.Angles(math.pi/4, 0, 0) | |
415 | part3.Transparency = 1 | |
416 | pl.Brightness = 0 | |
417 | part4.Transparency = 1 | |
418 | end | |
419 | end | |
420 | ||
421 | end) | |
422 | while true do | |
423 | ||
424 | if slashing then | |
425 | local clone = part4:clone() | |
426 | clone.Anchored = true | |
427 | clone.Parent = workspace | |
428 | clone.Name = "trail" | |
429 | clone:findFirstChild("Mesh"):Destroy() | |
430 | Instance.new("BlockMesh", clone) | |
431 | clone.Mesh.Scale = clone.Mesh.Scale - Vector3.new(0.8, 0, 0) + Vector3.new(0, 0, 1.6) | |
432 | coroutine.wrap(function() | |
433 | for i = 0, 20 do | |
434 | clone.Transparency = clone.Transparency + 0.05 | |
435 | clone.Mesh.Scale = clone.Mesh.Scale - Vector3.new(0.05, 0.05, 0.05) | |
436 | wait() | |
437 | end | |
438 | clone:Destroy() | |
439 | end)() | |
440 | end | |
441 | wait() | |
442 | end |