SHOW:
|
|
- or go back to the newest paste.
1 | -------[[({{==~~||Scythe 'o dead||~~==}})]]------------------------------------------------------------------------------------------------------------------------------------------------- | |
2 | ------------------------------------------------------------------------------------------------------------------------------------------- | |
3 | - | name = "baluga" |
3 | + | name = "qJoshh" |
4 | ||
5 | me = game.Players[name] | |
6 | char = me.Character | |
7 | bin = script.Parent | |
8 | selected = false | |
9 | attacking = false | |
10 | hurt = false | |
11 | deb = true | |
12 | normdmg = 18 | |
13 | dmg = normdmg | |
14 | fly = false | |
15 | firecols = {"Bright violet", "Black", "Really black"} | |
16 | ||
17 | parts = {} | |
18 | ||
19 | if char:findFirstChild("Scythe",true) ~= nil then | |
20 | char:findFirstChild("Scythe",true).Parent = nil | |
21 | end | |
22 | ||
23 | function prop(part, parent, collide, tran, ref, x, y, z, color, anchor, form) | |
24 | part.Parent = parent | |
25 | part.formFactor = form | |
26 | part.CanCollide = collide | |
27 | part.Transparency = tran | |
28 | part.Reflectance = ref | |
29 | part.Size = Vector3.new(x,y,z) | |
30 | part.BrickColor = BrickColor.new(color) | |
31 | part.TopSurface = 0 | |
32 | part.BottomSurface = 0 | |
33 | part.Anchored = anchor | |
34 | part.Locked = true | |
35 | part:BreakJoints() | |
36 | end | |
37 | ||
38 | function weld(w, p, p1, a, b, c, x, y, z) | |
39 | w.Parent = p | |
40 | w.Part0 = p | |
41 | w.Part1 = p1 | |
42 | w.C1 = CFrame.fromEulerAnglesXYZ(a,b,c) * CFrame.new(x,y,z) | |
43 | end | |
44 | ||
45 | function mesh(mesh, parent, x, y, z, type) | |
46 | mesh.Parent = parent | |
47 | mesh.Scale = Vector3.new(x, y, z) | |
48 | mesh.MeshType = type | |
49 | end | |
50 | ||
51 | function getcharparts(path) | |
52 | local objs = {} | |
53 | for _,v in pairs(path:children()) do | |
54 | if v:IsA("Model") and v.Name ~= name then | |
55 | for _,k in pairs(v:children()) do | |
56 | if k.Name == "Torso" then | |
57 | table.insert(objs,k) | |
58 | end | |
59 | end | |
60 | end | |
61 | end | |
62 | return objs | |
63 | end | |
64 | ||
65 | sword = Instance.new("Model",me.Character) | |
66 | sword.Name = "Scythe" | |
67 | ||
68 | --Parts-------------------------Parts-------------------------Parts-------------------------Parts---------------------- | |
69 | ||
70 | rarm = char:findFirstChild("Right Arm") | |
71 | larm = char:findFirstChild("Left Arm") | |
72 | torso = char:findFirstChild("Torso") | |
73 | hum = char:findFirstChild("Humanoid") | |
74 | ||
75 | main = Instance.new("Part") | |
76 | prop(main, sword, false, 0, 0, 0.45, 6.4, 0.45, "Really black", false, "Custom") | |
77 | mme = Instance.new("SpecialMesh") | |
78 | mesh(mme,main,1,1,1,"Head") | |
79 | table.insert(parts,main) | |
80 | ||
81 | part1 = Instance.new("Part") | |
82 | prop(part1, sword, false, 0, 0, 0.45, 1, 0.45, "Really black", false, "Custom") | |
83 | p1m = Instance.new("SpecialMesh") | |
84 | mesh(p1m,part1,1,1,1,"Head") | |
85 | w1 = Instance.new("Weld") | |
86 | weld(w1, main, part1, 0, 0, -1.1, -0.3, 3.3, 0) | |
87 | ||
88 | part2 = Instance.new("Part") | |
89 | prop(part2, sword, false, 0, 0, 0.45, 1, 0.45, "Really black", false, "Custom") | |
90 | p2m = Instance.new("SpecialMesh") | |
91 | mesh(p2m,part2,1,1,1,"Head") | |
92 | w2 = Instance.new("Weld") | |
93 | weld(w2, main, part2, 0, 0, -1.1, 0.3, -3.3, 0) | |
94 | ||
95 | blade1 = Instance.new("Part") | |
96 | prop(blade1, sword, false, 0, 0, 1.4, 0.8, 0.1, "Dark grey", false, "Custom") | |
97 | b1m = Instance.new("BlockMesh",blade1) | |
98 | w3 = Instance.new("Weld") | |
99 | weld(w3, main, blade1, 0, 0, -0.4, -0.45, -3.4, 0) | |
100 | table.insert(parts,blade1) | |
101 | ||
102 | blade2 = Instance.new("Part") | |
103 | prop(blade2, sword, false, 0, 0, 1.1, 0.8, 0.1, "Dark grey", false, "Custom") | |
104 | b2m = Instance.new("BlockMesh",blade2) | |
105 | w4 = Instance.new("Weld") | |
106 | weld(w4, main, blade2, 0, 0, 0, -1.5, -3.66, 0) | |
107 | table.insert(parts,blade2) | |
108 | ||
109 | blade3 = Instance.new("Part") | |
110 | prop(blade3, sword, false, 0, 0, 0.1, 0.8, 1.7, "Dark grey", false, "Custom") | |
111 | b3m = Instance.new("SpecialMesh") | |
112 | mesh(b3m,blade3,1,1,1,"Wedge") | |
113 | w5 = Instance.new("Weld") | |
114 | weld(w5, main, blade3, 0, math.pi/2, 0.4, -2.64, -3.38, 0) | |
115 | table.insert(parts,blade3) | |
116 | ||
117 | blade1b = Instance.new("Part") | |
118 | prop(blade1b, sword, false, 0, 0, 1.4, 0.8, 0.1, "Dark grey", false, "Custom") | |
119 | b1mb = Instance.new("BlockMesh",blade1b) | |
120 | w6 = Instance.new("Weld") | |
121 | weld(w6, main, blade1b, 0, 0, -0.4+math.pi, 0.45, 3.4, 0) | |
122 | table.insert(parts,blade1b) | |
123 | ||
124 | blade2b = Instance.new("Part") | |
125 | prop(blade2b, sword, false, 0, 0, 1.1, 0.8, 0.1, "Dark grey", false, "Custom") | |
126 | b2mb = Instance.new("BlockMesh",blade2b) | |
127 | w7 = Instance.new("Weld") | |
128 | weld(w7, main, blade2b, 0, 0, math.pi, 1.5, 3.66, 0) | |
129 | table.insert(parts,blade2b) | |
130 | ||
131 | blade3b = Instance.new("Part") | |
132 | prop(blade3b, sword, false, 0, 0, 0.1, 0.8, 1.7, "Dark grey", false, "Custom") | |
133 | b3mb = Instance.new("SpecialMesh") | |
134 | mesh(b3mb,blade3b,1,1,1,"Wedge") | |
135 | w8 = Instance.new("Weld") | |
136 | weld(w8, main, blade3b, 0, math.pi/2, 0.4+math.pi, 2.64, 3.38, 0) | |
137 | table.insert(parts,blade3b) | |
138 | ||
139 | for i=0.9, 1.6, 0.09 do | |
140 | hp1 = Instance.new("Part") | |
141 | prop(hp1, sword, false, 0, 0, 0.48, 0.09, 0.48, "White", false, "Custom") | |
142 | h1m = Instance.new("SpecialMesh") | |
143 | mesh(h1m,hp1,1,1,1,"Head") | |
144 | w9 = Instance.new("Weld") | |
145 | weld(w9, main, hp1, math.random(-20,20)/100, 0, math.random(-20,20)/100, 0, i, 0) | |
146 | end | |
147 | ||
148 | for i=0.9, 1.6, 0.09 do | |
149 | hp2 = Instance.new("Part") | |
150 | prop(hp2, sword, false, 0, 0, 0.48, 0.09, 0.48, "White", false, "Custom") | |
151 | h2m = Instance.new("SpecialMesh") | |
152 | mesh(h2m,hp2,1,1,1,"Head") | |
153 | w10 = Instance.new("Weld") | |
154 | weld(w10, main, hp2, math.random(-20,20)/100, 0, math.random(-20,20)/100, 0, -i, 0) | |
155 | end | |
156 | ||
157 | --Arm joints-----------------------Arm joints-----------------------Arm joints--------------------- | |
158 | ||
159 | righthold = Instance.new("Part") | |
160 | prop(righthold, sword, false, 1, 0, 0.1, 0.1, 0.1, "White", false, "Custom") | |
161 | w11 = Instance.new("Weld") | |
162 | weld(w11, rarm, righthold, 0, 0, 0, 0, 1, 0) | |
163 | ||
164 | lefthold = Instance.new("Part") | |
165 | prop(lefthold, sword, false, 1, 0, 0.1, 0.1, 0.1, "White", false, "Custom") | |
166 | w12 = Instance.new("Weld") | |
167 | weld(w12, larm, lefthold, 0, 0, 0, 0, 1, 0) | |
168 | ||
169 | rb = Instance.new("Part") | |
170 | prop(rb, sword, false, 1, 0, 0.1, 0.1, 0.1, "White", false, "Custom") | |
171 | w13 = Instance.new("Weld") | |
172 | weld(w13, torso, rb, 0, 0, 0, -1.5, -0.5, 0) | |
173 | ||
174 | lb = Instance.new("Part") | |
175 | prop(lb, sword, false, 1, 0, 0.1, 0.1, 0.1, "White", false, "Custom") | |
176 | w14 = Instance.new("Weld") | |
177 | weld(w14, torso, lb, 0, 0, 0, 1.5, -0.5, 0) | |
178 | ||
179 | rw = Instance.new("Weld") | |
180 | weld(rw, rb, nil, 0, 0, 0, 0, 0.5, 0) | |
181 | ||
182 | lw = Instance.new("Weld") | |
183 | weld(lw, lb, nil, 0, 0, 0, 0, 0.5, 0) | |
184 | ||
185 | ||
186 | holdweld = Instance.new("Weld") | |
187 | weld(holdweld,torso,main,0,0,0.85,0,0,-0.64) | |
188 | ||
189 | rh = Instance.new("Weld") | |
190 | weld(rh,righthold,nil,math.pi/2,0,math.pi,0,0,1) | |
191 | ||
192 | lh = Instance.new("Weld") | |
193 | weld(lh,lefthold,nil,math.pi/2,0,0,0,0,0) | |
194 | ||
195 | rightbattle = nil | |
196 | leftbattle = nil | |
197 | ||
198 | if script.Parent.className ~= "HopperBin" then | |
199 | h = Instance.new("HopperBin",me.Backpack) | |
200 | h.Name = "Scythe" | |
201 | script.Parent = h | |
202 | end | |
203 | ||
204 | bin = script.Parent | |
205 | ||
206 | function selectmotion() | |
207 | rw.Part1 = rarm | |
208 | rh.C0 = CFrame.new(0,0,0) | |
209 | rw.C0 = CFrame.new(0,0,0) | |
210 | lw.C0 = CFrame.new(0,0,0) | |
211 | for i=1, 7 do | |
212 | rw.C0 = rw.C0 * CFrame.new(0,0,0) * CFrame.fromEulerAnglesXYZ(-0.25,0.13,-0.1) | |
213 | wait() | |
214 | end | |
215 | rh.Part1 = main | |
216 | holdweld.Part1 = nil | |
217 | for i=1, 5 do | |
218 | rw.C0 = rw.C0 * CFrame.new(0,0,0) * CFrame.fromEulerAnglesXYZ(-0.3,0,-0.1) | |
219 | rh.C0 = rh.C0 * CFrame.new(0,0,0.4) * CFrame.fromEulerAnglesXYZ(0,0,-(math.pi/2)/5) | |
220 | wait() | |
221 | end | |
222 | lw.Part1 = larm | |
223 | for i=1, 5 do | |
224 | rw.C0 = rw.C0 * CFrame.new(-0.03,0.05,0.08) * CFrame.fromEulerAnglesXYZ(-0.3,-0.2,0.13) | |
225 | lw.C0 = lw.C0 * CFrame.new(0.08,0,0) * CFrame.fromEulerAnglesXYZ(0.2,0,0) | |
226 | wait() | |
227 | end | |
228 | rightbattle = rw.C0 | |
229 | leftbattle = lw.C0 | |
230 | rh.Part1 = main | |
231 | lw.Part1 = larm | |
232 | rw.C0 = rightbattle | |
233 | lw.C0 = leftbattle | |
234 | selected = true | |
235 | end | |
236 | ||
237 | function deselmotion() | |
238 | selected = false | |
239 | rightbattle = rw.C0 | |
240 | leftbattle = lw.C0 | |
241 | rh.Part1 = main | |
242 | lw.Part1 = larm | |
243 | rw.Part1 = rarm | |
244 | rw.C0 = rightbattle | |
245 | lw.C0 = leftbattle | |
246 | for i=1, 5 do | |
247 | rw.C0 = rw.C0 * CFrame.new(0.03,-0.05,-0.08) * CFrame.fromEulerAnglesXYZ(0.3,0.2,-0.13) | |
248 | lw.C0 = lw.C0 * CFrame.new(-0.08,0,0) * CFrame.fromEulerAnglesXYZ(-0.2,0,0) | |
249 | wait() | |
250 | end | |
251 | lw.Part1 = nil | |
252 | for i=1, 5 do | |
253 | rw.C0 = rw.C0 * CFrame.new(0,0,0) * CFrame.fromEulerAnglesXYZ(0.3,0,0.1) | |
254 | rh.C0 = rh.C0 * CFrame.new(0,0,-0.4) * CFrame.fromEulerAnglesXYZ(0,0,(math.pi/2)/5) | |
255 | wait() | |
256 | end | |
257 | holdweld.Part1 = main | |
258 | rh.Part1 = nil | |
259 | for i=1, 7 do | |
260 | rw.C0 = rw.C0 * CFrame.new(0,0,0) * CFrame.fromEulerAnglesXYZ(0.25,-0.13,0.1) | |
261 | wait() | |
262 | end | |
263 | rw.Part1 = nil | |
264 | lw.Part1 = nil | |
265 | rh.C0 = CFrame.new(0,0,0) | |
266 | rw.C0 = CFrame.new(0,0,0) | |
267 | lw.C0 = CFrame.new(0,0,0) | |
268 | end | |
269 | ||
270 | --Effect------------------Effect------------------Effect------------------Effect------------------Effect---------------- | |
271 | ||
272 | function effect() | |
273 | for _,v in pairs(parts) do | |
274 | local o = v:clone() | |
275 | o.Parent = workspace | |
276 | o.Transparency = 0.6 | |
277 | o.BrickColor = BrickColor.new("Bright violet") | |
278 | o.Anchored = true | |
279 | o.CanCollide = false | |
280 | o.CFrame = v.CFrame | |
281 | coroutine.resume(coroutine.create(function() | |
282 | for i=o.Transparency, 1, 0.07 do | |
283 | wait() | |
284 | o.Transparency = i | |
285 | end | |
286 | o:remove() | |
287 | end)) | |
288 | end | |
289 | end | |
290 | ||
291 | --KILL FUNCTION-------------KILL FUNCTION-------------KILL FUNCTION-------------KILL FUNCTION----------- | |
292 | ||
293 | ||
294 | function kill(h) | |
295 | if hurt and deb then | |
296 | local hu = h.Parent:findFirstChild("Humanoid") | |
297 | if hu ~= nil and h.Parent.Name ~= name then | |
298 | deb = false | |
299 | local dam = math.random(0,dmg) | |
300 | hu.Health = hu.Health - dam | |
301 | local p = Instance.new("Part") | |
302 | prop(p,nil,false,1,0,0.9,0.25,0.9,"Bright red",false,"Custom") | |
303 | p.CFrame = CFrame.new(blade3b.Position) * CFrame.new(0,2,0) | |
304 | local bil = Instance.new("BillboardGui",p) | |
305 | bil.Adornee = bil.Parent | |
306 | bil.Size = UDim2.new(0,60,0,60) | |
307 | local txt = Instance.new("TextLabel",bil) | |
308 | txt.Text = dam | |
309 | txt.BackgroundTransparency = 1 | |
310 | txt.FontSize = "Size24" | |
311 | txt.Size = UDim2.new(0,60,0,60) | |
312 | local bp = Instance.new("BodyPosition",p) | |
313 | bp.maxForce = Vector3.new(math.huge,math.huge,math.huge) | |
314 | bp.P = 200000 | |
315 | bp.position = p.Position | |
316 | local po = bp.position | |
317 | local cf = CFrame.Angles(0,0,0) | |
318 | if fly then | |
319 | local too = h.Parent:findFirstChild("Torso") | |
320 | if too ~= nil then | |
321 | coroutine.resume(coroutine.create(function() | |
322 | hu.PlatformStand = true | |
323 | wait(0.06) | |
324 | local c = CFrame.new(torso.Position, too.Position) | |
325 | too.Velocity = c.lookVector * math.random(30,70) | |
326 | wait(0.6) | |
327 | hu.PlatformStand = false | |
328 | end)) | |
329 | end | |
330 | end | |
331 | coroutine.resume(coroutine.create(function() | |
332 | p.Parent = workspace | |
333 | for i=0, math.random(16,27), 0.35 do | |
334 | wait() | |
335 | cf = CFrame.Angles(0,i/1.3,0) * CFrame.new(0,i/1.7,i/3.2) | |
336 | bp.position = po + cf.p | |
337 | end | |
338 | p:remove() | |
339 | end)) | |
340 | coroutine.resume(coroutine.create(function() | |
341 | wait(0.14) | |
342 | deb = true | |
343 | end)) | |
344 | end | |
345 | end | |
346 | end | |
347 | ||
348 | for _,v in pairs(parts) do | |
349 | v.Touched:connect(kill) | |
350 | end | |
351 | ||
352 | --Attacks-----------Attacks----------------Attacks-----------Attacks----------------Attacks-----------Attacks-------------- | |
353 | ||
354 | function att() | |
355 | attacking = true | |
356 | for i=1,7 do | |
357 | rw.C0 = rw.C0 * CFrame.new(0,0,0) * CFrame.fromEulerAnglesXYZ(0.05,-0.2,-0.05) | |
358 | lw.C0 = lw.C0 * CFrame.new(0.07,-0.08,0) * CFrame.fromEulerAnglesXYZ(0,0,0.12) | |
359 | wait() | |
360 | end | |
361 | for i=1,6 do | |
362 | rw.C0 = rw.C0 * CFrame.new(0,0,0) * CFrame.fromEulerAnglesXYZ(-0.3,0,0.05) | |
363 | lw.C0 = lw.C0 * CFrame.new(0,0,0) * CFrame.fromEulerAnglesXYZ(0.2,0,0.1) | |
364 | wait() | |
365 | end | |
366 | hurt = true | |
367 | for i=1,6 do | |
368 | rw.C0 = rw.C0 * CFrame.new(0,0,0) * CFrame.fromEulerAnglesXYZ(0.5,-0.06,0.12) | |
369 | lw.C0 = lw.C0 * CFrame.new(0,0,0) * CFrame.fromEulerAnglesXYZ(-0.23,-0.07,0) | |
370 | effect() | |
371 | wait() | |
372 | end | |
373 | hurt = false | |
374 | for i=1,6 do | |
375 | rw.C0 = rw.C0 * CFrame.new(0,0,0) * CFrame.fromEulerAnglesXYZ(-0.13,0.23,-0.2) | |
376 | lw.C0 = lw.C0 * CFrame.new(-0.08,0.09,0.03) * CFrame.fromEulerAnglesXYZ(-0.1,0.15,-0.15) | |
377 | effect() | |
378 | wait() | |
379 | end | |
380 | rw.C0 = rightbattle | |
381 | lw.C0 = leftbattle | |
382 | attacking = false | |
383 | end | |
384 | ||
385 | function throw() | |
386 | attacking = true | |
387 | for i=1,7 do | |
388 | rw.C0 = rw.C0 * CFrame.new(0,0,0) * CFrame.fromEulerAnglesXYZ(-0.08,-0.14,-0.2) | |
389 | wait() | |
390 | end | |
391 | for i=1,3 do | |
392 | rw.C0 = rw.C0 * CFrame.new(0,0,0) * CFrame.fromEulerAnglesXYZ(-0.2,-0,0) | |
393 | effect() | |
394 | wait() | |
395 | end | |
396 | for i=1,4 do | |
397 | rw.C0 = rw.C0 * CFrame.new(0,0,0) * CFrame.fromEulerAnglesXYZ(0.45,-0,0) | |
398 | effect() | |
399 | wait() | |
400 | end | |
401 | rh.Part1 = nil | |
402 | local bv = Instance.new("BodyVelocity",main) | |
403 | bv.maxForce = Vector3.new(math.huge,math.huge,math.huge) | |
404 | bv.velocity = torso.CFrame.lookVector * 70 | |
405 | local bav = Instance.new("BodyAngularVelocity",main) | |
406 | bav.P = 10000 | |
407 | bav.angularvelocity = torso.CFrame.lookVector * 40 | |
408 | local lolpos = torso.CFrame | |
409 | wait(0.4) | |
410 | hurt = true | |
411 | dmg = 65 | |
412 | coroutine.resume(coroutine.create(function() | |
413 | repeat wait() effect() until (main.Position - torso.Position).magnitude < 11 | |
414 | rh.Part1 = main | |
415 | bv:remove() | |
416 | bav:remove() | |
417 | rw.C0 = rightbattle | |
418 | lw.C0 = leftbattle | |
419 | attacking = false | |
420 | hurt = false | |
421 | dmg = normdmg | |
422 | end)) | |
423 | wait(3) | |
424 | bv.velocity = lolpos.lookVector * -180 | |
425 | end | |
426 | ||
427 | function spin() | |
428 | attacking = true | |
429 | wait(0.1) | |
430 | local bg = Instance.new("BodyGyro",torso) | |
431 | bg.P = 13000 | |
432 | bg.maxTorque = Vector3.new(math.huge,math.huge,math.huge) | |
433 | local cf = CFrame.Angles(0,0,0) | |
434 | local xd = torso.CFrame | |
435 | bg.cframe = CFrame.new(torso.Position, xd * cf * CFrame.new(0,0,-90).p) | |
436 | for i=1,4 do | |
437 | rw.C0 = rw.C0 * CFrame.new(0,0.1,0) * CFrame.fromEulerAnglesXYZ(0.35,0,-0.07) | |
438 | lw.C0 = lw.C0 * CFrame.new(0,0.1,0) * CFrame.fromEulerAnglesXYZ(0,0,0) | |
439 | wait() | |
440 | end | |
441 | hurt = true | |
442 | fly = true | |
443 | for i=0,math.pi*4,math.pi/6 do | |
444 | wait() | |
445 | cf = CFrame.Angles(0,-i,0) | |
446 | bg.cframe = CFrame.new(torso.Position, xd * cf * CFrame.new(0,0,-90).p) | |
447 | effect() | |
448 | end | |
449 | hurt = false | |
450 | fly = false | |
451 | bg:remove() | |
452 | for i=1,4 do | |
453 | rw.C0 = rw.C0 * CFrame.new(0,-0.1,0) * CFrame.fromEulerAnglesXYZ(-0.35,0,0.07) | |
454 | lw.C0 = lw.C0 * CFrame.new(0,-0.1,0) * CFrame.fromEulerAnglesXYZ(0,0,0) | |
455 | wait() | |
456 | end | |
457 | rw.C0 = rightbattle | |
458 | lw.C0 = leftbattle | |
459 | wait(0.2) | |
460 | attacking = false | |
461 | end | |
462 | ||
463 | function select(mouse) | |
464 | repeat wait() until selected == false and attacking == false | |
465 | if selected == false then | |
466 | selectmotion() | |
467 | end | |
468 | coroutine.resume(coroutine.create(function() | |
469 | while selected do | |
470 | wait(0.25) | |
471 | if torso.RotVelocity.Y < -14 and attacking == false then | |
472 | spin() | |
473 | end | |
474 | end | |
475 | end)) | |
476 | mouse.Button1Down:connect(function() | |
477 | if selected and attacking == false then | |
478 | att() | |
479 | end | |
480 | end) | |
481 | mouse.KeyDown:connect(function(kai) | |
482 | if attacking == false then | |
483 | omg = kai:lower() | |
484 | if omg == "r" then | |
485 | throw() | |
486 | end | |
487 | end | |
488 | end) | |
489 | end | |
490 | ||
491 | function desel() | |
492 | repeat wait() until selected and attacking == false | |
493 | if selected then | |
494 | deselmotion() | |
495 | end | |
496 | end | |
497 | ||
498 | bin.Selected:connect(select) | |
499 | bin.Deselected:connect(desel) |