SHOW:
|
|
- or go back to the newest paste.
1 | script.Name = "Banisher Gun V3 / 1" | |
2 | --//====================================================\\-- | |
3 | --|| CREATED BY SHACKLUSTER Edit By NameClan | |
4 | --\\====================================================//-- | |
5 | ||
6 | script:ClearAllChildren() | |
7 | wait(0.2) | |
8 | -- This script has been converted to FE by iPxter | |
9 | ||
10 | ||
11 | if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end | |
12 | - | Player = game:GetService("Players").LocalPlayer |
12 | + | local Player,Mouse,mouse,UserInputService,ContextActionService = owner |
13 | do | |
14 | print("FE Compatibility code by Mokiros | Translated to FE by iPxter") | |
15 | script.Parent = Player.Character | |
16 | ||
17 | --RemoteEvent for communicating | |
18 | - | Mouse = Player:GetMouse() |
18 | + | local Event = Instance.new("RemoteEvent") |
19 | Event.Name = "UserInput_Event" | |
20 | ||
21 | --Fake event to make stuff like Mouse.KeyDown work | |
22 | local function fakeEvent() | |
23 | local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end} | |
24 | t.connect = t.Connect | |
25 | return t | |
26 | end | |
27 | ||
28 | --Creating fake input objects with fake variables | |
29 | local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()} | |
30 | local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()} | |
31 | local CAS = {Actions={},BindAction=function(self,name,fun,touch,...) | |
32 | CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil | |
33 | end} | |
34 | --Merged 2 functions into one by checking amount of arguments | |
35 | CAS.UnbindAction = CAS.BindAction | |
36 | ||
37 | --This function will trigger the events that have been :Connect()'ed | |
38 | local function te(self,ev,...) | |
39 | local t = m[ev] | |
40 | if t and t._fakeEvent and t.Function then | |
41 | t.Function(...) | |
42 | end | |
43 | end | |
44 | m.TrigEvent = te | |
45 | UIS.TrigEvent = te | |
46 | ||
47 | Event.OnServerEvent:Connect(function(plr,io) | |
48 | if plr~=Player then return end | |
49 | if io.isMouse then | |
50 | m.Target = io.Target | |
51 | m.Hit = io.Hit | |
52 | else | |
53 | local b = io.UserInputState == Enum.UserInputState.Begin | |
54 | if io.UserInputType == Enum.UserInputType.MouseButton1 then | |
55 | return m:TrigEvent(b and "Button1Down" or "Button1Up") | |
56 | end | |
57 | for _,t in pairs(CAS.Actions) do | |
58 | for _,k in pairs(t.Keys) do | |
59 | if k==io.KeyCode then | |
60 | t.Function(t.Name,io.UserInputState,io) | |
61 | end | |
62 | end | |
63 | end | |
64 | m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower()) | |
65 | UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false) | |
66 | end | |
67 | end) | |
68 | Event.Parent = NLS([==[ | |
69 | local Player = game:GetService("Players").LocalPlayer | |
70 | local Event = script:WaitForChild("UserInput_Event") | |
71 | ||
72 | local UIS = game:GetService("UserInputService") | |
73 | local input = function(io,a) | |
74 | if a then return end | |
75 | --Since InputObject is a client-side instance, we create and pass table instead | |
76 | Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState}) | |
77 | end | |
78 | UIS.InputBegan:Connect(input) | |
79 | UIS.InputEnded:Connect(input) | |
80 | ||
81 | local Mouse = Player:GetMouse() | |
82 | local h,t | |
83 | --Give the server mouse data 30 times every second, but only if the values changed | |
84 | --If player is not moving their mouse, client won't fire events | |
85 | while wait(1/30) do | |
86 | if h~=Mouse.Hit or t~=Mouse.Target then | |
87 | h,t=Mouse.Hit,Mouse.Target | |
88 | Event:FireServer({isMouse=true,Target=t,Hit=h}) | |
89 | end | |
90 | end]==],Player.Character) | |
91 | Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS | |
92 | end | |
93 | ||
94 | local LIGHTHITSOUNDS = {"1177780949","1177781153","1177784554"} | |
95 | local FireSound = "904051531" | |
96 | local LAUGHS = {834001699,834001752,834001797,834001828} | |
97 | Player = owner | |
98 | PlayerGui = Player.PlayerGui | |
99 | Cam = workspace.CurrentCamera | |
100 | Backpack = Player.Backpack | |
101 | Character = Player.Character | |
102 | Humanoid = Character.Humanoid | |
103 | RootPart = Character["HumanoidRootPart"] | |
104 | Torso = Character["Torso"] | |
105 | Head = Character["Head"] | |
106 | RightArm = Character["Right Arm"] | |
107 | LeftArm = Character["Left Arm"] | |
108 | RightLeg = Character["Right Leg"] | |
109 | LeftLeg = Character["Left Leg"] | |
110 | local sick = Instance.new("Sound",Character) | |
111 | q = Character:GetChildren() | |
112 | for u = 1, #q do | |
113 | if q[u].ClassName == "Accessory" then | |
114 | q[u]:Destroy() | |
115 | elseif q[u].ClassName == "CharacterMesh" then | |
116 | q[u]:Destroy() | |
117 | end | |
118 | end | |
119 | Head.face:Destroy() | |
120 | Head.Mesh:Destroy() | |
121 | newmesh = Instance.new("SpecialMesh") | |
122 | newmesh.Scale = Vector3.new(1.1,1.1,1.1) | |
123 | newmesh.MeshId = "http://www.roblox.com/asset/?id=0" | |
124 | newmesh.TextureId = "http://www.roblox.com/asset/?id=0" | |
125 | newmesh.Parent = Head | |
126 | ||
127 | local function weldBetween(a, b) | |
128 | local weldd = Instance.new("ManualWeld") | |
129 | weldd.Part0 = a | |
130 | weldd.Part1 = b | |
131 | weldd.C0 = CFrame.new() | |
132 | weldd.C1 = b.CFrame:inverse() * a.CFrame | |
133 | weldd.Parent = a | |
134 | return weldd | |
135 | end | |
136 | RootJoint = RootPart["RootJoint"] | |
137 | Neck = Torso["Neck"] | |
138 | RightShoulder = Torso["Right Shoulder"] | |
139 | LeftShoulder = Torso["Left Shoulder"] | |
140 | RightHip = Torso["Right Hip"] | |
141 | LeftHip = Torso["Left Hip"] | |
142 | local TIME = 0 | |
143 | local sick = Instance.new("Sound",Torso) | |
144 | ||
145 | IT = Instance.new | |
146 | CF = CFrame.new | |
147 | VT = Vector3.new | |
148 | RAD = math.rad | |
149 | C3 = Color3.new | |
150 | UD2 = UDim2.new | |
151 | BRICKC = BrickColor.new | |
152 | ANGLES = CFrame.Angles | |
153 | EULER = CFrame.fromEulerAnglesXYZ | |
154 | COS = math.cos | |
155 | ACOS = math.acos | |
156 | SIN = math.sin | |
157 | ASIN = math.asin | |
158 | ABS = math.abs | |
159 | MRANDOM = math.random | |
160 | FLOOR = math.floor | |
161 | ||
162 | ||
163 | it = Instance.new | |
164 | ||
165 | function part(formfactor,parent,material,reflectance,transparency,brickcolor,name,size) | |
166 | local fp=it("Part") | |
167 | fp.formFactor=formfactor | |
168 | fp.Parent=parent | |
169 | fp.Reflectance=reflectance | |
170 | fp.Transparency=transparency | |
171 | fp.CanCollide=false | |
172 | fp.Locked=true | |
173 | fp.BrickColor=BrickColor.new(tostring(brickcolor)) | |
174 | fp.Name=name | |
175 | fp.Size=size | |
176 | fp.Position=Character.Torso.Position | |
177 | fp.Material=material | |
178 | fp:BreakJoints() | |
179 | return fp | |
180 | end | |
181 | ||
182 | function mesh(Mesh,part,meshtype,meshid,offset,scale) | |
183 | local mesh=it(Mesh) | |
184 | mesh.Parent=part | |
185 | if Mesh=="SpecialMesh" then | |
186 | mesh.MeshType=meshtype | |
187 | mesh.MeshId=meshid | |
188 | end | |
189 | mesh.Offset=offset | |
190 | mesh.Scale=scale | |
191 | return mesh | |
192 | end | |
193 | ||
194 | function weld(parent,part0,part1,c0,c1) | |
195 | local weld=it("Weld") | |
196 | weld.Parent=parent | |
197 | weld.Part0=part0 | |
198 | weld.Part1=part1 | |
199 | weld.C0=c0 | |
200 | weld.C1=c1 | |
201 | return weld | |
202 | end | |
203 | ||
204 | q = "Really black" | |
205 | Claw1=part(Enum.FormFactor.Custom,Character,Enum.Material.SmoothPlastic,0,0,q,"Claw",Vector3.new(0.400000006, 0.400000036, 0.400000006)) | |
206 | Claw1weld=weld(Character,RightArm,Claw1,CFrame.new(0.25, -2.3, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),CFrame.new(0.00980377197, -0.0303750038, 0.719708443, -5, 3.10001451e-005, 3.09999632e-005, 3.10008145e-005, 0, 0, 0, -4, -1)) | |
207 | mesh("SpecialMesh",Claw1,Enum.MeshType.FileMesh,"http://www.roblox.com/asset/?id=10681506",Vector3.new(0, 0, 0),Vector3.new(-1,-1.8,-1)) | |
208 | Claw2=part(Enum.FormFactor.Custom,Character,Enum.Material.SmoothPlastic,0,0,q,"Claw",Vector3.new(0.400000006, 0.400000036, 0.400000006)) | |
209 | Claw2weld=weld(Character,LeftArm,Claw2,CFrame.new(-0.25, -2.3, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),CFrame.new(0.00980377197, -0.0303750038, 0.719708443, 5, 3.10001451e-005, 3.09999632e-005, 3.10008145e-005, 0, 0, 0, -4, -1)) | |
210 | mesh("SpecialMesh",Claw2,Enum.MeshType.FileMesh,"http://www.roblox.com/asset/?id=10681506",Vector3.new(0, 0, 0),Vector3.new(-1,-1.8,-1)) | |
211 | ||
212 | --//=================================\\ | |
213 | --|| USEFUL VALUES | |
214 | --\\=================================// | |
215 | ||
216 | Animation_Speed = 3 | |
217 | local FORCERESET = false | |
218 | Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60) | |
219 | local Speed = 16 | |
220 | local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) | |
221 | local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) | |
222 | local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) | |
223 | local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) | |
224 | local DAMAGEMULTIPLIER = 1 | |
225 | local ANIM = "Idle" | |
226 | local ATTACK = false | |
227 | local EQUIPPED = false | |
228 | local HOLD = false | |
229 | local COMBO = 1 | |
230 | local COMBO2 = 1 | |
231 | local Rooted = false | |
232 | local SINE = 0 | |
233 | local STAGGERHITANIM = false | |
234 | local STAGGERANIM = false | |
235 | local KEYHOLD = false | |
236 | local CHANGE = 2 / Animation_Speed | |
237 | local WALKINGANIM = false | |
238 | local VALUE1 = false | |
239 | local NOWALK = false | |
240 | local VALUE2 = false | |
241 | local INTRO = false | |
242 | local TRANSFORMED = false | |
243 | local ROBLOXIDLEANIMATION = IT("Animation") | |
244 | ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation" | |
245 | ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571" | |
246 | --ROBLOXIDLEANIMATION.Parent = Humanoid | |
247 | local WEAPONGUI = IT("ScreenGui", PlayerGui) | |
248 | WEAPONGUI.Name = "BanishV3Gui" | |
249 | local Weapon = IT("Model") | |
250 | Weapon.Name = "Adds" | |
251 | local Effects = IT("Folder", Weapon) | |
252 | Effects.Name = "Effects" | |
253 | local ANIMATOR = Humanoid.Animator | |
254 | local ANIMATE = Character:FindFirstChild("Animate") | |
255 | local UNANCHOR = true | |
256 | local TOBANISH = {} | |
257 | local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"} | |
258 | local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"} | |
259 | local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"} | |
260 | local HITBLOCKSOUNDS = {"199148933", "199148947"} | |
261 | script.Parent = PlayerGui | |
262 | ||
263 | --//=================================\\ | |
264 | --\\=================================// | |
265 | ||
266 | ||
267 | --//=================================\\ | |
268 | --|| SAZERENOS' ARTIFICIAL HEARTBEAT | |
269 | --\\=================================// | |
270 | ||
271 | ||
272 | Class_Name = "Beserker" | |
273 | Weapon_Name = "Claws" | |
274 | ||
275 | Custom_Colors = { | |
276 | Custom_Color_1 = BRICKC("Institutional white"); --1st color for the weapon. | |
277 | Custom_Color_2 = BRICKC("Institutional white"); --2nd color for the weapon. | |
278 | ||
279 | Custom_Color_3 = BRICKC("Institutional white"); --Color for the abilities. | |
280 | Custom_Color_4 = BRICKC("Institutional white"); --Color for the secondary bar. | |
281 | Custom_Color_5 = BRICKC("Institutional white"); --Color for the mana bar. | |
282 | Custom_Color_6 = BRICKC("Institutional white"); --Color for the health bar. | |
283 | Custom_Color_7 = BRICKC("Institutional white"); --Color for the stun bar. | |
284 | ||
285 | Custom_Color_8 = BRICKC("Institutional white"); --Background for the mana bar. | |
286 | Custom_Color_9 = BRICKC("Institutional white"); --Background for the secondary mana bar. | |
287 | Custom_Color_10 = BRICKC("Institutional white"); --Background for the stun bar. | |
288 | Custom_Color_11 = BRICKC("Institutional white"); --Background for the health bar. | |
289 | Custom_Color_12 = BRICKC("Institutional white"); --Background for the abilities. | |
290 | } | |
291 | ||
292 | Mana_Bar_Background_Transparency = 0 --Transparency for the background of the mana bar. | |
293 | Secondary_Mana_Bar_Background_Transparency = 0 --Transparency for the background of the secondary mana bar. | |
294 | Health_Bar_Background_Transparency = 0 --Transparency for the background of the health bar. | |
295 | Stun_Bar_Background_Transparency = 0 --Transparency for the background of the stun bar. | |
296 | Ability_Background_Transparency = 0 --Transparency for the background of the abilities. | |
297 | Stat_Background_Transparency = 0 --Transparency for the background of the stats. | |
298 | ||
299 | Player_Size = 1 --Size of the player. | |
300 | Animation_Speed = 2 | |
301 | Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60) | |
302 | ||
303 | Enable_Gui = false --Enables or disables the Weapon Gui. Also functions as hiding or showing the Gui. | |
304 | Enable_Stats = false --Enables or disables stats. | |
305 | Put_Stats_In_Character = false --Places stats in Character. | |
306 | Enable_Stagger_Hit = false --Enables or disables staggering when hitting a hitbox of some sort. | |
307 | Play_Hitbox_Hit_Sound = true --Plays a hit sound when hitting a hitbox of some sort. | |
308 | Enable_Stagger = false --Enables or disables staggering. | |
309 | Enable_Stun = false --Enables or disables the stun mechanic. | |
310 | Enable_Abilities = false --Enables abilites with cooldowns and mana costs. | |
311 | Enable_Secondary_Bar = false --Enables the secondary mana bar, if true. | |
312 | ||
313 | Start_Equipped = false --Starts the player equipped with their weapon. | |
314 | Start_Equipped_With_Equipped_Animation = false --Used in conjunction with the above option. Starts your equip animation. | |
315 | Can_Equip_Or_Unequip = true --Enables or disables the ability to unequip or equip your weapon. | |
316 | Disable_Animator = true --Disables the Animator in the humanoid. | |
317 | Disable_Animate = true --Disables the Animate script in the character. | |
318 | Disable_Moving_Arms = false --Keeps the arms from moving around. | |
319 | Use_Motors_Instead_Of_Welds = false --Uses motors instead of welds to disable moving arms. | |
320 | Walkspeed_Depends_On_Movement_Value = false --Walkspeed depends on movement value. Self-explanatory. | |
321 | Disable_Jump = false --Disables jumping. | |
322 | Use_HopperBin = true --Uses a hopperbin to do things. | |
323 | ||
324 | Player_Size = 1 --Size of the player. | |
325 | Animation_Speed = 2 | |
326 | Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60) | |
327 | ||
328 | Cooldown_1 = 0 --Cooldowns for abilites. | |
329 | Cooldown_2 = 0 | |
330 | Cooldown_3 = 0 | |
331 | Cooldown_4 = 0 | |
332 | Skill_1_Mana_Cost = 0 --How much mana is required to use the skill. | |
333 | Skill_2_Mana_Cost = 0 | |
334 | Skill_3_Mana_Cost = 0 | |
335 | Skill_4_Mana_Cost = 0 | |
336 | Max_Mana = 0 --Maximum amount of mana you can have. | |
337 | Max_Secondary_Mana = 0 --Maximum amount of secondary mana you can have. | |
338 | Mana_Name = "Mana" --Name for the mana bar. | |
339 | Secondary_Mana_Name = "Block" --Name for the secondary mana bar. | |
340 | Max_Stun = 1 --Maximum amount of stun you can have. | |
341 | Recover_Mana = 0 --How much mana you gain. | |
342 | Mana_Regen_Mode = "1" --Basically switches from one mana regen system to another. | |
343 | Secondary_Mana_Regen_Mode = "1" --Basically switches from one secondary mana regen system to another. | |
344 | Stun_Lose_Mode = "1" --Basically switches from one secondary stun loss system to another. | |
345 | Recover_Secondary_Mana = 0 --How much secondary mana you gain. | |
346 | Lose_Stun = 0 --How much stun you lose. | |
347 | Stun_Wait = 0 --Delay between losing stun. | |
348 | Mana_Wait = 0 --Delay between gaining mana. | |
349 | Secondary_Mana_Wait = 0 --Delay between gaining secondary mana. | |
350 | Menu_Update_Speed = 0 --How fast the Weapon Gui will update. | |
351 | Constant_Update = false --Removes the delay between updating the Weapon GUI. | |
352 | Show_Stats = false --Hides or shows stats. | |
353 | Stat_Offset = 0.74 --For cosmetic purposes. {0.74, 0.78} | |
354 | ||
355 | ArtificialHB = Instance.new("BindableEvent", script) | |
356 | ArtificialHB.Name = "ArtificialHB" | |
357 | ||
358 | script:WaitForChild("ArtificialHB") | |
359 | ||
360 | frame = Frame_Speed | |
361 | tf = 0 | |
362 | allowframeloss = false | |
363 | tossremainder = false | |
364 | lastframe = tick() | |
365 | script.ArtificialHB:Fire() | |
366 | ||
367 | game:GetService("RunService").Heartbeat:connect(function(s, p) | |
368 | tf = tf + s | |
369 | if tf >= frame then | |
370 | if allowframeloss then | |
371 | script.ArtificialHB:Fire() | |
372 | lastframe = tick() | |
373 | else | |
374 | for i = 1, math.floor(tf / frame) do | |
375 | script.ArtificialHB:Fire() | |
376 | end | |
377 | lastframe = tick() | |
378 | end | |
379 | if tossremainder then | |
380 | tf = 0 | |
381 | else | |
382 | tf = tf - frame * math.floor(tf / frame) | |
383 | end | |
384 | end | |
385 | end) | |
386 | ||
387 | --//=================================\\ | |
388 | --\\=================================// | |
389 | ||
390 | --//=================================\\ | |
391 | --|| SOME FUNCTIONS | |
392 | --\\=================================// | |
393 | ||
394 | function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS) | |
395 | return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS) | |
396 | end | |
397 | ||
398 | function PositiveAngle(NUMBER) | |
399 | if NUMBER >= 0 then | |
400 | NUMBER = 0 | |
401 | end | |
402 | return NUMBER | |
403 | end | |
404 | ||
405 | function NegativeAngle(NUMBER) | |
406 | if NUMBER <= 0 then | |
407 | NUMBER = 0 | |
408 | end | |
409 | return NUMBER | |
410 | end | |
411 | ||
412 | function Swait(NUMBER) | |
413 | if NUMBER == 0 or NUMBER == nil then | |
414 | ArtificialHB.Event:wait() | |
415 | else | |
416 | for i = 1, NUMBER do | |
417 | ArtificialHB.Event:wait() | |
418 | end | |
419 | end | |
420 | end | |
421 | ||
422 | function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET) | |
423 | local NEWMESH = IT(MESH) | |
424 | if MESH == "SpecialMesh" then | |
425 | NEWMESH.MeshType = MESHTYPE | |
426 | if MESHID ~= "nil" and MESHID ~= "" then | |
427 | NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID | |
428 | end | |
429 | if TEXTUREID ~= "nil" and TEXTUREID ~= "" then | |
430 | NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID | |
431 | end | |
432 | end | |
433 | NEWMESH.Offset = OFFSET or VT(0, 0, 0) | |
434 | NEWMESH.Scale = SCALE | |
435 | NEWMESH.Parent = PARENT | |
436 | return NEWMESH | |
437 | end | |
438 | ||
439 | function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR) | |
440 | local NEWPART = IT("Part") | |
441 | NEWPART.formFactor = FORMFACTOR | |
442 | NEWPART.Reflectance = REFLECTANCE | |
443 | NEWPART.Transparency = TRANSPARENCY | |
444 | NEWPART.CanCollide = false | |
445 | NEWPART.Locked = true | |
446 | NEWPART.Anchored = true | |
447 | if ANCHOR == false then | |
448 | NEWPART.Anchored = false | |
449 | end | |
450 | NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR)) | |
451 | NEWPART.Name = NAME | |
452 | NEWPART.Size = SIZE | |
453 | NEWPART.Position = Torso.Position | |
454 | NEWPART.Material = MATERIAL | |
455 | NEWPART:BreakJoints() | |
456 | NEWPART.Parent = PARENT | |
457 | return NEWPART | |
458 | end | |
459 | ||
460 | local function weldBetween(a, b) | |
461 | local weldd = Instance.new("ManualWeld") | |
462 | weldd.Part0 = a | |
463 | weldd.Part1 = b | |
464 | weldd.C0 = CFrame.new() | |
465 | weldd.C1 = b.CFrame:inverse() * a.CFrame | |
466 | weldd.Parent = a | |
467 | return weldd | |
468 | end | |
469 | ||
470 | ||
471 | function QuaternionFromCFrame(cf) | |
472 | local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() | |
473 | local trace = m00 + m11 + m22 | |
474 | if trace > 0 then | |
475 | local s = math.sqrt(1 + trace) | |
476 | local recip = 0.5 / s | |
477 | return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5 | |
478 | else | |
479 | local i = 0 | |
480 | if m11 > m00 then | |
481 | i = 1 | |
482 | end | |
483 | if m22 > (i == 0 and m00 or m11) then | |
484 | i = 2 | |
485 | end | |
486 | if i == 0 then | |
487 | local s = math.sqrt(m00 - m11 - m22 + 1) | |
488 | local recip = 0.5 / s | |
489 | return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip | |
490 | elseif i == 1 then | |
491 | local s = math.sqrt(m11 - m22 - m00 + 1) | |
492 | local recip = 0.5 / s | |
493 | return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip | |
494 | elseif i == 2 then | |
495 | local s = math.sqrt(m22 - m00 - m11 + 1) | |
496 | local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip | |
497 | end | |
498 | end | |
499 | end | |
500 | ||
501 | function QuaternionToCFrame(px, py, pz, x, y, z, w) | |
502 | local xs, ys, zs = x + x, y + y, z + z | |
503 | local wx, wy, wz = w * xs, w * ys, w * zs | |
504 | local xx = x * xs | |
505 | local xy = x * ys | |
506 | local xz = x * zs | |
507 | local yy = y * ys | |
508 | local yz = y * zs | |
509 | local zz = z * zs | |
510 | 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)) | |
511 | end | |
512 | ||
513 | function QuaternionSlerp(a, b, t) | |
514 | local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4] | |
515 | local startInterp, finishInterp; | |
516 | if cosTheta >= 0.0001 then | |
517 | if (1 - cosTheta) > 0.0001 then | |
518 | local theta = ACOS(cosTheta) | |
519 | local invSinTheta = 1 / SIN(theta) | |
520 | startInterp = SIN((1 - t) * theta) * invSinTheta | |
521 | finishInterp = SIN(t * theta) * invSinTheta | |
522 | else | |
523 | startInterp = 1 - t | |
524 | finishInterp = t | |
525 | end | |
526 | else | |
527 | if (1 + cosTheta) > 0.0001 then | |
528 | local theta = ACOS(-cosTheta) | |
529 | local invSinTheta = 1 / SIN(theta) | |
530 | startInterp = SIN((t - 1) * theta) * invSinTheta | |
531 | finishInterp = SIN(t * theta) * invSinTheta | |
532 | else | |
533 | startInterp = t - 1 | |
534 | finishInterp = t | |
535 | end | |
536 | end | |
537 | 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 | |
538 | end | |
539 | ||
540 | function Clerp(a, b, t) | |
541 | local qa = {QuaternionFromCFrame(a)} | |
542 | local qb = {QuaternionFromCFrame(b)} | |
543 | local ax, ay, az = a.x, a.y, a.z | |
544 | local bx, by, bz = b.x, b.y, b.z | |
545 | local _t = 1 - t | |
546 | return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t)) | |
547 | end | |
548 | ||
549 | function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME) | |
550 | local frame = IT("Frame") | |
551 | frame.BackgroundTransparency = TRANSPARENCY | |
552 | frame.BorderSizePixel = BORDERSIZEPIXEL | |
553 | frame.Position = POSITION | |
554 | frame.Size = SIZE | |
555 | frame.BackgroundColor3 = COLOR | |
556 | frame.BorderColor3 = BORDERCOLOR | |
557 | frame.Name = NAME | |
558 | frame.Parent = PARENT | |
559 | return frame | |
560 | end | |
561 | ||
562 | ||
563 | function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME) | |
564 | local label = IT("TextLabel") | |
565 | label.BackgroundTransparency = 1 | |
566 | label.Size = UD2(1, 0, 1, 0) | |
567 | label.Position = UD2(0, 0, 0, 0) | |
568 | label.TextColor3 = TEXTCOLOR | |
569 | label.TextStrokeTransparency = STROKETRANSPARENCY | |
570 | label.TextTransparency = TRANSPARENCY | |
571 | label.FontSize = TEXTFONTSIZE | |
572 | label.Font = TEXTFONT | |
573 | label.BorderSizePixel = BORDERSIZEPIXEL | |
574 | label.TextScaled = false | |
575 | label.Text = TEXT | |
576 | label.Name = NAME | |
577 | label.Parent = PARENT | |
578 | return label | |
579 | end | |
580 | ||
581 | function NoOutlines(PART) | |
582 | PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10 | |
583 | end | |
584 | ||
585 | function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1) | |
586 | local NEWWELD = IT(TYPE) | |
587 | NEWWELD.Part0 = PART0 | |
588 | NEWWELD.Part1 = PART1 | |
589 | NEWWELD.C0 = C0 | |
590 | NEWWELD.C1 = C1 | |
591 | NEWWELD.Parent = PARENT | |
592 | return NEWWELD | |
593 | end | |
594 | ||
595 | local S = IT("Sound") | |
596 | function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP) | |
597 | local NEWSOUND = nil | |
598 | coroutine.resume(coroutine.create(function() | |
599 | NEWSOUND = S:Clone() | |
600 | NEWSOUND.Parent = PARENT | |
601 | NEWSOUND.Volume = VOLUME | |
602 | NEWSOUND.Pitch = PITCH | |
603 | NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID | |
604 | NEWSOUND:play() | |
605 | if DOESLOOP == true then | |
606 | NEWSOUND.Looped = true | |
607 | else | |
608 | repeat wait(1) until NEWSOUND.Playing == false or NEWSOUND.Parent ~= PARENT | |
609 | NEWSOUND:remove() | |
610 | end | |
611 | end)) | |
612 | return NEWSOUND | |
613 | end | |
614 | ||
615 | function CFrameFromTopBack(at, top, back) | |
616 | local right = top:Cross(back) | |
617 | 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) | |
618 | end | |
619 | ||
620 | --WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil}) | |
621 | function WACKYEFFECT(Table) | |
622 | local TYPE = (Table.EffectType or "Sphere") | |
623 | local SIZE = (Table.Size or VT(1,1,1)) | |
624 | local ENDSIZE = (Table.Size2 or VT(0,0,0)) | |
625 | local TRANSPARENCY = (Table.Transparency or 0) | |
626 | local ENDTRANSPARENCY = (Table.Transparency2 or 1) | |
627 | local CFRAME = (Table.CFrame or Torso.CFrame) | |
628 | local MOVEDIRECTION = (Table.MoveToPos or nil) | |
629 | local ROTATION1 = (Table.RotationX or 0) | |
630 | local ROTATION2 = (Table.RotationY or 0) | |
631 | local ROTATION3 = (Table.RotationZ or 0) | |
632 | local MATERIAL = (Table.Material or "Neon") | |
633 | local COLOR = (Table.Color or C3(1,1,1)) | |
634 | local TIME = (Table.Time or 45) | |
635 | local SOUNDID = (Table.SoundID or nil) | |
636 | local SOUNDPITCH = (Table.SoundPitch or nil) | |
637 | local SOUNDVOLUME = (Table.SoundVolume or nil) | |
638 | coroutine.resume(coroutine.create(function() | |
639 | local PLAYSSOUND = false | |
640 | local SOUND = nil | |
641 | local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true) | |
642 | if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then | |
643 | PLAYSSOUND = true | |
644 | SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false) | |
645 | end | |
646 | EFFECT.Color = COLOR | |
647 | local MSH = nil | |
648 | if TYPE == "Sphere" then | |
649 | MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0)) | |
650 | elseif TYPE == "Block" then | |
651 | MSH = IT("BlockMesh",EFFECT) | |
652 | MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X) | |
653 | elseif TYPE == "Wave" then | |
654 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8)) | |
655 | elseif TYPE == "Ring" then | |
656 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0)) | |
657 | elseif TYPE == "Slash" then | |
658 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0)) | |
659 | elseif TYPE == "Round Slash" then | |
660 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0)) | |
661 | elseif TYPE == "Swirl" then | |
662 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0)) | |
663 | elseif TYPE == "Skull" then | |
664 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0)) | |
665 | elseif TYPE == "Crystal" then | |
666 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0)) | |
667 | end | |
668 | if MSH ~= nil then | |
669 | local MOVESPEED = nil | |
670 | if MOVEDIRECTION ~= nil then | |
671 | MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME | |
672 | end | |
673 | local GROWTH = SIZE - ENDSIZE | |
674 | local TRANS = TRANSPARENCY - ENDTRANSPARENCY | |
675 | if TYPE == "Block" then | |
676 | EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) | |
677 | else | |
678 | EFFECT.CFrame = CFRAME | |
679 | end | |
680 | for LOOP = 1, TIME+1 do | |
681 | Swait() | |
682 | MSH.Scale = MSH.Scale - GROWTH/TIME | |
683 | if TYPE == "Wave" then | |
684 | MSH.Offset = VT(0,0,-MSH.Scale.X/8) | |
685 | end | |
686 | EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME | |
687 | if TYPE == "Block" then | |
688 | EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) | |
689 | else | |
690 | EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3)) | |
691 | end | |
692 | if MOVEDIRECTION ~= nil then | |
693 | local ORI = EFFECT.Orientation | |
694 | EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED) | |
695 | EFFECT.Orientation = ORI | |
696 | end | |
697 | end | |
698 | if PLAYSSOUND == false then | |
699 | EFFECT:remove() | |
700 | else | |
701 | SOUND.Stopped:Connect(function() | |
702 | EFFECT:remove() | |
703 | end) | |
704 | end | |
705 | else | |
706 | if PLAYSSOUND == false then | |
707 | EFFECT:remove() | |
708 | else | |
709 | repeat Swait() until SOUND.Playing == false | |
710 | EFFECT:remove() | |
711 | end | |
712 | end | |
713 | end)) | |
714 | end | |
715 | ||
716 | function MakeForm(PART,TYPE) | |
717 | if TYPE == "Cyl" then | |
718 | local MSH = IT("CylinderMesh",PART) | |
719 | elseif TYPE == "Ball" then | |
720 | local MSH = IT("SpecialMesh",PART) | |
721 | MSH.MeshType = "Sphere" | |
722 | elseif TYPE == "Wedge" then | |
723 | local MSH = IT("SpecialMesh",PART) | |
724 | MSH.MeshType = "Wedge" | |
725 | end | |
726 | end | |
727 | ||
728 | local asd = Instance.new("ParticleEmitter") | |
729 | asd.Color = ColorSequence.new(Color3.new(0.5, 0, 0), Color3.new(.3, 0, 0)) | |
730 | asd.LightEmission = .1 | |
731 | asd.Texture = "http://www.roblox.com/asset/?ID=291880914" | |
732 | aaa = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.6),NumberSequenceKeypoint.new(1, 2)}) | |
733 | bbb = NumberSequence.new({NumberSequenceKeypoint.new(0, 1),NumberSequenceKeypoint.new(0.0636, 0), NumberSequenceKeypoint.new(1, 1)}) | |
734 | asd.Transparency = bbb | |
735 | asd.Size = aaa | |
736 | asd.ZOffset = .9 | |
737 | asd.Acceleration = Vector3.new(0, -15, 0) | |
738 | asd.LockedToPart = false | |
739 | asd.EmissionDirection = "Back" | |
740 | asd.Lifetime = NumberRange.new(1, 2) | |
741 | asd.Rotation = NumberRange.new(-100, 100) | |
742 | asd.RotSpeed = NumberRange.new(-100, 100) | |
743 | asd.Speed = NumberRange.new(10) | |
744 | asd.Enabled = false | |
745 | asd.VelocitySpread = 999 | |
746 | ||
747 | function getbloody(victim,amount) | |
748 | local PART = CreatePart(3, Effects, "Metal", 0, 1, "Mid gray", "Blood", victim.Size) | |
749 | PART.CFrame = victim.CFrame | |
750 | local HITPLAYERSOUNDS = {"356551938","264486467"} | |
751 | Debris:AddItem(PART,5) | |
752 | CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10)) | |
753 | CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10)) | |
754 | CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10)) | |
755 | local prtcl = asd:Clone() | |
756 | prtcl.Parent = PART | |
757 | prtcl:Emit(amount*10) | |
758 | end | |
759 | ||
760 | local Particle = IT("ParticleEmitter",nil) | |
761 | Particle.Enabled = false | |
762 | Particle.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,1),NumberSequenceKeypoint.new(0.3,0.95),NumberSequenceKeypoint.new(1,1)}) | |
763 | Particle.LightEmission = 0.5 | |
764 | Particle.Rate = 150 | |
765 | Particle.ZOffset = 1 | |
766 | Particle.Rotation = NumberRange.new(-180, 180) | |
767 | Particle.RotSpeed = NumberRange.new(-180, 180) | |
768 | Particle.Texture = "http://www.roblox.com/asset/?id=304437537" | |
769 | Particle.Color = ColorSequence.new(C3(1,0,0),C3(0.4,0,0)) | |
770 | ||
771 | --ParticleEmitter({Speed = 5, Drag = 0, Size1 = 1, Size2 = 5, Lifetime1 = 1, Lifetime2 = 1.5, Parent = Torso, Emit = 100, Offset = 360, Enabled = false}) | |
772 | function ParticleEmitter(Table) | |
773 | local PRTCL = Particle:Clone() | |
774 | local Speed = Table.Speed or 5 | |
775 | local Drag = Table.Drag or 0 | |
776 | local Size1 = Table.Size1 or 1 | |
777 | local Size2 = Table.Size2 or 5 | |
778 | local Lifetime1 = Table.Lifetime1 or 1 | |
779 | local Lifetime2 = Table.Lifetime2 or 1.5 | |
780 | local Parent = Table.Parent or Torso | |
781 | local Emit = Table.Emit or 100 | |
782 | local Offset = Table.Offset or 360 | |
783 | local Acel = Table.Acel or VT(0,0,0) | |
784 | local Enabled = Table.Enabled or false | |
785 | PRTCL.Parent = Parent | |
786 | PRTCL.Size = NumberSequence.new(Size1,Size2) | |
787 | PRTCL.Lifetime = NumberRange.new(Lifetime1,Lifetime2) | |
788 | PRTCL.Speed = NumberRange.new(Speed) | |
789 | PRTCL.VelocitySpread = Offset | |
790 | PRTCL.Drag = Drag | |
791 | PRTCL.Acceleration = Acel | |
792 | if Enabled == false then | |
793 | PRTCL:Emit(Emit) | |
794 | Debris:AddItem(PRTCL,Lifetime2) | |
795 | else | |
796 | PRTCL.Enabled = true | |
797 | end | |
798 | return PRTCL | |
799 | end | |
800 | ||
801 | function SpawnTrail(FROM,TO,BIG) | |
802 | local TRAIL = CreatePart(3, Effects, "Neon", 0, 0.5, "Really red", "Trail", VT(0,0,0)) | |
803 | MakeForm(TRAIL,"Cyl") | |
804 | local DIST = (FROM - TO).Magnitude | |
805 | if BIG == true then | |
806 | TRAIL.Size = VT(0.5,DIST,0.5) | |
807 | else | |
808 | TRAIL.Size = VT(0.25,DIST,0.25) | |
809 | end | |
810 | TRAIL.CFrame = CF(FROM, TO) * CF(0, 0, -DIST/2) * ANGLES(RAD(90),RAD(0),RAD(0)) | |
811 | coroutine.resume(coroutine.create(function() | |
812 | for i = 1, 5 do | |
813 | Swait() | |
814 | TRAIL.Transparency = TRAIL.Transparency + 0.1 | |
815 | end | |
816 | TRAIL:remove() | |
817 | end)) | |
818 | end | |
819 | ||
820 | Debris = game:GetService("Debris") | |
821 | ||
822 | function CastProperRay(StartPos, EndPos, Distance, Ignore) | |
823 | local DIRECTION = CF(StartPos,EndPos).lookVector | |
824 | return Raycast(StartPos, DIRECTION, Distance, Ignore) | |
825 | end | |
826 | ||
827 | function turnto(position) | |
828 | RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0) | |
829 | end | |
830 | ||
831 | --//=================================\\ | |
832 | --|| RESIZE PLAYER | |
833 | --\\=================================// | |
834 | ||
835 | if Player_Size ~= 1 then | |
836 | RootPart.Size = RootPart.Size * Player_Size | |
837 | Torso.Size = Torso.Size * Player_Size | |
838 | Head.Size = Head.Size * Player_Size | |
839 | RightArm.Size = RightArm.Size * Player_Size | |
840 | LeftArm.Size = LeftArm.Size * Player_Size | |
841 | RightLeg.Size = RightLeg.Size * Player_Size | |
842 | LeftLeg.Size = LeftLeg.Size * Player_Size | |
843 | RootJoint.Parent = RootPart | |
844 | Neck.Parent = Torso | |
845 | RightShoulder.Parent = Torso | |
846 | LeftShoulder.Parent = Torso | |
847 | RightHip.Parent = Torso | |
848 | LeftHip.Parent = Torso | |
849 | ||
850 | RootJoint.C0 = ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)) | |
851 | RootJoint.C1 = ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)) | |
852 | Neck.C0 = NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(0)) | |
853 | Neck.C1 = CF(0 * Player_Size, -0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-90), RAD(0), RAD(180)) | |
854 | RightShoulder.C0 = CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)) * RIGHTSHOULDERC0 | |
855 | LeftShoulder.C0 = CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0 | |
856 | if Disable_Moving_Arms == false then | |
857 | RightShoulder.C1 = ANGLES(0, RAD(90), 0) * CF(0 * Player_Size, 0.5 * Player_Size, -0.5) | |
858 | LeftShoulder.C1 = ANGLES(0, RAD(-90), 0) * CF(0 * Player_Size, 0.5 * Player_Size, -0.5) | |
859 | else | |
860 | RightShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) | |
861 | LeftShoulder.C1 = CF(0 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) | |
862 | end | |
863 | RightHip.C0 = CF(1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)) | |
864 | LeftHip.C0 = CF(-1 * Player_Size, -1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)) | |
865 | 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)) | |
866 | 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)) | |
867 | end | |
868 | ||
869 | ||
870 | --//=================================\\ | |
871 | --\\=================================// | |
872 | ||
873 | --//=================================\\ | |
874 | --|| WEAPON CREATION | |
875 | --\\=================================// | |
876 | ||
877 | local PRT = CreatePart(3, char, "Fabric", 0, 0, "", "The Mask", VT(1,1,1),false) | |
878 | PRT.Color = C3(0,0,0) | |
879 | local MaskWeld = CreateWeldOrSnapOrMotor("Weld", hed, hed, PRT, CF(0,0.2,0), CF(0, 0.15, 0)) | |
880 | CreateMesh("SpecialMesh", PRT, "FileMesh", "62146989", "145633085", VT(1.1,1.1,1.1)*1.05, VT(0,0,0)) | |
881 | ||
882 | function SHAKECAM(POSITION, RANGE, INTENSITY, TIME) | |
883 | local TORSO = Torso | |
884 | local HUM = Humanoid | |
885 | if TORSO and RANGE >= (TORSO.Position - POSITION).Magnitude then | |
886 | coroutine.wrap(function() | |
887 | VT = Vector3.new | |
888 | MRANDOM = math.random | |
889 | local A = TIME | |
890 | local B = INTENSITY | |
891 | local C = true | |
892 | local HUMANOID = Humanoid | |
893 | local TIMER = A or 35 | |
894 | local SHAKE = B or 5 | |
895 | local FADE = C or true | |
896 | if HUMANOID then | |
897 | local FADER = SHAKE / TIMER | |
898 | for i = 1, TIMER do | |
899 | wait() | |
900 | HUMANOID.CameraOffset = VT(MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10, MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10, MRANDOM(-(SHAKE - FADER * i), SHAKE - FADER * i) / 10) | |
901 | end | |
902 | HUMANOID.CameraOffset = VT(0, 0, 0) | |
903 | end | |
904 | ||
905 | end)() | |
906 | end | |
907 | end | |
908 | ||
909 | ||
910 | local PRT = CreatePart(3, Character, "Fabric", 0, 0, "Really black", "Hood", VT(1,1,1),false) | |
911 | PRT.Color = C3(0,0,0) | |
912 | local HoodWeld = CreateWeldOrSnapOrMotor("Weld", Head, Head, PRT, CF(0,0.2,0), CF(0, 0, 0)) | |
913 | CreateMesh("SpecialMesh", PRT, "FileMesh", "76062497", "", VT(1,1,1)*1.05, VT(0,0,0)) | |
914 | local PRT = CreatePart(3, Character, "Fabric", 0, 0, "Really black", "Scarf", VT(1,1,1),false) | |
915 | PRT.Color = C3(0,0,0) | |
916 | ||
917 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Stone grey", "Metal", VT(1.1,1,0.525),false) | |
918 | CreateWeldOrSnapOrMotor("Weld", Torso, Torso, Part, CF(-0.75, 0.51, 0) * ANGLES(RAD(180), RAD(-90), RAD(0)), CF(0, 0, 0)) | |
919 | MakeForm(Part,"Wedge") | |
920 | ||
921 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Stone grey", "Metal", VT(1,1,1.2),false) | |
922 | CreateWeldOrSnapOrMotor("Weld", Torso, Torso, Part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
923 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Stone grey", "Metal", VT(0.3,1.7,1.15),false) | |
924 | CreateWeldOrSnapOrMotor("Weld", Torso, Torso, Part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(45)), CF(0, 0, 0)) | |
925 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Stone grey", "Metal", VT(0.3,1.7,1.15),false) | |
926 | CreateWeldOrSnapOrMotor("Weld", Torso, Torso, Part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-45)), CF(0, 0, 0)) | |
927 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Dark stone grey", "Metal", VT(0.8,0.8,1.225),false) | |
928 | CreateWeldOrSnapOrMotor("Weld", Torso, Torso, Part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
929 | local Eon = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Eon", VT(0.5,0.5,1.25),false) | |
930 | CreateWeldOrSnapOrMotor("Weld", Torso, Torso, Eon, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
931 | ||
932 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Stone grey", "Metal", VT(1.1,1,0.525),false) | |
933 | CreateWeldOrSnapOrMotor("Weld", LeftArm, LeftArm, Part, CF(-0.75, 0.51, 0) * ANGLES(RAD(180), RAD(-90), RAD(0)), CF(0, 0, 0)) | |
934 | MakeForm(Part,"Wedge") | |
935 | ||
936 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Stone grey", "Metal", VT(1,1,1.2),false) | |
937 | CreateWeldOrSnapOrMotor("Weld", LeftArm, LeftArm, Part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
938 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Stone grey", "Metal", VT(0.3,1.7,1.15),false) | |
939 | CreateWeldOrSnapOrMotor("Weld", LeftArm, LeftArm, Part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(45)), CF(0, 0, 0)) | |
940 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Stone grey", "Metal", VT(0.3,1.7,1.15),false) | |
941 | CreateWeldOrSnapOrMotor("Weld", LeftArm, LeftArm, Part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-45)), CF(0, 0, 0)) | |
942 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Dark stone grey", "Metal", VT(0.8,0.8,1.225),false) | |
943 | CreateWeldOrSnapOrMotor("Weld", LeftArm, LeftArm, Part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
944 | local Eon = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Eon", VT(0.5,0.5,1.25),false) | |
945 | CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, Eon, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
946 | ||
947 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Stone grey", "Metal", VT(1.1,1,0.525),false) | |
948 | CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, Part, CF(-0.75, 0.51, 0) * ANGLES(RAD(180), RAD(-90), RAD(0)), CF(0, 0, 0)) | |
949 | MakeForm(Part,"Wedge") | |
950 | ||
951 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Stone grey", "Metal", VT(1,1,1.2),false) | |
952 | CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, Part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
953 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Stone grey", "Metal", VT(0.3,1.7,1.15),false) | |
954 | CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, Part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(45)), CF(0, 0, 0)) | |
955 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Stone grey", "Metal", VT(0.3,1.7,1.15),false) | |
956 | CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, Part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-45)), CF(0, 0, 0)) | |
957 | local Part = CreatePart(3, Weapon, "DiamondPlate", 0, 0, "Dark stone grey", "Metal", VT(0.8,0.8,1.225),false) | |
958 | CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, Part, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
959 | local Eon = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Eon", VT(0.5,0.5,1.25),false) | |
960 | CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, Eon, CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
961 | ||
962 | --WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil}) | |
963 | function WACKYEFFECT(Table) | |
964 | local TYPE = (Table.EffectType or "Sphere") | |
965 | local SIZE = (Table.Size or VT(1,1,1)) | |
966 | local ENDSIZE = (Table.Size2 or VT(0,0,0)) | |
967 | local TRANSPARENCY = (Table.Transparency or 0) | |
968 | local ENDTRANSPARENCY = (Table.Transparency2 or 1) | |
969 | local CFRAME = (Table.CFrame or Torso.CFrame) | |
970 | local MOVEDIRECTION = (Table.MoveToPos or nil) | |
971 | local ROTATION1 = (Table.RotationX or 0) | |
972 | local ROTATION2 = (Table.RotationY or 0) | |
973 | local ROTATION3 = (Table.RotationZ or 0) | |
974 | local MATERIAL = (Table.Material or "Neon") | |
975 | local COLOR = (Table.Color or C3(1,1,1)) | |
976 | local TIME = (Table.Time or 45) | |
977 | local SOUNDID = (Table.SoundID or nil) | |
978 | local SOUNDPITCH = (Table.SoundPitch or nil) | |
979 | local SOUNDVOLUME = (Table.SoundVolume or nil) | |
980 | coroutine.resume(coroutine.create(function() | |
981 | local PLAYSSOUND = false | |
982 | local SOUND = nil | |
983 | local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Really red"), "Effect", VT(1,1,1), true) | |
984 | if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then | |
985 | PLAYSSOUND = true | |
986 | SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false) | |
987 | end | |
988 | EFFECT.Color = COLOR | |
989 | local MSH = nil | |
990 | if TYPE == "Sphere" then | |
991 | MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0)) | |
992 | elseif TYPE == "Block" then | |
993 | MSH = IT("BlockMesh",EFFECT) | |
994 | MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X) | |
995 | elseif TYPE == "Wave" then | |
996 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8)) | |
997 | elseif TYPE == "Ring" then | |
998 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0)) | |
999 | elseif TYPE == "Slash" then | |
1000 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0)) | |
1001 | elseif TYPE == "Round Slash" then | |
1002 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0)) | |
1003 | elseif TYPE == "Swirl" then | |
1004 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0)) | |
1005 | elseif TYPE == "Skull" then | |
1006 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0)) | |
1007 | elseif TYPE == "Crystal" then | |
1008 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0)) | |
1009 | end | |
1010 | if MSH ~= nil then | |
1011 | local MOVESPEED = nil | |
1012 | if MOVEDIRECTION ~= nil then | |
1013 | MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME | |
1014 | end | |
1015 | local GROWTH = SIZE - ENDSIZE | |
1016 | local TRANS = TRANSPARENCY - ENDTRANSPARENCY | |
1017 | if TYPE == "Block" then | |
1018 | EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) | |
1019 | else | |
1020 | EFFECT.CFrame = CFRAME | |
1021 | end | |
1022 | for LOOP = 1, TIME+1 do | |
1023 | Swait() | |
1024 | MSH.Scale = MSH.Scale - GROWTH/TIME | |
1025 | if TYPE == "Wave" then | |
1026 | MSH.Offset = VT(0,0,-MSH.Scale.X/8) | |
1027 | end | |
1028 | EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME | |
1029 | if TYPE == "Block" then | |
1030 | EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) | |
1031 | else | |
1032 | EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3)) | |
1033 | end | |
1034 | if MOVEDIRECTION ~= nil then | |
1035 | local ORI = EFFECT.Orientation | |
1036 | EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED) | |
1037 | EFFECT.Orientation = ORI | |
1038 | end | |
1039 | end | |
1040 | if PLAYSSOUND == false then | |
1041 | EFFECT:remove() | |
1042 | else | |
1043 | SOUND.Stopped:Connect(function() | |
1044 | EFFECT:remove() | |
1045 | end) | |
1046 | end | |
1047 | else | |
1048 | if PLAYSSOUND == false then | |
1049 | EFFECT:remove() | |
1050 | else | |
1051 | repeat Swait() until SOUND.Playing == false | |
1052 | EFFECT:remove() | |
1053 | end | |
1054 | end | |
1055 | end)) | |
1056 | end | |
1057 | ||
1058 | ||
1059 | function CreateRing(SIZE, DOESROT, ROT, WAIT, CFRAME, COLOR, GROW) | |
1060 | local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0, 0, 0)) | |
1061 | local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "559831844", "", SIZE, VT(0, 0, 0)) | |
1062 | wave.CFrame = CFRAME | |
1063 | coroutine.resume(coroutine.create(function(PART) | |
1064 | for i = 1, WAIT do | |
1065 | Swait() | |
1066 | mesh.Scale = mesh.Scale + GROW | |
1067 | if DOESROT == true then | |
1068 | wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, ROT, 0) | |
1069 | end | |
1070 | wave.Transparency = wave.Transparency + 0.5 / WAIT | |
1071 | if wave.Transparency > 0.99 then | |
1072 | wave:remove() | |
1073 | end | |
1074 | end | |
1075 | end)) | |
1076 | end | |
1077 | ||
1078 | function CreateWave(SIZE, WAIT, CFRAME, DOESROT, ROT, COLOR, GROW) | |
1079 | local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0, 0, 0)) | |
1080 | local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "20329976", "", SIZE, VT(0, 0, -SIZE.X / 8)) | |
1081 | wave.CFrame = CFRAME | |
1082 | coroutine.resume(coroutine.create(function(PART) | |
1083 | for i = 1, WAIT do | |
1084 | Swait() | |
1085 | mesh.Scale = mesh.Scale + GROW | |
1086 | mesh.Offset = VT(0, 0, -(mesh.Scale.X / 8)) | |
1087 | if DOESROT == true then | |
1088 | wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, ROT, 0) | |
1089 | end | |
1090 | wave.Transparency = wave.Transparency + 0.5 / WAIT | |
1091 | if wave.Transparency > 0.99 then | |
1092 | wave:remove() | |
1093 | end | |
1094 | end | |
1095 | end)) | |
1096 | end | |
1097 | ||
1098 | --WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil}) | |
1099 | function WACKYEFFECT(Table) | |
1100 | local TYPE = (Table.EffectType or "Sphere") | |
1101 | local SIZE = (Table.Size or VT(1,1,1)) | |
1102 | local ENDSIZE = (Table.Size2 or VT(0,0,0)) | |
1103 | local TRANSPARENCY = (Table.Transparency or 0) | |
1104 | local ENDTRANSPARENCY = (Table.Transparency2 or 1) | |
1105 | local CFRAME = (Table.CFrame or Torso.CFrame) | |
1106 | local MOVEDIRECTION = (Table.MoveToPos or nil) | |
1107 | local ROTATION1 = (Table.RotationX or 0) | |
1108 | local ROTATION2 = (Table.RotationY or 0) | |
1109 | local ROTATION3 = (Table.RotationZ or 0) | |
1110 | local MATERIAL = (Table.Material or "Neon") | |
1111 | local COLOR = (Table.Color or C3(1,1,1)) | |
1112 | local TIME = (Table.Time or 45) | |
1113 | local SOUNDID = (Table.SoundID or nil) | |
1114 | local SOUNDPITCH = (Table.SoundPitch or nil) | |
1115 | local SOUNDVOLUME = (Table.SoundVolume or nil) | |
1116 | coroutine.resume(coroutine.create(function() | |
1117 | local PLAYSSOUND = false | |
1118 | local SOUND = nil | |
1119 | local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true) | |
1120 | if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then | |
1121 | PLAYSSOUND = true | |
1122 | SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false) | |
1123 | end | |
1124 | EFFECT.Color = COLOR | |
1125 | local MSH = nil | |
1126 | if TYPE == "Sphere" then | |
1127 | MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0)) | |
1128 | elseif TYPE == "Block" then | |
1129 | MSH = IT("BlockMesh",EFFECT) | |
1130 | MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X) | |
1131 | elseif TYPE == "Wave" then | |
1132 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8)) | |
1133 | elseif TYPE == "Ring" then | |
1134 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0)) | |
1135 | elseif TYPE == "Slash" then | |
1136 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0)) | |
1137 | elseif TYPE == "Round Slash" then | |
1138 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0)) | |
1139 | elseif TYPE == "Swirl" then | |
1140 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0)) | |
1141 | elseif TYPE == "Skull" then | |
1142 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0)) | |
1143 | elseif TYPE == "Crystal" then | |
1144 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0)) | |
1145 | end | |
1146 | if MSH ~= nil then | |
1147 | local MOVESPEED = nil | |
1148 | if MOVEDIRECTION ~= nil then | |
1149 | MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME | |
1150 | end | |
1151 | local GROWTH = SIZE - ENDSIZE | |
1152 | local TRANS = TRANSPARENCY - ENDTRANSPARENCY | |
1153 | if TYPE == "Block" then | |
1154 | EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) | |
1155 | else | |
1156 | EFFECT.CFrame = CFRAME | |
1157 | end | |
1158 | for LOOP = 1, TIME+1 do | |
1159 | Swait() | |
1160 | MSH.Scale = MSH.Scale - GROWTH/TIME | |
1161 | if TYPE == "Wave" then | |
1162 | MSH.Offset = VT(0,0,-MSH.Scale.X/8) | |
1163 | end | |
1164 | EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME | |
1165 | if TYPE == "Block" then | |
1166 | EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) | |
1167 | else | |
1168 | EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3)) | |
1169 | end | |
1170 | if MOVEDIRECTION ~= nil then | |
1171 | local ORI = EFFECT.Orientation | |
1172 | EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED) | |
1173 | EFFECT.Orientation = ORI | |
1174 | end | |
1175 | end | |
1176 | if PLAYSSOUND == false then | |
1177 | EFFECT:remove() | |
1178 | else | |
1179 | SOUND.Stopped:Connect(function() | |
1180 | EFFECT:remove() | |
1181 | end) | |
1182 | end | |
1183 | else | |
1184 | if PLAYSSOUND == false then | |
1185 | EFFECT:remove() | |
1186 | else | |
1187 | repeat Swait() until SOUND.Playing == false | |
1188 | EFFECT:remove() | |
1189 | end | |
1190 | end | |
1191 | end)) | |
1192 | end | |
1193 | ||
1194 | function Slice(KIND, SIZE, WAIT, CFRAME, COLOR, GROW) | |
1195 | local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(1, 1, 1), true) | |
1196 | local mesh | |
1197 | if KIND == "Base" then | |
1198 | mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "448386996", "", VT(0, SIZE / 10, SIZE / 10), VT(0, 0, 0)) | |
1199 | elseif KIND == "Thin" then | |
1200 | mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "662586858", "", VT(SIZE / 10, 0, SIZE / 10), VT(0, 0, 0)) | |
1201 | elseif KIND == "Round" then | |
1202 | mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "662585058", "", VT(SIZE / 10, 0, SIZE / 10), VT(0, 0, 0)) | |
1203 | end | |
1204 | wave.CFrame = CFRAME | |
1205 | coroutine.resume(coroutine.create(function(PART) | |
1206 | for i = 1, WAIT do | |
1207 | Swait() | |
1208 | mesh.Scale = mesh.Scale + GROW / 10 | |
1209 | wave.Transparency = wave.Transparency + 0.5 / WAIT | |
1210 | if wave.Transparency > 0.99 then | |
1211 | wave:remove() | |
1212 | end | |
1213 | end | |
1214 | end)) | |
1215 | end | |
1216 | ||
1217 | function CreateRing(SIZE, DOESROT, ROT, WAIT, CFRAME, COLOR, GROW) | |
1218 | local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(COLOR), "Effect", VT(0, 0, 0)) | |
1219 | local mesh = CreateMesh("SpecialMesh", wave, "FileMesh", "559831844", "", SIZE, VT(0, 0, 0)) | |
1220 | wave.CFrame = CFRAME | |
1221 | coroutine.resume(coroutine.create(function(PART) | |
1222 | for i = 1, WAIT do | |
1223 | Swait() | |
1224 | mesh.Scale = mesh.Scale + GROW | |
1225 | if DOESROT == true then | |
1226 | wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, ROT, 0) | |
1227 | end | |
1228 | wave.Transparency = wave.Transparency + 0.5 / WAIT | |
1229 | if wave.Transparency > 0.99 then | |
1230 | wave:remove() | |
1231 | end | |
1232 | end | |
1233 | end)) | |
1234 | end | |
1235 | function MagicSphere(SIZE, WAIT, CFRAME, COLOR, GROW) | |
1236 | local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(COLOR), "Effect", VT(1, 1, 1), true) | |
1237 | local mesh = CreateMesh("SpecialMesh", wave, "Sphere", "", "", SIZE, VT(0, 0, 0)) | |
1238 | wave.CFrame = CFRAME | |
1239 | coroutine.resume(coroutine.create(function(PART) | |
1240 | for i = 1, WAIT do | |
1241 | Swait() | |
1242 | mesh.Scale = mesh.Scale + GROW | |
1243 | wave.Transparency = wave.Transparency + 1 / WAIT | |
1244 | if wave.Transparency > 0.99 then | |
1245 | wave:remove() | |
1246 | end | |
1247 | end | |
1248 | end)) | |
1249 | end | |
1250 | ||
1251 | function MagicSphere(SIZE, WAIT, CFRAME, COLOR, GROW) | |
1252 | local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(COLOR), "Effect", VT(1, 1, 1), true) | |
1253 | local mesh = CreateMesh("SpecialMesh", wave, "Sphere", "", "", SIZE, VT(0, 0, 0)) | |
1254 | wave.CFrame = CFRAME | |
1255 | coroutine.resume(coroutine.create(function(PART) | |
1256 | for i = 1, WAIT do | |
1257 | Swait() | |
1258 | mesh.Scale = mesh.Scale + GROW | |
1259 | wave.Transparency = wave.Transparency + 1 / WAIT | |
1260 | if wave.Transparency > 0.99 then | |
1261 | wave:remove() | |
1262 | end | |
1263 | end | |
1264 | end)) | |
1265 | end | |
1266 | ||
1267 | ||
1268 | local Handle = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.6,0.2),false) | |
1269 | local RightArmGrasp = CreateWeldOrSnapOrMotor("Weld", Handle, RightArm, Handle, CF(0,-1, 0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0.21, 0)) | |
1270 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.5,0.2),false) | |
1271 | MakeForm(Part,"Wedge") | |
1272 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.3, 0.2) * ANGLES(RAD(0), RAD(180), RAD(0)), CF(0, 0, 0)) | |
1273 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.3,0.2),false) | |
1274 | MakeForm(Part,"Wedge") | |
1275 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(180)), CF(0, 0, 0)) | |
1276 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.3,0.3),false) | |
1277 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.5, 0.2) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1278 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.5,0.5),false) | |
1279 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1280 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.4,0.4,0.4),false) | |
1281 | MakeForm(Part,"Cyl") | |
1282 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1283 | for i = 1, 8 do | |
1284 | local Piece = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0,0.35,0.41),false) | |
1285 | CreateWeldOrSnapOrMotor("Weld", Handle, Part, Piece, CF(0, 0, 0) * ANGLES(RAD(0), RAD((360/8)*i), RAD(0)), CF(0, 0, 0)) | |
1286 | end | |
1287 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0.38,0.41,0.38),false) | |
1288 | MakeForm(Part,"Cyl") | |
1289 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1290 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.37,0.5,0.37),false) | |
1291 | MakeForm(Part,"Ball") | |
1292 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.3) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1293 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.7,0.4),false) | |
1294 | MakeForm(Part,"Wedge") | |
1295 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.7, 0.5) * ANGLES(RAD(90), RAD(180), RAD(180)), CF(0, 0, 0)) | |
1296 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.4,0.2),false) | |
1297 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1298 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.35,0.35,0.35),false) | |
1299 | MakeForm(Part,"Cyl") | |
1300 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1301 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.5,0.1,0.5),false) | |
1302 | MakeForm(Part,"Cyl") | |
1303 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1304 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.5,0.1,0.45),false) | |
1305 | MakeForm(Part,"Cyl") | |
1306 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1.1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1307 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.5,0.2),false) | |
1308 | MakeForm(Part,"Wedge") | |
1309 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.55, 0.2) * ANGLES(RAD(-135), RAD(0), RAD(0)), CF(0, -0.3, 0)) | |
1310 | local LASTPART = Handle | |
1311 | for i = 1, 10 do | |
1312 | if LASTPART == Handle then | |
1313 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.1,0.2,0),false) | |
1314 | LASTPART = Part | |
1315 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.1, 0.2) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1316 | else | |
1317 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.1,0.05,0),false) | |
1318 | CreateWeldOrSnapOrMotor("Weld", Handle, LASTPART, Part, CF(0, 0.025, 0) * ANGLES(RAD(8), RAD(0), RAD(0)), CF(0, -0.025, 0)) | |
1319 | LASTPART = Part | |
1320 | end | |
1321 | end | |
1322 | ||
1323 | local Barrel = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.15,2,0.15),false) | |
1324 | MakeForm(Barrel,"Cyl") | |
1325 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Barrel, CF(0, -0.6, 1.8) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1326 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.25,1,0.25),false) | |
1327 | MakeForm(Part,"Cyl") | |
1328 | CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, -0.6, 0), CF(0, 0, 0)) | |
1329 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0,0.1,0.2),false) | |
1330 | MakeForm(Part,"Wedge") | |
1331 | CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, 0.945, 0.1) * ANGLES(RAD(180), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1332 | local Hole2 = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0.125,0,0.125),false) | |
1333 | MakeForm(Hole2,"Cyl") | |
1334 | CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Hole2, CF(0, 0.98, 0), CF(0, 0, 0)) | |
1335 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0,0,0),false) | |
1336 | local GEARWELD = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0)) | |
1337 | CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.8,0.8,1.5), VT(0,0,0.2)) | |
1338 | local Part = CreatePart(3, Weapon, "Metal", 0, 0.5, "Mid gray", "Eye", VT(0,0,0),false) | |
1339 | local GEARWELD2 = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0)) | |
1340 | CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.9,0.9,0.3), VT(0,0,0.2)) | |
1341 | coroutine.resume(coroutine.create(function() | |
1342 | while wait() do | |
1343 | GEARWELD.C0 = GEARWELD.C0 * ANGLES(RAD(0), RAD(0), RAD(5)) | |
1344 | GEARWELD2.C0 = GEARWELD2.C0 * ANGLES(RAD(0), RAD(0), RAD(-5)) | |
1345 | end | |
1346 | end)) | |
1347 | ||
1348 | ParticleEmitter({Speed = 0.2, Drag = 0, Size1 = 0.1, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.5, Parent = Hole2, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)}) | |
1349 | --ParticleEmitter({Speed = 0.5, Drag = 0, Size1 = 0.2, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.7, Parent = Dangle, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)}) | |
1350 | ||
1351 | for _, c in pairs(Weapon:GetDescendants()) do | |
1352 | if c.ClassName == "Part" and c.Name ~= "Eye" and c.Parent ~= Effects and c.Parent.Parent ~= Effects then | |
1353 | c.Material = "Glass" | |
1354 | c.Color = C3(0,0,0) | |
1355 | elseif c.ClassName == "Part" and c.Name == "Eye" then | |
1356 | c.Color = C3(1,0,0) | |
1357 | c.Material = "Neon" | |
1358 | end | |
1359 | end | |
1360 | ||
1361 | Weapon.Parent = Character | |
1362 | for _, c in pairs(Weapon:GetChildren()) do | |
1363 | if c.ClassName == "Part" then | |
1364 | c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0) | |
1365 | end | |
1366 | end | |
1367 | ||
1368 | function ParticleEmitter(Table) | |
1369 | local PRTCL = Particle:Clone() | |
1370 | local Speed = Table.Speed or 5 | |
1371 | local Drag = Table.Drag or 0 | |
1372 | local Size1 = Table.Size1 or 1 | |
1373 | local Size2 = Table.Size2 or 5 | |
1374 | local Lifetime1 = Table.Lifetime1 or 1 | |
1375 | local Lifetime2 = Table.Lifetime2 or 1.5 | |
1376 | local Parent = Table.Parent or Torso | |
1377 | local Emit = Table.Emit or 100 | |
1378 | local Offset = Table.Offset or 360 | |
1379 | local Acel = Table.Acel or VT(0,0,0) | |
1380 | local Enabled = Table.Enabled or false | |
1381 | PRTCL.Parent = Parent | |
1382 | PRTCL.Size = NumberSequence.new(Size1,Size2) | |
1383 | PRTCL.Lifetime = NumberRange.new(Lifetime1,Lifetime2) | |
1384 | PRTCL.Speed = NumberRange.new(Speed) | |
1385 | PRTCL.VelocitySpread = Offset | |
1386 | PRTCL.Drag = Drag | |
1387 | PRTCL.Acceleration = Acel | |
1388 | if Enabled == false then | |
1389 | PRTCL:Emit(Emit) | |
1390 | Debris:AddItem(PRTCL,Lifetime2) | |
1391 | else | |
1392 | PRTCL.Enabled = true | |
1393 | end | |
1394 | return PRTCL | |
1395 | end | |
1396 | ||
1397 | local Handle = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.6,0.2),false) | |
1398 | local RightArmGrasp = CreateWeldOrSnapOrMotor("Weld", Handle, LeftArm, Handle, CF(0,-1, 0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0.21, 0)) | |
1399 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.5,0.2),false) | |
1400 | MakeForm(Part,"Wedge") | |
1401 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.3, 0.2) * ANGLES(RAD(0), RAD(180), RAD(0)), CF(0, 0, 0)) | |
1402 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.3,0.2),false) | |
1403 | MakeForm(Part,"Wedge") | |
1404 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(180)), CF(0, 0, 0)) | |
1405 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.3,0.3),false) | |
1406 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.5, 0.2) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1407 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.5,0.5),false) | |
1408 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1409 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.4,0.4,0.4),false) | |
1410 | MakeForm(Part,"Cyl") | |
1411 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1412 | for i = 1, 8 do | |
1413 | local Piece = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0,0.35,0.41),false) | |
1414 | CreateWeldOrSnapOrMotor("Weld", Handle, Part, Piece, CF(0, 0, 0) * ANGLES(RAD(0), RAD((360/8)*i), RAD(0)), CF(0, 0, 0)) | |
1415 | end | |
1416 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0.38,0.41,0.38),false) | |
1417 | MakeForm(Part,"Cyl") | |
1418 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1419 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.37,0.5,0.37),false) | |
1420 | MakeForm(Part,"Ball") | |
1421 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.3) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1422 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.7,0.4),false) | |
1423 | MakeForm(Part,"Wedge") | |
1424 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.7, 0.5) * ANGLES(RAD(90), RAD(180), RAD(180)), CF(0, 0, 0)) | |
1425 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.4,0.2),false) | |
1426 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1427 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.35,0.35,0.35),false) | |
1428 | MakeForm(Part,"Cyl") | |
1429 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1430 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.5,0.1,0.5),false) | |
1431 | MakeForm(Part,"Cyl") | |
1432 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1433 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.5,0.1,0.45),false) | |
1434 | MakeForm(Part,"Cyl") | |
1435 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1.1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1436 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.5,0.2),false) | |
1437 | MakeForm(Part,"Wedge") | |
1438 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.55, 0.2) * ANGLES(RAD(-135), RAD(0), RAD(0)), CF(0, -0.3, 0)) | |
1439 | local LASTPART = Handle | |
1440 | for i = 1, 10 do | |
1441 | if LASTPART == Handle then | |
1442 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.1,0.2,0),false) | |
1443 | LASTPART = Part | |
1444 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.1, 0.2) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1445 | else | |
1446 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.1,0.05,0),false) | |
1447 | CreateWeldOrSnapOrMotor("Weld", Handle, LASTPART, Part, CF(0, 0.025, 0) * ANGLES(RAD(8), RAD(0), RAD(0)), CF(0, -0.025, 0)) | |
1448 | LASTPART = Part | |
1449 | end | |
1450 | end | |
1451 | ||
1452 | local Barrel = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.15,2,0.15),false) | |
1453 | MakeForm(Barrel,"Cyl") | |
1454 | CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Barrel, CF(0, -0.6, 1.8) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1455 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0.25,1,0.25),false) | |
1456 | MakeForm(Part,"Cyl") | |
1457 | CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, -0.6, 0), CF(0, 0, 0)) | |
1458 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0,0.1,0.2),false) | |
1459 | MakeForm(Part,"Wedge") | |
1460 | CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, 0.945, 0.1) * ANGLES(RAD(180), RAD(0), RAD(0)), CF(0, 0, 0)) | |
1461 | local Hole = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Eye", VT(0.125,0,0.125),false) | |
1462 | MakeForm(Hole,"Cyl") | |
1463 | CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Hole, CF(0, 0.98, 0), CF(0, 0, 0)) | |
1464 | local Part = CreatePart(3, Weapon, "Metal", 0, 0, "Mid gray", "Part", VT(0,0,0),false) | |
1465 | local GEARWELD = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0)) | |
1466 | CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.8,0.8,1.5), VT(0,0,0.2)) | |
1467 | local Part = CreatePart(3, Weapon, "Metal", 0, 0.5, "Mid gray", "Eye", VT(0,0,0),false) | |
1468 | local GEARWELD2 = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0)) | |
1469 | CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.9,0.9,0.3), VT(0,0,0.2)) | |
1470 | coroutine.resume(coroutine.create(function() | |
1471 | while wait() do | |
1472 | GEARWELD.C0 = GEARWELD.C0 * ANGLES(RAD(0), RAD(0), RAD(5)) | |
1473 | GEARWELD2.C0 = GEARWELD2.C0 * ANGLES(RAD(0), RAD(0), RAD(-5)) | |
1474 | end | |
1475 | end)) | |
1476 | ||
1477 | ParticleEmitter({Speed = 0.2, Drag = 0, Size1 = 0.1, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.5, Parent = Hole, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)}) | |
1478 | --ParticleEmitter({Speed = 0.5, Drag = 0, Size1 = 0.2, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.7, Parent = Dangle, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)}) | |
1479 | ||
1480 | for _, c in pairs(Weapon:GetDescendants()) do | |
1481 | if c.ClassName == "Part" and c.Name ~= "Eye" and c.Parent ~= Effects and c.Parent.Parent ~= Effects then | |
1482 | c.Material = "Glass" | |
1483 | c.Color = C3(0,0,0) | |
1484 | elseif c.ClassName == "Part" and c.Name == "Eye" then | |
1485 | c.Color = C3(1,0,0) | |
1486 | c.Material = "Neon" | |
1487 | end | |
1488 | end | |
1489 | ||
1490 | Weapon.Parent = Character | |
1491 | for _, c in pairs(Weapon:GetChildren()) do | |
1492 | if c.ClassName == "Part" then | |
1493 | c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0) | |
1494 | end | |
1495 | end | |
1496 | ||
1497 | local SKILLTEXTCOLOR = C3(1,0,0) | |
1498 | local SKILLFONT = "Antique" | |
1499 | local SKILLTEXTSIZE = 7 | |
1500 | ||
1501 | Humanoid.Died:connect(function() | |
1502 | ATTACK = true | |
1503 | end) | |
1504 | ||
1505 | local SKILL1FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.1, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame") | |
1506 | --[[local SKILL2FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.63, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame") | |
1507 | local SKILL3FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.215, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame") | |
1508 | local SKILL4FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.525, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame") | |
1509 | local SKILL5FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame") | |
1510 | ]] | |
1511 | local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Banisher Bullet", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 1") | |
1512 | --[[local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Ability 2", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 2") | |
1513 | local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Ability 3", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 3") | |
1514 | local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Ability 4", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 4") | |
1515 | local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[X] Mercy", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 5") | |
1516 | ]] | |
1517 | function printbye(Name) | |
1518 | local MESSAGES = {"You cannot struggle, ","Your existance is an insult, ","Fade, ","Your existance is not desired, ","You are not permitted here, ","You are not to decide your fate, ","Be gone, ","You are already dead, ","Your live is an anomaly, ","Don't dare to return, ","Why are you resisting, ","You cannot exist here, ","Why are you struggling, ","Your fate was already decided, ","Goodbye, ","You cannot ignore my command, ","You cannot resist my command, ","You already died, "} | |
1519 | warn(MESSAGES[MRANDOM(1,#MESSAGES)]..Name..".") | |
1520 | end | |
1521 | ||
1522 | workspace.ChildAdded:connect(function(instance) | |
1523 | for BANISH = 1, #TOBANISH do | |
1524 | if TOBANISH[BANISH] ~= nil then | |
1525 | if instance.Name == TOBANISH[BANISH] then | |
1526 | coroutine.resume(coroutine.create(function() | |
1527 | printbye(instance.Name) | |
1528 | instance:ClearAllChildren() | |
1529 | Debris:AddItem(instance,0.0005) | |
1530 | end)) | |
1531 | end | |
1532 | end | |
1533 | end | |
1534 | end) | |
1535 | ||
1536 | --//=================================\\ | |
1537 | --|| DAMAGING | |
1538 | --\\=================================// | |
1539 | ||
1540 | function Banish(Foe) | |
1541 | if Foe then | |
1542 | coroutine.resume(coroutine.create(function() | |
1543 | --if game.Players:FindFirstChild(Foe.Name) then | |
1544 | table.insert(TOBANISH,Foe.Name) | |
1545 | printbye(Foe.Name) | |
1546 | --end | |
1547 | Foe.Archivable = true | |
1548 | local CLONE = Foe:Clone() | |
1549 | Foe:Destroy() | |
1550 | CLONE.Parent = Effects | |
1551 | CLONE:BreakJoints() | |
1552 | local MATERIALS = {"Glass","Neon"} | |
1553 | for _, c in pairs(CLONE:GetDescendants()) do | |
1554 | if c:IsA("BasePart") then | |
1555 | if c.Name == "Torso" or c.Name == "UpperTorso" or c == CLONE.PrimaryPart then | |
1556 | CreateSound(340722848, c, 10, 1, false) | |
1557 | end | |
1558 | c.Anchored = true | |
1559 | c.Transparency = c.Transparency + 0.2 | |
1560 | c.Material = MATERIALS[MRANDOM(1,2)] | |
1561 | c.Color = C3(1,0,0) | |
1562 | if c.ClassName == "MeshPart" then | |
1563 | c.TextureID = "" | |
1564 | end | |
1565 | if c:FindFirstChildOfClass("SpecialMesh") then | |
1566 | c:FindFirstChildOfClass("SpecialMesh").TextureId = "" | |
1567 | end | |
1568 | if c:FindFirstChildOfClass("Decal") then | |
1569 | c:FindFirstChildOfClass("Decal"):remove() | |
1570 | end | |
1571 | c.Name = "Banished" | |
1572 | c.CanCollide = false | |
1573 | else | |
1574 | c:remove() | |
1575 | end | |
1576 | end | |
1577 | local A = false | |
1578 | for i = 1, 35 do | |
1579 | if A == false then | |
1580 | A = true | |
1581 | elseif A == true then | |
1582 | A = false | |
1583 | end | |
1584 | for _, c in pairs(CLONE:GetDescendants()) do | |
1585 | if c:IsA("BasePart") then | |
1586 | c.Anchored = true | |
1587 | c.Material = MATERIALS[MRANDOM(1,2)] | |
1588 | c.Transparency = c.Transparency + 0.8/35 | |
1589 | if A == false then | |
1590 | c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45) | |
1591 | elseif A == true then | |
1592 | c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45) | |
1593 | end | |
1594 | end | |
1595 | end | |
1596 | Swait() | |
1597 | end | |
1598 | CLONE:remove() | |
1599 | end)) | |
1600 | end | |
1601 | end | |
1602 | ||
1603 | function ApplyAoE(POSITION,RANGE,ISBANISH) | |
1604 | local CHILDREN = workspace:GetDescendants() | |
1605 | for index, CHILD in pairs(CHILDREN) do | |
1606 | if CHILD.ClassName == "Model" and CHILD ~= Character then | |
1607 | local HUM = CHILD:FindFirstChildOfClass("Humanoid") | |
1608 | if HUM then | |
1609 | local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso") | |
1610 | if TORSO then | |
1611 | if (TORSO.Position - POSITION).Magnitude <= RANGE then | |
1612 | if ISBANISH == true then | |
1613 | Banish(CHILD) | |
1614 | else | |
1615 | if ISBANISH == "Gravity" then | |
1616 | HUM.PlatformStand = true | |
1617 | if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then | |
1618 | local grav = Instance.new("BodyPosition",TORSO) | |
1619 | grav.D = 15 | |
1620 | grav.P = 20000 | |
1621 | grav.maxForce = Vector3.new(math.huge,math.huge,math.huge) | |
1622 | grav.position = TORSO.Position | |
1623 | grav.Name = "V3BanishForce"..Player.Name | |
1624 | else | |
1625 | TORSO:FindFirstChild("V3BanishForce"..Player.Name).position = TORSO.Position+VT(0,0.3,0) | |
1626 | TORSO.RotVelocity = VT(MRANDOM(-25,25),MRANDOM(-25,25),MRANDOM(-25,25)) | |
1627 | end | |
1628 | else | |
1629 | HUM.PlatformStand = false | |
1630 | end | |
1631 | end | |
1632 | elseif ISBANISH == "Gravity" then | |
1633 | if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then | |
1634 | TORSO:FindFirstChild("V3BanishForce"..Player.Name):remove() | |
1635 | HUM.PlatformStand = false | |
1636 | end | |
1637 | end | |
1638 | end | |
1639 | end | |
1640 | end | |
1641 | end | |
1642 | end | |
1643 | ||
1644 | function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR) | |
1645 | local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT()) | |
1646 | STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0)) | |
1647 | local BODYGYRO = IT("BodyGyro", STATPART) | |
1648 | local BODYPOSITION = IT("BodyPosition", STATPART) | |
1649 | BODYPOSITION.P = 2000 | |
1650 | BODYPOSITION.D = 100 | |
1651 | BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge) | |
1652 | if LABELTYPE == "Normal" then | |
1653 | BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2)) | |
1654 | elseif LABELTYPE == "Debuff" then | |
1655 | BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 8, MRANDOM(-2, 2)) | |
1656 | elseif LABELTYPE == "Interruption" then | |
1657 | BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2,2), 8, MRANDOM(-2, 2)) | |
1658 | end | |
1659 | game:GetService("Debris"):AddItem(STATPART ,5) | |
1660 | local BILLBOARDGUI = Instance.new("BillboardGui", STATPART) | |
1661 | BILLBOARDGUI.Adornee = STATPART | |
1662 | BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0) | |
1663 | BILLBOARDGUI.StudsOffset = VT(-2, 2, 0) | |
1664 | BILLBOARDGUI.AlwaysOnTop = false | |
1665 | local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI) | |
1666 | TEXTLABEL.BackgroundTransparency = 1 | |
1667 | TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0) | |
1668 | TEXTLABEL.Text = TEXT | |
1669 | TEXTLABEL.Font = "SourceSans" | |
1670 | TEXTLABEL.FontSize="Size42" | |
1671 | TEXTLABEL.TextColor3 = COLOR | |
1672 | TEXTLABEL.TextStrokeTransparency = 0 | |
1673 | TEXTLABEL.TextScaled = true | |
1674 | TEXTLABEL.TextWrapped = true | |
1675 | coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL) | |
1676 | wait(0.2) | |
1677 | for i=1, 5 do | |
1678 | wait() | |
1679 | THEBODYPOSITION.Position = THEPART.Position - VT(0, 0.5 ,0) | |
1680 | end | |
1681 | wait(1.2) | |
1682 | for i=1, 5 do | |
1683 | wait() | |
1684 | THETEXTLABEL.TextTransparency = THETEXTLABEL.TextTransparency + 0.2 | |
1685 | THETEXTLABEL.TextStrokeTransparency = THETEXTLABEL.TextStrokeTransparency + 0.2 | |
1686 | THEBODYPOSITION.position = THEPART.Position + VT(0, 0.5, 0) | |
1687 | end | |
1688 | THEPART.Parent = nil | |
1689 | end),STATPART, BODYPOSITION, TEXTLABEL) | |
1690 | end | |
1691 | ||
1692 | function IncreaseOrDecreaseStat(LOCATION, STAT, AMOUNT, DURATION, SHOWTHESTAT) | |
1693 | if LOCATION:FindFirstChild("Stats") ~= nil then | |
1694 | if LOCATION.Stats:FindFirstChild("Block") ~= nil then | |
1695 | if LOCATION.Stats:FindFirstChild("Block").Value == true then | |
1696 | return | |
1697 | end | |
1698 | end | |
1699 | if LOCATION.Stats:FindFirstChild("ChangeStat") ~= nil and LOCATION.Stats:FindFirstChild("Block").Value == false then | |
1700 | local NewStatChange = IT("NumberValue") | |
1701 | NewStatChange.Value = AMOUNT | |
1702 | if STAT == "Defense" then | |
1703 | NewStatChange.Name = "ChangeDefense" | |
1704 | elseif STAT == "Damage" then | |
1705 | NewStatChange.Name = "ChangeDamage" | |
1706 | elseif STAT == "Movement" then | |
1707 | NewStatChange.Name = "ChangeMovement" | |
1708 | end | |
1709 | if SHOWTHESTAT == true then | |
1710 | if AMOUNT < 0 then | |
1711 | StatLabel("Debuff", LOCATION.Head.CFrame * CF(0, 0 + (LOCATION.Head.Size.z - 1), 0), "-"..STAT, C3(1, 1, 1)) | |
1712 | elseif AMOUNT > 0 then | |
1713 | StatLabel("Debuff", LOCATION.Head.CFrame * CF(0, 0 + (LOCATION.Head.Size.z - 1), 0), "+"..STAT, C3(1, 1, 1)) | |
1714 | end | |
1715 | end | |
1716 | if DURATION ~= nil and DURATION ~= 0 then | |
1717 | local StatDuration = IT("NumberValue") | |
1718 | StatDuration.Name = "Duration" | |
1719 | StatDuration.Value = DURATION | |
1720 | StatDuration.Parent = NewStatChange | |
1721 | end | |
1722 | NewStatChange.Parent = LOCATION.Stats:FindFirstChild("ChangeStat") | |
1723 | end | |
1724 | end | |
1725 | end | |
1726 | ||
1727 | --Usage: DamageFunction(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, hit, false, 5, 10, MRANDOM(5, 10), "Normal", Part, 0.5, false, true, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false) | |
1728 | function DamageFunction(HITWEAPONSOUND, HITARMORSOUND, HITBLOCKSOUND, HITPLAYERSOUND, HITWEAPONSOUNDPITCH, HITARMORSOUNDPITCH, HITBLOCKSOUNDPITCH, HITPLAYERSOUNDPITCH, HIT, HITEVENWHENDEAD, MINIMUMDAMAGE, MAXIMUMDAMAGE, KNOCKBACK, TYPE, PROPERTY, DELAY, KNOCKBACKTYPE, INCREASESTUN, STAGGER, STAGGERHIT, RANGED, DECREASETHESTAT, DECREASEAMOUNT, DECREASEDURATION, SHOWDECREASEDSTAT) | |
1729 | if HIT.Parent == nil then | |
1730 | return | |
1731 | end | |
1732 | local HITHUMANOID = HIT.Parent:FindFirstChild("Humanoid") | |
1733 | for _, v in pairs(HIT.Parent:GetChildren()) do | |
1734 | if v:IsA("Humanoid") then | |
1735 | HITHUMANOID = v | |
1736 | end | |
1737 | end | |
1738 | if HIT.Name == "Hitbox" and RANGED ~= true and HIT.Parent ~= Weapon and Enable_Stagger_Hit == true then | |
1739 | StaggerHit.Value = true | |
1740 | if Play_Hitbox_Hit_Sound == true then | |
1741 | if HITWEAPONSOUND ~= "" and HITWEAPONSOUND ~= "nil" then | |
1742 | CreateSound(HITWEAPONSOUND, HIT, 1, HITWEAPONSOUNDPITCH) | |
1743 | end | |
1744 | end | |
1745 | return | |
1746 | end | |
1747 | if HIT.Parent.Parent:FindFirstChild("Torso") ~= nil or HIT.Parent.Parent:FindFirstChild("UpperTorso") ~= nil then | |
1748 | HITHUMANOID = HIT.Parent.Parent:FindFirstChild("Humanoid") | |
1749 | end | |
1750 | if HIT.Parent.ClassName == "Hat" or HIT.ClassName == "Accessory" then | |
1751 | HIT = HIT.Parent.Parent:FindFirstChild("Head") | |
1752 | end | |
1753 | if HITHUMANOID ~= nil and HIT.Parent.Name ~= Character.Name and (HIT.Parent:FindFirstChild("Torso") ~= nil or HIT.Parent:FindFirstChild("UpperTorso") ~= nil) then | |
1754 | if HIT.Parent:FindFirstChild("DebounceHit") ~= nil then | |
1755 | if HIT.Parent.DebounceHit.Value == true then | |
1756 | return | |
1757 | end | |
1758 | end | |
1759 | if AntiTeamKill.Value == true then | |
1760 | if Player.Neutral == false and game.Players:GetPlayerFromCharacter(HIT.Parent) ~= nil then | |
1761 | if game.Players:GetPlayerFromCharacter(HIT.Parent).TeamColor == Player.TeamColor then | |
1762 | return | |
1763 | end | |
1764 | end | |
1765 | end | |
1766 | if HITEVENWHENDEAD == false then | |
1767 | if HIT.Parent:FindFirstChild("Humanoid") ~= nil then | |
1768 | if HIT.Parent:FindFirstChild("Humanoid").Health <= 0 then | |
1769 | return | |
1770 | end | |
1771 | end | |
1772 | end | |
1773 | if HIT.Parent:FindFirstChild("Stats") ~= nil then | |
1774 | if HIT.Parent.Stats:FindFirstChild("StunValue") ~= nil then | |
1775 | HIT.Parent.Stats:FindFirstChild("StunValue").Value = HIT.Parent.Stats:FindFirstChild("StunValue").Value + INCREASESTUN | |
1776 | end | |
1777 | end | |
1778 | if HIT.Parent:FindFirstChild("Stats") ~= nil then | |
1779 | if HIT.Parent.Stats:FindFirstChild("Stagger") ~= nil then | |
1780 | if STAGGER == true and Enable_Stagger == true then | |
1781 | HIT.Parent.Stats:FindFirstChild("Stagger").Value = true | |
1782 | end | |
1783 | end | |
1784 | end | |
1785 | if HIT.Parent:FindFirstChild("Stats") ~= nil then | |
1786 | if HIT.Parent.Stats:FindFirstChild("Block") ~= nil then | |
1787 | if HIT.Parent.Stats:FindFirstChild("Block").Value == true then | |
1788 | HASBEENBLOCKED = true | |
1789 | if HIT.Parent.Stats:FindFirstChild("Block"):FindFirstChild("BlockDebounce") == nil then | |
1790 | StatLabel("Interruption", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Blocked!", C3(0, 100 / 255, 255 / 255)) | |
1791 | if RANGED ~= true then | |
1792 | if HITBLOCKSOUND ~= "" and HITBLOCKSOUND ~= "nil" then | |
1793 | CreateSound(HITBLOCKSOUND, HIT, 1, HITBLOCKSOUNDPITCH) | |
1794 | end | |
1795 | end | |
1796 | local BlockDebounce = IT("BoolValue", HIT.Parent.Stats:FindFirstChild("Block")) | |
1797 | BlockDebounce.Name = "BlockDebounce" | |
1798 | BlockDebounce.Value = true | |
1799 | if RANGED ~= true then | |
1800 | game:GetService("Debris"):AddItem(BlockDebounce, 0.5) | |
1801 | else | |
1802 | game:GetService("Debris"):AddItem(BlockDebounce, 0.1) | |
1803 | end | |
1804 | end | |
1805 | if RANGED ~= true and Enable_Stagger == true then | |
1806 | HIT.Parent.Stats:FindFirstChild("Block").Value = false | |
1807 | Stagger.Value = true | |
1808 | end | |
1809 | return | |
1810 | end | |
1811 | end | |
1812 | end | |
1813 | if DECREASETHESTAT ~= nil then | |
1814 | if HIT.Parent:FindFirstChild("Stats") ~= nil then | |
1815 | IncreaseOrDecreaseStat(HIT.Parent, DECREASETHESTAT, DECREASEAMOUNT, DECREASEDURATION, SHOWDECREASEDSTAT) | |
1816 | end | |
1817 | end | |
1818 | local DAMAGE = MRANDOM(MINIMUMDAMAGE,MAXIMUMDAMAGE) * Damage.Value | |
1819 | if HIT.Parent:FindFirstChild("Stats") ~= nil then | |
1820 | if HIT.Parent.Stats:FindFirstChild("Defense") ~= nil then | |
1821 | if CanPenetrateArmor.Value == true then | |
1822 | DAMAGE = DAMAGE | |
1823 | else | |
1824 | DAMAGE = DAMAGE / HIT.Parent.Stats:FindFirstChild("Defense").Value | |
1825 | end | |
1826 | elseif HIT.Parent.Stats:FindFirstChild("Defense") == nil then | |
1827 | DAMAGE = DAMAGE | |
1828 | end | |
1829 | end | |
1830 | if CanCrit.Value == true then | |
1831 | CRITCHANCENUMBER = MRANDOM(1, CritChance.Value) | |
1832 | if CRITCHANCENUMBER == 1 then | |
1833 | DAMAGE = DAMAGE * 2 | |
1834 | end | |
1835 | end | |
1836 | DAMAGE = math.floor(DAMAGE) | |
1837 | if HASBEENBLOCKED == false then | |
1838 | HITHUMANOID.Health = HITHUMANOID.Health - DAMAGE | |
1839 | end | |
1840 | if DAMAGE <= 3 and HASBEENBLOCKED == false then | |
1841 | if STAGGERHIT == true and Enable_Stagger_Hit == true and RANGED ~= true then | |
1842 | StaggerHit.Value = true | |
1843 | end | |
1844 | if HITARMORSOUND ~= "" and HITARMORSOUND ~= "nil" then | |
1845 | CreateSound(HITARMORSOUND, HIT, 1, HITARMORSOUNDPITCH) | |
1846 | end | |
1847 | elseif DAMAGE > 3 and HASBEENBLOCKED == false then | |
1848 | if HITPLAYERSOUND ~= "" and HITPLAYERSOUND ~= "nil" then | |
1849 | CreateSound(HITPLAYERSOUND, HIT, 1, HITPLAYERSOUNDPITCH) | |
1850 | end | |
1851 | end | |
1852 | if DAMAGE > 3 and DAMAGE < 20 and HASBEENBLOCKED == false then | |
1853 | if CanCrit.Value == true and CRITCHANCENUMBER == 1 then | |
1854 | StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Crit! \n"..DAMAGE, C3(200/255, 0, 0)) | |
1855 | CreateSound("296102734", HIT, 1, 1) | |
1856 | else | |
1857 | StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), DAMAGE, C3(255/255, 220/255, 0)) | |
1858 | end | |
1859 | elseif DAMAGE >= 20 and HASBEENBLOCKED == false then | |
1860 | if CanCrit.Value == true and CRITCHANCENUMBER == 1 then | |
1861 | StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Crit! \n"..DAMAGE, C3(200/255, 0, 0)) | |
1862 | CreateSound("296102734", HIT, 1, 1) | |
1863 | else | |
1864 | StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), DAMAGE, C3(255/255, 0, 0)) | |
1865 | end | |
1866 | elseif DAMAGE <= 3 and HASBEENBLOCKED == false then | |
1867 | if CanCrit.Value == true and CRITCHANCENUMBER == 1 then | |
1868 | StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), "Crit! \n"..DAMAGE, C3(200/255, 0, 0)) | |
1869 | CreateSound("296102734", HIT, 1, 1) | |
1870 | else | |
1871 | StatLabel("Normal", HIT.Parent.Head.CFrame * CF(0, 0 + (HIT.Parent.Head.Size.z - 1), 0), DAMAGE, C3(225/255, 225/255, 225/255)) | |
1872 | end | |
1873 | end | |
1874 | if TYPE == "Normal" then | |
1875 | local vp = IT("BodyVelocity") | |
1876 | vp.P=500 | |
1877 | vp.maxForce = VT(math.huge, 0, math.huge) | |
1878 | if KNOCKBACKTYPE == 1 then | |
1879 | vp.Velocity = PROPERTY.CFrame.lookVector * KNOCKBACK + PROPERTY.Velocity / 1.05 | |
1880 | elseif KNOCKBACKTYPE == 2 then | |
1881 | vp.Velocity = PROPERTY.CFrame.lookVector * KNOCKBACK | |
1882 | end | |
1883 | if KNOCKBACK > 0 and HASBEENBLOCKED == false then | |
1884 | vp.Parent = HIT--.Parent.Torso | |
1885 | end | |
1886 | game:GetService("Debris"):AddItem(vp, 0.5) | |
1887 | end | |
1888 | HASBEENBLOCKED = false | |
1889 | RecentEnemy.Value = HIT.Parent | |
1890 | local DebounceHit = IT("BoolValue", HIT.Parent) | |
1891 | DebounceHit.Name = "DebounceHit" | |
1892 | DebounceHit.Value = true | |
1893 | game:GetService("Debris"):AddItem(DebounceHit, DELAY) | |
1894 | end | |
1895 | end | |
1896 | ||
1897 | --Usage: MagnitudeDamage(HITWEAPONSOUNDS[MRANDOM(1, #HITWEAPONSOUNDS)], HITARMORSOUNDS[MRANDOM(1, #HITARMORSOUNDS)], HITBLOCKSOUNDS[MRANDOM(1, #HITBLOCKSOUNDS)], HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], 1, 1, 1, 1, Part, 5, true, 5, 10, MRANDOM(5, 10), "Normal", Part, 0.5, false, true, 1, MRANDOM(5, 10), nil, true, false, nil, 0, 0, false) | |
1898 | function MagnitudeDamage(HITWEAPONSOUND, HITARMORSOUND, HITBLOCKSOUND, HITPLAYERSOUND, HITWEAPONSOUNDPITCH, HITARMORSOUNDPITCH, HITBLOCKSOUNDPITCH, HITPLAYERSOUNDPITCH, PART, MAGNITUDE, HITEVENWHENDEAD, MINIMUMDAMAGE, MAXIMUMDAMAGE, KNOCKBACK, TYPE, PROPERTY, DELAY, KNOCKBACKTYPE, INCREASESTUN, STAGGER, STAGGERHIT, RANGED, MAGNITUDEDECREASETHESTAT, MAGNITUDEDECREASEAMOUNT, MAGNITUDEDECREASEDURATION, MAGNITUDESHOWDECREASEDSTAT) | |
1899 | for _, c in pairs(workspace:GetChildren()) do | |
1900 | local HUMANOID = c:FindFirstChild("Humanoid") | |
1901 | local HEAD = nil | |
1902 | if HUMANOID ~= nil then | |
1903 | for _, d in pairs(c:GetChildren()) do | |
1904 | if d.ClassName == "Model" and RANGED ~= true then | |
1905 | HEAD = d:FindFirstChild("Hitbox") | |
1906 | if HEAD ~= nil then | |
1907 | local THEMAGNITUDE = (HEAD.Position - PART.Position).magnitude | |
1908 | if THEMAGNITUDE <= (MAGNITUDE * Player_Size) and c.Name ~= Player.Name then | |
1909 | if Play_Hitbox_Hit_Sound == true then | |
1910 | local HitRefpart = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT()) | |
1911 | HitRefpart.Anchored = true | |
1912 | HitRefpart.CFrame = CF(HEAD.Position) | |
1913 | CreateSound(HITWEAPONSOUND, HitRefpart, 1, HITWEAPONSOUNDPITCH) | |
1914 | end | |
1915 | if Enable_Stagger_Hit == true then | |
1916 | StaggerHit.Value = true | |
1917 | end | |
1918 | end | |
1919 | end | |
1920 | elseif d:IsA"BasePart" then | |
1921 | HEAD = d | |
1922 | if HEAD ~= nil then | |
1923 | local THEMAGNITUDE = (HEAD.Position - PART.Position).magnitude | |
1924 | if THEMAGNITUDE <= (MAGNITUDE * Player_Size) and c.Name ~= Player.Name then | |
1925 | DamageFunction(HITWEAPONSOUND, HITARMORSOUND, HITBLOCKSOUND, HITPLAYERSOUND, HITWEAPONSOUNDPITCH, HITARMORSOUNDPITCH, HITBLOCKSOUNDPITCH, HITPLAYERSOUNDPITCH, HEAD, HITEVENWHENDEAD, MINIMUMDAMAGE, MAXIMUMDAMAGE, KNOCKBACK, TYPE, PROPERTY, DELAY, KNOCKBACKTYPE, INCREASESTUN, STAGGER, STAGGERHIT, RANGED, MAGNITUDEDECREASETHESTAT, MAGNITUDEDECREASEAMOUNT, MAGNITUDEDECREASEDURATION, MAGNITUDESHOWDECREASEDSTAT) | |
1926 | end | |
1927 | end | |
1928 | end | |
1929 | end | |
1930 | end | |
1931 | end | |
1932 | end | |
1933 | ||
1934 | --Usage: MagnitudeBuffOrDebuff(Part, 5, "Defense", -0.1, 3, true, true) | |
1935 | function MagnitudeBuffOrDebuff(PART, MAGNITUDE, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF, APPLYTOOTHERSINSTEAD) | |
1936 | if Player.Neutral == true then | |
1937 | IncreaseOrDecreaseStat(Character, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF) | |
1938 | end | |
1939 | for _, c in pairs(workspace:GetChildren()) do | |
1940 | local HUMANOID = c:FindFirstChild("Humanoid") | |
1941 | local THEHEAD = nil | |
1942 | if HUMANOID ~= nil then | |
1943 | if c:FindFirstChild("Torso") ~= nil then | |
1944 | THEHEAD = c:FindFirstChild("Torso") | |
1945 | elseif c:FindFirstChild("UpperTorso") ~= nil then | |
1946 | THEHEAD = c:FindFirstChild("UpperTorso") | |
1947 | end | |
1948 | if THEHEAD ~= nil then | |
1949 | local THEMAGNITUDE = (THEHEAD.Position - PART.Position).magnitude | |
1950 | print("yes 1") | |
1951 | if APPLYTOOTHERSINSTEAD == true then | |
1952 | if THEMAGNITUDE <= (MAGNITUDE * Player_Size) and c.Name ~= Player.Name then | |
1953 | if Player.Neutral == false and game.Players:GetPlayerFromCharacter(THEHEAD.Parent) ~= nil then | |
1954 | if game.Players:GetPlayerFromCharacter(THEHEAD.Parent).TeamColor == Player.TeamColor then | |
1955 | IncreaseOrDecreaseStat(THEHEAD.Parent, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF) | |
1956 | end | |
1957 | end | |
1958 | end | |
1959 | elseif APPLYTOOTHERSINSTEAD == false then | |
1960 | if THEMAGNITUDE <= (MAGNITUDE * Player_Size) then | |
1961 | if Player.Neutral == false and game.Players:GetPlayerFromCharacter(THEHEAD.Parent) ~= nil then | |
1962 | if game.Players:GetPlayerFromCharacter(THEHEAD.Parent).TeamColor == Player.TeamColor then | |
1963 | IncreaseOrDecreaseStat(THEHEAD.Parent, STAT, AMOUNT, DURATION, SHOWBUFFORDEBUFF) | |
1964 | end | |
1965 | end | |
1966 | end | |
1967 | end | |
1968 | end | |
1969 | end | |
1970 | end | |
1971 | end | |
1972 | ||
1973 | ||
1974 | ||
1975 | function AoEDamage(position,radius,min,max,maxstrength,critrate,critmultiplier,CanBeDodgedByJumping) | |
1976 | local dmg = math.random(min,max) | |
1977 | for i,v in ipairs(workspace:GetChildren()) do | |
1978 | if v:FindFirstChild("HitBy"..Player.Name) == nil then | |
1979 | local body = v:GetChildren() | |
1980 | for part = 1, #body do | |
1981 | if(v:FindFirstChild("HitBy"..Player.Name) == nil and (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then | |
1982 | if(body[part].Position - position).Magnitude < radius then | |
1983 | if v.ClassName == "Model" then | |
1984 | if v:FindFirstChildOfClass("Humanoid") then | |
1985 | if CanBeDodgedByJumping == true then | |
1986 | if body[part].Position.Y < position.Y+5 then | |
1987 | ApplyDamage(v:FindFirstChildOfClass("Humanoid"),dmg,critrate,critmultiplier) | |
1988 | end | |
1989 | else | |
1990 | ApplyDamage(v:FindFirstChildOfClass("Humanoid"),dmg,critrate,critmultiplier) | |
1991 | end | |
1992 | local bv = Instance.new("BodyVelocity") | |
1993 | bv.maxForce = Vector3.new(1e9, 1e9, 1e9) | |
1994 | bv.velocity = RootPart.CFrame.lookVector*maxstrength | |
1995 | bv.Parent = body[part] | |
1996 | Debris:AddItem(bv,0.2) | |
1997 | end | |
1998 | end | |
1999 | end | |
2000 | end | |
2001 | end | |
2002 | end | |
2003 | if v:FindFirstChild("HitBy"..Player.Name) then | |
2004 | v:FindFirstChild("HitBy"..Player.Name):remove() | |
2005 | end | |
2006 | end | |
2007 | end | |
2008 | ||
2009 | function ApplyDamage(Humanoid,Damage,CritRate,CritMultiplier) | |
2010 | local defence = Instance.new("BoolValue",Humanoid.Parent) | |
2011 | defence.Name = ("HitBy"..Player.Name) | |
2012 | game:GetService("Debris"):AddItem(defence, 0.5) | |
2013 | Humanoid.Health = Humanoid.Health - Damage | |
2014 | if Humanoid.Parent:FindFirstChild("Head") then | |
2015 | StatLabel("Normal", Humanoid.Parent.Head.CFrame * CF(0, 0 + (Humanoid.Parent.Head.Size.z - 1), 0), Damage, C3(0, 0, 0)) | |
2016 | end | |
2017 | end | |
2018 | ||
2019 | ||
2020 | --//=================================\\ | |
2021 | --|| ATTACK FUNCTIONS AND STUFF | |
2022 | --\\=================================// | |
2023 | ||
2024 | function Oblivion() | |
2025 | ATTACK = true | |
2026 | Rooted = true | |
2027 | for i=0, 2, 0.1 / Animation_Speed do | |
2028 | Swait() | |
2029 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(15), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2030 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2031 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.75, -0.5) * ANGLES(RAD(35), RAD(0), RAD(-65)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed) | |
2032 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.75, -0.5) * ANGLES(RAD(35), RAD(0), RAD(65)) * LEFTSHOULDERC0, 0.15 / Animation_Speed) | |
2033 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2034 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2035 | end | |
2036 | for i=0, 0.5, 0.1 / Animation_Speed do | |
2037 | Swait() | |
2038 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0.2, 0) * ANGLES(RAD(-15), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2039 | 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) | |
2040 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.75,0) * ANGLES(RAD(0), RAD(0), RAD(85)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed) | |
2041 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.75, 0) * ANGLES(RAD(0), RAD(0), RAD(-85)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2042 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(-15)), 0.5 / Animation_Speed) | |
2043 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-15), RAD(0), RAD(15)), 0.5 / Animation_Speed) | |
2044 | end | |
2045 | for i = 1, 75 do | |
2046 | Swait() | |
2047 | MagicSphere(VT(0.5,0.5,5),50,CF(Torso.CFrame*CF(MRANDOM(-5,5),MRANDOM(-5,5),MRANDOM(-5,5)).p,Torso.Position),"Really red",VT(-0.005,-0.005,0.03),0) | |
2048 | end | |
2049 | CreateSound(LIGHTHITSOUNDS[MRANDOM(1,#LIGHTHITSOUNDS)], Torso, 10, 0.5) | |
2050 | CreateSound(LIGHTHITSOUNDS[MRANDOM(1,#LIGHTHITSOUNDS)], Torso, 10, 0.5) | |
2051 | AoEDamage(Torso.Position,45,45,58,0,false,2,2,false,true) | |
2052 | MagicSphere(VT(0,0,0),25,Torso.CFrame,"Really red",VT(5,5,5)) | |
2053 | MagicSphere(VT(0,0,0),50,Torso.CFrame,"Lime green",VT(2.5,2.5,2.5)) | |
2054 | MagicSphere(VT(0,0.2,0),30,Torso.CFrame*ANGLES(RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360))),"Really black",VT(6,0,6)) | |
2055 | MagicSphere(VT(0,0.2,0),30,Torso.CFrame*ANGLES(RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360))),"Pearl",VT(6,0,6)) | |
2056 | ATTACK = false | |
2057 | Rooted = false | |
2058 | end | |
2059 | ||
2060 | function kiss() | |
2061 | ATTACK = true | |
2062 | Rooted = false | |
2063 | local HASGRABBED = false | |
2064 | local GRABTARGET = nil | |
2065 | local TORS = nil | |
2066 | local WELD = nil | |
2067 | for i=0, 1, 0.1 / Animation_Speed do | |
2068 | Swait() | |
2069 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, -0.25, -0.25 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(22.5), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2070 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-17.5 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2071 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(120), RAD(0), RAD(25)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed) | |
2072 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(120), RAD(0), RAD(-25)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2073 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(22.5), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2074 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(22.5), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2075 | end | |
2076 | local GRAB1 = RightArm.Touched:Connect(function(hit) | |
2077 | if hit.Parent:FindFirstChild("Humanoid") then | |
2078 | if hit.Parent.Humanoid.Health ~= 0 then | |
2079 | UNANCHOR = false | |
2080 | RootPart.Anchored = true | |
2081 | TORS = hit.Parent:FindFirstChild("Torso") or hit.Parent:FindFirstChild("UpperTorso") | |
2082 | TORS.CFrame = RootPart.CFrame * CF(0,0,-1.8) * ANGLES(RAD(0),RAD(180),RAD(0)) | |
2083 | WELD = weldBetween(RootPart,TORS) | |
2084 | HASGRABBED = true | |
2085 | Rooted = true | |
2086 | end | |
2087 | end | |
2088 | end) | |
2089 | local GRAB2 = LeftArm.Touched:Connect(function(hit) | |
2090 | if hit.Parent:FindFirstChild("Humanoid") then | |
2091 | if hit.Parent.Humanoid.Health ~= 0 then | |
2092 | UNANCHOR = false | |
2093 | RootPart.Anchored = true | |
2094 | TORS = hit.Parent:FindFirstChild("Torso") or hit.Parent:FindFirstChild("UpperTorso") | |
2095 | TORS.CFrame = RootPart.CFrame * CF(0,0,-1.8) * ANGLES(RAD(0),RAD(180),RAD(0)) | |
2096 | WELD = weldBetween(RootPart,TORS) | |
2097 | HASGRABBED = true | |
2098 | Rooted = true | |
2099 | end | |
2100 | end | |
2101 | end) | |
2102 | for i=0, 1, 0.1 / Animation_Speed do | |
2103 | Swait() | |
2104 | if HASGRABBED == true then | |
2105 | break | |
2106 | end | |
2107 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, -0.25, -0.25 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(22.5), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2108 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-17.5 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2109 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1, 0.5, -1) * ANGLES(RAD(110), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed) | |
2110 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1, 0.5, -1) * ANGLES(RAD(110), RAD(0), RAD(35)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2111 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(22.5), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2112 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(22.5), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2113 | end | |
2114 | GRAB1:disconnect() | |
2115 | GRAB2:disconnect() | |
2116 | if HASGRABBED == true then | |
2117 | TORS.Anchored = false | |
2118 | GRABTARGET = TORS.Parent | |
2119 | HED = GRABTARGET:FindFirstChild("Head") | |
2120 | for i=0, 2, 0.1 / Animation_Speed do | |
2121 | Swait() | |
2122 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2123 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-35 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2124 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5, -1) * ANGLES(RAD(90), RAD(0), RAD(35)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed) | |
2125 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5, -1) * ANGLES(RAD(90), RAD(0), RAD(-35)) * LEFTSHOULDERC0, 0.15 / Animation_Speed) | |
2126 | 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) | |
2127 | 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) | |
2128 | end | |
2129 | local heart = CreatePart(1, HED, "SmoothPlastic", 0, 0, "Really red", "Heart", VT(1,1,1), false) | |
2130 | local msh = CreateMesh("SpecialMesh", heart, "FileMesh", "431221914", "", VT(0.3, 0.3, 0.3), VT(0,0,0)) | |
2131 | CreateWeldOrSnapOrMotor("Weld", HED, heart, HED,CF(0, -2, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) | |
2132 | local ECH = 0 | |
2133 | ||
2134 | for i=0, 8, 0.1 / Animation_Speed do | |
2135 | Swait() | |
2136 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, -0.25, -0.25 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(22.5), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2137 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-17.5 - 2.5 * SIN(SINE / 12)), RAD(25 * SIN(SINE / 3)), RAD(0)), 0.5 / Animation_Speed) | |
2138 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5, -1) * ANGLES(RAD(110), RAD(0), RAD(35)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed) | |
2139 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0.5, -1) * ANGLES(RAD(110), RAD(0), RAD(-35)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2140 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(22.5), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2141 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(22.5), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2142 | end | |
2143 | WELD:remove() | |
2144 | end | |
2145 | UNANCHOR = true | |
2146 | ATTACK = false | |
2147 | Rooted = false | |
2148 | end | |
2149 | ||
2150 | function Kick() | |
2151 | ATTACK = true | |
2152 | Rooted = false | |
2153 | VALUE1 = true | |
2154 | NOWALK = true | |
2155 | if COMBO2 == 1 then | |
2156 | COMBO2 = 2 | |
2157 | CreateSound("199150686", Torso, 1, MRANDOM(11,13)/10) | |
2158 | for i=0, 0.5, 0.1 / Animation_Speed do | |
2159 | Swait() | |
2160 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(-25), RAD(0), RAD(45)), 2 / Animation_Speed) | |
2161 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-45)), 2 / Animation_Speed) | |
2162 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 2 / Animation_Speed) | |
2163 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.5) * ANGLES(RAD(25), RAD(0), RAD(45)) * LEFTSHOULDERC0, 2 / Animation_Speed) | |
2164 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.8 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(45), RAD(90), RAD(0)) * ANGLES(RAD(-38), RAD(0), RAD(0)), 2 / Animation_Speed) | |
2165 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed) | |
2166 | end | |
2167 | elseif COMBO2 == 2 then | |
2168 | COMBO2 = 1 | |
2169 | CreateSound("199150686", Torso, 1, MRANDOM(11,13)/10) | |
2170 | for i=0, 0.5, 0.1 / Animation_Speed do | |
2171 | Swait() | |
2172 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(-25), RAD(0), RAD(-45)), 2 / Animation_Speed) | |
2173 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(45)), 2 / Animation_Speed) | |
2174 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.5) * ANGLES(RAD(25), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 2 / Animation_Speed) | |
2175 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed) | |
2176 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed) | |
2177 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.8 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(45), RAD(-90), RAD(0)) * ANGLES(RAD(-38), RAD(0), RAD(0)), 2 / Animation_Speed) | |
2178 | end | |
2179 | end | |
2180 | NOWALK = false | |
2181 | VALUE1 = false | |
2182 | ATTACK = false | |
2183 | Rooted = false | |
2184 | end | |
2185 | ||
2186 | function StaggerHitAnimation() | |
2187 | ATTACK = true | |
2188 | if Weapon:FindFirstChild("Hitbox") ~= nil then | |
2189 | for i = 1, MRANDOM(2, 4) do | |
2190 | ClangEffect("Bright yellow", "Neon", CF(Weapon:FindFirstChild("Hitbox").Position) * ANGLES(RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50)), RAD(MRANDOM(-50, 50))), 20, 5, 0.2, MRANDOM(5, 15) / 10, 0, -0.02, 0, -0.02, 0.1) | |
2191 | end | |
2192 | end | |
2193 | for i = 0, 1, 0.1 / Animation_Speed do | |
2194 | Swait() | |
2195 | RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0 * Player_Size, 0 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-10), RAD(0), RAD(-30)), 0.3 / Animation_Speed) | |
2196 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0 * Player_Size, 0 * Player_Size, 0 + ((1 * Player_Size) - 1)) * ANGLES(RAD(0), RAD(0), RAD(30)) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.3 / Animation_Speed) | |
2197 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-30), RAD(0), RAD(60)) * ANGLES(RAD(0), RAD(-30), RAD(0)) * RIGHTSHOULDERC0, 0.3 / Animation_Speed) | |
2198 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5 * Player_Size, 0.5 * Player_Size, 0 * Player_Size) * ANGLES(RAD(-20), RAD(0), RAD(-20)) * ANGLES(RAD(0), RAD(20), RAD(0)) * LEFTSHOULDERC0, 0.3 / Animation_Speed) | |
2199 | RightHip.C0 = Clerp(RightHip.C0, CF(1 * Player_Size, -0.9 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-10), RAD(0), RAD(-20)), 0.3 / Animation_Speed) | |
2200 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1 * Player_Size, -1.1 * Player_Size, 0 * Player_Size) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(10)), 0.3 / Animation_Speed) | |
2201 | if Stagger.Value == true or Stun.Value == true then | |
2202 | break | |
2203 | end | |
2204 | end | |
2205 | ATTACK = false | |
2206 | end | |
2207 | ||
2208 | function Shot() | |
2209 | ATTACK = true | |
2210 | Rooted = false | |
2211 | for i=0, 0.5, 0.1 / Animation_Speed do | |
2212 | Swait() | |
2213 | turnto(Mouse.Hit.p) | |
2214 | RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 22)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2215 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 22)), RAD(15), RAD(0)), 0.5 / Animation_Speed) | |
2216 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0.5) * ANGLES(RAD(83), RAD(30), RAD(0)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed) | |
2217 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0.5) * ANGLES(RAD(83), RAD(-30), RAD(0)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2218 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2219 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2220 | end | |
2221 | repeat | |
2222 | for i=0, 0.5, 0.1 / Animation_Speed do | |
2223 | Swait() | |
2224 | turnto(Mouse.Hit.p) | |
2225 | RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 22)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2226 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 22)), RAD(15), RAD(0)), 0.5 / Animation_Speed) | |
2227 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0.5) * ANGLES(RAD(83), RAD(30), RAD(0)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed) | |
2228 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0.5) * ANGLES(RAD(83), RAD(-30), RAD(0)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2229 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2230 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2231 | end | |
2232 | local HIT,POS = CastProperRay(Hole2.Position, Mouse.Hit.p, 1000, Character) | |
2233 | SpawnTrail(Hole2.Position,POS) | |
2234 | if HIT ~= nil then | |
2235 | if HIT.Parent ~= workspace and HIT.Parent.ClassName ~= "Folder" then | |
2236 | Banish(HIT.Parent) | |
2237 | end | |
2238 | end | |
2239 | local HIT,POS = CastProperRay(Hole.Position, Mouse.Hit.p, 1000, Character) | |
2240 | SpawnTrail(Hole.Position,POS) | |
2241 | if HIT ~= nil then | |
2242 | if HIT.Parent ~= workspace and HIT.Parent.ClassName ~= "Folder" then | |
2243 | Banish(HIT.Parent) | |
2244 | end | |
2245 | end | |
2246 | WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole2.CFrame, MoveToPos = Hole2.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil}) | |
2247 | WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole2.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 904440937, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8}) | |
2248 | WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole2.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8}) | |
2249 | WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole2.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8}) | |
2250 | CreateSound("159882477", Head, 6, 1) | |
2251 | for i=0, 0.5, 0.1 / Animation_Speed do | |
2252 | Swait() | |
2253 | RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 22)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2254 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 22)), RAD(15), RAD(0)), 0.5 / Animation_Speed) | |
2255 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed) | |
2256 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(90), RAD(0), RAD(0)) * LEFTSHOULDERC0, 0.5 / Animation_Speed) | |
2257 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(75), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2258 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-50), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed) | |
2259 | end | |
2260 | WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = nil, SoundVolume = nil}) | |
2261 | WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = 904440937, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8}) | |
2262 | WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8}) | |
2263 | WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(1,0,0), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8}) | |
2264 | until KEYHOLD == false | |
2265 | ATTACK = false | |
2266 | Rooted = false | |
2267 | end | |
2268 | ||
2269 | function Punch() | |
2270 | ATTACK = true | |
2271 | Rooted = false | |
2272 | for i=0, 0.2, 0.1 / Animation_Speed do | |
2273 | Swait() | |
2274 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) | |
2275 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed) | |
2276 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0+ 0.15 * COS(SINE / 12), -0.2) * ANGLES(RAD(150), RAD(35), RAD(-5)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed) | |
2277 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0 + 0.15 * COS(SINE / 12), -0.2) * ANGLES(RAD(130), RAD(0), RAD(5)) * LEFTSHOULDERC0, 0.15 / Animation_Speed) | |
2278 | 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)), 1 / Animation_Speed) | |
2279 | 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)), 1 / Animation_Speed) | |
2280 | end | |
2281 | VALUE1 = true | |
2282 | if COMBO == 1 then | |
2283 | COMBO = 2 | |
2284 | CreateSound("199150686", Torso, 1, MRANDOM(11,13)/10) | |
2285 | for i=0, 0.3, 0.1 / Animation_Speed do | |
2286 | Swait() | |
2287 | RootPart.CFrame = RootPart.CFrame*CF(0,0,-0.1) | |
2288 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(-75)), 2 / Animation_Speed) | |
2289 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(65)), 2 / Animation_Speed) | |
2290 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 2 / Animation_Speed) | |
2291 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1, 0.5, -0.5) * ANGLES(RAD(90), RAD(0), RAD(25)) * LEFTSHOULDERC0, 2 / Animation_Speed) | |
2292 | 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)), 2 / Animation_Speed) | |
2293 | 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)), 2 / Animation_Speed) | |
2294 | end | |
2295 | elseif COMBO == 2 then | |
2296 | COMBO = 1 | |
2297 | CreateSound("199150686", Torso, 1, MRANDOM(11,13)/10) | |
2298 | for i=0, 0.3, 0.1 / Animation_Speed do | |
2299 | Swait() | |
2300 | RootPart.CFrame = RootPart.CFrame*CF(0,0,-0.1) | |
2301 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(85)), 2 / Animation_Speed) | |
2302 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-80)), 2 / Animation_Speed) | |
2303 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -1) * ANGLES(RAD(90), RAD(0), RAD(-50)) * RIGHTSHOULDERC0, 2 / Animation_Speed) | |
2304 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed) | |
2305 | 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)), 2 / Animation_Speed) | |
2306 | 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)), 2 / Animation_Speed) | |
2307 | end | |
2308 | end | |
2309 | VALUE1 = false | |
2310 | ATTACK = false | |
2311 | Rooted = false | |
2312 | end | |
2313 | ||
2314 | function AttackTemplate() | |
2315 | ATTACK = true | |
2316 | Rooted = false | |
2317 | for i=0, 1, 0.1 / Animation_Speed do | |
2318 | Swait() | |
2319 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2320 | 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) | |
2321 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed) | |
2322 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 0.15 / Animation_Speed) | |
2323 | 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) | |
2324 | 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) | |
2325 | end | |
2326 | ATTACK = false | |
2327 | Rooted = false | |
2328 | end | |
2329 | ||
2330 | function Nuke() | |
2331 | ATTACK = true | |
2332 | Rooted = true | |
2333 | local CHARGE = false | |
2334 | local BLASTS = {468991944, 468991990} | |
2335 | coroutine.resume(coroutine.create(function() | |
2336 | repeat | |
2337 | Swait() | |
2338 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(-25), RAD(0), RAD(-45)), 2 / Animation_Speed) | |
2339 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(45)), 2 / Animation_Speed) | |
2340 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.5) * ANGLES(RAD(25), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 2 / Animation_Speed) | |
2341 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 2 / Animation_Speed) | |
2342 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed) | |
2343 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.8 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(45), RAD(-90), RAD(0)) * ANGLES(RAD(-38), RAD(0), RAD(0)), 2 / Animation_Speed) | |
2344 | until CHARGE == true | |
2345 | for i = 0, 0.4, 0.1 / Animation_Speed do | |
2346 | Swait() | |
2347 | WACKYEFFECT({ | |
2348 | Time = 15, | |
2349 | EffectType = "Sphere", | |
2350 | Size = VT(60, 60, 60), | |
2351 | Size2 = VT(0, 0, 0), | |
2352 | Transparency = 1, | |
2353 | Transparency2 = 0.7, | |
2354 | CFrame = CF(RootPart.Position), | |
2355 | MoveToPos = nil, | |
2356 | RotationX = 0, | |
2357 | RotationY = 0, | |
2358 | RotationZ = 0, | |
2359 | Material = "Neon", | |
2360 | Color = C3(0, 0, 0), | |
2361 | SoundID = nil, | |
2362 | SoundPitch = nil, | |
2363 | SoundVolume = nil | |
2364 | }) | |
2365 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(-25), RAD(0), RAD(45)), 2 / Animation_Speed) | |
2366 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-45)), 2 / Animation_Speed) | |
2367 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 2 / Animation_Speed) | |
2368 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.5) * ANGLES(RAD(25), RAD(0), RAD(45)) * LEFTSHOULDERC0, 2 / Animation_Speed) | |
2369 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.8 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(45), RAD(90), RAD(0)) * ANGLES(RAD(-38), RAD(0), RAD(0)), 2 / Animation_Speed) | |
2370 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed) | |
2371 | end | |
2372 | coroutine.resume(coroutine.create(function() | |
2373 | local POS = RootPart.Position | |
2374 | wait(0.2) | |
2375 | for i = 1, 5 do | |
2376 | WACKYEFFECT({ | |
2377 | Time = 65, | |
2378 | EffectType = "Sphere", | |
2379 | Size = VT(2, 2, 2), | |
2380 | Size2 = VT(0, 0, 500), | |
2381 | Transparency = 1, | |
2382 | Transparency2 = 0, | |
2383 | CFrame = CF(POS), | |
2384 | MoveToPos = nil, | |
2385 | RotationX = MRANDOM(-2, 2), | |
2386 | RotationY = MRANDOM(-12, 12), | |
2387 | RotationZ = MRANDOM(-2, 2), | |
2388 | Material = "Neon", | |
2389 | Color = C3(1, 0, 0), | |
2390 | SoundID = nil, | |
2391 | SoundPitch = nil, | |
2392 | SoundVolume = nil | |
2393 | }) | |
2394 | end | |
2395 | wait(1) | |
2396 | SHAKECAM(POS, 9999999999, 25, 25) | |
2397 | ApplyAoE(POS, 450, true) | |
2398 | WACKYEFFECT({ | |
2399 | Time = 85, | |
2400 | EffectType = "Sphere", | |
2401 | Size = VT(120, 120, 120), | |
2402 | Size2 = VT(350, 350, 350), | |
2403 | Transparency = 0, | |
2404 | Transparency2 = 1, | |
2405 | CFrame = CF(POS), | |
2406 | MoveToPos = nil, | |
2407 | RotationX = 0, | |
2408 | RotationY = 0, | |
2409 | RotationZ = 0, | |
2410 | Material = "Neon", | |
2411 | Color = C3(1, 1, 1), | |
2412 | SoundID = nil, | |
2413 | SoundPitch = 1, | |
2414 | SoundVolume = 10 | |
2415 | }) | |
2416 | for i = 1, 20 do | |
2417 | WACKYEFFECT({ | |
2418 | Time = 85, | |
2419 | EffectType = "Sphere", | |
2420 | Size = VT(120, 120, 120), | |
2421 | Size2 = VT(120, 120, 144) + VT(i * 3, i * 3, i * 3), | |
2422 | Transparency = 0.8, | |
2423 | Transparency2 = 1, | |
2424 | CFrame = CF(POS), | |
2425 | MoveToPos = nil, | |
2426 | RotationX = 0, | |
2427 | RotationY = 0, | |
2428 | RotationZ = 0, | |
2429 | Material = "Neon", | |
2430 | Color = C3(0, 1, 0), | |
2431 | SoundID = nil, | |
2432 | SoundPitch = 1, | |
2433 | SoundVolume = 10 | |
2434 | }) | |
2435 | WACKYEFFECT({ | |
2436 | Time = 100, | |
2437 | EffectType = "Wave", | |
2438 | Size = VT(25, 2, 25), | |
2439 | Size2 = VT(400, 0, 400) * 1.2, | |
2440 | Transparency = 0, | |
2441 | Transparency2 = 1, | |
2442 | CFrame = CF(POS) * ANGLES(RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360)), RAD(MRANDOM(0, 360))), | |
2443 | MoveToPos = nil, | |
2444 | RotationX = 0, | |
2445 | RotationY = 0, | |
2446 | RotationZ = 0, | |
2447 | Material = "Neon", | |
2448 | Color = C3(0, 0, 0), | |
2449 | SoundID = nil, | |
2450 | SoundPitch = nil, | |
2451 | SoundVolume = nil | |
2452 | }) | |
2453 | end | |
2454 | local HITFLOOR, HITPOS = Raycast(POS, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 150, Character) | |
2455 | for i = 1, 5 do | |
2456 | CreateSound(438666077, Effects, 15, 1 - i / 15, false) | |
2457 | WACKYEFFECT({ | |
2458 | Time = 120, | |
2459 | EffectType = "Wave", | |
2460 | Size = VT(150, 2, 150), | |
2461 | Size2 = VT(300 + i * 170, 0, 300 + i * 170) * 1.2, | |
2462 | Transparency = 0, | |
2463 | Transparency2 = 1, | |
2464 | CFrame = CF(HITPOS) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)), | |
2465 | MoveToPos = nil, | |
2466 | RotationX = 0, | |
2467 | RotationY = 0, | |
2468 | RotationZ = 0, | |
2469 | Material = "Neon", | |
2470 | Color = C3(1, 0, 0), | |
2471 | SoundID = nil, | |
2472 | SoundPitch = nil, | |
2473 | SoundVolume = nil | |
2474 | }) | |
2475 | end | |
2476 | end)) | |
2477 | for i = 0, 1, 0.1 / Animation_Speed do | |
2478 | Swait() | |
2479 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) | |
2480 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed) | |
2481 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0+ 0.15 * COS(SINE / 12), -0.2) * ANGLES(RAD(150), RAD(35), RAD(-5)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed) | |
2482 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0 + 0.15 * COS(SINE / 12), -0.2) * ANGLES(RAD(130), RAD(0), RAD(5)) * LEFTSHOULDERC0, 0.15 / Animation_Speed) | |
2483 | 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)), 1 / Animation_Speed) | |
2484 | 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)), 1 / Animation_Speed) | |
2485 | end | |
2486 | ATTACK = false | |
2487 | Rooted = false | |
2488 | end)) | |
2489 | for i = 1, 30 do | |
2490 | wait(0.01) | |
2491 | local POS = CF(RootPart.Position) * ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * CF(0, 0, MRANDOM(10, 150)) | |
2492 | local HITFLOOR, HITPOS = Raycast(POS.p, CF(RootPart.Position, RootPart.Position + VT(0, -1, 0)).lookVector, 150, Character) | |
2493 | if HITFLOOR then | |
2494 | ApplyAoE(HITPOS, 65, true) | |
2495 | local TURN = ANGLES(RAD(0), RAD(MRANDOM(0, 360)), RAD(0)) * ANGLES(RAD(MRANDOM(0, 25)), RAD(0), RAD(0)) | |
2496 | WACKYEFFECT({ | |
2497 | Time = 25, | |
2498 | EffectType = "Sphere", | |
2499 | Size = VT(22, 22, 22), | |
2500 | Size2 = VT(85, 85, 85), | |
2501 | Transparency = 0, | |
2502 | Transparency2 = 1, | |
2503 | CFrame = CF(HITPOS), | |
2504 | MoveToPos = nil, | |
2505 | RotationX = 0, | |
2506 | RotationY = 0, | |
2507 | RotationZ = 0, | |
2508 | Material = "Neon", | |
2509 | Color = C3(0, 0, 0), | |
2510 | SoundID = BLASTS[MRANDOM(1, #BLASTS)], | |
2511 | SoundPitch = MRANDOM(9, 12) / 10, | |
2512 | SoundVolume = 10 | |
2513 | }) | |
2514 | for e = 1, 3 do | |
2515 | WACKYEFFECT({ | |
2516 | EffectType = "Wave", | |
2517 | Size = VT(25, 0, 25), | |
2518 | Size2 = VT(40, 0, 40) + VT(e * 6, e / 5, e * 6), | |
2519 | Transparency = 0, | |
2520 | Transparency2 = 1, | |
2521 | CFrame = CF(HITPOS) * ANGLES(RAD(0), RAD(72 * i), RAD(0)), | |
2522 | MoveToPos = nil, | |
2523 | RotationX = 0, | |
2524 | RotationY = 3, | |
2525 | RotationZ = 0, | |
2526 | Material = "Neon", | |
2527 | Color = C3(0, 1, 0), | |
2528 | SoundID = nil, | |
2529 | SoundPitch = nil, | |
2530 | SoundVolume = nil | |
2531 | }) | |
2532 | WACKYEFFECT({ | |
2533 | Time = 35, | |
2534 | EffectType = "Sphere", | |
2535 | Size = VT(22, 45, 22), | |
2536 | Size2 = VT(25, 45 + e * 75, 25), | |
2537 | Transparency = 0, | |
2538 | Transparency2 = 1, | |
2539 | CFrame = CF(HITPOS) * TURN, | |
2540 | MoveToPos = nil, | |
2541 | RotationX = 0, | |
2542 | RotationY = 0, | |
2543 | RotationZ = 0, | |
2544 | Material = "Neon", | |
2545 | Color = C3(1, 1, 1), | |
2546 | SoundID = nil, | |
2547 | SoundPitch = MRANDOM(9, 12) / 10, | |
2548 | SoundVolume = 10 | |
2549 | }) | |
2550 | end | |
2551 | end | |
2552 | end | |
2553 | CHARGE = true | |
2554 | end | |
2555 | ||
2556 | function Taunt() | |
2557 | CreateSound(LAUGHS[MRANDOM(1,#LAUGHS)], Torso, 10, 1, false) | |
2558 | ATTACK = true | |
2559 | Rooted = true | |
2560 | for i=0, 0.3, 0.1 / Animation_Speed do | |
2561 | Swait() | |
2562 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) | |
2563 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed) | |
2564 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(45), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed) | |
2565 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-180)) * ANGLES(RAD(0), RAD(-45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed) | |
2566 | if HITFLOOR then | |
2567 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed) | |
2568 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed) | |
2569 | elseif HITFLOOR == nil then | |
2570 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 2 / Animation_Speed) | |
2571 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 2 / Animation_Speed) | |
2572 | end | |
2573 | end | |
2574 | for i = 1, 8 do | |
2575 | for i=0, 0.2, 0.1 / Animation_Speed do | |
2576 | Swait() | |
2577 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) | |
2578 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed) | |
2579 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.15, 0) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(45), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed) | |
2580 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-180)) * ANGLES(RAD(0), RAD(-45), RAD(0)) * LEFTSHOULDERC0, 0.7 / Animation_Speed) | |
2581 | if HITFLOOR then | |
2582 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed) | |
2583 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed) | |
2584 | elseif HITFLOOR == nil then | |
2585 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 2 / Animation_Speed) | |
2586 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 2 / Animation_Speed) | |
2587 | end | |
2588 | end | |
2589 | CreateSound(FireSound, Gun1, 5, 1, false) | |
2590 | for i=0, 0.2, 0.1 / Animation_Speed do | |
2591 | Swait() | |
2592 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) | |
2593 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed) | |
2594 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(0), RAD(45), RAD(0)) * RIGHTSHOULDERC0, 0.7 / Animation_Speed) | |
2595 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.15, 0) * ANGLES(RAD(0), RAD(0), RAD(-180)) * ANGLES(RAD(0), RAD(-45), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed) | |
2596 | if HITFLOOR then | |
2597 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed) | |
2598 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.05 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-80), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 2 / Animation_Speed) | |
2599 | elseif HITFLOOR == nil then | |
2600 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 2 / Animation_Speed) | |
2601 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 2 / Animation_Speed) | |
2602 | end | |
2603 | end | |
2604 | CreateSound(FireSound, Gun2, 5, 1, false) | |
2605 | end | |
2606 | ATTACK = false | |
2607 | Rooted = false | |
2608 | end | |
2609 | --//=================================\\ | |
2610 | --|| ASSIGN THINGS TO KEYS | |
2611 | --\\=================================// | |
2612 | ||
2613 | function MouseDown(Mouse) | |
2614 | if ATTACK == false then | |
2615 | end | |
2616 | end | |
2617 | ||
2618 | function MouseUp(Mouse) | |
2619 | HOLD = falseW | |
2620 | end | |
2621 | ||
2622 | function KeyDown(Key) | |
2623 | KEYHOLD = true | |
2624 | if Key == "z" and ATTACK == false then | |
2625 | Shot() | |
2626 | end | |
2627 | ||
2628 | if Key == "b" and ATTACK == false then | |
2629 | Kick() | |
2630 | end | |
2631 | ||
2632 | if Key == "n" and ATTACK == false then | |
2633 | Punch() | |
2634 | end | |
2635 | ||
2636 | if Key == "t" and ATTACK == false then | |
2637 | Taunt() | |
2638 | end | |
2639 | ||
2640 | if Key == "c" and ATTACK == false then | |
2641 | kiss() | |
2642 | end | |
2643 | ||
2644 | if Key == "v" and ATTACK == false then | |
2645 | Oblivion() | |
2646 | end | |
2647 | ||
2648 | if Key == "x" and ATTACK == false then | |
2649 | Nuke() | |
2650 | end | |
2651 | end | |
2652 | ||
2653 | function KeyUp(Key) | |
2654 | KEYHOLD = false | |
2655 | end | |
2656 | ||
2657 | Mouse.Button1Down:connect(function(NEWKEY) | |
2658 | MouseDown(NEWKEY) | |
2659 | end) | |
2660 | Mouse.Button1Up:connect(function(NEWKEY) | |
2661 | MouseUp(NEWKEY) | |
2662 | end) | |
2663 | Mouse.KeyDown:connect(function(NEWKEY) | |
2664 | KeyDown(NEWKEY) | |
2665 | end) | |
2666 | Mouse.KeyUp:connect(function(NEWKEY) | |
2667 | KeyUp(NEWKEY) | |
2668 | end) | |
2669 | ||
2670 | --//=================================\\ | |
2671 | --\\=================================// | |
2672 | ||
2673 | ||
2674 | function unanchor() | |
2675 | if UNANCHOR == true then | |
2676 | g = Character:GetChildren() | |
2677 | for i = 1, #g do | |
2678 | if g[i].ClassName == "Part" then | |
2679 | g[i].Anchored = false | |
2680 | end | |
2681 | end | |
2682 | end | |
2683 | end | |
2684 | ||
2685 | ||
2686 | --//=================================\\ | |
2687 | --|| WRAP THE WHOLE SCRIPT UP | |
2688 | --\\=================================// | |
2689 | ||
2690 | Humanoid.Changed:connect(function(Jump) | |
2691 | if Jump == "Jump" and (Disable_Jump == true) then | |
2692 | Humanoid.Jump = false | |
2693 | end | |
2694 | end) | |
2695 | ||
2696 | local CONNECT = nil | |
2697 | ||
2698 | while true do | |
2699 | Swait() | |
2700 | ANIMATE.Parent = nil | |
2701 | if Character:FindFirstChildOfClass("Humanoid") == nil then | |
2702 | Humanoid = IT("Humanoid",Character) | |
2703 | end | |
2704 | for _,v in next, Humanoid:GetPlayingAnimationTracks() do | |
2705 | v:Stop(); | |
2706 | end | |
2707 | SINE = SINE + CHANGE | |
2708 | local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude | |
2709 | local TORSOVERTICALVELOCITY = RootPart.Velocity.y | |
2710 | local HITFLOOR = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 4, Character) | |
2711 | local WALKSPEEDVALUE = 6 / (Humanoid.WalkSpeed / 16) | |
2712 | if ANIM == "Walk" and TORSOVELOCITY > 1 and NOWALK == false then | |
2713 | 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 * (Humanoid.WalkSpeed / 16) / Animation_Speed) | |
2714 | 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 * (Humanoid.WalkSpeed / 16) / Animation_Speed) | |
2715 | 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) | |
2716 | 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) | |
2717 | elseif (ANIM ~= "Walk") or (TORSOVELOCITY < 1) or NOWALK == true then | |
2718 | RootJoint.C1 = Clerp(RootJoint.C1, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed) | |
2719 | 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) | |
2720 | 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) | |
2721 | 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) | |
2722 | end | |
2723 | if TORSOVERTICALVELOCITY > 1 and HITFLOOR == nil then | |
2724 | ANIM = "Jump" | |
2725 | if ATTACK == false then | |
2726 | RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed) | |
2727 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-20), RAD(0), RAD(0)), 0.2 / Animation_Speed) | |
2728 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(25))* RIGHTSHOULDERC0, 0.15 / Animation_Speed) | |
2729 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-40), RAD(0), RAD(-20)) * LEFTSHOULDERC0, 0.2 / Animation_Speed) | |
2730 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.3) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(-20)), 0.2 / Animation_Speed) | |
2731 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.3) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-5), RAD(0), RAD(20)), 0.2 / Animation_Speed) | |
2732 | end | |
2733 | elseif TORSOVERTICALVELOCITY < -1 and HITFLOOR == nil then | |
2734 | ANIM = "Fall" | |
2735 | if ATTACK == false then | |
2736 | RootJoint.C0 = Clerp(RootJoint.C0, ROOTC0 * CF(0, 0, 0 ) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.2 / Animation_Speed) | |
2737 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0 , 0 + ((1) - 1)) * ANGLES(RAD(20), RAD(0), RAD(0)), 0.2 / Animation_Speed) | |
2738 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(45), RAD(0), RAD(25))* RIGHTSHOULDERC0, 0.15 / Animation_Speed) | |
2739 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(-60)) * LEFTSHOULDERC0, 0.2 / Animation_Speed) | |
2740 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(20)), 0.2 / Animation_Speed) | |
2741 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(10)), 0.2 / Animation_Speed) | |
2742 | end | |
2743 | elseif TORSOVELOCITY < 1 and HITFLOOR ~= nil then | |
2744 | ANIM = "Idle" | |
2745 | if ATTACK == false then | |
2746 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.15 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(45)), 0.15 / Animation_Speed) | |
2747 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-45)), 0.15 / Animation_Speed) | |
2748 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0+ 0.15 * COS(SINE / 12), -0.2) * ANGLES(RAD(150), RAD(35), RAD(-5)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed) | |
2749 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0 + 0.15 * COS(SINE / 12), -0.2) * ANGLES(RAD(130), RAD(0), RAD(5)) * LEFTSHOULDERC0, 0.15 / Animation_Speed) | |
2750 | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1 - 0.15 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(45), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2751 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.15 * COS(SINE / 12), -0.01) * ANGLES(RAD(0), RAD(-76), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed) | |
2752 | end | |
2753 | elseif TORSOVELOCITY > 1 and HITFLOOR ~= nil then | |
2754 | ANIM = "Walk" | |
2755 | if ATTACK == false then | |
2756 | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.15 * COS(SINE / 12)) * ANGLES(RAD(5), RAD(0), RAD(25)), 0.15 / Animation_Speed) | |
2757 | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(-25)), 0.15 / Animation_Speed) | |
2758 | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0+ 0.15 * COS(SINE / 12), -0.2) * ANGLES(RAD(150), RAD(35), RAD(-5)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed) | |
2759 | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.35, 0 + 0.15 * COS(SINE / 12), -0.2) * ANGLES(RAD(130), RAD(0), RAD(5)) * LEFTSHOULDERC0, 0.15 / Animation_Speed) | |
2760 | 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(65), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(-15)), 2 / Animation_Speed) | |
2761 | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1 - 0.15 * COS(SINE / WALKSPEEDVALUE*2), -0.5+ -0.2 * COS(SINE / WALKSPEEDVALUE)) * ANGLES(RAD(0), RAD(-115), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(15)), 2 / Animation_Speed) | |
2762 | end | |
2763 | end | |
2764 | unanchor() | |
2765 | Humanoid.MaxHealth = "inf" | |
2766 | Humanoid.Health = "inf" | |
2767 | if Rooted == false then | |
2768 | Disable_Jump = false | |
2769 | Humanoid.WalkSpeed = Speed | |
2770 | elseif Rooted == true then | |
2771 | Disable_Jump = true | |
2772 | Humanoid.WalkSpeed = 0 | |
2773 | end | |
2774 | ||
2775 | sick.Parent = Torso | |
2776 | sick:resume() | |
2777 | sick.Volume = 1 | |
2778 | sick.Pitch = 1 | |
2779 | sick.SoundId = "rbxassetid://733456981" | |
2780 | sick.Name = "Un sen" | |
2781 | end | |
2782 | --//=================================\\ | |
2783 | --\\=================================// | |
2784 | ||
2785 | ||
2786 | --//====================================================\\-- | |
2787 | --|| END OF SCRIPT | |
2788 | --\\====================================================//-- |