SHOW:
|
|
- or go back to the newest paste.
1 | --//====================================================\\-- | |
2 | --|| CREATED BY SHACKLUSTER | |
3 | --\\====================================================//-- | |
4 | ||
5 | ||
6 | ||
7 | wait(0.2) | |
8 | ||
9 | CV="Magenta" | |
10 | p = game.Players.LocalPlayer | |
11 | char = p.Character | |
12 | local txt = Instance.new("BillboardGui", char) | |
13 | txt.Adornee = char .Head | |
14 | txt.Name = "_status" | |
15 | txt.Size = UDim2.new(2, 0, 1.2, 0) | |
16 | txt.StudsOffset = Vector3.new(-9, 8, 0) | |
17 | local text = Instance.new("TextLabel", txt) | |
18 | text.Size = UDim2.new(10, 0, 7, 0) | |
19 | text.FontSize = "Size24" | |
20 | text.TextScaled = true | |
21 | text.TextTransparency = 0 | |
22 | text.BackgroundTransparency = 1 | |
23 | text.TextTransparency = 0 | |
24 | text.TextStrokeTransparency = 0 | |
25 | text.Font = "Bodoni" | |
26 | text.TextStrokeColor3 = Color3.new(0,0,0) | |
27 | ||
28 | v=Instance.new("Part") | |
29 | v.Name = "ColorBrick" | |
30 | v.Parent=p.Character | |
31 | v.FormFactor="Symmetric" | |
32 | v.Anchored=true | |
33 | v.CanCollide=false | |
34 | v.BottomSurface="Smooth" | |
35 | v.TopSurface="Smooth" | |
36 | v.Size=Vector3.new(10,5,3) | |
37 | v.Transparency=1 | |
38 | v.CFrame=char.Torso.CFrame | |
39 | v.BrickColor=BrickColor.new(CV) | |
40 | v.Transparency=1 | |
41 | text.TextColor3 = Color3.new(170,0,170) | |
42 | v.Shape="Block" | |
43 | - | text.Text = "☣Fox☣" |
43 | + | text.Text = "☣ŤĤẸ ŴỖĹḞ☣" |
44 | ||
45 | ||
46 | ||
47 | Player = game:GetService("Players").LocalPlayer | |
48 | PlayerGui = Player.PlayerGui | |
49 | Cam = workspace.CurrentCamera | |
50 | Backpack = Player.Backpack | |
51 | Character = Player.Character | |
52 | Humanoid = Character.Humanoid | |
53 | Mouse = Player:GetMouse() | |
54 | RootPart = Character["HumanoidRootPart"] | |
55 | Torso = Character["Torso"] | |
56 | Head = Character["Head"] | |
57 | RightArm = Character["Right Arm"] | |
58 | LeftArm = Character["Left Arm"] | |
59 | RightLeg = Character["Right Leg"] | |
60 | LeftLeg = Character["Left Leg"] | |
61 | RootJoint = RootPart["RootJoint"] | |
62 | Neck = Torso["Neck"] | |
63 | RightShoulder = Torso["Right Shoulder"] | |
64 | LeftShoulder = Torso["Left Shoulder"] | |
65 | RightHip = Torso["Right Hip"] | |
66 | LeftHip = Torso["Left Hip"] | |
67 | local sick = nil | |
68 | if sick == nil then | |
69 | sick = Instance.new("Sound",Character) | |
70 | sick.SoundId = "rbxassetid://1073360199" | |
71 | sick.Looped = true | |
72 | sick.Pitch = 1 | |
73 | sick.Volume = 1.5 | |
74 | sick:Play() | |
75 | end | |
76 | Taunts = {907330619,907332856,907329893} | |
77 | ALONE = 907328147 | |
78 | script.Parent = workspace | |
79 | HASDIED = false | |
80 | ||
81 | IT = Instance.new | |
82 | CF = CFrame.new | |
83 | VT = Vector3.new | |
84 | RAD = math.rad | |
85 | C3 = Color3.new | |
86 | UD2 = UDim2.new | |
87 | BRICKC = BrickColor.new | |
88 | ANGLES = CFrame.Angles | |
89 | EULER = CFrame.fromEulerAnglesXYZ | |
90 | COS = math.cos | |
91 | ACOS = math.acos | |
92 | SIN = math.sin | |
93 | ASIN = math.asin | |
94 | ABS = math.abs | |
95 | MRANDOM = math.random | |
96 | FLOOR = math.floor | |
97 | ||
98 | local isScriptNil = false | |
99 | ||
100 | local PlrName = "Magermash" | |
101 | local Plrs = game:GetService("Players") | |
102 | local RunService = game:GetService("RunService") | |
103 | local Content = game:GetService("ContentProvider") | |
104 | local LP = Plrs.LocalPlayer | |
105 | local Char = LP.Character | |
106 | local PlrGui = LP.PlayerGui | |
107 | local Backpack = LP.Backpack | |
108 | local Mouse = LP:GetMouse() | |
109 | ||
110 | local Camera = Workspace.CurrentCamera | |
111 | local LastCamCF = Camera.CoordinateFrame | |
112 | local AnimJoints = {} | |
113 | local Cons = {} | |
114 | local mDown = false | |
115 | local Multi = false | |
116 | local Grabbing = false | |
117 | local Current = {} | |
118 | local Alpha = 1 | |
119 | local LightNum = 1 | |
120 | ||
121 | Current.Part = nil | |
122 | Current.BP = nil | |
123 | Current.BA = nil | |
124 | Current.Mass = nil | |
125 | ||
126 | local LastPart = nil | |
127 | ||
128 | local Head = Char["Head"] | |
129 | local Torso = Char["Torso"] | |
130 | local Humanoid = Char["Humanoid"] | |
131 | local LA = Char["Left Arm"] | |
132 | local RA = Char["Right Arm"] | |
133 | local LL = Char["Left Leg"] | |
134 | local RL = Char["Right Leg"] | |
135 | ||
136 | local LS, RS; | |
137 | ||
138 | local OrigLS = Torso["Left Shoulder"] | |
139 | local OrigRS = Torso["Right Shoulder"] | |
140 | ||
141 | for _,v in pairs(Char:GetChildren()) do | |
142 | if v.Name == ModID then | |
143 | v:Destroy() | |
144 | end | |
145 | end | |
146 | ||
147 | for _,v in pairs(PlrGui:GetChildren()) do | |
148 | if v.Name == "PadsGui" then | |
149 | v:Destroy() | |
150 | end | |
151 | end | |
152 | ||
153 | local ModID = "Pads" | |
154 | local Objects = {} | |
155 | local Grav = 196.2 | |
156 | ||
157 | local sin=math.sin | |
158 | local cos=math.cos | |
159 | local max=math.max | |
160 | local min=math.min | |
161 | local atan2=math.atan2 | |
162 | local random=math.random | |
163 | local tau = 2 * math.pi | |
164 | ||
165 | local BodyObjects = { | |
166 | ["BodyVelocity"] = true; | |
167 | ["BodyAngularVelocity"] = true; | |
168 | ["BodyForce"] = true; | |
169 | ["BodyThrust"] = true; | |
170 | ["BodyPosition"] = true; | |
171 | ["RocketPropulsion"] = true; | |
172 | } | |
173 | ||
174 | if LP.Name == PlrName and isScriptNil then | |
175 | script.Parent = nil | |
176 | end | |
177 | ||
178 | LP.CameraMode = "Classic" | |
179 | ||
180 | local Assets = { | |
181 | } | |
182 | ||
183 | local LS0, LS1 = OrigLS.C0, OrigLS.C1 | |
184 | local RS0, RS1 = OrigRS.C0, OrigRS.C1 | |
185 | ||
186 | for i,v in pairs(Assets) do | |
187 | local ID = tostring(Assets[i]) | |
188 | Assets[i] = "http://www.roblox.com/asset/?id=" .. ID | |
189 | Content:Preload("http://www.roblox.com/asset/?id=" .. ID) | |
190 | end | |
191 | ||
192 | function QuaternionFromCFrame(cf) | |
193 | local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components(); | |
194 | local trace = m00 + m11 + m22 if trace > 0 then | |
195 | local s = math.sqrt(1 + trace); | |
196 | local recip = 0.5/s; | |
197 | return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5; | |
198 | else | |
199 | local i = 0; | |
200 | if m11 > m00 then | |
201 | i = 1; | |
202 | end; | |
203 | if m22 > (i == 0 and m00 or m11) then | |
204 | i = 2 end if i == 0 then | |
205 | local s = math.sqrt(m00-m11-m22+1); | |
206 | local recip = 0.5/s return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip; | |
207 | elseif i == 1 then | |
208 | local s = math.sqrt(m11-m22-m00+1); | |
209 | local recip = 0.5/s; | |
210 | return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip ; | |
211 | elseif i == 2 then | |
212 | local s = math.sqrt(m22-m00-m11+1); | |
213 | local recip = 0.5/s; | |
214 | return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip; | |
215 | end; | |
216 | end; | |
217 | end; | |
218 | ||
219 | function QuaternionToCFrame(px, py, pz, x, y, z, w) | |
220 | local xs, ys, zs = x + x, y + y, z + z; | |
221 | local wx, wy, wz = w*xs, w*ys, w*zs; | |
222 | local xx = x*xs; | |
223 | local xy = x*ys; | |
224 | local xz = x*zs; | |
225 | local yy = y*ys; | |
226 | local yz = y*zs; | |
227 | local zz = z*zs; | |
228 | return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy)) | |
229 | end; | |
230 | ||
231 | function QuaternionSlerp(a, b, t) | |
232 | local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4]; | |
233 | local startInterp, finishInterp; | |
234 | if cosTheta >= 0.0001 then | |
235 | if (1 - cosTheta) > 0.0001 then | |
236 | local theta = math.acos(cosTheta); | |
237 | local invSinTheta = 1/math.sin(theta); | |
238 | startInterp = math.sin((1-t)*theta)*invSinTheta; | |
239 | finishInterp = math.sin(t*theta)*invSinTheta; | |
240 | else | |
241 | startInterp = 1-t finishInterp = t; | |
242 | end; | |
243 | else | |
244 | if (1+cosTheta) > 0.0001 then | |
245 | local theta = math.acos(-cosTheta); | |
246 | local invSinTheta = 1/math.sin(theta); | |
247 | startInterp = math.sin((t-1)*theta)*invSinTheta; | |
248 | finishInterp = math.sin(t*theta)*invSinTheta; | |
249 | else startInterp = t-1 finishInterp = t; | |
250 | end; | |
251 | end; | |
252 | return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp; | |
253 | end; | |
254 | ||
255 | function CLerp(a,b,t) | |
256 | local qa={QuaternionFromCFrame(a)}; | |
257 | local qb={QuaternionFromCFrame(b)}; | |
258 | local ax,ay,az=a.x,a.y,a.z; | |
259 | local bx,by,bz=b.x,b.y,b.z; | |
260 | local _t=1-t; | |
261 | return QuaternionToCFrame(_t*ax+t*bx,_t*ay+t*by,_t*az+t*bz,QuaternionSlerp(qa, qb, t)); | |
262 | end | |
263 | ||
264 | function GetWeld(weld) | |
265 | local obj | |
266 | for i, v in pairs(AnimJoints) do | |
267 | if v[1] == weld then | |
268 | obj = v | |
269 | break | |
270 | end | |
271 | end | |
272 | if not obj then | |
273 | obj = {weld,NV} | |
274 | table.insert(AnimJoints,obj) | |
275 | end | |
276 | return weld.C0.p, obj[2] | |
277 | end | |
278 | ||
279 | function SetWeld(weld, i, loops, origpos, origangle, nextpos, nextangle, override, overrideLower, smooth) | |
280 | smooth = smooth or 1 | |
281 | local obj | |
282 | for i, v in pairs(AnimJoints) do | |
283 | if v[1] == weld then | |
284 | obj = v | |
285 | break | |
286 | end | |
287 | end | |
288 | if not obj then | |
289 | obj = {weld,NV} | |
290 | table.insert(AnimJoints,obj) | |
291 | end | |
292 | ||
293 | local perc = (smooth == 1 and math.sin((math.pi/2)/loops*i)) or i/loops | |
294 | ||
295 | local tox,toy,toz = 0,0,0 | |
296 | tox = math.abs(origangle.x - nextangle.x) *perc | |
297 | toy = math.abs(origangle.y - nextangle.y) *perc | |
298 | toz = math.abs(origangle.z - nextangle.z) *perc | |
299 | tox = ((origangle.x > nextangle.x and -tox) or tox) | |
300 | toy = ((origangle.y > nextangle.y and -toy) or toy) | |
301 | toz = ((origangle.z > nextangle.z and -toz) or toz) | |
302 | ||
303 | local tox2,toy2,toz2 = 0,0,0 | |
304 | tox2 = math.abs(origpos.x - nextpos.x) *perc | |
305 | toy2 = math.abs(origpos.y - nextpos.y) *perc | |
306 | toz2 = math.abs(origpos.z - nextpos.z) *perc | |
307 | tox2 = (origpos.x > nextpos.x and -tox2) or tox2 | |
308 | toy2 = (origpos.y > nextpos.y and -toy2) or toy2 | |
309 | toz2 = (origpos.z > nextpos.z and -toz2) or toz2 | |
310 | ||
311 | obj[2] = Vector3.new(origangle.x + tox, origangle.y + toy, origangle.z + toz) | |
312 | weld.C0 = CFrame.new(origpos.x + tox2,origpos.y + toy2,origpos.z + toz2) * CFrame.Angles(origangle.x + tox,origangle.y + toy,origangle.z + toz) | |
313 | end | |
314 | ||
315 | function RotateCamera(x, y) | |
316 | Camera.CoordinateFrame = CFrame.new(Camera.Focus.p) * (Camera.CoordinateFrame - Camera.CoordinateFrame.p) * CFrame.Angles(x, y, 0) * CFrame.new(0, 0, (Camera.CoordinateFrame.p - Camera.Focus.p).magnitude) | |
317 | end | |
318 | ||
319 | function GetAngles(cf) | |
320 | local lv = cf.lookVector | |
321 | return -math.asin(lv.y), math.atan2(lv.x, -lv.z) | |
322 | end | |
323 | ||
324 | local LastCamCF = Camera.CoordinateFrame | |
325 | ||
326 | function Look() | |
327 | if AlphaOn == true then | |
328 | local x, y = GetAngles(LastCamCF:toObjectSpace(Camera.CoordinateFrame)) | |
329 | Camera.CoordinateFrame = LastCamCF | |
330 | RotateCamera(x * -(Alpha), y * -(Alpha)) | |
331 | LastCamCF = Camera.CoordinateFrame | |
332 | end | |
333 | end | |
334 | ||
335 | function Cor(Func) | |
336 | local Ok, Err = coroutine.resume(coroutine.create(Func)) | |
337 | if not Ok then | |
338 | print(Err) | |
339 | end | |
340 | end | |
341 | ||
342 | function Cor2(Func) | |
343 | local Ok, Err = ypcall(Func) | |
344 | if not Ok then | |
345 | print(Err) | |
346 | end | |
347 | end | |
348 | ||
349 | function MakePads() | |
350 | ||
351 | -- 2 - RBase | |
352 | P2 = Instance.new("Part") | |
353 | P2.CFrame = CFrame.new(Vector3.new(21.100008, 1.95000589, 11.899971)) * CFrame.Angles(-0, 0, -0) | |
354 | P2.FormFactor = Enum.FormFactor.Custom | |
355 | P2.Size = Vector3.new(0.799999952, 0.200000003, 0.800000012) | |
356 | P2.Anchored = true | |
357 | P2.BrickColor = BrickColor.new("White") | |
358 | P2.Friction = 0.30000001192093 | |
359 | P2.Shape = Enum.PartType.Block | |
360 | P2.Name = "RBase" | |
361 | P2.Parent = P1 | |
362 | P2.Transparency = 1 | |
363 | -- 3 - Mesh | |
364 | P3 = Instance.new("CylinderMesh") | |
365 | P3.Scale = Vector3.new(1, 0.5, 1) | |
366 | P3.Parent = P2 | |
367 | ||
368 | -- 4 - LBase | |
369 | P4 = Instance.new("Part") | |
370 | P4.CFrame = CFrame.new(Vector3.new(18.100008, 1.95000589, 11.899971)) * CFrame.Angles(-0, 0, -0) | |
371 | P4.FormFactor = Enum.FormFactor.Custom | |
372 | P4.Size = Vector3.new(0.799999952, 0.200000003, 0.800000012) | |
373 | P4.Anchored = true | |
374 | P4.BrickColor = BrickColor.new("White") | |
375 | P4.Friction = 0.30000001192093 | |
376 | P4.Shape = Enum.PartType.Block | |
377 | P4.Name = "LBase" | |
378 | P4.Parent = P1 | |
379 | P4.Transparency = 1 | |
380 | -- 5 - Mesh | |
381 | P5 = Instance.new("CylinderMesh") | |
382 | P5.Scale = Vector3.new(1, 0.5, 1) | |
383 | P5.Parent = P4 | |
384 | ||
385 | -- 7 - Mesh | |
386 | P7 = Instance.new("CylinderMesh") | |
387 | P7.Scale = Vector3.new(1, 0.5, 1) | |
388 | P7.Parent = P6 | |
389 | ||
390 | ||
391 | ||
392 | -- 9 - Mesh | |
393 | P9 = Instance.new("CylinderMesh") | |
394 | P9.Scale = Vector3.new(1, 0.5, 1) | |
395 | P9.Parent = P8 | |
396 | ||
397 | ||
398 | ||
399 | -- 11 - Mesh | |
400 | P11 = Instance.new("CylinderMesh") | |
401 | P11.Scale = Vector3.new(1, 0.5, 1) | |
402 | P11.Parent = P10 | |
403 | ||
404 | ||
405 | -- 13 - Mesh | |
406 | P13 = Instance.new("CylinderMesh") | |
407 | P13.Scale = Vector3.new(1, 0.5, 1) | |
408 | P13.Parent = P12 | |
409 | ||
410 | ||
411 | -- 15 - Mesh | |
412 | P15 = Instance.new("CylinderMesh") | |
413 | P15.Scale = Vector3.new(1, 0.5, 1) | |
414 | P15.Parent = P14 | |
415 | ||
416 | -- 17 - Mesh | |
417 | P17 = Instance.new("CylinderMesh") | |
418 | P17.Scale = Vector3.new(1, 0.5, 1) | |
419 | P17.Parent = P16 | |
420 | ||
421 | P1.Parent = LP.Character | |
422 | P1:MakeJoints() | |
423 | return P1 | |
424 | end | |
425 | ||
426 | weldModel = function(model, unanchor, rooty) | |
427 | local parts = {} | |
428 | local function recurse(object) | |
429 | if object:IsA("BasePart") then | |
430 | table.insert(parts, object) | |
431 | end | |
432 | for _,child in pairs(object:GetChildren()) do | |
433 | recurse(child) | |
434 | end | |
435 | end | |
436 | recurse(model) | |
437 | ||
438 | local rootPart = rooty or parts[1] | |
439 | for _, part in pairs(parts) do | |
440 | local cframe = rootPart.CFrame:toObjectSpace(part.CFrame) | |
441 | local weld = Instance.new("Weld") | |
442 | weld.Part0 = rootPart | |
443 | weld.Part1 = part | |
444 | weld.C0 = cframe | |
445 | weld.Parent = rootPart | |
446 | end | |
447 | ||
448 | if unanchor then | |
449 | for _, part in pairs(parts) do | |
450 | part.Anchored = false | |
451 | part.CanCollide = false | |
452 | end | |
453 | end | |
454 | end | |
455 | ||
456 | weldItem = function(rootPart, Item, TheC0, unanchor, ParentItem) | |
457 | local cframe = TheC0 or rootPart.CFrame:toObjectSpace(Item.CFrame) | |
458 | local weld = Instance.new("Weld") | |
459 | weld.Name = "Weld" | |
460 | weld.Part0 = rootPart | |
461 | weld.Part1 = Item | |
462 | weld.C0 = cframe | |
463 | weld.Parent = ParentItem and Item or rootPart | |
464 | ||
465 | if unanchor then | |
466 | Item.Anchored = false | |
467 | end | |
468 | return weld, cframe | |
469 | end | |
470 | ||
471 | scaleModel = function(model, scale) | |
472 | local parts = {} | |
473 | local function recurse(object) | |
474 | if object:IsA("BasePart") then | |
475 | table.insert(parts, object) | |
476 | end | |
477 | for _,child in pairs(object:GetChildren()) do | |
478 | recurse(child) | |
479 | end | |
480 | end | |
481 | recurse(model) | |
482 | ||
483 | local top, bottom, left, right, back, front | |
484 | for _, part in pairs(parts) do | |
485 | if top == nil or top < part.Position.y then top = part.Position.y end | |
486 | if bottom == nil or bottom > part.Position.y then bottom = part.Position.y end | |
487 | if left == nil or left > part.Position.x then left = part.Position.x end | |
488 | if right == nil or right < part.Position.x then right = part.Position.x end | |
489 | if back == nil or back > part.Position.z then back = part.Position.z end | |
490 | if front == nil or front < part.Position.z then front = part.Position.z end | |
491 | end | |
492 | ||
493 | local middle = Vector3.new( left+right, top+bottom, back+front )/2 | |
494 | local minSize = Vector3.new(0.2, 0.2, 0.2) | |
495 | ||
496 | for _, part in pairs(parts) do | |
497 | local foo = part.CFrame.p - middle | |
498 | local rotation = part.CFrame - part.CFrame.p | |
499 | local newSize = part.Size*scale | |
500 | part.FormFactor = "Custom" | |
501 | part.Size = newSize | |
502 | part.CFrame = CFrame.new( middle + foo*scale ) * rotation | |
503 | ||
504 | if newSize.x < minSize.x or newSize.y < minSize.y or newSize.z < minSize.z then | |
505 | local mesh | |
506 | for _, child in pairs(part:GetChildren()) do | |
507 | if child:IsA("DataModelMesh") then | |
508 | mesh = child | |
509 | break | |
510 | end | |
511 | end | |
512 | ||
513 | if mesh == nil then | |
514 | mesh = Instance.new("BlockMesh", part) | |
515 | end | |
516 | ||
517 | local oScale = mesh.Scale | |
518 | local newScale = newSize/minSize * oScale | |
519 | if 0.2 < newSize.x then newScale = Vector3.new(1 * oScale.x, newScale.y, newScale.z) end | |
520 | if 0.2 < newSize.y then newScale = Vector3.new(newScale.x, 1 * oScale.y, newScale.z) end | |
521 | if 0.2 < newSize.z then newScale = Vector3.new(newScale.x, newScale.y, 1 * oScale.z) end | |
522 | ||
523 | mesh.Scale = newScale | |
524 | end | |
525 | end | |
526 | end | |
527 | ||
528 | function getMass(Obj, Total) | |
529 | local newTotal = Total | |
530 | local returnTotal = 0 | |
531 | ||
532 | if Obj:IsA("BasePart") then | |
533 | newTotal = newTotal + Objects[Obj] | |
534 | elseif BodyObjects[Obj.ClassName] then | |
535 | Obj:Destroy() | |
536 | end | |
537 | ||
538 | if Obj:GetChildren() and #Obj:GetChildren() > 0 then | |
539 | for _,v in pairs(Obj:GetChildren()) do | |
540 | returnTotal = returnTotal + getMass(v, newTotal) | |
541 | end | |
542 | else | |
543 | returnTotal = newTotal | |
544 | end | |
545 | ||
546 | return returnTotal | |
547 | end | |
548 | ||
549 | function getTargFromCurrent() | |
550 | local Current = Current.Part | |
551 | if Current:IsA("BasePart") then | |
552 | return Current | |
553 | elseif Current:findFirstChild("Torso") then | |
554 | return Current.Torso | |
555 | else | |
556 | for _,v in pairs(Current:GetChildren()) do | |
557 | if v:IsA("BasePart") then | |
558 | return v | |
559 | end | |
560 | end | |
561 | end | |
562 | end | |
563 | ||
564 | function Fire(Part, Vec, Inv) | |
565 | pcall(function() | |
566 | Current.BP:Destroy() | |
567 | Current.BP = nil | |
568 | end) | |
569 | pcall(function() | |
570 | Current.BA:Destroy() | |
571 | Current.BA = nil | |
572 | end) | |
573 | pcall(function() | |
574 | if Inv then | |
575 | Part.Velocity = -((Vec - Torso.Position).unit * Grav * 1.1) | |
576 | else | |
577 | Part.Velocity = ((Vec - Camera.CoordinateFrame.p).unit * Grav * 1.1) | |
578 | end | |
579 | Current.Mass = nil | |
580 | end) | |
581 | Reset() | |
582 | end | |
583 | ||
584 | function Reset() | |
585 | LS.Parent = nil | |
586 | RS.Parent = nil | |
587 | ||
588 | OrigLS.Parent = Torso | |
589 | OrigRS.Parent = Torso | |
590 | ||
591 | OrigLS.C0 = LS0 | |
592 | OrigRS.C0 = RS0 | |
593 | end | |
594 | ||
595 | function Start() | |
596 | Cor(function() | |
597 | repeat wait(1/30) until LP.Character and LP.Character.Parent == Workspace and LP.Character:findFirstChild("Torso") | |
598 | Char = LP.Character | |
599 | PlrGui = LP.PlayerGui | |
600 | Backpack = LP.Backpack | |
601 | Mouse = LP:GetMouse() | |
602 | ||
603 | for _,v in pairs(Cons) do | |
604 | v:disconnect() | |
605 | end | |
606 | Cons = {} | |
607 | ||
608 | Camera = Workspace.CurrentCamera | |
609 | LastCamCF = Camera.CoordinateFrame | |
610 | AnimJoints = {} | |
611 | mDown = false | |
612 | Multi = false | |
613 | Grabbing = false | |
614 | Current = {} | |
615 | Alpha = 1 | |
616 | ||
617 | Head = Char["Head"] | |
618 | Torso = Char["Torso"] | |
619 | Humanoid = Char["Humanoid"] | |
620 | LA = Char["Left Arm"] | |
621 | RA = Char["Right Arm"] | |
622 | LL = Char["Left Leg"] | |
623 | RL = Char["Right Leg"] | |
624 | ||
625 | OrigLS = Torso["Left Shoulder"] | |
626 | OrigRS = Torso["Right Shoulder"] | |
627 | ||
628 | for _,v in pairs(Char:GetChildren()) do | |
629 | if v.Name == ModID then | |
630 | v:Destroy() | |
631 | end | |
632 | end | |
633 | ||
634 | for _,v in pairs(PlrGui:GetChildren()) do | |
635 | if v.Name == "PadsGui" then | |
636 | v:Destroy() | |
637 | end | |
638 | end | |
639 | ||
640 | LS = Instance.new("Weld") | |
641 | RS = Instance.new("Weld") | |
642 | ||
643 | LS.Name = OrigLS.Name | |
644 | LS.Part0 = Torso | |
645 | LS.Part1 = LA | |
646 | LS.C0 = LS0 | |
647 | LS.C1 = CFrame.new(0, 0.5, 0, 1, 0, 0, 0, 0, 1, 0, -1, 0) | |
648 | ||
649 | RS.Name = OrigRS.Name | |
650 | RS.Part0 = Torso | |
651 | RS.Part1 = RA | |
652 | RS.C0 = RS0 | |
653 | RS.C1 = CFrame.new(0, 0.5, 0, 1, 0, 0, 0, 0, 1, 0, -1, 0) | |
654 | ||
655 | local Pads = MakePads() | |
656 | local LPad = Pads.LBase | |
657 | local RPad = Pads.RBase | |
658 | ||
659 | weldModel(LPad, true, LPad) | |
660 | weldModel(RPad, true, RPad) | |
661 | ||
662 | local GripWeldL = Instance.new("Weld") | |
663 | GripWeldL.Name = "GripWeldL" | |
664 | GripWeldL.Part0 = LA | |
665 | GripWeldL.Part1 = LPad | |
666 | GripWeldL.C0 = CFrame.new(0, -1.05, 0) * CFrame.Angles(0, math.rad(180), 0) | |
667 | GripWeldL.Parent = LA | |
668 | ||
669 | local GripWeldR = Instance.new("Weld") | |
670 | GripWeldR.Name = "GripWeldR" | |
671 | GripWeldR.Part0 = RA | |
672 | GripWeldR.Part1 = RPad | |
673 | GripWeldR.C0 = CFrame.new(0, -1.05, 0) * CFrame.Angles(0, math.rad(180), 0) | |
674 | GripWeldR.Parent = RA | |
675 | ||
676 | local isParts = false | |
677 | ||
678 | table.insert(Cons, Mouse.KeyDown:connect(function(Key) | |
679 | Key = Key:lower() | |
680 | if Key == "z" then | |
681 | --Stuff | |
682 | elseif Key == "f" then | |
683 | local Current = Current.Part | |
684 | if Current and Current.Parent ~= nil and not Multi then | |
685 | Current:BreakJoints() | |
686 | end | |
687 | elseif Key == "q" then | |
688 | if isParts then | |
689 | isParts = false | |
690 | for _,v in pairs(Workspace:GetChildren()) do | |
691 | if v.Name == "MyPartV" and v:IsA("BasePart") then | |
692 | v:Destroy() | |
693 | end | |
694 | end | |
695 | else | |
696 | isParts = true | |
697 | for i = 1, 50 do | |
698 | local Part = Instance.new("Part") | |
699 | Part.Color = Color3.new(math.random(), math.random(), math.random()) | |
700 | Part.Transparency = 0 | |
701 | Part.Size = Vector3.new(math.random(1, 3), math.random(1, 3), math.random(1, 3)) | |
702 | Part.Archivable = true | |
703 | Part.CanCollide = false | |
704 | Part.Material = "Neon" | |
705 | Part.Locked = false | |
706 | Part.CFrame = Torso.CFrame * CFrame.new(math.random(-15, 15), -1, math.random(-15, 15)) | |
707 | Part.Anchored = true | |
708 | Part.Name = "MyPartV" | |
709 | Part.TopSurface = "Smooth" | |
710 | Part.BottomSurface = "Smooth" | |
711 | Part.Parent = Workspace | |
712 | end | |
713 | end | |
714 | elseif Key == "e" then | |
715 | local Targ; | |
716 | if Current.Part and Current.Part ~= nil then | |
717 | Targ = getTargFromCurrent() | |
718 | else | |
719 | Targ = LastPart | |
720 | end | |
721 | if Targ and Targ.Parent ~= nil and not Multi then | |
722 | local Ex = Instance.new("Explosion", Workspace) | |
723 | Ex.Position = Targ.CFrame.p | |
724 | Ex.BlastRadius = 16 | |
725 | Ex.DestroyJointRadiusPercent = 0.5 | |
726 | end | |
727 | elseif Key == "c" then | |
728 | if Current.Part and Current.Part.Parent ~= nil and not Multi then | |
729 | local Part = getTargFromCurrent() | |
730 | if Part then | |
731 | Grabbing = false | |
732 | if Mouse.Hit then | |
733 | local TargPos = CFrame.new(Camera.CoordinateFrame.p, Mouse.Hit.p) * CFrame.new(0, 0, -1000) | |
734 | Fire(Part, TargPos.p) | |
735 | else | |
736 | Fire(Part, Mouse.Origin.p + Mouse.UnitRay.Direction, true) | |
737 | end | |
738 | end | |
739 | end | |
740 | end | |
741 | end)) | |
742 | ||
743 | table.insert(Cons, Mouse.Button1Up:connect(function() | |
744 | mDown = false | |
745 | if Grabbing == true and Multi == false then | |
746 | Grabbing = false | |
747 | Reset() | |
748 | end | |
749 | if Current.Part ~= nil then | |
750 | LastPart = getTargFromCurrent() | |
751 | Current = {} | |
752 | end | |
753 | end)) | |
754 | ||
755 | local function makeLightning(Par, Start, End, Width, Length, RandomScale, ArcScale, Num1) | |
756 | local oldParts = {} | |
757 | for _,v in pairs(Par:GetChildren()) do | |
758 | v.CFrame = CFrame.new(5e5, 5e5, 5e5) | |
759 | table.insert(oldParts, v) | |
760 | end | |
761 | local Distance = (Start-End).Magnitude | |
762 | local ArcScale = ArcScale or 1 | |
763 | local RandomScale = RandomScale or 0 | |
764 | local Last = Start | |
765 | local IterNum = 0 | |
766 | ||
767 | while Par.Parent do | |
768 | IterNum = IterNum + 1 | |
769 | local New = nil | |
770 | if (Last-End).Magnitude < Length then | |
771 | New = CFrame.new(End) | |
772 | else | |
773 | if (End-Last).Magnitude < Length*2 then | |
774 | RandomScale = RandomScale*0.5 | |
775 | ArcScale = ArcScale*0.5 | |
776 | end | |
777 | local Direct = CFrame.new(Last,End) | |
778 | New = Direct*CFrame.Angles(math.rad(math.random(-RandomScale/4,RandomScale*ArcScale)),math.rad(math.random(-RandomScale,RandomScale)),math.rad(math.random(-RandomScale,RandomScale))) | |
779 | New = New*CFrame.new(0,0,-Length) | |
780 | end | |
781 | local Trail = nil | |
782 | if oldParts[IterNum] then | |
783 | Trail = oldParts[IterNum] | |
784 | Trail.BrickColor = ((Num1 % 2 == 0) and BrickColor.new("White")) or BrickColor.new("Cyan") | |
785 | Trail.Size = Vector3.new(Width, (Last-New.p).Magnitude, Width) | |
786 | Trail.CFrame = CFrame.new(New.p, Last)*CFrame.Angles(math.rad(90),0,0)*CFrame.new(0, -(Last-New.p).Magnitude/2, 0) | |
787 | oldParts[IterNum] = nil | |
788 | else | |
789 | Trail = Instance.new("Part") | |
790 | Trail.Name = "Part" | |
791 | Trail.FormFactor = "Custom" | |
792 | Trail.BrickColor = ((Num1 % 2 == 0) and BrickColor.new("White")) or BrickColor.new("White") | |
793 | Trail.Transparency = 0 | |
794 | Trail.Anchored = true | |
795 | Trail.CanCollide = false | |
796 | Trail.Locked = true | |
797 | Trail.BackSurface = "SmoothNoOutlines" | |
798 | Trail.BottomSurface = "SmoothNoOutlines" | |
799 | Trail.FrontSurface = "SmoothNoOutlines" | |
800 | Trail.LeftSurface = "SmoothNoOutlines" | |
801 | Trail.RightSurface = "SmoothNoOutlines" | |
802 | Trail.TopSurface = "SmoothNoOutlines" | |
803 | Trail.Material = "Neon" | |
804 | Trail.Size = Vector3.new(Width, (Last-New.p).Magnitude, Width) | |
805 | Trail.CFrame = CFrame.new(New.p, Last)*CFrame.Angles(math.rad(90),0,0)*CFrame.new(0, -(Last-New.p).Magnitude/2, 0) | |
806 | Trail.Parent = Par | |
807 | end | |
808 | Last = New.p | |
809 | if (Last-End).Magnitude < 1 then | |
810 | break | |
811 | end | |
812 | end | |
813 | for _,v in pairs(oldParts) do | |
814 | v:Destroy() | |
815 | end | |
816 | end | |
817 | ||
818 | table.insert(Cons, Mouse.Button1Down:connect(function() | |
819 | mDown = true | |
820 | local Targ = Mouse.Target | |
821 | Cor(function() | |
822 | if Targ and Objects[Targ] and not Multi then | |
823 | Grabbing = true | |
824 | Current.Part = Targ | |
825 | local Mass = Objects[Targ] | |
826 | local ForceNum = 0 | |
827 | local Hum = nil | |
828 | ||
829 | for _,v in pairs(Targ:GetChildren()) do | |
830 | if BodyObjects[v.ClassName] then | |
831 | v:Destroy() | |
832 | end | |
833 | end | |
834 | ||
835 | for _,v in pairs(Workspace:GetChildren()) do | |
836 | if v:findFirstChild("Humanoid") and v:IsAncestorOf(Targ) then | |
837 | Hum = v.Humanoid | |
838 | Mass = getMass(v, 0) | |
839 | Current.Part = v | |
840 | break | |
841 | end | |
842 | end | |
843 | ||
844 | Current.Mass = Mass | |
845 | ||
846 | if not Hum then | |
847 | Targ:BreakJoints() | |
848 | end | |
849 | ||
850 | ForceNum = Mass * Grav | |
851 | Targ.CanCollide = true | |
852 | Targ.Anchored = false | |
853 | ||
854 | local BP = Instance.new("BodyPosition") | |
855 | BP.maxForce = Vector3.new(3 * ForceNum, 3 * ForceNum, 3 * ForceNum) | |
856 | BP.Parent = Targ | |
857 | ||
858 | local Ang = Instance.new("BodyAngularVelocity") | |
859 | Ang.Parent = Targ | |
860 | ||
861 | Current.BP = BP | |
862 | Current.BA = Ang | |
863 | ||
864 | OrigLS.Parent = nil | |
865 | OrigRS.Parent = nil | |
866 | ||
867 | LS.Parent = Torso | |
868 | RS.Parent = Torso | |
869 | ||
870 | LS.C0 = LS0 | |
871 | RS.C0 = RS0 | |
872 | ||
873 | local DirDot = Mouse.UnitRay.Direction:Dot(Targ.Position - Mouse.Origin.p) | |
874 | local BPPos = Vector3.new(0, 0, 0) | |
875 | local Vel = Vector3.new(0, 0, 0) | |
876 | local Vlev = random() * math.pi | |
877 | local RPos = Vector3.new(random() * 2 - 1, cos(Vlev), random() * 2 - 1) | |
878 | ||
879 | local Ball = Instance.new("Part") | |
880 | Ball.Name = "Ball" | |
881 | Ball.FormFactor = "Custom" | |
882 | Ball.Color = Color3.new(0, 1, 1) | |
883 | Ball.Transparency = 0.3 | |
884 | Ball.Anchored = true | |
885 | Ball.CanCollide = false | |
886 | Ball.Locked = true | |
887 | Ball.BottomSurface, Ball.TopSurface = "Smooth", "Smooth" | |
888 | Ball.Size = Vector3.new(0.5, 0.5, 0.5) | |
889 | Ball.CFrame = Torso.CFrame * CFrame.new(0, 1, -3) | |
890 | Ball.Parent = Char | |
891 | ||
892 | if Targ.Name == "MyPartV" then | |
893 | Targ.Name = "MyPartF" | |
894 | end | |
895 | ||
896 | local LightMod = Instance.new("Model", Char) | |
897 | ||
898 | local Mesh = Instance.new("SpecialMesh") | |
899 | Mesh.MeshType = "Sphere" | |
900 | Mesh.Parent = Ball | |
901 | ||
902 | local Size = 0.5 | |
903 | local Rise = true | |
904 | ||
905 | while Grabbing and BP and Ang and Targ.Parent ~= nil do | |
906 | local BPPos = Mouse.Origin.p + Mouse.UnitRay.Direction * DirDot | |
907 | Ang.angularvelocity = Vel | |
908 | BP.position = BPPos + RPos | |
909 | RPos = Vector3.new(max(-1, min(RPos.x + random() * 0.02 - 0.01, 1)), cos(Vlev), max(-1, min(RPos.z + random() * 0.02 - 0.01, 1))) | |
910 | Vel = Vector3.new(max(-1, min(Vel.x + random() * 0.2 - 0.1, 1)), max(-1, min(Vel.y + random() * 0.2 - 0.1, 1)), max(-1, min(Vel.z + random() * 0.2 - 0.1, 1))) | |
911 | Vlev = (Vlev + 0.05) % tau | |
912 | ||
913 | if Hum then | |
914 | Hum.Sit = true | |
915 | end | |
916 | ||
917 | if LA.Parent ~= nil and RA.Parent ~= nil then | |
918 | local LPos = (LA.CFrame * CFrame.new(0, -1, 0)).p | |
919 | local RPos = (RA.CFrame * CFrame.new(0, -1, 0)).p | |
920 | if Rise == true then | |
921 | if Size < 0.6 then | |
922 | Size = Size + 0.05 | |
923 | else | |
924 | Size = Size + 0.1 | |
925 | end | |
926 | if Size >= 2.2 then | |
927 | Rise = false | |
928 | end | |
929 | else | |
930 | if Size > 2.1 then | |
931 | Size = Size - 0.05 | |
932 | else | |
933 | Size = Size - 0.1 | |
934 | end | |
935 | if Size <= 0.5 then | |
936 | Rise = true | |
937 | end | |
938 | end | |
939 | Ball.Size = Vector3.new(Size, Size, Size) | |
940 | Ball.CFrame = CFrame.new(LPos:Lerp(RPos, 0.5), Targ.Position) * CFrame.new(0, 0, -2.2) | |
941 | LightNum = LightNum + 1 | |
942 | makeLightning(LightMod, Ball.Position, Targ.Position, 0.2, 4, 50, 1, LightNum) | |
943 | elseif Ball.Parent ~= nil then | |
944 | Ball:Destroy() | |
945 | end | |
946 | ||
947 | if LS and LS.Parent == Torso then | |
948 | LS.C0 = CFrame.new(Vector3.new(-1.5, 0.5, 0), Torso.CFrame:pointToObjectSpace((Targ.CFrame or Torso.CFrame * CFrame.new(-1.5, 0.5, 1)).p)) | |
949 | end | |
950 | if RS and RS.Parent == Torso then | |
951 | RS.C0 = CFrame.new(Vector3.new(1.5, 0.5, 0), Torso.CFrame:pointToObjectSpace((Targ.CFrame or Torso.CFrame * CFrame.new(1.5, 0.5, 1)).p)) | |
952 | end | |
953 | RunService.Heartbeat:wait() | |
954 | end | |
955 | ||
956 | coroutine.resume(coroutine.create(function() | |
957 | for i = 0.5, 1, 0.1 do | |
958 | for i2,v in pairs(LightMod:GetChildren()) do | |
959 | --v.Light.Range = 6-(i*5) | |
960 | v.Transparency = i | |
961 | end | |
962 | wait(1/30) | |
963 | end | |
964 | LightMod:Destroy() | |
965 | end)) | |
966 | ||
967 | if BP and BP.Parent ~= nil then | |
968 | BP:Destroy() | |
969 | end | |
970 | ||
971 | if Ang and Ang.Parent ~= nil then | |
972 | Ang:Destroy() | |
973 | end | |
974 | ||
975 | pcall(function() Ball:Destroy() end) | |
976 | end | |
977 | end) | |
978 | end)) | |
979 | end) | |
980 | end | |
981 | ||
982 | function Add(Obj) | |
983 | if Obj:IsA("BasePart") and not Objects[Obj] and not (Obj.Name == "Base" and Obj.ClassName == "Part") then | |
984 | Objects[Obj] = Obj:GetMass() | |
985 | Obj.Changed:connect(function(P) | |
986 | if P:lower() == "size" and Objects[Obj] and Obj.Parent ~= nil then | |
987 | Objects[Obj] = Obj:GetMass() | |
988 | end | |
989 | end) | |
990 | end | |
991 | end | |
992 | ||
993 | function Rem(Obj) | |
994 | if Objects[Obj] then | |
995 | Objects[Obj] = nil | |
996 | end | |
997 | end | |
998 | ||
999 | function Recursion(Obj) | |
1000 | ypcall(function() | |
1001 | Add(Obj) | |
1002 | if #Obj:GetChildren() > 0 then | |
1003 | for _,v in pairs(Obj:GetChildren()) do | |
1004 | Recursion(v) | |
1005 | end | |
1006 | end | |
1007 | end) | |
1008 | end | |
1009 | ||
1010 | Workspace.DescendantAdded:connect(function(Obj) | |
1011 | Add(Obj) | |
1012 | end) | |
1013 | ||
1014 | Workspace.DescendantRemoving:connect(function(Obj) | |
1015 | Rem(Obj) | |
1016 | end) | |
1017 | ||
1018 | for _,v in pairs(Workspace:GetChildren()) do | |
1019 | Recursion(v) | |
1020 | end | |
1021 | ||
1022 | Start() | |
1023 | ||
1024 | if LP.Name == PlrName then | |
1025 | LP.CharacterAdded:connect(Start) | |
1026 | end | |
1027 | ||
1028 | local verlet = {} | |
1029 | verlet.step_time = 1 / 50 | |
1030 | verlet.gravity = Vector3.new(0, -10, 0) | |
1031 | ||
1032 | local char = game.Players.LocalPlayer.Character | |
1033 | local torso = char:WaitForChild("Torso") | |
1034 | local parts = {} | |
1035 | local render = game:GetService("RunService").RenderStepped | |
1036 | ||
1037 | wait(2) | |
1038 | ||
1039 | local point = {} | |
1040 | local link = {} | |
1041 | local rope = {} | |
1042 | ||
1043 | local function ccw(A,B,C) | |
1044 | return (C.y-A.y) * (B.x-A.x) > (B.y-A.y) * (C.x-A.x) | |
1045 | end | |
1046 | ||
1047 | local function intersect(A,B,C,D) | |
1048 | return ccw(A,C,D) ~= ccw(B,C,D) and ccw(A,B,C) ~= ccw(A,B,D) | |
1049 | end | |
1050 | ||
1051 | local function vec2(v) | |
1052 | return Vector2.new(v.x, v.z) | |
1053 | end | |
1054 | ||
1055 | function point:step() | |
1056 | if not self.fixed then | |
1057 | local derivative = (self.position - self.last_position) * 0.95 | |
1058 | self.last_position = self.position | |
1059 | self.position = self.position + derivative + (self.velocity * verlet.step_time ^ 2) | |
1060 | --[[local torsoP = torso.CFrame * CFrame.new(-1, 0, 0.5) | |
1061 | local torsoE = torso.CFrame * CFrame.new(1, 0, 0.5) | |
1062 | local pointE = self.position + torso.CFrame.lookVector * 100 | |
1063 | local doIntersect = intersect(vec2(torsoP.p), vec2(torsoE.p), vec2(self.position), vec2(pointE)) | |
1064 | if not doIntersect then | |
1065 | self.postition = self.position - torso.CFrame.lookVector * 10 | |
1066 | end]] | |
1067 | end | |
1068 | end | |
1069 | ||
1070 | function link:step() | |
1071 | for i = 1, 1 do | |
1072 | local distance = self.point1.position - self.point2.position | |
1073 | local magnitude = distance.magnitude | |
1074 | local differance = (self.length - magnitude) / magnitude | |
1075 | local translation = ((self.point1.fixed or self.point2.fixed) and 1 or 0.6) * distance * differance | |
1076 | if not self.point1.fixed then | |
1077 | self.point1.position = self.point1.position + translation | |
1078 | end | |
1079 | if not self.point2.fixed then | |
1080 | self.point2.position = self.point2.position - translation | |
1081 | end | |
1082 | end | |
1083 | end | |
1084 | ||
1085 | function verlet.new(class, a, b, c) | |
1086 | if class == "Point" then | |
1087 | local new = {} | |
1088 | setmetatable(new, {__index = point}) | |
1089 | new.class = class | |
1090 | new.position = a or Vector3.new() | |
1091 | new.last_position = new.position | |
1092 | new.velocity = verlet.gravity | |
1093 | new.fixed = false | |
1094 | return new | |
1095 | elseif class == "Link" then | |
1096 | local new = {} | |
1097 | setmetatable(new, {__index = link}) | |
1098 | new.class = class | |
1099 | new.point1 = a | |
1100 | new.point2 = b | |
1101 | new.length = c or (a.position - b.position).magnitude | |
1102 | return new | |
1103 | elseif class == "Rope" then | |
1104 | local new = {} | |
1105 | setmetatable(new, {__index = link}) | |
1106 | new.class = class | |
1107 | new.start_point = a | |
1108 | new.finish_point = b | |
1109 | new.points = {} | |
1110 | new.links = {} | |
1111 | local inc = (b - a) / 10 | |
1112 | for i = 0, 10 do | |
1113 | table.insert(new.points, verlet.new("Point", a + (i * inc))) | |
1114 | end | |
1115 | for i = 2, #new.points do | |
1116 | table.insert(new.links, verlet.new("Link", new.points[i - 1], new.points[i])) | |
1117 | end | |
1118 | return new | |
1119 | end | |
1120 | end | |
1121 | ||
1122 | local tris = {} | |
1123 | local triParts = {} | |
1124 | ||
1125 | local function GetDiscoColor(hue) | |
1126 | local section = hue % 1 * 3 | |
1127 | local secondary = 0.5 * math.pi * (section % 1) | |
1128 | if section < 1 then | |
1129 | return Color3.new(0, 0, 0) | |
1130 | elseif section < 2 then | |
1131 | return Color3.new(0, 0, 0) | |
1132 | else | |
1133 | return Color3.new(0, 0, 0) | |
1134 | end | |
1135 | end | |
1136 | ||
1137 | local function setupPart(part) | |
1138 | part.Anchored = true | |
1139 | part.FormFactor = 3 | |
1140 | part.CanCollide = false | |
1141 | part.TopSurface = 10 | |
1142 | part.BottomSurface = 10 | |
1143 | part.LeftSurface = 10 | |
1144 | part.RightSurface = 10 | |
1145 | part.FrontSurface = 10 | |
1146 | part.BackSurface = 10 | |
1147 | part.Material = "Neon" | |
1148 | local m = Instance.new("SpecialMesh", part) | |
1149 | m.MeshType = "Wedge" | |
1150 | m.Scale = Vector3.new(0.2, 1, 1) | |
1151 | return part | |
1152 | end | |
1153 | ||
1154 | local function CFrameFromTopBack(at, top, back) | |
1155 | local right = top:Cross(back) | |
1156 | return CFrame.new(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z) | |
1157 | end | |
1158 | ||
1159 | local function drawTri(parent, a, b, c) | |
1160 | local this = {} | |
1161 | local mPart1 = table.remove(triParts, 1) or setupPart(Instance.new("Part")) | |
1162 | local mPart2 = table.remove(triParts, 1) or setupPart(Instance.new("Part")) | |
1163 | function this:Set(a, b, c) | |
1164 | local ab, bc, ca = b-a, c-b, a-c | |
1165 | local abm, bcm, cam = ab.magnitude, bc.magnitude, ca.magnitude | |
1166 | local edg1 = math.abs(0.5 + ca:Dot(ab)/(abm*abm)) | |
1167 | local edg2 = math.abs(0.5 + ab:Dot(bc)/(bcm*bcm)) | |
1168 | local edg3 = math.abs(0.5 + bc:Dot(ca)/(cam*cam)) | |
1169 | if edg1 < edg2 then | |
1170 | if edg1 >= edg3 then | |
1171 | a, b, c = c, a, b | |
1172 | ab, bc, ca = ca, ab, bc | |
1173 | abm = cam | |
1174 | end | |
1175 | else | |
1176 | if edg2 < edg3 then | |
1177 | a, b, c = b, c, a | |
1178 | ab, bc, ca = bc, ca, ab | |
1179 | abm = bcm | |
1180 | else | |
1181 | a, b, c = c, a, b | |
1182 | ab, bc, ca = ca, ab, bc | |
1183 | abm = cam | |
1184 | end | |
1185 | end | |
1186 | ||
1187 | local len1 = -ca:Dot(ab)/abm | |
1188 | local len2 = abm - len1 | |
1189 | local width = (ca + ab.unit*len1).magnitude | |
1190 | ||
1191 | local maincf = CFrameFromTopBack(a, ab:Cross(bc).unit, -ab.unit) | |
1192 | ||
1193 | if len1 > 0.2 then | |
1194 | mPart1.Parent = parent | |
1195 | mPart1.Size = Vector3.new(0.2, width, len1) | |
1196 | mPart1.CFrame = maincf*CFrame.Angles(math.pi,0,math.pi/2)*CFrame.new(0,width/2,len1/2) | |
1197 | else | |
1198 | mPart1.Parent = nil | |
1199 | end | |
1200 | ||
1201 | if len2 > 0.2 then | |
1202 | mPart2.Parent = parent | |
1203 | mPart2.Size = Vector3.new(0.2, width, len2) | |
1204 | mPart2.CFrame = maincf*CFrame.Angles(math.pi,math.pi,-math.pi/2)*CFrame.new(0,width/2,-len1 - len2/2) | |
1205 | else | |
1206 | mPart2.Parent = nil | |
1207 | end | |
1208 | end | |
1209 | function this:SetProperty(prop, value) | |
1210 | mPart1[prop] = value | |
1211 | mPart2[prop] = value | |
1212 | end | |
1213 | this:Set(a, b, c) | |
1214 | function this:Destroy() | |
1215 | mPart1:Destroy() | |
1216 | mPart2:Destroy() | |
1217 | end | |
1218 | this.p1 = mPart1 | |
1219 | this.p2 = mPart2 | |
1220 | this.p1.BrickColor = BrickColor.new(GetDiscoColor(math.noise(0.5, 0.5, this.p1.CFrame.Y * 0.5 + time()))) | |
1221 | this.p2.BrickColor = BrickColor.new(GetDiscoColor(math.noise(0.5, 0.5, this.p2.CFrame.Y * 0.5 + time()))) | |
1222 | return this | |
1223 | end | |
1224 | ||
1225 | function verlet.draw(object, id) | |
1226 | if object.class == "Point" then | |
1227 | local part = parts[id] | |
1228 | part.BrickColor = BrickColor.new(107, 0, 107) | |
1229 | part.Transparency = 0 | |
1230 | part.formFactor = 3 | |
1231 | part.Anchored = true | |
1232 | part.CanCollide = false | |
1233 | part.TopSurface = 0 | |
1234 | part.BottomSurface = 0 | |
1235 | part.Size = Vector3.new(0.35, 0.35, 0.35) | |
1236 | part.Material = "Neon" | |
1237 | part.CFrame = CFrame.new(object.position) | |
1238 | part.Parent = torso | |
1239 | return part | |
1240 | elseif object.class == "Link" then | |
1241 | local part = parts[id] | |
1242 | local dist = (object.point1.position - object.point2.position).magnitude | |
1243 | part.Size = Vector3.new(0.2, 0.2, dist) | |
1244 | part.CFrame = CFrame.new(object.point1.position, object.point2.position) * CFrame.new(0, 0, dist * -0.5) | |
1245 | part.Parent = torso | |
1246 | return part | |
1247 | end | |
1248 | end | |
1249 | ||
1250 | function verlet.clear() | |
1251 | for _, v in pairs(workspace:GetChildren()) do | |
1252 | if v.Name == "Part" then | |
1253 | v:Destroy() | |
1254 | end | |
1255 | end | |
1256 | end | |
1257 | ||
1258 | local points = {} | |
1259 | local links = {} | |
1260 | ||
1261 | for x = 0, 2 do | |
1262 | points[x] = {} | |
1263 | for y = 0, 3 do | |
1264 | points[x][y] = verlet.new("Point", torso.Position + Vector3.new(x * 0.8 - 2, 2 - y * 0.8, 5 + y * 0.4)) | |
1265 | points[x][y].fixed = y == 0 | |
1266 | end | |
1267 | end | |
1268 | ||
1269 | for x = 1, 2 do | |
1270 | for y = 0, 3 do | |
1271 | links[#links + 1] = verlet.new("Link", points[x][y], points[x - 1][y], 1 + y * 0.08) | |
1272 | end | |
1273 | end | |
1274 | ||
1275 | for x = 0, 2 do | |
1276 | for y = 1, 3 do | |
1277 | links[#links + 1] = verlet.new("Link", points[x][y], points[x][y - 1], 1.2 + y * 0.03) | |
1278 | end | |
1279 | end | |
1280 | ||
1281 | render:connect(function() | |
1282 | for x = 0, 2 do | |
1283 | for y = 0, 3 do | |
1284 | if y == 0 then | |
1285 | points[x][y].position = (torso.CFrame * CFrame.new(x * 1 - 1, 1, 0.5)).p | |
1286 | else | |
1287 | points[x][y]:step() | |
1288 | end | |
1289 | end | |
1290 | end | |
1291 | for i = 1, #links do | |
1292 | links[i]:step() | |
1293 | end | |
1294 | for i = 1, #tris do | |
1295 | triParts[#triParts + 1] = tris[i].p1 | |
1296 | triParts[#triParts + 1] = tris[i].p2 | |
1297 | end | |
1298 | tris = {} | |
1299 | for x = 1, 2 do | |
1300 | for y = 1, 3 do | |
1301 | tris[#tris + 1] = drawTri(torso, points[x - 1][y - 1].position, points[x - 1][y].position, points[x][y - 1].position) | |
1302 | tris[#tris + 1] = drawTri(torso, points[x][y].position, points[x - 1][y].position, points[x][y - 1].position) | |
1303 | end | |
1304 | end | |
1305 | end) | |
1306 | ||
1307 | function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET) | |
1308 | local NEWMESH = IT(MESH) | |
1309 | if MESH == "SpecialMesh" then | |
1310 | NEWMESH.MeshType = MESHTYPE | |
1311 | if MESHID ~= "nil" and MESHID ~= "" then | |
1312 | NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID | |
1313 | end | |
1314 | if TEXTUREID ~= "nil" and TEXTUREID ~= "" then | |
1315 | NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID | |
1316 | end | |
1317 | end | |
1318 | NEWMESH.Offset = OFFSET or VT(0, 0, 0) | |
1319 | NEWMESH.Scale = SCALE | |
1320 | NEWMESH.Parent = PARENT | |
1321 | return NEWMESH | |
1322 | end | |
1323 | ||
1324 | function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR) | |
1325 | local NEWPART = IT("Part") | |
1326 | NEWPART.formFactor = FORMFACTOR | |
1327 | NEWPART.Reflectance = REFLECTANCE | |
1328 | NEWPART.Transparency = TRANSPARENCY | |
1329 | NEWPART.CanCollide = false | |
1330 | NEWPART.Locked = true | |
1331 | NEWPART.Anchored = true | |
1332 | if ANCHOR == false then | |
1333 | NEWPART.Anchored = false | |
1334 | end | |
1335 | NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR)) | |
1336 | NEWPART.Name = NAME | |
1337 | NEWPART.Size = SIZE | |
1338 | NEWPART.Position = Torso.Position | |
1339 | NEWPART.Material = MATERIAL | |
1340 | NEWPART:BreakJoints() | |
1341 | NEWPART.Parent = PARENT | |
1342 | return NEWPART | |
1343 | end | |
1344 | ||
1345 | --//=================================\\ | |
1346 | --|| CUSTOMIZATION | |
1347 | --\\=================================// | |
1348 | ||
1349 | Player_Size = 1 --Size of the player. | |
1350 | Animation_Speed = 3 | |
1351 | Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60) | |
1352 | ||
1353 | local Speed = 16 | |
1354 | local Effects2 = {} | |
1355 | ||
1356 | --//=================================\\ | |
1357 | --|| END OF CUSTOMIZATION | |
1358 | --\\=================================// | |
1359 | ||
1360 | local function weldBetween(a, b) | |
1361 | local weldd = Instance.new("ManualWeld") | |
1362 | weldd.Part0 = a | |
1363 | weldd.Part1 = b | |
1364 | weldd.C0 = CFrame.new() | |
1365 | weldd.C1 = b.CFrame:inverse() * a.CFrame | |
1366 | weldd.Parent = a | |
1367 | return weldd | |
1368 | end | |
1369 | ||
1370 | function createaccessory(attachmentpart,mesh,texture,scale,offset,color) | |
1371 | local acs = Instance.new("Part") | |
1372 | acs.CanCollide = false | |
1373 | acs.Anchored = false | |
1374 | acs.Size = Vector3.new(0,0,0) | |
1375 | acs.CFrame = attachmentpart.CFrame | |
1376 | acs.Parent = Character | |
1377 | acs.BrickColor = color | |
1378 | local meshs = Instance.new("SpecialMesh") | |
1379 | meshs.MeshId = mesh | |
1380 | meshs.TextureId = texture | |
1381 | meshs.Parent = acs | |
1382 | meshs.Scale = scale | |
1383 | meshs.Offset = offset | |
1384 | weldBetween(attachmentpart,acs) | |
1385 | end | |
1386 | ||
1387 | --//=================================\\ | |
1388 | --|| USEFUL VALUES | |
1389 | --\\=================================// | |
1390 | ||
1391 | local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) | |
1392 | local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) | |
1393 | local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) | |
1394 | local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) | |
1395 | local CHANGEDEFENSE = 0 | |
1396 | local CHANGEDAMAGE = 0 | |
1397 | local CHANGEMOVEMENT = 0 | |
1398 | local ANIM = "Idle" | |
1399 | local ATTACK = false | |
1400 | local EQUIPPED = false | |
1401 | local HOLD = false | |
1402 | local COMBO = 1 | |
1403 | local Rooted = false | |
1404 | local SINE = 0 | |
1405 | local KEYHOLD = false | |
1406 | local CHANGE = 2 / Animation_Speed | |
1407 | local WALKINGANIM = false | |
1408 | local WALK = 0 | |
1409 | local VALUE1 = false | |
1410 | local VALUE2 = false | |
1411 | local ROBLOXIDLEANIMATION = IT("Animation") | |
1412 | ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation" | |
1413 | ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571" | |
1414 | --ROBLOXIDLEANIMATION.Parent = Humanoid | |
1415 | local WEAPONGUI = IT("ScreenGui", PlayerGui) | |
1416 | WEAPONGUI.Name = "Weapon GUI" | |
1417 | local Weapon = IT("Model") | |
1418 | Weapon.Name = "Adds" | |
1419 | local Tail = IT("Model",Weapon) | |
1420 | Tail.Name = "Tail" | |
1421 | local Minions = IT("Model",Character) | |
1422 | Minions.Name = "MinionFolder" | |
1423 | local Effects = IT("Folder", Weapon) | |
1424 | Effects.Name = "Effects" | |
1425 | local ANIMATOR = Humanoid.Animator | |
1426 | local ANIMATE = Character.Animate | |
1427 | local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"} | |
1428 | local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"} | |
1429 | local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"} | |
1430 | local HITBLOCKSOUNDS = {"199148933", "199148947"} | |
1431 | local UNANCHOR = true | |
1432 | ||
1433 | local SKILLTEXTCOLOR = C3(1,1,1) | |
1434 | ||
1435 | --//=================================\\ | |
1436 | --\\=================================// | |
1437 | ||
1438 | ||
1439 | --//=================================\\ | |
1440 | --|| SAZERENOS' ARTIFICIAL HEARTBEAT | |
1441 | --\\=================================// | |
1442 | ||
1443 | ArtificialHB = Instance.new("BindableEvent", script) | |
1444 | ArtificialHB.Name = "ArtificialHB" | |
1445 | ||
1446 | script:WaitForChild("ArtificialHB") | |
1447 | ||
1448 | frame = Frame_Speed | |
1449 | tf = 0 | |
1450 | allowframeloss = false | |
1451 | tossremainder = false | |
1452 | lastframe = tick() | |
1453 | script.ArtificialHB:Fire() | |
1454 | ||
1455 | game:GetService("RunService").Heartbeat:connect(function(s, p) | |
1456 | tf = tf + s | |
1457 | if tf >= frame then | |
1458 | if allowframeloss then | |
1459 | script.ArtificialHB:Fire() | |
1460 | lastframe = tick() | |
1461 | else | |
1462 | for i = 1, math.floor(tf / frame) do | |
1463 | script.ArtificialHB:Fire() | |
1464 | end | |
1465 | lastframe = tick() | |
1466 | end | |
1467 | if tossremainder then | |
1468 | tf = 0 | |
1469 | else | |
1470 | tf = tf - frame * math.floor(tf / frame) | |
1471 | end | |
1472 | end | |
1473 | end) | |
1474 | ||
1475 | --//=================================\\ | |
1476 | --\\=================================// | |
1477 | ||
1478 | ||
1479 | ||
1480 | ||
1481 | ||
1482 | --//=================================\\ | |
1483 | --|| SOME FUNCTIONS | |
1484 | --\\=================================// | |
1485 | ||
1486 | function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS) | |
1487 | return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS) | |
1488 | end | |
1489 | ||
1490 | function PositiveAngle(NUMBER) | |
1491 | if NUMBER >= 0 then | |
1492 | NUMBER = 0 | |
1493 | end | |
1494 | return NUMBER | |
1495 | end | |
1496 | ||
1497 | function NegativeAngle(NUMBER) | |
1498 | if NUMBER <= 0 then | |
1499 | NUMBER = 0 | |
1500 | end | |
1501 | return NUMBER | |
1502 | end | |
1503 | ||
1504 | function Swait(NUMBER) | |
1505 | if NUMBER == 0 or NUMBER == nil then | |
1506 | ArtificialHB.Event:wait() | |
1507 | else | |
1508 | for i = 1, NUMBER do | |
1509 | ArtificialHB.Event:wait() | |
1510 | end | |
1511 | end | |
1512 | end | |
1513 | ||
1514 | function QuaternionFromCFrame(cf) | |
1515 | local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() | |
1516 | local trace = m00 + m11 + m22 | |
1517 | if trace > 0 then | |
1518 | local s = math.sqrt(1 + trace) | |
1519 | local recip = 0.5 / s | |
1520 | return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5 | |
1521 | else | |
1522 | local i = 0 | |
1523 | if m11 > m00 then | |
1524 | i = 1 | |
1525 | end | |
1526 | if m22 > (i == 0 and m00 or m11) then | |
1527 | i = 2 | |
1528 | end | |
1529 | if i == 0 then | |
1530 | local s = math.sqrt(m00 - m11 - m22 + 1) | |
1531 | local recip = 0.5 / s | |
1532 | return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip | |
1533 | elseif i == 1 then | |
1534 | local s = math.sqrt(m11 - m22 - m00 + 1) | |
1535 | local recip = 0.5 / s | |
1536 | return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip | |
1537 | elseif i == 2 then | |
1538 | local s = math.sqrt(m22 - m00 - m11 + 1) | |
1539 | local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip | |
1540 | end | |
1541 | end | |
1542 | end | |
1543 | ||
1544 | function QuaternionToCFrame(px, py, pz, x, y, z, w) | |
1545 | local xs, ys, zs = x + x, y + y, z + z | |
1546 | local wx, wy, wz = w * xs, w * ys, w * zs | |
1547 | local xx = x * xs | |
1548 | local xy = x * ys | |
1549 | local xz = x * zs | |
1550 | local yy = y * ys | |
1551 | local yz = y * zs | |
1552 | local zz = z * zs | |
1553 | return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy)) | |
1554 | end | |
1555 | ||
1556 | function QuaternionSlerp(a, b, t) | |
1557 | local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4] | |
1558 | local startInterp, finishInterp; | |
1559 | if cosTheta >= 0.0001 then | |
1560 | if (1 - cosTheta) > 0.0001 then | |
1561 | local theta = ACOS(cosTheta) | |
1562 | local invSinTheta = 1 / SIN(theta) | |
1563 | startInterp = SIN((1 - t) * theta) * invSinTheta | |
1564 | finishInterp = SIN(t * theta) * invSinTheta | |
1565 | else | |
1566 | startInterp = 1 - t | |
1567 | finishInterp = t | |
1568 | end | |
1569 | else | |
1570 | if (1 + cosTheta) > 0.0001 then | |
1571 | local theta = ACOS(-cosTheta) | |
1572 | local invSinTheta = 1 / SIN(theta) | |
1573 | startInterp = SIN((t - 1) * theta) * invSinTheta | |
1574 | finishInterp = SIN(t * theta) * invSinTheta | |
1575 | else | |
1576 | startInterp = t - 1 | |
1577 | finishInterp = t | |
1578 | end | |
1579 | end | |
1580 | return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp | |
1581 | end | |
1582 | ||
1583 | function Clerp(a, b, t) | |
1584 | local qa = {QuaternionFromCFrame(a)} | |
1585 | local qb = {QuaternionFromCFrame(b)} | |
1586 | local ax, ay, az = a.x, a.y, a.z | |
1587 | local bx, by, bz = b.x, b.y, b.z | |
1588 | local _t = 1 - t | |
1589 | return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t)) | |
1590 | end | |
1591 | ||
1592 | function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME) | |
1593 | local frame = IT("Frame") | |
1594 | frame.BackgroundTransparency = TRANSPARENCY | |
1595 | frame.BorderSizePixel = BORDERSIZEPIXEL | |
1596 | frame.Position = POSITION | |
1597 | frame.Size = SIZE | |
1598 | frame.BackgroundColor3 = COLOR | |
1599 | frame.BorderColor3 = BORDERCOLOR | |
1600 | frame.Name = NAME | |
1601 | frame.Parent = PARENT | |
1602 | return frame | |
1603 | end | |
1604 | ||
1605 | function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME) | |
1606 | local label = IT("TextLabel") | |
1607 | label.BackgroundTransparency = 1 | |
1608 | label.Size = UD2(1, 0, 1, 0) | |
1609 | label.Position = UD2(0, 0, 0, 0) | |
1610 | label.TextColor3 = TEXTCOLOR | |
1611 | label.TextStrokeTransparency = STROKETRANSPARENCY | |
1612 | label.TextTransparency = TRANSPARENCY | |
1613 | label.FontSize = TEXTFONTSIZE | |
1614 | label.Font = TEXTFONT | |
1615 | label.BorderSizePixel = BORDERSIZEPIXEL | |
1616 | label.TextScaled = false | |
1617 | label.Text = TEXT | |
1618 | label.Name = NAME | |
1619 | label.Parent = PARENT | |
1620 | return label | |
1621 | end | |
1622 | ||
1623 | function NoOutlines(PART) | |
1624 | PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10 | |
1625 | end | |
1626 | ||
1627 | ||
1628 | function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1) | |
1629 | local NEWWELD = IT(TYPE) | |
1630 | NEWWELD.Part0 = PART0 | |
1631 | NEWWELD.Part1 = PART1 | |
1632 | NEWWELD.C0 = C0 | |
1633 | NEWWELD.C1 = C1 | |
1634 | NEWWELD.Parent = PARENT | |
1635 | return NEWWELD | |
1636 | end | |
1637 | ||
1638 | function CreateSound(ID, PARENT, VOLUME, PITCH) | |
1639 | local NEWSOUND = nil | |
1640 | coroutine.resume(coroutine.create(function() | |
1641 | NEWSOUND = IT("Sound", PARENT) | |
1642 | NEWSOUND.Volume = VOLUME | |
1643 | NEWSOUND.Pitch = PITCH | |
1644 | NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID | |
1645 | Swait() | |
1646 | NEWSOUND:play() | |
1647 | game:GetService("Debris"):AddItem(NEWSOUND, 10) | |
1648 | end)) | |
1649 | return NEWSOUND | |
1650 | end | |
1651 | ||
1652 | function CFrameFromTopBack(at, top, back) | |
1653 | local right = top:Cross(back) | |
1654 | return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z) | |
1655 | end | |
1656 | ||
1657 | function CreateWave(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW) | |
1658 | local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0)) | |
1659 | local mesh = IT("SpecialMesh",wave) | |
1660 | mesh.MeshType = "FileMesh" | |
1661 | mesh.MeshId = "http://www.roblox.com/asset/?id=20329976" | |
1662 | mesh.Scale = SIZE | |
1663 | mesh.Offset = VT(0,0,-SIZE.X/8) | |
1664 | wave.CFrame = CFRAME | |
1665 | coroutine.resume(coroutine.create(function(PART) | |
1666 | for i = 1, WAIT do | |
1667 | Swait() | |
1668 | mesh.Scale = mesh.Scale + GROW | |
1669 | mesh.Offset = VT(0,0,-(mesh.Scale.X/8)) | |
1670 | if DOESROT == true then | |
1671 | wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0) | |
1672 | end | |
1673 | wave.Transparency = wave.Transparency + (0.5/WAIT) | |
1674 | if wave.Transparency > 0.99 then | |
1675 | wave:remove() | |
1676 | end | |
1677 | end | |
1678 | end)) | |
1679 | end | |
1680 | ||
1681 | function CreateCrown(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW) | |
1682 | local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0)) | |
1683 | local mesh = IT("SpecialMesh",wave) | |
1684 | mesh.MeshType = "FileMesh" | |
1685 | mesh.MeshId = "http://www.roblox.com/asset/?id=1078075" | |
1686 | mesh.Scale = SIZE | |
1687 | mesh.Offset = VT(0,0,-SIZE.X/8) | |
1688 | wave.CFrame = CFRAME | |
1689 | coroutine.resume(coroutine.create(function(PART) | |
1690 | for i = 1, WAIT do | |
1691 | Swait() | |
1692 | mesh.Scale = mesh.Scale + GROW | |
1693 | mesh.Offset = VT(0,0,-(mesh.Scale.X/8)) | |
1694 | if DOESROT == true then | |
1695 | wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0) | |
1696 | end | |
1697 | wave.Transparency = wave.Transparency + (0.5/WAIT) | |
1698 | if wave.Transparency > 0.99 then | |
1699 | wave:remove() | |
1700 | end | |
1701 | end | |
1702 | end)) | |
1703 | end | |
1704 | ||
1705 | function CreateIceCrown(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW) | |
1706 | local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0)) | |
1707 | local mesh = IT("SpecialMesh",wave) | |
1708 | mesh.MeshType = "FileMesh" | |
1709 | mesh.MeshId = "http://www.roblox.com/asset/?id=1323306" | |
1710 | mesh.Scale = SIZE | |
1711 | mesh.Offset = VT(0,0,-SIZE.X/8) | |
1712 | wave.CFrame = CFRAME | |
1713 | coroutine.resume(coroutine.create(function(PART) | |
1714 | for i = 1, WAIT do | |
1715 | Swait() | |
1716 | mesh.Scale = mesh.Scale + GROW | |
1717 | mesh.Offset = VT(0,0,-(mesh.Scale.X/8)) | |
1718 | if DOESROT == true then | |
1719 | wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0) | |
1720 | end | |
1721 | wave.Transparency = wave.Transparency + (0.5/WAIT) | |
1722 | if wave.Transparency > 0.99 then | |
1723 | wave:remove() | |
1724 | end | |
1725 | end | |
1726 | end)) | |
1727 | end | |
1728 | ||
1729 | function CreateSpikeball(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW) | |
1730 | local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0)) | |
1731 | local mesh = IT("SpecialMesh",wave) | |
1732 | mesh.MeshType = "FileMesh" | |
1733 | mesh.MeshId = "http://www.roblox.com/asset/?id=9982590" | |
1734 | mesh.Scale = SIZE | |
1735 | mesh.Offset = VT(0,0,-SIZE.X/8) | |
1736 | wave.CFrame = CFRAME | |
1737 | coroutine.resume(coroutine.create(function(PART) | |
1738 | for i = 1, WAIT do | |
1739 | Swait() | |
1740 | mesh.Scale = mesh.Scale + GROW | |
1741 | mesh.Offset = VT(0,0,-(mesh.Scale.X/8)) | |
1742 | if DOESROT == true then | |
1743 | wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0) | |
1744 | end | |
1745 | wave.Transparency = wave.Transparency + (0.5/WAIT) | |
1746 | if wave.Transparency > 0.99 then | |
1747 | wave:remove() | |
1748 | end | |
1749 | end | |
1750 | end)) | |
1751 | end | |
1752 | ||
1753 | function CreateSwirl(SIZE,WAIT,CFRAME,DOESROT,ROT,COLOR,GROW) | |
1754 | local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0)) | |
1755 | local mesh = IT("SpecialMesh",wave) | |
1756 | mesh.MeshType = "FileMesh" | |
1757 | mesh.MeshId = "http://www.roblox.com/asset/?id=1051557" | |
1758 | mesh.Scale = SIZE | |
1759 | wave.CFrame = CFRAME | |
1760 | coroutine.resume(coroutine.create(function(PART) | |
1761 | for i = 1, WAIT do | |
1762 | Swait() | |
1763 | mesh.Scale = mesh.Scale + GROW | |
1764 | mesh.Offset = VT(0,0,-(mesh.Scale.X/8)) | |
1765 | if DOESROT == true then | |
1766 | wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0) | |
1767 | end | |
1768 | wave.Transparency = wave.Transparency + (0.5/WAIT) | |
1769 | if wave.Transparency > 0.99 then | |
1770 | wave:remove() | |
1771 | end | |
1772 | end | |
1773 | end)) | |
1774 | end | |
1775 | ||
1776 | function CreateTornado(SIZE,DOESROT,ROT,WAIT,CFRAME,COLOR,GROW) | |
1777 | local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0)) | |
1778 | local mesh = IT("SpecialMesh",wave) | |
1779 | mesh.MeshType = "FileMesh" | |
1780 | mesh.MeshId = "http://www.roblox.com/asset/?id=102638417" | |
1781 | mesh.Scale = SIZE | |
1782 | wave.CFrame = CFRAME | |
1783 | coroutine.resume(coroutine.create(function(PART) | |
1784 | for i = 1, WAIT do | |
1785 | Swait() | |
1786 | mesh.Scale = mesh.Scale + GROW | |
1787 | if DOESROT == true then | |
1788 | wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0) | |
1789 | end | |
1790 | wave.Transparency = wave.Transparency + (0.5/WAIT) | |
1791 | if wave.Transparency > 0.99 then | |
1792 | wave:remove() | |
1793 | end | |
1794 | end | |
1795 | end)) | |
1796 | end | |
1797 | ||
1798 | function CreateRing(SIZE,DOESROT,ROT,WAIT,CFRAME,COLOR,GROW) | |
1799 | local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0,0,0)) | |
1800 | local mesh = IT("SpecialMesh",wave) | |
1801 | mesh.MeshType = "FileMesh" | |
1802 | mesh.MeshId = "http://www.roblox.com/asset/?id=3270017" | |
1803 | mesh.Scale = SIZE | |
1804 | mesh.Offset = VT(0,0,0) | |
1805 | wave.CFrame = CFRAME | |
1806 | coroutine.resume(coroutine.create(function(PART) | |
1807 | for i = 1, WAIT do | |
1808 | Swait() | |
1809 | mesh.Scale = mesh.Scale + GROW | |
1810 | if DOESROT == true then | |
1811 | wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0,ROT,0) | |
1812 | end | |
1813 | wave.Transparency = wave.Transparency + (0.5/WAIT) | |
1814 | if wave.Transparency > 0.99 then | |
1815 | wave:remove() | |
1816 | end | |
1817 | end | |
1818 | end)) | |
1819 | end | |
1820 | ||
1821 | function MagicSphere(SIZE,WAIT,CFRAME,COLOR,GROW) | |
1822 | local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(COLOR), "Effect", VT(1,1,1), true) | |
1823 | local mesh = IT("SpecialMesh",wave) | |
1824 | mesh.MeshType = "Sphere" | |
1825 | mesh.Scale = SIZE | |
1826 | mesh.Offset = VT(0,0,0) | |
1827 | wave.CFrame = CFRAME | |
1828 | coroutine.resume(coroutine.create(function(PART) | |
1829 | for i = 1, WAIT do | |
1830 | Swait() | |
1831 | mesh.Scale = mesh.Scale + GROW | |
1832 | wave.Transparency = wave.Transparency + (1/WAIT) | |
1833 | if wave.Transparency > 0.99 then | |
1834 | wave:remove() | |
1835 | end | |
1836 | end | |
1837 | end)) | |
1838 | end | |
1839 | ||
1840 | function MagicBlock(SIZE,WAIT,CFRAME,COLOR,GROW) | |
1841 | local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(COLOR), "Effect", VT(SIZE,SIZE,SIZE), true) | |
1842 | local mesh = IT("BlockMesh",wave) | |
1843 | wave.CFrame = CFRAME | |
1844 | coroutine.resume(coroutine.create(function(PART) | |
1845 | for i = 1, WAIT do | |
1846 | Swait() | |
1847 | mesh.Scale = mesh.Scale + GROW | |
1848 | wave.CFrame = CFRAME * ANGLES(RAD(math.random(-360,360)),RAD(math.random(-360,360)),RAD(math.random(-360,360))) | |
1849 | wave.Transparency = wave.Transparency + (1/WAIT) | |
1850 | if wave.Transparency > 0.99 then | |
1851 | wave:remove() | |
1852 | end | |
1853 | end | |
1854 | end)) | |
1855 | end | |
1856 | ||
1857 | function Slice(SIZE,WAIT,CFRAME,COLOR,GROW) | |
1858 | local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(1,1,1), true) | |
1859 | local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "448386996", "", VT(0,SIZE/10,SIZE/10), VT(0,0,0)) | |
1860 | wave.CFrame = CFRAME | |
1861 | coroutine.resume(coroutine.create(function(PART) | |
1862 | for i = 1, WAIT do | |
1863 | Swait() | |
1864 | mesh.Scale = mesh.Scale * GROW | |
1865 | wave.Transparency = wave.Transparency + (0.5/WAIT) | |
1866 | if wave.Transparency > 0.99 then | |
1867 | wave:remove() | |
1868 | end | |
1869 | end | |
1870 | end)) | |
1871 | end | |
1872 | ||
1873 | function MakeForm(PART,TYPE) | |
1874 | if TYPE == "Cyl" then | |
1875 | local MSH = IT("CylinderMesh",PART) | |
1876 | elseif TYPE == "Ball" then | |
1877 | local MSH = IT("SpecialMesh",PART) | |
1878 | MSH.MeshType = "Sphere" | |
1879 | elseif TYPE == "Wedge" then | |
1880 | local MSH = IT("SpecialMesh",PART) | |
1881 | MSH.MeshType = "Wedge" | |
1882 | end | |
1883 | end | |
1884 | ||
1885 | function CheckTableForString(Table, String) | |
1886 | for i, v in pairs(Table) do | |
1887 | if string.find(string.lower(String), string.lower(v)) then | |
1888 | return true | |
1889 | end | |
1890 | end | |
1891 | return false | |
1892 | end | |
1893 | ||
1894 | function CheckIntangible(Hit) | |
1895 | local ProjectileNames = {"Water", "Arrow", "Projectile", "Effect", "Rail", "Lightning", "Bullet"} | |
1896 | if Hit and Hit.Parent then | |
1897 | if ((not Hit.CanCollide or CheckTableForString(ProjectileNames, Hit.Name)) and not Hit.Parent:FindFirstChild("Humanoid")) then | |
1898 | return true | |
1899 | end | |
1900 | end | |
1901 | return false | |
1902 | end | |
1903 | ||
1904 | Debris = game:GetService("Debris") | |
1905 | ||
1906 | function CastZapRay(StartPos, Vec, Length, Ignore, DelayIfHit) | |
1907 | local Direction = CFrame.new(StartPos, Vec).lookVector | |
1908 | local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore}) | |
1909 | local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Direction * Length), Ignore) | |
1910 | if RayHit and CheckIntangible(RayHit) then | |
1911 | if DelayIfHit then | |
1912 | wait() | |
1913 | end | |
1914 | RayHit, RayPos, RayNormal = CastZapRay((RayPos + (Vec * 0.01)), Vec, (Length - ((StartPos - RayPos).magnitude)), Ignore, DelayIfHit) | |
1915 | end | |
1916 | return RayHit, RayPos, RayNormal | |
1917 | end | |
1918 | ||
1919 | function turnto(position) | |
1920 | RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0) | |
1921 | end | |
1922 | ||
1923 | --//=================================\\ | |
1924 | --|| WEAPON CREATION | |
1925 | --\\=================================// | |
1926 | ||
1927 | local Claw1 = CreatePart(3, Character, "Neon", 0, 0, "Really black", "Claw", VT(0,0,0),false) | |
1928 | CreateWeldOrSnapOrMotor("Weld", Claw1, RightArm, Claw1, CF(0.2,-1.25,0) * ANGLES(RAD(-90), RAD(0), RAD(-90)), CF(0, 0, 0)) | |
1929 | CreateMesh("SpecialMesh", Claw1, "FileMesh", "105262978", "", VT(1,1,1), VT(0,0,0)) | |
1930 | ||
1931 | local Claw2 = CreatePart(3, Character, "Neon", 0, 0, "Really black", "Claw", VT(0,0,0),false) | |
1932 | CreateWeldOrSnapOrMotor("Weld", Claw2, LeftArm, Claw2, CF(-0.2,-1.25,0) * ANGLES(RAD(-90), RAD(0), RAD(90)), CF(0, 0, 0)) | |
1933 | CreateMesh("SpecialMesh", Claw2, "FileMesh", "105262978", "", VT(1,1,1), VT(0,0,0)) | |
1934 | ||
1935 | local part = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Eye", VT(0.4,0.15,0.2),false) | |
1936 | local weld = CreateWeldOrSnapOrMotor("Weld", part, Head, part, CF(0.15,0.28,-0.53) * ANGLES(RAD(15), RAD(0), RAD(25)), CF(0, 0, 0)) | |
1937 | MakeForm(part,"Ball") | |
1938 | local Eye = CreatePart(3, Weapon, "Neon", 0, 0, "Really black", "Eye", VT(0.1,0.1,0.),false) | |
1939 | local PupilWeld = CreateWeldOrSnapOrMotor("Weld", Eye, Head, Eye, CF(0.13,0.24,-0.58) * ANGLES(RAD(0), RAD(0), RAD(25)), CF(0, 0, 0)) | |
1940 | MakeForm(Eye,"Ball") | |
1941 | Eye.Color = C3(0,0,0) | |
1942 | createaccessory(Head,"http://www.roblox.com/asset/?id=76056263","",Vector3.new(1,1,1),Vector3.new(0,0.18,0.2),BRICKC("Pearl")) | |
1943 | local LASTPART = Torso | |
1944 | for b = 1, 17 do | |
1945 | local TAIL1 = CreatePart(3, Tail, "SmoothPlastic", 0, 0, "Insitutional white", "TailPart", VT(0.5,0.5,0.5)*(b/5),false) | |
1946 | TAIL1.Color = C3(0,0,0) | |
1947 | local weld = nil | |
1948 | local WAG = -1*(b/15) | |
1949 | if LASTPART == Torso then | |
1950 | weld = CreateWeldOrSnapOrMotor("Weld", LASTPART, TAIL1, LASTPART, CF(0, 0.5, -0.2) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1951 | local FRAME = IT("CFrameValue",TAIL1) | |
1952 | FRAME.Name = "Frame" | |
1953 | FRAME.Value = CF(0, 0.5, -0.2) | |
1954 | else | |
1955 | weld = CreateWeldOrSnapOrMotor("Weld", LASTPART, TAIL1, LASTPART, CF(0, 0, -1*(b/15)) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1956 | local FRAME = IT("CFrameValue",TAIL1) | |
1957 | FRAME.Name = "Frame" | |
1958 | FRAME.Value = CF(0, 0, WAG) | |
1959 | end | |
1960 | local FRAME = IT("NumberValue",TAIL1) | |
1961 | FRAME.Name = "Time" | |
1962 | FRAME.Value = b | |
1963 | LASTPART = TAIL1 | |
1964 | end | |
1965 | ||
1966 | Weapon.Parent = Character | |
1967 | ||
1968 | Humanoid.HealthChanged:connect(function() | |
1969 | if Humanoid.Health == 0 then | |
1970 | Humanoid.MaxHealth = "inf" | |
1971 | Humanoid.Health = "inf" | |
1972 | end | |
1973 | end) | |
1974 | ||
1975 | Humanoid.Died:connect(function() | |
1976 | ATTACK = true | |
1977 | HASDIED = true | |
1978 | Character.Parent = nil | |
1979 | local corpse = Character | |
1980 | local CFRAME = RootPart.CFrame | |
1981 | Character = nil | |
1982 | repeat Swait() until Player.Character ~= corpse | |
1983 | Character = Player.Character | |
1984 | repeat Swait() until Character:FindFirstChild("HumanoidRootPart") | |
1985 | PlayerGui = Player.PlayerGui | |
1986 | Cam = workspace.CurrentCamera | |
1987 | Backpack = Player.Backpack | |
1988 | RootPart = Character["HumanoidRootPart"] | |
1989 | Torso = Character["Torso"] | |
1990 | Head = Character["Head"] | |
1991 | RightArm = Character["Right Arm"] | |
1992 | LeftArm = Character["Left Arm"] | |
1993 | RightLeg = Character["Right Leg"] | |
1994 | LeftLeg = Character["Left Leg"] | |
1995 | RootJoint = RootPart["RootJoint"] | |
1996 | Neck = Torso["Neck"] | |
1997 | RightShoulder = Torso["Right Shoulder"] | |
1998 | LeftShoulder = Torso["Left Shoulder"] | |
1999 | RightHip = Torso["Right Hip"] | |
2000 | LeftHip = Torso["Left Hip"] | |
2001 | Humanoid = Character.Humanoid | |
2002 | RootPart.CFrame = CFRAME | |
2003 | sick:remove() | |
2004 | WEAPONGUI = IT("ScreenGui", PlayerGui) | |
2005 | WEAPONGUI.Name = "Weapon GUI" | |
2006 | Weapon = IT("Model",Character) | |
2007 | Weapon.Name = "Adds" | |
2008 | Minions = IT("Model",Character) | |
2009 | Minions.Name = "MinionFolder" | |
2010 | Effects = IT("Folder", Weapon) | |
2011 | Effects.Name = "Effects" | |
2012 | Tail = IT("Model",Weapon) | |
2013 | Tail.Name = "Tail" | |
2014 | wait() | |
2015 | Claw1 = CreatePart(3, Character, "Neon", 0, 0, "Really black", "Claw", VT(0,0,0),false) | |
2016 | CreateWeldOrSnapOrMotor("Weld", Claw1, RightArm, Claw1, CF(0.2,-1.25,0) * ANGLES(RAD(-90), RAD(0), RAD(-90)), CF(0, 0, 0)) | |
2017 | CreateMesh("SpecialMesh", Claw1, "FileMesh", "105262978", "", VT(1,1,1), VT(0,0,0)) | |
2018 | ||
2019 | Claw2 = CreatePart(3, Character, "Neon", 0, 0, "Really black", "Claw", VT(0,0,0),false) | |
2020 | CreateWeldOrSnapOrMotor("Weld", Claw2, LeftArm, Claw2, CF(-0.2,-1.25,0) * ANGLES(RAD(-90), RAD(0), RAD(90)), CF(0, 0, 0)) | |
2021 | CreateMesh("SpecialMesh", Claw2, "FileMesh", "105262978", "", VT(1,1,1), VT(0,0,0)) | |
2022 | createaccessory(Head,"http://www.roblox.com/asset/?id=76056263","",Vector3.new(1,1,1),Vector3.new(0,0.18,0.2),BRICKC("Pearl")) | |
2023 | local part = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Eye", VT(0.4,0.15,0.2),false) | |
2024 | local weld = CreateWeldOrSnapOrMotor("Weld", part, Head, part, CF(0.15,0.28,-0.53) * ANGLES(RAD(15), RAD(0), RAD(25)), CF(0, 0, 0)) | |
2025 | MakeForm(part,"Ball") | |
2026 | local Eye = CreatePart(3, Weapon, "Neon", 0, 0, "Really black", "Eye", VT(0.1,0.1,0.),false) | |
2027 | PupilWeld = CreateWeldOrSnapOrMotor("Weld", Eye, Head, Eye, CF(0.13,0.24,-0.58) * ANGLES(RAD(0), RAD(0), RAD(25)), CF(0, 0, 0)) | |
2028 | MakeForm(Eye,"Ball") | |
2029 | Eye.Color = C3(0,0,0) | |
2030 | local LASTPART = Torso | |
2031 | for b = 1, 17 do | |
2032 | local TAIL1 = CreatePart(3, Tail, "SmoothPlastic", 0, 0, "Insitutional white", "TailPart", VT(0.5,0.5,0.5)*(b/5),false) | |
2033 | TAIL1.Color = C3(0,0,0) | |
2034 | local weld = nil | |
2035 | local WAG = -1*(b/15) | |
2036 | if LASTPART == Torso then | |
2037 | weld = CreateWeldOrSnapOrMotor("Weld", LASTPART, TAIL1, LASTPART, CF(0, 0.5, -0.2) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
2038 | local FRAME = IT("CFrameValue",TAIL1) | |
2039 | FRAME.Name = "Frame" | |
2040 | FRAME.Value = CF(0, 0.5, -0.2) | |
2041 | else | |
2042 | weld = CreateWeldOrSnapOrMotor("Weld", LASTPART, TAIL1, LASTPART, CF(0, 0, -1*(b/15)) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
2043 | local FRAME = IT("CFrameValue",TAIL1) | |
2044 | FRAME.Name = "Frame" | |
2045 | FRAME.Value = CF(0, 0, WAG) | |
2046 | end | |
2047 | local FRAME = IT("NumberValue",TAIL1) | |
2048 | FRAME.Name = "Time" | |
2049 | FRAME.Value = b | |
2050 | LASTPART = TAIL1 | |
2051 | end | |
2052 | local SKILL1FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.13, 0, 0.80, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame") | |
2053 | local SKILL2FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.60, 0, 0.80, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame") | |
2054 | local SKILL3FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.365, 0, 0.93, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame") | |
2055 | local SKILL4FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.365, 0, 0.02, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame") | |
2056 | local SKILL5FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.1, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame") | |
2057 | local SKILL6FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.365, 0, 0.7, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 6 Frame") | |
2058 | ||
2059 | local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Q-F-G] Claw strikes", SKILLTEXTCOLOR, 8, "Garamond", 0, 2, 1, "Text 1") | |
2060 | local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] False Denial", SKILLTEXTCOLOR, 8, "Garamond", 0, 2, 1, "Text 2") | |
2061 | local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[V-C] Denial Possession", SKILLTEXTCOLOR, 7, "Garamond", 0, 2, 1, "Text 4") | |
2062 | local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[X] Defy the world", SKILLTEXTCOLOR, 8, "Garamond", 0, 2, 1, "Text 5") | |
2063 | local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[P] Sprint", SKILLTEXTCOLOR, 8, "Garamond", 0, 2, 1, "Text 5") | |
2064 | local SKILL6TEXT = CreateLabel(SKILL6FRAME, "[K] Bulk dash", SKILLTEXTCOLOR, 8, "Garamond", 0, 2, 1, "Text 6") | |
2065 | HASDIED = false | |
2066 | ATTACK = false | |
2067 | end) | |
2068 | ||
2069 | local SKILL1FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.13, 0, 0.80, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame") | |
2070 | local SKILL2FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.60, 0, 0.80, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame") | |
2071 | local SKILL3FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.365, 0, 0.93, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame") | |
2072 | local SKILL4FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.365, 0, 0.02, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame") | |
2073 | local SKILL5FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.1, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame") | |
2074 | local SKILL6FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.365, 0, 0.7, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 6 Frame") | |
2075 | ||
2076 | local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Q-F-G] Claw strikes", SKILLTEXTCOLOR, 8, "Garamond", 0, 2, 1, "Text 1") | |
2077 | local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] False Denial", SKILLTEXTCOLOR, 8, "Garamond", 0, 2, 1, "Text 2") | |
2078 | local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[V-C] Denial Possession", SKILLTEXTCOLOR, 7, "Garamond", 0, 2, 1, "Text 4") | |
2079 | local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[X] Defy the world", SKILLTEXTCOLOR, 8, "Garamond", 0, 2, 1, "Text 5") | |
2080 | local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[P] Sprint", SKILLTEXTCOLOR, 8, "Garamond", 0, 2, 1, "Text 5") | |
2081 | local SKILL6TEXT = CreateLabel(SKILL6FRAME, "[K] Bulk dash", SKILLTEXTCOLOR, 8, "Garamond", 0, 2, 1, "Text 6") | |
2082 | ||
2083 | --//=================================\\ | |
2084 | --|| DAMAGE FUNCTIONS | |
2085 | --\\=================================// | |
2086 | ||
2087 | function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR) | |
2088 | local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT()) | |
2089 | STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0)) | |
2090 | local BODYGYRO = IT("BodyGyro", STATPART) | |
2091 | local BODYPOSITION = IT("BodyPosition", STATPART) | |
2092 | BODYPOSITION.P = 2000 | |
2093 | BODYPOSITION.D = 100 | |
2094 | BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge) | |
2095 | BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2)) | |
2096 | game:GetService("Debris"):AddItem(STATPART ,5) | |
2097 | local BILLBOARDGUI = Instance.new("BillboardGui", STATPART) | |
2098 | BILLBOARDGUI.Adornee = STATPART | |
2099 | BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0) | |
2100 | BILLBOARDGUI.StudsOffset = VT(-2, 2, 0) | |
2101 | BILLBOARDGUI.AlwaysOnTop = false | |
2102 | local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI) | |
2103 | TEXTLABEL.BackgroundTransparency = 1 | |
2104 | TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0) | |
2105 | TEXTLABEL.Text = TEXT | |
2106 | TEXTLABEL.Font = "SciFi" | |
2107 | TEXTLABEL.FontSize="Size42" | |
2108 | TEXTLABEL.TextColor3 = COLOR | |
2109 | TEXTLABEL.TextStrokeTransparency = 1 | |
2110 | TEXTLABEL.TextScaled = true | |
2111 | TEXTLABEL.TextWrapped = true | |
2112 | coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL) | |
2113 | if LABELTYPE == "Normal" then | |
2114 | for i = 1, 30 do | |
2115 | Swait() | |
2116 | STATPART.Position = STATPART.Position + VT(0, (15-i)/10 ,0) | |
2117 | TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/30) | |
2118 | end | |
2119 | elseif LABELTYPE == "Debuff" then | |
2120 | for i = 1, 30 do | |
2121 | Swait() | |
2122 | STATPART.Position = STATPART.Position - VT(0, i/10 ,0) | |
2123 | TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/30) | |
2124 | end | |
2125 | elseif LABELTYPE == "Shock" then | |
2126 | local ORIGIN = STATPART.Position | |
2127 | for i = 1, 30 do | |
2128 | Swait() | |
2129 | STATPART.Position = ORIGIN + VT(MRANDOM(-2,2),MRANDOM(-2,2),MRANDOM(-2,2)) | |
2130 | TEXTLABEL.TextTransparency = TEXTLABEL.TextTransparency + (1/30) | |
2131 | end | |
2132 | end | |
2133 | THEPART.Parent = nil | |
2134 | end),STATPART, BODYPOSITION, TEXTLABEL) | |
2135 | end | |
2136 | ||
2137 | --//=================================\\ | |
2138 | --|| DAMAGING | |
2139 | --\\=================================// | |
2140 | ||
2141 | function AoEDamage(position,radius,min,max,maxstrength,beserk,critrate,critmultiplier,CanBeDodgedByJumping) | |
2142 | local dmg = math.random(min,max) | |
2143 | for i,v in ipairs(workspace:GetChildren()) do | |
2144 | if v:FindFirstChild("HitBy"..Player.Name) == nil then | |
2145 | local body = v:GetChildren() | |
2146 | for part = 1, #body do | |
2147 | if(v:FindFirstChild("HitBy"..Player.Name) == nil and (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then | |
2148 | if(body[part].Position - position).Magnitude < radius then | |
2149 | if v.ClassName == "Model" then | |
2150 | if v:FindFirstChild("Humanoid") then | |
2151 | if v.Humanoid.Health ~= 0 then | |
2152 | if CanBeDodgedByJumping == true then | |
2153 | if body[part].Position.Y < position.Y+5 then | |
2154 | if math.random(1,100) < critrate+1 then | |
2155 | v.Humanoid.Health = v.Humanoid.Health - dmg*critmultiplier | |
2156 | StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0)) | |
2157 | else | |
2158 | v.Humanoid.Health = v.Humanoid.Health - dmg | |
2159 | StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), dmg, C3(0, 0, 0)) | |
2160 | end | |
2161 | local defence = Instance.new("BoolValue",v) | |
2162 | defence.Name = ("HitBy"..Player.Name) | |
2163 | game:GetService("Debris"):AddItem(defence, 0.01) | |
2164 | end | |
2165 | else | |
2166 | if beserk == true then | |
2167 | v.Humanoid.Health = 0 | |
2168 | end | |
2169 | if math.random(1,100) < critrate+1 then | |
2170 | v.Humanoid.Health = v.Humanoid.Health - dmg*critmultiplier | |
2171 | StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), "CRIT/"..dmg*critmultiplier, C3(255/255, 0, 0)) | |
2172 | else | |
2173 | v.Humanoid.Health = v.Humanoid.Health - dmg | |
2174 | StatLabel("Normal", body[part].CFrame * CF(0, 0 + (body[part].Size.z - 1), 0), dmg, C3(0, 0, 0)) | |
2175 | end | |
2176 | local defence = Instance.new("BoolValue",v) | |
2177 | defence.Name = ("HitBy"..Player.Name) | |
2178 | game:GetService("Debris"):AddItem(defence, 0.01) | |
2179 | end | |
2180 | end | |
2181 | end | |
2182 | end | |
2183 | body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength | |
2184 | end | |
2185 | end | |
2186 | end | |
2187 | if v.ClassName == "Part" then | |
2188 | if v.Anchored == false and (v.Position - position).Magnitude < radius then | |
2189 | v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength | |
2190 | end | |
2191 | end | |
2192 | end | |
2193 | end | |
2194 | end | |
2195 | ||
2196 | function Sink(position,radius) | |
2197 | for i,v in ipairs(workspace:GetChildren()) do | |
2198 | if v:FindFirstChild("Hit2By"..Player.Name) == nil then | |
2199 | local body = v:GetChildren() | |
2200 | for part = 1, #body do | |
2201 | if(v:FindFirstChild("Hit2By"..Player.Name) == nil and (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then | |
2202 | if(body[part].Position - position).Magnitude < radius then | |
2203 | if v.ClassName == "Model" then | |
2204 | if v:FindFirstChild("Humanoid") then | |
2205 | local defence = Instance.new("BoolValue",v) | |
2206 | defence.Name = ("Hit2By"..Player.Name) | |
2207 | if v.Humanoid.Health ~= 0 then | |
2208 | local TORS = v:FindFirstChild("HumanoidRootPart") or v:FindFirstChild("Torso") or v:FindFirstChild("UpperTorso") | |
2209 | if TORS ~= nil then | |
2210 | local HITFLOOR2, HITPOS2 = Raycast(TORS.Position, (CF(TORS.Position, TORS.Position + VT(0, -1, 0))).lookVector, 5 * TORS.Size.Y/2, v) | |
2211 | coroutine.resume(coroutine.create(function() | |
2212 | if HITFLOOR2 ~= nil then | |
2213 | TORS.Anchored = true | |
2214 | table.insert(Effects2,{v}) | |
2215 | repeat | |
2216 | Swait() | |
2217 | TORS.CFrame = TORS.CFrame * CF(0,-1,0) | |
2218 | until TORS.Position.Y<position.Y-4 | |
2219 | v:remove() | |
2220 | end | |
2221 | end)) | |
2222 | end | |
2223 | end | |
2224 | end | |
2225 | end | |
2226 | --body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength | |
2227 | end | |
2228 | end | |
2229 | end | |
2230 | end | |
2231 | end | |
2232 | end | |
2233 | ||
2234 | --//=================================\\ | |
2235 | --|| ATTACK FUNCTIONS AND STUFF | |
2236 | --\\=================================// | |
2237 | ||
2238 | local asd = Instance.new("ParticleEmitter") | |
2239 | asd.Color = ColorSequence.new(Color3.new(1, 0, 0), Color3.new(.5, 0, 0)) | |
2240 | asd.LightEmission = .1 | |
2241 | asd.Size = NumberSequence.new(0.2) | |
2242 | asd.Texture = "http://www.roblox.com/asset/?ID=291880914" | |
2243 | aaa = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.2),NumberSequenceKeypoint.new(1, 5)}) | |
2244 | bbb = NumberSequence.new({NumberSequenceKeypoint.new(0, 1),NumberSequenceKeypoint.new(0.0636, 0), NumberSequenceKeypoint.new(1, 1)}) | |
2245 | asd.Transparency = bbb | |
2246 | asd.Size = aaa | |
2247 | asd.ZOffset = .9 | |
2248 | asd.Acceleration = Vector3.new(0, -5, 0) | |
2249 | asd.LockedToPart = false | |
2250 | asd.EmissionDirection = "Back" | |
2251 | asd.Lifetime = NumberRange.new(1, 2) | |
2252 | asd.Rotation = NumberRange.new(-100, 100) | |
2253 | asd.RotSpeed = NumberRange.new(-100, 100) | |
2254 | asd.Speed = NumberRange.new(2) | |
2255 | asd.Enabled = false | |
2256 | asd.VelocitySpread = 10000 | |
2257 | ||
2258 | function getbloody(victim,amount) | |
2259 | local prtcl = asd:Clone() | |
2260 | prtcl.Parent = victim | |
2261 | prtcl:Emit(amount) | |
2262 | CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], victim, 10, (math.random(8,12)/10)) | |
2263 | end | |
2264 | ||
2265 | function Strike1() | |
2266 | ATTACK = true | |
2267 | Rooted = false | |
2268 | CreateSound(HITWEAPONSOUNDS[MRANDOM(1,#HITWEAPONSOUNDS)], Torso, 1, 1) | |
2269 | for i=0, 0.1, 0.1 / Animation_Speed do | |
2270 | Swait() | |
2271 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 3 / Animation_Speed) | |
2272 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2273 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(145), RAD(-45), RAD(0)) * RIGHTSHOULDERC0, 3 / Animation_Speed) | |
2274 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(145), RAD(45), RAD(0)) * LEFTSHOULDERC0, 3 / Animation_Speed) | |
2275 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2276 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2277 | end | |
2278 | AoEDamage(CF(Torso.Position)*CF(0,0,-1).p,8,35,55,5,0,1,1.5,false) | |
2279 | CreateSound(HITWEAPONSOUNDS[MRANDOM(1,#HITWEAPONSOUNDS)], Torso, 1, 1) | |
2280 | Slice(1,5,LeftArm.CFrame*CF(0,-1,0) * ANGLES(RAD(0), RAD(0), RAD(0)),"Really black",1.01) | |
2281 | Slice(1,5,RightArm.CFrame*CF(0,-1,0) * ANGLES(RAD(0), RAD(0), RAD(0)),"Really black",1.01) | |
2282 | for i=0, 0.3, 0.1 / Animation_Speed do | |
2283 | Swait() | |
2284 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 3 / Animation_Speed) | |
2285 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2286 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(145), RAD(-45), RAD(0)) * RIGHTSHOULDERC0, 3 / Animation_Speed) | |
2287 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(145), RAD(45), RAD(0)) * LEFTSHOULDERC0, 3 / Animation_Speed) | |
2288 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2289 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2290 | end | |
2291 | ATTACK = false | |
2292 | Rooted = false | |
2293 | end | |
2294 | ||
2295 | function Strike2() | |
2296 | ATTACK = true | |
2297 | Rooted = true | |
2298 | for i=1, 50 do | |
2299 | Swait() | |
2300 | VALUE1 = true | |
2301 | RootPart.CFrame = RootPart.CFrame*CF(0,0,-0.6) | |
2302 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, (5-(3-i/50))) * ANGLES(RAD(0), RAD(65), RAD(i*50)), 2 / Animation_Speed) | |
2303 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2304 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 3 / Animation_Speed) | |
2305 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 3 / Animation_Speed) | |
2306 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2307 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2308 | AoEDamage(RightArm.CFrame*CF(0,-1,0).p,5,5,25,5,0,1,1.5,false) | |
2309 | AoEDamage(LeftArm.CFrame*CF(0,-1,0).p,5,5,25,5,0,1,1.5,false) | |
2310 | CreateSound(HITWEAPONSOUNDS[MRANDOM(1,#HITWEAPONSOUNDS)], Torso, 1, 1) | |
2311 | Slice(1,5,LeftArm.CFrame*CF(0,-1,0) * ANGLES(RAD(0), RAD(0), RAD(0)),"Really black",1.01) | |
2312 | Slice(1,5,RightArm.CFrame*CF(0,-1,0) * ANGLES(RAD(0), RAD(0), RAD(0)),"Really black",1.01) | |
2313 | end | |
2314 | ATTACK = false | |
2315 | Rooted = false | |
2316 | end | |
2317 | ||
2318 | function Strike3() | |
2319 | ATTACK = true | |
2320 | Rooted = false | |
2321 | for i = 1, 15 do | |
2322 | for i = 1, 2 do | |
2323 | Swait() | |
2324 | PupilWeld.C0 = Clerp(PupilWeld.C0, CF(0.17+MRANDOM(-2,2)/75,0.3+MRANDOM(-2,2)/75,-0.61) * ANGLES(RAD(0), RAD(0), RAD(0)), 3 / Animation_Speed) | |
2325 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)) * ANGLES(RAD(15), RAD(0), RAD(0)), 2.8 / Animation_Speed) | |
2326 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-10 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 2.8 / Animation_Speed) | |
2327 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -1) * ANGLES(RAD(105+MRANDOM(-15,15)), RAD(0), RAD(MRANDOM(-45,-35))) * RIGHTSHOULDERC0, 2.8 / Animation_Speed) | |
2328 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 1) * ANGLES(RAD(105+MRANDOM(-15,15)), RAD(0), RAD(MRANDOM(-15,15))) * LEFTSHOULDERC0, 2.8 / Animation_Speed) | |
2329 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(-15), RAD(-15)), 2.8 / Animation_Speed) | |
2330 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(15), RAD(-15)), 2.8 / Animation_Speed) | |
2331 | end | |
2332 | AoEDamage(CF(Torso.Position)*CF(0,0,-1).p,8,5,25,5,0,1,1.5,false) | |
2333 | CreateSound(HITWEAPONSOUNDS[MRANDOM(1,#HITWEAPONSOUNDS)], Torso, 1, 1) | |
2334 | Slice(1,15,RightArm.CFrame*CF(0,-1,0) * ANGLES(RAD(MRANDOM(-45,45)), RAD(MRANDOM(-75,75)), RAD(0)),"Really black",1.01) | |
2335 | for i = 1, 2 do | |
2336 | Swait() | |
2337 | PupilWeld.C0 = Clerp(PupilWeld.C0, CF(0.17+MRANDOM(-2,2)/75,0.3+MRANDOM(-2,2)/75,-0.61) * ANGLES(RAD(0), RAD(0), RAD(0)), 3 / Animation_Speed) | |
2338 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)) * ANGLES(RAD(15), RAD(0), RAD(0)), 2.8 / Animation_Speed) | |
2339 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-10 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 2.8 / Animation_Speed) | |
2340 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 1) * ANGLES(RAD(105+MRANDOM(-15,15)), RAD(0), RAD(MRANDOM(-15,15))) * RIGHTSHOULDERC0, 2.8 / Animation_Speed) | |
2341 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -1) * ANGLES(RAD(105+MRANDOM(-15,15)), RAD(0), RAD(MRANDOM(35,45))) * LEFTSHOULDERC0, 2.8 / Animation_Speed) | |
2342 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(-15), RAD(-15)), 2.8 / Animation_Speed) | |
2343 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(15), RAD(-15)), 2.8 / Animation_Speed) | |
2344 | end | |
2345 | AoEDamage(CF(Torso.Position)*CF(0,0,-1).p,8,5,25,5,0,1,1.5,false) | |
2346 | CreateSound(HITWEAPONSOUNDS[MRANDOM(1,#HITWEAPONSOUNDS)], Torso, 1, 1) | |
2347 | Slice(1,15,LeftArm.CFrame*CF(0,-1,0) * ANGLES(RAD(MRANDOM(-45,45)), RAD(MRANDOM(-75,75)), RAD(0)),"Really black",1.01) | |
2348 | end | |
2349 | if KEYHOLD == true then | |
2350 | repeat | |
2351 | for i = 1, 2 do | |
2352 | Swait() | |
2353 | PupilWeld.C0 = Clerp(PupilWeld.C0, CF(0.17+MRANDOM(-2,2)/75,0.3+MRANDOM(-2,2)/75,-0.61) * ANGLES(RAD(0), RAD(0), RAD(0)), 3 / Animation_Speed) | |
2354 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)) * ANGLES(RAD(15), RAD(0), RAD(0)), 2.8 / Animation_Speed) | |
2355 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-10 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 2.8 / Animation_Speed) | |
2356 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -1) * ANGLES(RAD(105+MRANDOM(-15,15)), RAD(0), RAD(MRANDOM(-45,-35))) * RIGHTSHOULDERC0, 2.8 / Animation_Speed) | |
2357 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 1) * ANGLES(RAD(105+MRANDOM(-15,15)), RAD(0), RAD(MRANDOM(-15,15))) * LEFTSHOULDERC0, 2.8 / Animation_Speed) | |
2358 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(-15), RAD(-15)), 2.8 / Animation_Speed) | |
2359 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(15), RAD(-15)), 2.8 / Animation_Speed) | |
2360 | end | |
2361 | AoEDamage(CF(Torso.Position)*CF(0,0,-1).p,8,5,25,5,0,1,1.5,false) | |
2362 | CreateSound(HITWEAPONSOUNDS[MRANDOM(1,#HITWEAPONSOUNDS)], Torso, 1, 1) | |
2363 | Slice(1,15,RightArm.CFrame*CF(0,-1,0) * ANGLES(RAD(MRANDOM(-45,45)), RAD(MRANDOM(-75,75)), RAD(0)),"Really black",1.01) | |
2364 | for i = 1, 2 do | |
2365 | Swait() | |
2366 | PupilWeld.C0 = Clerp(PupilWeld.C0, CF(0.17+MRANDOM(-2,2)/75,0.3+MRANDOM(-2,2)/75,-0.61) * ANGLES(RAD(0), RAD(0), RAD(0)), 3 / Animation_Speed) | |
2367 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)) * ANGLES(RAD(15), RAD(0), RAD(0)), 2.8 / Animation_Speed) | |
2368 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-10 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 2.8 / Animation_Speed) | |
2369 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 1) * ANGLES(RAD(105+MRANDOM(-15,15)), RAD(0), RAD(MRANDOM(-15,15))) * RIGHTSHOULDERC0, 2.8 / Animation_Speed) | |
2370 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -1) * ANGLES(RAD(105+MRANDOM(-15,15)), RAD(0), RAD(MRANDOM(35,45))) * LEFTSHOULDERC0, 2.8 / Animation_Speed) | |
2371 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(-15), RAD(-15)), 2.8 / Animation_Speed) | |
2372 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(15), RAD(-15)), 2.8 / Animation_Speed) | |
2373 | end | |
2374 | AoEDamage(CF(Torso.Position)*CF(0,0,-1).p,8,5,25,5,0,1,1.5,false) | |
2375 | CreateSound(HITWEAPONSOUNDS[MRANDOM(1,#HITWEAPONSOUNDS)], Torso, 1, 1) | |
2376 | Slice(1,15,LeftArm.CFrame*CF(0,-1,0) * ANGLES(RAD(MRANDOM(-45,45)), RAD(MRANDOM(-75,75)), RAD(0)),"Really black",1.01) | |
2377 | until KEYHOLD == false | |
2378 | end | |
2379 | ATTACK = false | |
2380 | Rooted = false | |
2381 | end | |
2382 | ||
2383 | function FalseDenial() | |
2384 | if Mouse.Target.Parent ~= Character and Mouse.Target.Parent.Parent ~= Character and Mouse.Target.Parent:FindFirstChildOfClass("Humanoid") ~= nil then | |
2385 | local HITBODY = Mouse.Target.Parent | |
2386 | local TORS = HITBODY:FindFirstChild("Torso") or HITBODY:FindFirstChild("UpperTorso") | |
2387 | local HUMAN = Mouse.Target.Parent:FindFirstChildOfClass("Humanoid") | |
2388 | if TORS ~= nil and HUMAN ~= nil then | |
2389 | ATTACK = true | |
2390 | Rooted = true | |
2391 | RootPart.CFrame = TORS.CFrame * CF(-1,0,8) | |
2392 | TORS.Anchored = true | |
2393 | CreateSound(ALONE, Head, 10, 1) | |
2394 | for i=0, 1, 0.1 / Animation_Speed do | |
2395 | Swait() | |
2396 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(15), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2397 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2398 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(180), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed) | |
2399 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(15), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2400 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(-15), RAD(-15)), 0.5 / Animation_Speed) | |
2401 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(15), RAD(-15)), 0.5 / Animation_Speed) | |
2402 | end | |
2403 | local HandlePart = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Insitutional white", "Handle", VT(0, 0, 0),false) | |
2404 | HandlePart.Color = C3(1,1,1) | |
2405 | local HandleMesh = CreateMesh("SpecialMesh", HandlePart, "FileMesh", "93180631", "", VT(1,1,1), VT(0, 3.1, 0)) | |
2406 | HandlePart.CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(180), RAD(90), RAD(0)) | |
2407 | local WELD = weldBetween(RightArm,HandlePart) | |
2408 | Rooted = true | |
2409 | CreateSound("289315275", HandlePart, 10, 1.5) | |
2410 | for i=1, 50 do | |
2411 | Swait() | |
2412 | MagicSphere(VT(0.2,0.2,i/5),35,CF(HandlePart.CFrame*CF(0,6,0)*CF(MRANDOM(-1,1),MRANDOM(-1,1),MRANDOM(-1,1)).p,HandlePart.CFrame*CF(0,6,0).p),C3(1,1,1),VT(0.001,0.001,0),0.5) | |
2413 | HandlePart.Transparency = HandlePart.Transparency - (0.01) | |
2414 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(15), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2415 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2416 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(180), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed) | |
2417 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(15), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2418 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(-15), RAD(-15)), 0.5 / Animation_Speed) | |
2419 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(15), RAD(-15)), 0.5 / Animation_Speed) | |
2420 | end | |
2421 | for i=0, 1, 0.1 / Animation_Speed do | |
2422 | Swait() | |
2423 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(15), RAD(0), RAD(-35)), 0.5 / Animation_Speed) | |
2424 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(35)), 0.5 / Animation_Speed) | |
2425 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0.3) * ANGLES(RAD(105), RAD(0), RAD(-15)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed) | |
2426 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(15), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2427 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(-15), RAD(-15)), 0.5 / Animation_Speed) | |
2428 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(15), RAD(-15)), 0.5 / Animation_Speed) | |
2429 | end | |
2430 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(15), RAD(0), RAD(45)), 3 / Animation_Speed) | |
2431 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-45)), 3 / Animation_Speed) | |
2432 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 1, -0.7) * ANGLES(RAD(110), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 3 / Animation_Speed) | |
2433 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(15), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 3 / Animation_Speed) | |
2434 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(-15), RAD(-15)), 3 / Animation_Speed) | |
2435 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(15), RAD(-15)), 3 / Animation_Speed) | |
2436 | Swait() | |
2437 | WELD:remove() | |
2438 | HandlePart.CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(180), RAD(90), RAD(0)) | |
2439 | HandlePart.Anchored = true | |
2440 | local HEART = CreatePart(3, HITBODY, "Pebble", 0, 0, "Really red", "Heart", VT(1,1,1)) | |
2441 | MakeForm(HEART,"Ball") | |
2442 | HEART.CFrame = HandlePart.CFrame*CF(0,6,0) | |
2443 | getbloody(HEART,2) | |
2444 | Swait(15) | |
2445 | CreateSound("289315275", HEART, 10, 3) | |
2446 | for i = 1, 25 do | |
2447 | Swait() | |
2448 | MagicSphere(VT(0.2,0.2,i/5),35,CF(HandlePart.CFrame*CF(0,6.5,0)*CF(MRANDOM(-1,1),MRANDOM(-1,1),MRANDOM(-1,1)).p,HandlePart.CFrame*CF(0,6,0).p),C3(1,1,1),VT(0.001,0.001,0),0.5) | |
2449 | end | |
2450 | CreateSound("264486467", HEART, 10, 1) | |
2451 | getbloody(HEART,25) | |
2452 | HEART.Transparency = 1 | |
2453 | HITBODY:BreakJoints() | |
2454 | TORS.Anchored = false | |
2455 | ATTACK = false | |
2456 | Rooted = false | |
2457 | coroutine.resume(coroutine.create(function() | |
2458 | Swait(15) | |
2459 | CreateSound("2248511", HandlePart, 10, 1) | |
2460 | for i = 1, 50 do | |
2461 | Swait() | |
2462 | HandlePart.Transparency = HandlePart.Transparency + (0.01) | |
2463 | end | |
2464 | HandlePart:remove() | |
2465 | end)) | |
2466 | end | |
2467 | end | |
2468 | end | |
2469 | ||
2470 | function findNearestTorso(pos) | |
2471 | local list = game.Workspace:children() | |
2472 | local torso = nil | |
2473 | local dist = 1000 | |
2474 | local temp = nil | |
2475 | local human = nil | |
2476 | local temp2 = nil | |
2477 | for x = 1, #list do | |
2478 | temp2 = list[x] | |
2479 | if (temp2.className == "Model") and (temp2 ~= Character) and (temp2 ~= pos.Parent) then | |
2480 | temp = temp2:findFirstChild("Torso") or temp2:findFirstChild("UpperTorso") | |
2481 | human = temp2:findFirstChildOfClass("Humanoid") | |
2482 | if (temp ~= nil) and (human ~= nil) and (human.Health > 0) then | |
2483 | if (temp.Position - pos.Position).magnitude < dist then | |
2484 | torso = temp | |
2485 | dist = (temp.Position - pos.Position).magnitude | |
2486 | end | |
2487 | end | |
2488 | end | |
2489 | end | |
2490 | return torso,dist | |
2491 | end | |
2492 | ||
2493 | function CreateBody() | |
2494 | local zombie = IT("Model",Effects) | |
2495 | zombie.Name = "Possessed" | |
2496 | local tors = IT("Part",zombie) | |
2497 | tors.Name = "Torso" | |
2498 | tors.Size = Torso.Size | |
2499 | tors.CFrame = RootPart.CFrame * CF(math.random(-5,5),0,-5) | |
2500 | tors.Color = C3(0,0.5,0.5) | |
2501 | local heed = IT("Part",zombie) | |
2502 | heed.Size = Head.Size | |
2503 | heed.CFrame = tors.CFrame * CF(0,1.5,0) | |
2504 | heed.Name = "Head" | |
2505 | heed.Color = C3(255/255, 230/255, 194/255) | |
2506 | local face = IT("Decal",heed) | |
2507 | face.Texture = "http://www.roblox.com/asset/?id=149118644" | |
2508 | weldBetween(tors,heed) | |
2509 | local headmesh = IT("SpecialMesh",heed) | |
2510 | headmesh.Scale = VT(1.25,1.25,1.25) | |
2511 | local limb = IT("Part",zombie) | |
2512 | limb.Size = VT(1,2,1) | |
2513 | limb.Name = "Left Arm" | |
2514 | limb.CFrame = tors.CFrame * CF(-1.5,0,0) | |
2515 | limb.Color = C3(255/255, 230/255, 194/255) | |
2516 | weldBetween(tors,limb) | |
2517 | local limb = IT("Part",zombie) | |
2518 | limb.Size = VT(1,2,1) | |
2519 | limb.Name = "Right Arm" | |
2520 | limb.CFrame = tors.CFrame * CF(1.5,0,0) | |
2521 | limb.Color = C3(255/255, 230/255, 194/255) | |
2522 | weldBetween(tors,limb) | |
2523 | local limb = IT("Part",zombie) | |
2524 | limb.Size = VT(1,2,1) | |
2525 | limb.Name = "Right Leg" | |
2526 | limb.CFrame = tors.CFrame * CF(0.5,-2,0) | |
2527 | limb.Color = C3(0,0.5,0.5) | |
2528 | weldBetween(tors,limb) | |
2529 | local limb = IT("Part",zombie) | |
2530 | limb.Size = VT(1,2,1) | |
2531 | limb.Name = "Left Leg" | |
2532 | limb.CFrame = tors.CFrame * CF(-0.5,-2,0) | |
2533 | limb.Color = C3(0,0.5,0.5) | |
2534 | weldBetween(tors,limb) | |
2535 | local hooman = IT("Humanoid",zombie) | |
2536 | return zombie | |
2537 | end | |
2538 | ||
2539 | function DenialPossession() | |
2540 | if Mouse.Target.Parent ~= Character and Mouse.Target.Parent.Parent ~= Character and Mouse.Target.Parent:FindFirstChildOfClass("Humanoid") ~= nil then | |
2541 | local HITBODY = Mouse.Target.Parent | |
2542 | local TORS = HITBODY:FindFirstChild("Torso") or HITBODY:FindFirstChild("UpperTorso") | |
2543 | local HUMAN = Mouse.Target.Parent:FindFirstChildOfClass("Humanoid") | |
2544 | if TORS ~= nil and HUMAN ~= nil then | |
2545 | ATTACK = true | |
2546 | Rooted = true | |
2547 | TORS.Anchored = true | |
2548 | RootPart.CFrame = TORS.CFrame * CF(0,0,2) | |
2549 | for i=0, 1, 0.1 / Animation_Speed do | |
2550 | Swait() | |
2551 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(15), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2552 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2553 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 1.2, -0.8) * ANGLES(RAD(125), RAD(0), RAD(-12)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed) | |
2554 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 1.2, -0.8) * ANGLES(RAD(125), RAD(0), RAD(12)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2555 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(-15), RAD(-15)), 0.5 / Animation_Speed) | |
2556 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(15), RAD(-15)), 0.5 / Animation_Speed) | |
2557 | end | |
2558 | CreateSound("289315275", TORS, 10, 3) | |
2559 | for i = 1, 25 do | |
2560 | if HITBODY:FindFirstChild("Head") then | |
2561 | Swait() | |
2562 | MagicSphere(VT(0.2,0.2,i/5),35,CF(HITBODY.Head.CFrame*CF(MRANDOM(-1,1),MRANDOM(-1,1),MRANDOM(-1,1)).p,HITBODY.Head.Position),C3(1,1,1),VT(0.001,0.001,0),0.5) | |
2563 | if HITBODY.Head:FindFirstChildOfClass("Decal") then | |
2564 | HITBODY.Head:FindFirstChildOfClass("Decal").Texture = "http://www.roblox.com/asset/?id=186465390" | |
2565 | end | |
2566 | end | |
2567 | end | |
2568 | local CLONE = HITBODY:Clone() | |
2569 | if CLONE ~= nil then | |
2570 | CLONE.Parent = Minions | |
2571 | CLONE:FindFirstChildOfClass("Humanoid").DisplayDistanceType = "None" | |
2572 | TORS = CLONE:FindFirstChild("Torso") or CLONE:FindFirstChild("UpperTorso") | |
2573 | TORS.Anchored = false | |
2574 | if CLONE.Head:FindFirstChildOfClass("Decal") then | |
2575 | CLONE.Head:FindFirstChildOfClass("Decal").Texture = "http://www.roblox.com/asset/?id=16904401" | |
2576 | end | |
2577 | coroutine.resume(coroutine.create(function() | |
2578 | while wait() do | |
2579 | local MAN = CLONE:FindFirstChildOfClass("Humanoid") | |
2580 | if MAN.Health ~= 0 then | |
2581 | local target,dist = findNearestTorso(TORS) | |
2582 | if target ~= nil then | |
2583 | MAN:MoveTo(target.Position) | |
2584 | if dist < 7 then | |
2585 | if MRANDOM(1,5) == 1 then | |
2586 | AoEDamage(TORS.Position,4,5,25,5,0,1,1.5,false) | |
2587 | end | |
2588 | end | |
2589 | end | |
2590 | else | |
2591 | CLONE.Parent = workspace | |
2592 | Debris:AddItem(CLONE,5) | |
2593 | end | |
2594 | end | |
2595 | end)) | |
2596 | HITBODY:BreakJoints() | |
2597 | HITBODY.Parent = nil | |
2598 | else | |
2599 | local CLONE = CreateBody() | |
2600 | CLONE.Torso.CFrame = TORS.CFrame | |
2601 | CLONE.Parent = Minions | |
2602 | CLONE:FindFirstChildOfClass("Humanoid").DisplayDistanceType = "None" | |
2603 | TORS = CLONE:FindFirstChild("Torso") or CLONE:FindFirstChild("UpperTorso") | |
2604 | TORS.Anchored = false | |
2605 | if CLONE.Head:FindFirstChildOfClass("Decal") then | |
2606 | CLONE.Head:FindFirstChildOfClass("Decal").Texture = "http://www.roblox.com/asset/?id=16904401" | |
2607 | end | |
2608 | for _, c in pairs(HITBODY:GetChildren()) do | |
2609 | if c.ClassName ~= "Part" and c.ClassName ~= "MeshPart" then | |
2610 | c.Parent = CLONE | |
2611 | end | |
2612 | end | |
2613 | coroutine.resume(coroutine.create(function() | |
2614 | while wait() do | |
2615 | local MAN = CLONE:FindFirstChildOfClass("Humanoid") | |
2616 | if MAN.Health ~= 0 then | |
2617 | local target,dist = findNearestTorso(TORS) | |
2618 | if target ~= nil then | |
2619 | MAN:MoveTo(target.Position) | |
2620 | if dist < 7 then | |
2621 | if MRANDOM(1,5) == 1 then | |
2622 | AoEDamage(TORS.Position,4,5,25,5,0,1,1.5,false) | |
2623 | end | |
2624 | end | |
2625 | end | |
2626 | else | |
2627 | CLONE.Parent = workspace | |
2628 | Debris:AddItem(CLONE,5) | |
2629 | end | |
2630 | end | |
2631 | end)) | |
2632 | HITBODY:BreakJoints() | |
2633 | HITBODY.Parent = nil | |
2634 | end | |
2635 | ATTACK = false | |
2636 | Rooted = false | |
2637 | end | |
2638 | end | |
2639 | end | |
2640 | ||
2641 | function ForbiddenGate() | |
2642 | ATTACK = true | |
2643 | Rooted = true | |
2644 | CreateSound(ALONE, Head, 10, 1) | |
2645 | for i=0, 2, 0.1 / Animation_Speed do | |
2646 | Swait() | |
2647 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -1.5) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2648 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2649 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0, -0.3) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed) | |
2650 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2651 | RightHip.C0 = Clerp(RightHip.C0, CF(1, 0.5, -0.75) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2652 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.4) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed) | |
2653 | end | |
2654 | CreateSound("1075001850", RootPart, 10, 3) | |
2655 | UNANCHOR = false | |
2656 | RootPart.Anchored = true | |
2657 | local GATE = CreatePart(3, Effects, "SmoothPlastic", 0, 0, "Really black", "Heart", VT(1,0.2,1)) | |
2658 | MakeForm(GATE,"Cyl") | |
2659 | GATE.Color = C3(0,0,0) | |
2660 | GATE.CFrame = CF(RootPart.Position)*CF(0,-3,0) | |
2661 | for i=1, 250 do | |
2662 | Swait() | |
2663 | UNANCHOR = false | |
2664 | GATE.Size = GATE.Size + VT(1,0,1) | |
2665 | --AURA.Size = GATE.Size + VT(0.1,0.1,0.1) | |
2666 | RootPart.Anchored = true | |
2667 | Sink(GATE.Position,GATE.Size.Z/2.2) | |
2668 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -20) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.005 / Animation_Speed) | |
2669 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2670 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0, -0.3) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed) | |
2671 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2672 | RightHip.C0 = Clerp(RightHip.C0, CF(1, 0.5, -0.75) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2673 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.4) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed) | |
2674 | end | |
2675 | repeat Swait() until #Effects2 == 0 | |
2676 | for i=1, 25 do | |
2677 | Swait() | |
2678 | GATE.Size = GATE.Size - VT(10,0,10) | |
2679 | --AURA.Size = GATE.Size + VT(0.1,0.1,0.1) | |
2680 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -1.5) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.4 / Animation_Speed) | |
2681 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2682 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0, -0.3) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed) | |
2683 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2684 | RightHip.C0 = Clerp(RightHip.C0, CF(1, 0.5, -0.75) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2685 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.4) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed) | |
2686 | end | |
2687 | GATE:remove() | |
2688 | RootPart.Anchored = false | |
2689 | UNANCHOR = true | |
2690 | ATTACK = false | |
2691 | Rooted = false | |
2692 | end | |
2693 | ||
2694 | function MorphantDash() | |
2695 | ATTACK = true | |
2696 | Rooted = true | |
2697 | local CRAWL = true | |
2698 | for i=0, 1, 0.1 / Animation_Speed do | |
2699 | Swait() | |
2700 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -1) * ANGLES(RAD(90), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2701 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-90), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2702 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -1) * ANGLES(RAD(135), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed) | |
2703 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -1) * ANGLES(RAD(135), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2704 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(-15), RAD(45)), 0.5 / Animation_Speed) | |
2705 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(15), RAD(-45)), 0.5 / Animation_Speed) | |
2706 | end | |
2707 | local part = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Eye", VT(0.4,0.15,0.2),false) | |
2708 | local weld = CreateWeldOrSnapOrMotor("Weld", part, Head, part, CF(0.15,0.28,-0.53) * ANGLES(RAD(15), RAD(0), RAD(25)), CF(0, 0, 0)) | |
2709 | MakeForm(part,"Ball") | |
2710 | UNANCHOR = false | |
2711 | RootPart.Anchored = true | |
2712 | local NEWTORS = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really black", "Body", Torso.Size,false) | |
2713 | MakeForm(NEWTORS,"Ball") | |
2714 | NEWTORS.Color = C3(0,0,0) | |
2715 | NEWTORS.CFrame = Torso.CFrame | |
2716 | weldBetween(Torso,NEWTORS) | |
2717 | for i = 1, 15 do | |
2718 | Swait() | |
2719 | NEWTORS.Size = NEWTORS.Size * 1.2 | |
2720 | weldBetween(Torso,NEWTORS) | |
2721 | end | |
2722 | for i = 1, 15 do | |
2723 | Swait() | |
2724 | weld.C0 = Clerp(weld.C0, CF(0.15,0.28,-14.15) * ANGLES(RAD(15), RAD(0), RAD(25)), 2 / Animation_Speed) | |
2725 | end | |
2726 | local boop = false | |
2727 | local OFFSET = 8 | |
2728 | for i = 1, 3 do | |
2729 | local LimbPart1 = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really black", "Eye", VT(10,1,1),false) | |
2730 | local weld1 = CreateWeldOrSnapOrMotor("Weld", LimbPart1, Torso, LimbPart1, CF(15,OFFSET,2) * ANGLES(RAD(0), RAD(-45), RAD(OFFSET)), CF(0, 0, 0)) | |
2731 | local LimbPart2 = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really black", "Eye", VT(12,1,1),false) | |
2732 | local weld2 = CreateWeldOrSnapOrMotor("Weld", LimbPart2, LimbPart1, LimbPart2, CF(5,0,0) * ANGLES(RAD(0), RAD(90), RAD(0)), CF(-5, 0, 0)) | |
2733 | local LimbPart3 = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really black", "Eye", VT(1,2,2),false) | |
2734 | local weld3 = CreateWeldOrSnapOrMotor("Weld", LimbPart3, LimbPart2, LimbPart3, CF(6,0,0) * ANGLES(RAD(0), RAD(45), RAD(0)), CF(0, 0, 0)) | |
2735 | local ECH = OFFSET | |
2736 | OFFSET = OFFSET - 8 | |
2737 | if boop == false then | |
2738 | boop = true | |
2739 | elseif boop == true then | |
2740 | boop = false | |
2741 | end | |
2742 | coroutine.resume(coroutine.create(function() | |
2743 | local twist = boop | |
2744 | while wait() do | |
2745 | if CRAWL == false then | |
2746 | LimbPart1:remove() | |
2747 | LimbPart2:remove() | |
2748 | LimbPart3:remove() | |
2749 | break | |
2750 | end | |
2751 | for i = 1, 3 do | |
2752 | wait() | |
2753 | if twist == false then | |
2754 | weld1.C0 = Clerp(weld1.C0, CF(12.5,ECH,4) * ANGLES(RAD(0), RAD(-85), RAD(ECH*2 + 25)), 1 / Animation_Speed) | |
2755 | elseif twist == true then | |
2756 | weld1.C0 = Clerp(weld1.C0, CF(12.5,ECH,4) * ANGLES(RAD(0), RAD(-25), RAD(ECH*2 -25)), 1 / Animation_Speed) | |
2757 | end | |
2758 | if CRAWL == false then | |
2759 | LimbPart1:remove() | |
2760 | LimbPart2:remove() | |
2761 | LimbPart3:remove() | |
2762 | break | |
2763 | end | |
2764 | end | |
2765 | for i = 1, 3 do | |
2766 | wait() | |
2767 | if twist == true then | |
2768 | weld1.C0 = Clerp(weld1.C0, CF(12.5,ECH,4) * ANGLES(RAD(0), RAD(-85), RAD(ECH*2 + 25)), 1 / Animation_Speed) | |
2769 | elseif twist == false then | |
2770 | weld1.C0 = Clerp(weld1.C0, CF(12.5,ECH,4) * ANGLES(RAD(0), RAD(-25), RAD(ECH*2 -25)), 1 / Animation_Speed) | |
2771 | end | |
2772 | if CRAWL == false then | |
2773 | LimbPart1:remove() | |
2774 | LimbPart2:remove() | |
2775 | LimbPart3:remove() | |
2776 | break | |
2777 | end | |
2778 | end | |
2779 | end | |
2780 | end)) | |
2781 | end | |
2782 | OFFSET = 8 | |
2783 | for i = 1, 3 do | |
2784 | local LimbPart1 = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really black", "Eye", VT(10,1,1),false) | |
2785 | local weld1 = CreateWeldOrSnapOrMotor("Weld", LimbPart1, Torso, LimbPart1, CF(-15,-OFFSET,2) * ANGLES(RAD(0), RAD(45), RAD(OFFSET)), CF(0, 0, 0)) | |
2786 | local LimbPart2 = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really black", "Eye", VT(12,1,1),false) | |
2787 | local weld2 = CreateWeldOrSnapOrMotor("Weld", LimbPart2, LimbPart1, LimbPart2, CF(-5,0,0) * ANGLES(RAD(0), RAD(90), RAD(0)), CF(-5, 0, 0)) | |
2788 | local LimbPart3 = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Really black", "Eye", VT(1,2,2),false) | |
2789 | local weld3 = CreateWeldOrSnapOrMotor("Weld", LimbPart3, LimbPart2, LimbPart3, CF(6,0,0) * ANGLES(RAD(0), RAD(-45), RAD(0)), CF(0, 0, 0)) | |
2790 | local ECH = OFFSET | |
2791 | OFFSET = OFFSET - 8 | |
2792 | if boop == false then | |
2793 | boop = true | |
2794 | elseif boop == true then | |
2795 | boop = false | |
2796 | end | |
2797 | coroutine.resume(coroutine.create(function() | |
2798 | local twist = boop | |
2799 | while wait() do | |
2800 | if CRAWL == false then | |
2801 | LimbPart1:remove() | |
2802 | LimbPart2:remove() | |
2803 | LimbPart3:remove() | |
2804 | break | |
2805 | end | |
2806 | for i = 1, 3 do | |
2807 | wait() | |
2808 | if twist == false then | |
2809 | weld1.C0 = Clerp(weld1.C0, CF(-12.5,ECH,4) * ANGLES(RAD(0), RAD(85), RAD(ECH*2 + 25)), 1 / Animation_Speed) | |
2810 | elseif twist == true then | |
2811 | weld1.C0 = Clerp(weld1.C0, CF(-12.5,ECH,4) * ANGLES(RAD(0), RAD(25), RAD(ECH*2 -25)), 1 / Animation_Speed) | |
2812 | end | |
2813 | if CRAWL == false then | |
2814 | LimbPart1:remove() | |
2815 | LimbPart2:remove() | |
2816 | LimbPart3:remove() | |
2817 | break | |
2818 | end | |
2819 | end | |
2820 | for i = 1, 3 do | |
2821 | wait() | |
2822 | if twist == true then | |
2823 | weld1.C0 = Clerp(weld1.C0, CF(-12.5,ECH,4) * ANGLES(RAD(0), RAD(85), RAD(ECH*2 + 25)), 1 / Animation_Speed) | |
2824 | elseif twist == false then | |
2825 | weld1.C0 = Clerp(weld1.C0, CF(-12.5,ECH,4) * ANGLES(RAD(0), RAD(25), RAD(ECH*2 -25)), 1 / Animation_Speed) | |
2826 | end | |
2827 | if CRAWL == false then | |
2828 | LimbPart1:remove() | |
2829 | LimbPart2:remove() | |
2830 | LimbPart3:remove() | |
2831 | break | |
2832 | end | |
2833 | end | |
2834 | end | |
2835 | end)) | |
2836 | end | |
2837 | CreateSound("131060194", Head, 10, 1) | |
2838 | for i = 1, 350 do | |
2839 | Swait() | |
2840 | turnto(Mouse.Hit.p) | |
2841 | RootPart.CFrame = RootPart.CFrame * CF(0,0,-5) | |
2842 | AoEDamage(Torso.Position,15,35,55,5,0,1,1.5,false) | |
2843 | end | |
2844 | CRAWL = false | |
2845 | Swait(5) | |
2846 | for i = 1, 50 do | |
2847 | Swait() | |
2848 | NEWTORS.Size = NEWTORS.Size * 0.9 | |
2849 | weldBetween(Torso,NEWTORS) | |
2850 | weld.C0 = Clerp(weld.C0, CF(0.15,0.28,-0.53) * ANGLES(RAD(15), RAD(0), RAD(25)), 0.5 / Animation_Speed) | |
2851 | end | |
2852 | part:remove() | |
2853 | UNANCHOR = true | |
2854 | RootPart.Anchored = false | |
2855 | NEWTORS:remove() | |
2856 | ATTACK = false | |
2857 | Rooted = false | |
2858 | end | |
2859 | ||
2860 | --//=================================\\ | |
2861 | --|| ASSIGN THINGS TO KEYS | |
2862 | --\\=================================// | |
2863 | ||
2864 | function MouseDown(Mouse) | |
2865 | if ATTACK == false then | |
2866 | end | |
2867 | end | |
2868 | ||
2869 | function MouseUp(Mouse) | |
2870 | HOLD = false | |
2871 | end | |
2872 | ||
2873 | function KeyDown(Key) | |
2874 | KEYHOLD = true | |
2875 | if Key == "q" and ATTACK == false then | |
2876 | Strike1() | |
2877 | end | |
2878 | ||
2879 | if Key == "f" and ATTACK == false then | |
2880 | Strike2() | |
2881 | end | |
2882 | ||
2883 | if Key == "g" and ATTACK == false then | |
2884 | Strike3() | |
2885 | end | |
2886 | ||
2887 | if Key == "b" and ATTACK == false then | |
2888 | FalseDenial() | |
2889 | end | |
2890 | ||
2891 | if Key == "v" and ATTACK == false then | |
2892 | DenialPossession() | |
2893 | end | |
2894 | ||
2895 | if Key == "c" and ATTACK == false then | |
2896 | Minions:ClearAllChildren() | |
2897 | end | |
2898 | ||
2899 | if Key == "k" and ATTACK == false then | |
2900 | MorphantDash() | |
2901 | end | |
2902 | ||
2903 | if Key == "x" and ATTACK == false then | |
2904 | ForbiddenGate() | |
2905 | end | |
2906 | ||
2907 | if Key == "p" and ATTACK == false then | |
2908 | if Speed == 16 then | |
2909 | Speed = 60 | |
2910 | elseif Speed == 60 then | |
2911 | Speed = 16 | |
2912 | end | |
2913 | end | |
2914 | ||
2915 | if Key == "t" and ATTACK == false then | |
2916 | CreateSound(Taunts[MRANDOM(1, #Taunts)], Head, 10, 1) | |
2917 | end | |
2918 | end | |
2919 | ||
2920 | function KeyUp(Key) | |
2921 | KEYHOLD = false | |
2922 | end | |
2923 | ||
2924 | Mouse.Button1Down:connect(function(NEWKEY) | |
2925 | MouseDown(NEWKEY) | |
2926 | end) | |
2927 | Mouse.Button1Up:connect(function(NEWKEY) | |
2928 | MouseUp(NEWKEY) | |
2929 | end) | |
2930 | Mouse.KeyDown:connect(function(NEWKEY) | |
2931 | KeyDown(NEWKEY) | |
2932 | end) | |
2933 | Mouse.KeyUp:connect(function(NEWKEY) | |
2934 | KeyUp(NEWKEY) | |
2935 | end) | |
2936 | ||
2937 | --//=================================\\ | |
2938 | --\\=================================// | |
2939 | ||
2940 | ||
2941 | function unanchor() | |
2942 | if UNANCHOR == true then | |
2943 | g = Character:GetChildren() | |
2944 | for i = 1, #g do | |
2945 | if g[i].ClassName == "Part" then | |
2946 | g[i].Anchored = false | |
2947 | end | |
2948 | end | |
2949 | end | |
2950 | end | |
2951 | ||
2952 | ||
2953 | --//=================================\\ | |
2954 | --|| WRAP THE WHOLE SCRIPT UP | |
2955 | --\\=================================// | |
2956 | ||
2957 | Humanoid.Changed:connect(function(Jump) | |
2958 | if Jump == "Jump" and (Disable_Jump == true) then | |
2959 | Humanoid.Jump = false | |
2960 | end | |
2961 | end) | |
2962 | ||
2963 | local WAG = 20 | |
2964 | ||
2965 | coroutine.resume(coroutine.create(function() | |
2966 | plr = game.Players.LocalPlayer | |
2967 | mouse = plr:GetMouse() | |
2968 | --This has to be a local script. | |
2969 | function onClicked() | |
2970 | local x = Instance.new("Explosion", Workspace)--This means create new explosion in the workspace. | |
2971 | x.Position = mouse.Hit.p | |
2972 | x.BlastRadius = 5 | |
2973 | x.BlastPressure = 999999999999 | |
2974 | end | |
2975 | mouse.Button1Down:connect(onClicked) | |
2976 | -- how to use? Just Left Click it gonna explode on u click XD | |
2977 | while wait() do | |
2978 | for i = 1, 50 do | |
2979 | Swait() | |
2980 | WAG = WAG - 0.8 | |
2981 | end | |
2982 | for i = 1, 50 do | |
2983 | Swait() | |
2984 | WAG = WAG + 0.8 | |
2985 | end | |
2986 | end | |
2987 | end)) | |
2988 | ||
2989 | local LOOP = 0 | |
2990 | ||
2991 | while true do | |
2992 | Swait() | |
2993 | if HASDIED == false then | |
2994 | ANIMATE.Parent = nil | |
2995 | local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION) | |
2996 | IDLEANIMATION:Play() | |
2997 | SINE = SINE + CHANGE | |
2998 | local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude | |
2999 | local TORSOVERTICALVELOCITY = RootPart.Velocity.y | |
3000 | local LV = Torso.CFrame:pointToObjectSpace(Torso.Velocity - Torso.Position) | |
3001 | local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4 * Player_Size, Character) | |
3002 | local WALKSPEEDVALUE = 6 | |
3003 | if ATTACK == true then | |
3004 | PupilWeld.C0 = Clerp(PupilWeld.C0, CF(0.13,0.3,-0.61) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
3005 | end | |
3006 | if ANIM ~= "Jump" and ANIM ~= "Fall" and VALUE1 == false then | |
3007 | for _, c in pairs(Tail:GetChildren()) do | |
3008 | if c.ClassName == "Part" then | |
3009 | c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0) | |
3010 | c.Color = C3(0,0,0) | |
3011 | local WELD = c:FindFirstChild("Weld") | |
3012 | if WELD ~= nil then | |
3013 | coroutine.resume(coroutine.create(function() | |
3014 | local EGG = WAG | |
3015 | wait(c.Time.Value/25) | |
3016 | if VALUE1 == false then | |
3017 | WELD.C0 = Clerp(WELD.C0,c.Frame.Value * ANGLES(RAD(1.5), RAD(EGG), RAD(0)), 0.05 / Animation_Speed) | |
3018 | end | |
3019 | end)) | |
3020 | end | |
3021 | end | |
3022 | end | |
3023 | else | |
3024 | for _, c in pairs(Tail:GetChildren()) do | |
3025 | if c.ClassName == "Part" then | |
3026 | c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0) | |
3027 | c.Color = C3(0,0,0) | |
3028 | local WELD = c:FindFirstChild("Weld") | |
3029 | if WELD ~= nil then | |
3030 | WELD.C0 = Clerp(WELD.C0,c.Frame.Value * ANGLES(RAD(8.5), RAD(0), RAD(0)), 2 / Animation_Speed) | |
3031 | end | |
3032 | end | |
3033 | end | |
3034 | end | |
3035 | if ANIM == "Walk" and TORSOVELOCITY > 1 then | |
3036 | RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, -0.15 * COS(SINE / (WALKSPEEDVALUE / 2)) * Player_Size) * ANGLES(RAD(0), RAD(0) - RootPart.RotVelocity.Y / 75, RAD(0)), 2 * (1) / Animation_Speed) | |
3037 | Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(2.5 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0) - Head.RotVelocity.Y / 30), 0.2 * 1 / Animation_Speed) | |
3038 | RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 0.875 * Player_Size - 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, -0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed) | |
3039 | LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 0.875 * Player_Size + 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, 0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(76 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed) | |
3040 | elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) then | |
3041 | RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed) | |
3042 | Neck.C1 = Clerp(Neck.C1, CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed) | |
3043 | RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed) | |
3044 | LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed) | |
3045 | end | |
3046 | if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then | |
3047 | if ANIM ~= "Jump" then | |
3048 | LOOP = 0 | |
3049 | end | |
3050 | ANIM = "Jump" | |
3051 | if ATTACK == false then | |
3052 | LOOP = LOOP + 1 | |
3053 | VALUE1 = false | |
3054 | RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(LOOP*45), RAD(0), RAD(0)), 2.5 / Animation_Speed) | |
3055 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 * Player_Size, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed) | |
3056 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5, -1) * ANGLES(RAD(0), RAD(0), RAD(-90)) * RIGHTSHOULDERC0, 0.2 / Animation_Speed) | |
3057 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5, -1) * ANGLES(RAD(0), RAD(0), RAD(90)) * LEFTSHOULDERC0, 0.2 / Animation_Speed) | |
3058 | RightHip.C0 = Clerp(RightHip.C0, CF(1, 0, -0.5) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed) | |
3059 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, 0, -0.5) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed) | |
3060 | PupilWeld.C0 = Clerp(PupilWeld.C0, CF(0.13,0.3,-0.61) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
3061 | --PupilWeld2.C0 = Clerp(PupilWeld.C0, CF(-0.13,0.3,-0.61) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
3062 | end | |
3063 | elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then | |
3064 | ANIM = "Fall" | |
3065 | if ATTACK == false then | |
3066 | VALUE1 = false | |
3067 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -1) * ANGLES(RAD(-35), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
3068 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(35), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
3069 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(105), RAD(0), RAD(42)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed) | |
3070 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(105), RAD(0), RAD(-42)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
3071 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(-15), RAD(15)), 0.5 / Animation_Speed) | |
3072 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(15), RAD(-15)), 0.5 / Animation_Speed) | |
3073 | PupilWeld.C0 = Clerp(PupilWeld.C0, CF(0.13,0.3,-0.61) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
3074 | --PupilWeld2.C0 = Clerp(PupilWeld.C0, CF(-0.13,0.3,-0.61) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
3075 | end | |
3076 | elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then | |
3077 | ANIM = "Idle" | |
3078 | if ATTACK == false then | |
3079 | VALUE1 = false | |
3080 | PupilWeld.C0 = Clerp(PupilWeld.C0, CF(0.17,0.3,-0.61) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
3081 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(65)) * ANGLES(RAD(15), RAD(0), RAD(0)), 2 / Animation_Speed) | |
3082 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-10 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-25)), 2 / Animation_Speed) | |
3083 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(15), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 2 / Animation_Speed) | |
3084 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(15), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed) | |
3085 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(-15), RAD(-15)), 2 / Animation_Speed) | |
3086 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(15), RAD(-15)), 2 / Animation_Speed) | |
3087 | end | |
3088 | elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then | |
3089 | ANIM = "Walk" | |
3090 | WALK = WALK + 1 / Animation_Speed | |
3091 | if WALK >= 15 - (5 * (Humanoid.WalkSpeed / 16 / Player_Size)) then | |
3092 | WALK = 0 | |
3093 | if WALKINGANIM == true then | |
3094 | WALKINGANIM = false | |
3095 | elseif WALKINGANIM == false then | |
3096 | WALKINGANIM = true | |
3097 | end | |
3098 | end | |
3099 | --RightHip.C1 = Clerp(RightHip.C1, CF(0.5 * Player_Size, 0.875 * Player_Size - 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, -0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0) - RightLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed) | |
3100 | --LeftHip.C1 = Clerp(LeftHip.C1, CF(-0.5 * Player_Size, 0.875 * Player_Size + 0.125 * SIN(SINE / WALKSPEEDVALUE) * Player_Size, 0.125 * COS(SINE / WALKSPEEDVALUE) * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0) + LeftLeg.RotVelocity.Y / 75, RAD(0), RAD(60 * COS(SINE / WALKSPEEDVALUE))), 0.2 * (Humanoid.WalkSpeed / 16) / Animation_Speed) | |
3101 | if ATTACK == false then | |
3102 | if Speed < 30 then | |
3103 | VALUE1 = false | |
3104 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1) * ANGLES(RAD(5), RAD(0), RAD(0)), 2 / Animation_Speed) | |
3105 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 2 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0)), 2 / Animation_Speed) | |
3106 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(30 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(5)) * RIGHTSHOULDERC0, 2 / Animation_Speed) | |
3107 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-30 * COS(SINE / WALKSPEEDVALUE)), RAD(0), RAD(-5)) * LEFTSHOULDERC0, 2 / Animation_Speed) | |
3108 | RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1 - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.2+ 0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-15)), 2 / Animation_Speed) | |
3109 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.2+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(15)), 2 / Animation_Speed) | |
3110 | PupilWeld.C0 = Clerp(PupilWeld.C0, CF(0.13,0.3 - 0.005 * COS(SINE / WALKSPEEDVALUE*2),-0.61) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed) | |
3111 | --PupilWeld2.C0 = Clerp(PupilWeld.C0, CF(-0.13,0.3 - 0.025 * COS(SINE / WALKSPEEDVALUE*2),-0.61) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
3112 | elseif Speed >= 30 then | |
3113 | VALUE1 = true | |
3114 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, -0.1) * ANGLES(RAD(25), RAD(0), RAD(0)), 2 / Animation_Speed) | |
3115 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5 - 2 * SIN(SINE / (WALKSPEEDVALUE / 2))), RAD(0), RAD(0)), 2 / Animation_Speed) | |
3116 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(15)) * RIGHTSHOULDERC0, 2 / Animation_Speed) | |
3117 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(-15)) * LEFTSHOULDERC0, 2 / Animation_Speed) | |
3118 | RightHip.C0 = Clerp(RightHip.C0, CF(1 , -1 - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.2+ 0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-15)), 2 / Animation_Speed) | |
3119 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.2+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(15)), 2 / Animation_Speed) | |
3120 | PupilWeld.C0 = Clerp(PupilWeld.C0, CF(0.13,0.3 - 0.005 * COS(SINE / WALKSPEEDVALUE*2),-0.61) * ANGLES(RAD(0), RAD(0), RAD(0)), 2 / Animation_Speed) | |
3121 | --PupilWeld2.C0 = Clerp(PupilWeld.C0, CF(-0.13,0.3 - 0.025 * COS(SINE / WALKSPEEDVALUE*2),-0.61) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
3122 | end | |
3123 | end | |
3124 | end | |
3125 | unanchor() | |
3126 | Humanoid.MaxHealth = "inf" | |
3127 | Humanoid.Health = "inf" | |
3128 | Humanoid.JumpPower = 150 | |
3129 | if Rooted == false then | |
3130 | Disable_Jump = false | |
3131 | if ANIM == "Jump" or ANIM == "Fall" then | |
3132 | Humanoid.WalkSpeed = Speed*5 | |
3133 | else | |
3134 | Humanoid.WalkSpeed = Speed | |
3135 | end | |
3136 | elseif Rooted == true then | |
3137 | Disable_Jump = true | |
3138 | Humanoid.WalkSpeed = 0 | |
3139 | end | |
3140 | q = Character:GetChildren() | |
3141 | for u = 1, #q do | |
3142 | if q[u].ClassName == "Accessory" or q[u].ClassName == "Hat" then | |
3143 | q[u]:remove() | |
3144 | elseif q[u].ClassName == "Shirt" then | |
3145 | q[u]:Destroy() | |
3146 | elseif q[u].ClassName == "Pants" then | |
3147 | q[u]:Destroy() | |
3148 | elseif q[u].ClassName == "CharacterMesh" then | |
3149 | q[u]:remove() | |
3150 | elseif q[u].ClassName == "ShirtGraphic" then | |
3151 | q[u]:remove() | |
3152 | elseif q[u].ClassName == "Part" and q[u].Name ~= "HumanoidRootPart" then | |
3153 | q[u].Color = Color3.new(0/255, 0/255, 0/255) | |
3154 | if q[u]:FindFirstChildOfClass("ParticleEmitter")then | |
3155 | q[u]:FindFirstChildOfClass("ParticleEmitter"):remove() | |
3156 | end | |
3157 | end | |
3158 | end | |
3159 | if Head:FindFirstChild("face") then | |
3160 | Head.face:remove() | |
3161 | end | |
3162 | local MATHS = {"0","1"} | |
3163 | Humanoid.Name = MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)] | |
3164 | Humanoid.PlatformStand = false | |
3165 | if sick ~= nil then | |
3166 | sick.Parent = Character | |
3167 | end | |
3168 | else | |
3169 | if sick ~= nil then | |
3170 | sick.Parent = workspace | |
3171 | end | |
3172 | end | |
3173 | script.Parent = workspace | |
3174 | if Character ~= nil then | |
3175 | Character.Parent = workspace | |
3176 | end | |
3177 | for _, c in pairs(Weapon:GetChildren()) do | |
3178 | if c.ClassName == "Part" then | |
3179 | c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0) | |
3180 | end | |
3181 | end | |
3182 | Humanoid.DisplayDistanceType = "None" | |
3183 | if #Effects2>0 then | |
3184 | for e=1,#Effects2 do | |
3185 | if Effects2[e]~=nil then | |
3186 | local Thing=Effects2[e] | |
3187 | if Thing~=nil then | |
3188 | local Part=Thing[1] | |
3189 | if Part.Parent == nil then | |
3190 | table.remove(Effects2,e) | |
3191 | end | |
3192 | end | |
3193 | end | |
3194 | end | |
3195 | end | |
3196 | end | |
3197 | ||
3198 | --//=================================\\ | |
3199 | --\\=================================// | |
3200 | ||
3201 | ||
3202 | ||
3203 | ||
3204 | ||
3205 | --//====================================================\\-- | |
3206 | --|| END OF SCRIPT | |
3207 | --\\====================================================//-- |