SHOW:
|
|
- or go back to the newest paste.
1 | - | --//====================================================\\-- |
1 | + | -- Created by Nebula_Zorua Edit By PowerSans1234-- |
2 | - | --|| CREATED BY SHACKLUSTER |
2 | + | -- Your DeTERMINATION -- |
3 | - | --\\====================================================//-- |
3 | + | -- Y o u a c t l i k e y o u h a v e a c h o i c e. =) -- |
4 | -- Discord: Nebula the Zorua#6969 | |
5 | - | wait(0.2) |
5 | + | -- Youtube: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA |
6 | ||
7 | - | Player = game:GetService("Players").LocalPlayer |
7 | + | |
8 | - | PlayerGui = Player.PlayerGui |
8 | + | --// Initializing \\-- |
9 | - | Cam = workspace.CurrentCamera |
9 | + | local S = setmetatable({},{__index = function(s,i) return game:service(i) end}) |
10 | - | Backpack = Player.Backpack |
10 | + | local Plrs = S.Players |
11 | - | Character = Player.Character |
11 | + | local Plr = Plrs.LocalPlayer |
12 | - | Humanoid = Character.Humanoid |
12 | + | local Char = Plr.Character |
13 | - | Mouse = Player:GetMouse() |
13 | + | local Hum = Char:FindFirstChildOfClass'Humanoid' |
14 | - | RootPart = Character["HumanoidRootPart"] |
14 | + | local RArm = Char["Right Arm"] |
15 | - | Torso = Character["Torso"] |
15 | + | local LArm = Char["Left Arm"] |
16 | - | Head = Character["Head"] |
16 | + | local RLeg = Char["Right Leg"] |
17 | - | RightArm = Character["Right Arm"] |
17 | + | local LLeg = Char["Left Leg"] |
18 | - | LeftArm = Character["Left Arm"] |
18 | + | local Root = Char:FindFirstChild'HumanoidRootPart' |
19 | - | RightLeg = Character["Right Leg"] |
19 | + | local Torso = Char.Torso |
20 | - | LeftLeg = Character["Left Leg"] |
20 | + | local Head = Char.Head |
21 | - | RootJoint = RootPart["RootJoint"] |
21 | + | local NeutralAnims = true |
22 | - | Neck = Torso["Neck"] |
22 | + | local Attack = false |
23 | - | RightShoulder = Torso["Right Shoulder"] |
23 | + | local BloodPuddles = {} |
24 | - | LeftShoulder = Torso["Left Shoulder"] |
24 | + | local Effects = {} |
25 | - | RightHip = Torso["Right Hip"] |
25 | + | local Debounces = {Debounces={}} |
26 | - | LeftHip = Torso["Left Hip"] |
26 | + | local Mouse = Plr:GetMouse() |
27 | local Hit = {} | |
28 | - | IT = Instance.new |
28 | + | local Sine = 0 |
29 | - | CF = CFrame.new |
29 | + | local Change = 1 |
30 | - | VT = Vector3.new |
30 | + | local Souls = 0 |
31 | - | RAD = math.rad |
31 | + | --// Debounce System \\-- |
32 | - | C3 = Color3.new |
32 | + | |
33 | - | UD2 = UDim2.new |
33 | + | |
34 | - | BRICKC = BrickColor.new |
34 | + | function Debounces:New(name,cooldown) |
35 | - | ANGLES = CFrame.Angles |
35 | + | local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0} |
36 | - | EULER = CFrame.fromEulerAnglesXYZ |
36 | + | setmetatable(aaaaa,{__index = Debounces}) |
37 | - | COS = math.cos |
37 | + | Debounces.Debounces[name] = aaaaa |
38 | - | ACOS = math.acos |
38 | + | return aaaaa |
39 | - | SIN = math.sin |
39 | + | |
40 | - | ASIN = math.asin |
40 | + | |
41 | - | ABS = math.abs |
41 | + | function Debounces:Use(overrideUsable) |
42 | - | MRANDOM = math.random |
42 | + | assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use") |
43 | - | FLOOR = math.floor |
43 | + | if(self.Usable or overrideUsable)then |
44 | self.Usable = false | |
45 | - | --//=================================\\ |
45 | + | self.CoolingDown = true |
46 | - | --|| USEFUL VALUES |
46 | + | local LastUse = time() |
47 | - | --\\=================================// |
47 | + | self.LastUse = LastUse |
48 | delay(self.Cooldown or 2,function() | |
49 | - | Animation_Speed = 3 |
49 | + | if(self.LastUse == LastUse)then |
50 | - | Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60) |
50 | + | self.CoolingDown = false |
51 | - | local Speed = 16 |
51 | + | self.Usable = true |
52 | - | local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) |
52 | + | end |
53 | - | local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180)) |
53 | + | end) |
54 | - | local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) |
54 | + | end |
55 | - | local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) |
55 | + | |
56 | - | local DAMAGEMULTIPLIER = 1 |
56 | + | |
57 | - | local ANIM = "Idle" |
57 | + | function Debounces:Get(name) |
58 | - | local ATTACK = false |
58 | + | assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name))) |
59 | - | local EQUIPPED = false |
59 | + | for i,v in next, Debounces.Debounces do |
60 | - | local HOLD = false |
60 | + | if(i == name)then |
61 | - | local COMBO = 1 |
61 | + | return v; |
62 | - | local Rooted = false |
62 | + | |
63 | - | local SINE = 0 |
63 | + | end |
64 | - | local KEYHOLD = false |
64 | + | |
65 | - | local CHANGE = 2 / Animation_Speed |
65 | + | |
66 | - | local WALKINGANIM = false |
66 | + | function Debounces:GetProgressPercentage() |
67 | - | local VALUE1 = false |
67 | + | assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use") |
68 | - | local VALUE2 = false |
68 | + | if(self.CoolingDown and not self.Usable)then |
69 | - | local ROBLOXIDLEANIMATION = IT("Animation") |
69 | + | return math.max( |
70 | - | ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation" |
70 | + | math.floor( |
71 | - | ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571" |
71 | + | ( |
72 | - | --ROBLOXIDLEANIMATION.Parent = Humanoid |
72 | + | (time()-self.LastUse)/self.Cooldown or 2 |
73 | - | local WEAPONGUI = IT("ScreenGui", PlayerGui) |
73 | + | )*100 |
74 | - | WEAPONGUI.Name = "Weapon GUI" |
74 | + | ) |
75 | - | local Weapon = IT("Model") |
75 | + | ) |
76 | - | Weapon.Name = "Adds" |
76 | + | else |
77 | - | local Effects = IT("Folder", Weapon) |
77 | + | return 100 |
78 | end | |
79 | - | local ANIMATOR = Humanoid.Animator |
79 | + | |
80 | - | local ANIMATE = Character.Animate |
80 | + | |
81 | - | local UNANCHOR = true |
81 | + | --// Shortcut Variables \\-- |
82 | local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ} | |
83 | - | --//=================================\\ |
83 | + | local C3 = {N=Color3.new,RGB=Color3.fromRGB,HSV=Color3.fromHSV,tHSV=Color3.toHSV} |
84 | - | --\\=================================// |
84 | + | local V3 = {N=Vector3.new,FNI=Vector3.FromNormalId,A=Vector3.FromAxis} |
85 | local M = {C=math.cos,R=math.rad,S=math.sin,P=math.pi,RNG=math.random,MRS=math.randomseed,H=math.huge,RRNG = function(min,max,div) return math.rad(math.random(min,max)/(div or 1)) end} | |
86 | local R3 = {N=Region3.new} | |
87 | - | --//=================================\\ |
87 | + | local De = S.Debris |
88 | - | --|| SAZERENOS' ARTIFICIAL HEARTBEAT |
88 | + | local WS = workspace |
89 | - | --\\=================================// |
89 | + | local Lght = S.Lighting |
90 | local RepS = S.ReplicatedStorage | |
91 | - | ArtificialHB = Instance.new("BindableEvent", script) |
91 | + | local IN = Instance.new |
92 | - | ArtificialHB.Name = "ArtificialHB" |
92 | + | local CSK = ColorSequenceKeypoint.new |
93 | local CS = ColorSequence.new | |
94 | - | script:WaitForChild("ArtificialHB") |
94 | + | --// Instance Creation Functions \\-- |
95 | ||
96 | - | frame = Frame_Speed |
96 | + | function Sound(parent,id,pitch,volume,looped,effect,autoPlay) |
97 | - | tf = 0 |
97 | + | local Sound = IN("Sound") |
98 | - | allowframeloss = false |
98 | + | Sound.SoundId = "rbxassetid://".. tostring(id or 0) |
99 | - | tossremainder = false |
99 | + | Sound.Pitch = pitch or 1 |
100 | - | lastframe = tick() |
100 | + | Sound.Volume = volume or 1 |
101 | - | script.ArtificialHB:Fire() |
101 | + | Sound.Looped = looped or false |
102 | if(autoPlay)then | |
103 | coroutine.wrap(function() | |
104 | - | tf = tf + s |
104 | + | repeat wait() until Sound.IsLoaded |
105 | - | if tf >= frame then |
105 | + | Sound.Playing = autoPlay or false |
106 | - | if allowframeloss then |
106 | + | end)() |
107 | - | script.ArtificialHB:Fire() |
107 | + | end |
108 | - | lastframe = tick() |
108 | + | if(not looped and effect)then |
109 | - | else |
109 | + | Sound.Stopped:connect(function() |
110 | - | for i = 1, math.floor(tf / frame) do |
110 | + | Sound.Volume = 0 |
111 | - | script.ArtificialHB:Fire() |
111 | + | Sound:destroy() |
112 | - | end |
112 | + | end) |
113 | - | lastframe = tick() |
113 | + | elseif(effect)then |
114 | - | end |
114 | + | warn("Sound can't be looped and a sound effect!") |
115 | - | if tossremainder then |
115 | + | end |
116 | - | tf = 0 |
116 | + | Sound.Parent =parent or Torso |
117 | - | else |
117 | + | return Sound |
118 | - | tf = tf - frame * math.floor(tf / frame) |
118 | + | |
119 | - | end |
119 | + | function Part(parent,color,material,size,cframe,anchored,cancollide) |
120 | - | end |
120 | + | local part = IN("Part") |
121 | part[typeof(color) == 'BrickColor' and 'BrickColor' or 'Color'] = color or C3.N(0,0,0) | |
122 | part.Material = (material or Enum.Material.SmoothPlastic) | |
123 | - | --//=================================\\ |
123 | + | part.TopSurface,part.BottomSurface=10,10 |
124 | - | --\\=================================// |
124 | + | part.Size = (size or V3.N(1,1,1)) |
125 | part.CFrame = (cframe or CF.N(0,0,0)) | |
126 | - | --//=================================\\ |
126 | + | part.Anchored = (anchored or false) |
127 | - | --|| SOME FUNCTIONS |
127 | + | part.CanCollide = (cancollide or false) |
128 | - | --\\=================================// |
128 | + | part.Parent = (parent or Char) |
129 | return part | |
130 | - | function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS) |
130 | + | |
131 | - | return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS) |
131 | + | function Mesh(parent,meshtype,meshid,textid,scale,offset) |
132 | local part = IN("SpecialMesh") | |
133 | part.MeshId = meshid or "" | |
134 | - | function PositiveAngle(NUMBER) |
134 | + | part.TextureId = textid or "" |
135 | - | if NUMBER >= 0 then |
135 | + | part.Scale = scale or V3.N(1,1,1) |
136 | - | NUMBER = 0 |
136 | + | part.Offset = offset or V3.N(0,0,0) |
137 | - | end |
137 | + | part.MeshType = meshtype or Enum.MeshType.Sphere |
138 | - | return NUMBER |
138 | + | part.Parent = parent |
139 | return part | |
140 | end | |
141 | - | function NegativeAngle(NUMBER) |
141 | + | |
142 | - | if NUMBER <= 0 then |
142 | + | NewInstance = function(instance,parent,properties) |
143 | - | NUMBER = 0 |
143 | + | local inst = Instance.new(instance,parent) |
144 | - | end |
144 | + | if(properties)then |
145 | - | return NUMBER |
145 | + | for i,v in next, properties do |
146 | pcall(function() inst[i] = v end) | |
147 | end | |
148 | - | function Swait(NUMBER) |
148 | + | end |
149 | - | if NUMBER == 0 or NUMBER == nil then |
149 | + | return inst; |
150 | - | ArtificialHB.Event:wait() |
150 | + | |
151 | - | else |
151 | + | |
152 | - | for i = 1, NUMBER do |
152 | + | |
153 | - | ArtificialHB.Event:wait() |
153 | + | |
154 | - | end |
154 | + | --// Extended ROBLOX tables \\-- |
155 | - | end |
155 | + | local Instance = setmetatable({ClearChildrenOfClass = function(where,class,recursive) local children = (recursive and where:GetDescendants() or where:GetChildren()) for _,v in next, children do if(v:IsA(class))then v:destroy();end;end;end},{__index = Instance}) |
156 | --// Customization \\-- | |
157 | ||
158 | - | function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET) |
158 | + | local Frame_Speed = 60 -- The frame speed for swait. 1 is automatically divided by this |
159 | - | local NEWMESH = IT(MESH) |
159 | + | local Remove_Hats = false |
160 | - | if MESH == "SpecialMesh" then |
160 | + | local Remove_Clothing = true |
161 | - | NEWMESH.MeshType = MESHTYPE |
161 | + | local PlayerSize = 1 |
162 | - | if MESHID ~= "nil" and MESHID ~= "" then |
162 | + | local DamageColor = BrickColor.new'Really red' |
163 | - | NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID |
163 | + | local MusicID = 846663146 |
164 | - | end |
164 | + | local WalkSpeed = 14 |
165 | - | if TEXTUREID ~= "nil" and TEXTUREID ~= "" then |
165 | + | local MaxSouls = 100 |
166 | - | NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID |
166 | + | local MaxHealth = 500 |
167 | - | end |
167 | + | |
168 | - | end |
168 | + | |
169 | - | NEWMESH.Offset = OFFSET or VT(0, 0, 0) |
169 | + | if(_G.RefusedAnimation == nil) then _G.RefusedAnimation = false end |
170 | - | NEWMESH.Scale = SCALE |
170 | + | |
171 | - | NEWMESH.Parent = PARENT |
171 | + | --// Weapon and GUI creation, and Character Customization \\-- |
172 | - | return NEWMESH |
172 | + | |
173 | if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end | |
174 | if(Remove_Clothing)then Instance.ClearChildrenOfClass(Char,"Clothing",true) Instance.ClearChildrenOfClass(Char,"ShirtGraphic",true) end | |
175 | - | function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR) |
175 | + | local Effects = IN("Folder",Char) |
176 | - | local NEWPART = IT("Part") |
176 | + | |
177 | - | NEWPART.formFactor = FORMFACTOR |
177 | + | |
178 | - | NEWPART.Reflectance = REFLECTANCE |
178 | + | Hum.MaxHealth = MaxHealth |
179 | - | NEWPART.Transparency = TRANSPARENCY |
179 | + | Hum.Health = MaxHealth |
180 | - | NEWPART.CanCollide = false |
180 | + | |
181 | - | NEWPART.Locked = true |
181 | + | local Knife = NewInstance("Part",Char,{Name='Knife',Size=V3.N(.4,3,.7),Anchored=false,CanCollide=false,Locked=true,Archivable=false,Reflectance=.01,Color=C3.N(1,0,0)}) |
182 | - | NEWPART.Anchored = true |
182 | + | local KnifeMesh = Mesh(Knife,Enum.MeshType.FileMesh,"rbxassetid://445556170","rbxassetid://0",V3.N(1,1,1),V3.N()) |
183 | - | if ANCHOR == false then |
183 | + | local AuraEmitter = NewInstance("ParticleEmitter",Knife,{EmissionDirection='Back',Color=CS{CSK(0,C3.N(1,0,0)),CSK(0.5,C3.N(1,0,0)),CSK(1,C3.RGB(255,191,0))},LightEmission=.5,LightInfluence=0,Size=NumberSequence.new(0.3),Texture="rbxassetid://241922778",Transparency=NumberSequence.new(0,1),LockedToPart=true,Lifetime=NumberRange.new(1),Rate=150,Speed=NumberRange.new(0)}) |
184 | - | NEWPART.Anchored = false |
184 | + | local FireEmitter = NewInstance("ParticleEmitter",Knife,{EmissionDirection='Back',Color=CS(C3.N(1,0,0),C3.N(1,0,0)),LightEmission=.5,LightInfluence=0,Size=NumberSequence.new{NumberSequenceKeypoint.new(0,.5,0),NumberSequenceKeypoint.new(0.755,0,0),NumberSequenceKeypoint.new(1,0,0)},Texture="rbxassetid://241594419",Transparency=NumberSequence.new(0.35,1),Lifetime=NumberRange.new(1,2),Rate=150,Speed=NumberRange.new(3)}) |
185 | - | end |
185 | + | |
186 | - | NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR)) |
186 | + | local KTrail = NewInstance("Trail",Knife,{ |
187 | - | NEWPART.Name = NAME |
187 | + | Attachment0=NewInstance("Attachment",Knife,{Position=V3.N(0,-.4,0)}), |
188 | - | NEWPART.Size = SIZE |
188 | + | Attachment1=NewInstance("Attachment",Knife,{Position=V3.N(0,1.2,0)}), |
189 | - | NEWPART.Position = Torso.Position |
189 | + | Color=CS(C3.N(1,0,0)), |
190 | - | NEWPART.Material = MATERIAL |
190 | + | Enabled=false, |
191 | - | NEWPART:BreakJoints() |
191 | + | Transparency=NumberSequence.new(0,1), |
192 | - | NEWPART.Parent = PARENT |
192 | + | Lifetime=1.25, |
193 | - | return NEWPART |
193 | + | }) |
194 | local Hair = Part(Char,C3.N(0,0,0),Enum.Material.SmoothPlastic,V3.N(1,1,1),CF.N(),false,false) | |
195 | local HairMesh = Mesh(Hair,Enum.MeshType.FileMesh,"rbxassetid://0","rbxassetid://07",V3.N(1.05,1.05,1.05),V3.N()) | |
196 | - | local function weldBetween(a, b) |
196 | + | |
197 | - | local weldd = Instance.new("ManualWeld") |
197 | + | NewInstance("PointLight",Knife,{Color=C3.N(1,0,0),Range=10,Brightness=3}) |
198 | - | weldd.Part0 = a |
198 | + | |
199 | - | weldd.Part1 = b |
199 | + | |
200 | - | weldd.C0 = CFrame.new() |
200 | + | Hum.DisplayDistanceType = 'None' |
201 | - | weldd.C1 = b.CFrame:inverse() * a.CFrame |
201 | + | |
202 | - | weldd.Parent = a |
202 | + | local naeeym2 = IN("BillboardGui",Char) |
203 | - | return weldd |
203 | + | naeeym2.AlwaysOnTop = true |
204 | - | end |
204 | + | naeeym2.Size = UDim2.new(5,35,2,15) |
205 | naeeym2.StudsOffset = V3.N(0,2.5,0) | |
206 | naeeym2.Adornee = Char.Head | |
207 | - | function QuaternionFromCFrame(cf) |
207 | + | naeeym2.Name = "Name" |
208 | - | local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() |
208 | + | naeeym2.PlayerToHideFrom = Plr |
209 | - | local trace = m00 + m11 + m22 |
209 | + | local tecks2 = IN("TextLabel",naeeym2) |
210 | - | if trace > 0 then |
210 | + | tecks2.BackgroundTransparency = 1 |
211 | - | local s = math.sqrt(1 + trace) |
211 | + | tecks2.TextScaled = true |
212 | - | local recip = 0.5 / s |
212 | + | tecks2.BorderSizePixel = 0 |
213 | - | return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5 |
213 | + | tecks2.Text = "UnderSwap Megalovania Papyrus" |
214 | - | else |
214 | + | tecks2.Font = Enum.Font.Bodoni |
215 | - | local i = 0 |
215 | + | tecks2.TextSize = 30 |
216 | - | if m11 > m00 then |
216 | + | tecks2.TextStrokeTransparency = 0 |
217 | - | i = 1 |
217 | + | tecks2.TextColor3 = C3.N(255,165,75) |
218 | - | end |
218 | + | tecks2.TextStrokeColor3 = C3.N(.7,0,0) |
219 | - | if m22 > (i == 0 and m00 or m11) then |
219 | + | tecks2.Size = UDim2.new(1,0,0.5,0) |
220 | - | i = 2 |
220 | + | tecks2.Parent = naeeym2 |
221 | - | end |
221 | + | |
222 | - | if i == 0 then |
222 | + | |
223 | - | local s = math.sqrt(m00 - m11 - m22 + 1) |
223 | + | IN("Shirt",Char) |
224 | - | local recip = 0.5 / s |
224 | + | IN("Pants",Char) |
225 | - | return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip |
225 | + | |
226 | - | elseif i == 1 then |
226 | + | Hum.WalkSpeed = WalkSpeed |
227 | - | local s = math.sqrt(m11 - m22 - m00 + 1) |
227 | + | if(PlayerSize ~= 1)then |
228 | - | local recip = 0.5 / s |
228 | + | for _,v in next, Char:GetDescendats() do |
229 | - | return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip |
229 | + | if(v:IsA'BasePart')then |
230 | - | elseif i == 2 then |
230 | + | v.Size = v.Size * PlayerSize |
231 | - | local s = math.sqrt(m22 - m00 - m11 + 1) |
231 | + | |
232 | - | local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip |
232 | + | end |
233 | - | end |
233 | + | |
234 | - | end |
234 | + | |
235 | ||
236 | ||
237 | - | function QuaternionToCFrame(px, py, pz, x, y, z, w) |
237 | + | pcall(function() |
238 | - | local xs, ys, zs = x + x, y + y, z + z |
238 | + | Char.LeftWing:destroy() |
239 | - | local wx, wy, wz = w * xs, w * ys, w * zs |
239 | + | Char.ReaperShadowHead:destroy() |
240 | - | local xx = x * xs |
240 | + | |
241 | - | local xy = x * ys |
241 | + | |
242 | - | local xz = x * zs |
242 | + | |
243 | - | local yy = y * ys |
243 | + | local Music = Sound(Torso,MusicID,1,3,true,false,true) |
244 | - | local yz = y * zs |
244 | + | Music.Name = 'Music' |
245 | - | local zz = z * zs |
245 | + | |
246 | - | 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)) |
246 | + | --// Stop animations \\-- |
247 | for _,v in next, Hum:GetPlayingAnimationTracks() do | |
248 | v:Stop(); | |
249 | - | function QuaternionSlerp(a, b, t) |
249 | + | |
250 | - | local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4] |
250 | + | |
251 | - | local startInterp, finishInterp; |
251 | + | pcall(game.Destroy,Char:FindFirstChild'Animate') |
252 | - | if cosTheta >= 0.0001 then |
252 | + | pcall(game.Destroy,Hum:FindFirstChild'Animator') |
253 | - | if (1 - cosTheta) > 0.0001 then |
253 | + | |
254 | - | local theta = ACOS(cosTheta) |
254 | + | --// Joints \\-- |
255 | - | local invSinTheta = 1 / SIN(theta) |
255 | + | |
256 | - | startInterp = SIN((1 - t) * theta) * invSinTheta |
256 | + | local LS = NewInstance('Motor',Char,{Part0=Torso,Part1=LArm,C0 = CF.N(-1.5 * PlayerSize,0.5 * PlayerSize,0),C1 = CF.N(0,.5 * PlayerSize,0)}) |
257 | - | finishInterp = SIN(t * theta) * invSinTheta |
257 | + | local RS = NewInstance('Motor',Char,{Part0=Torso,Part1=RArm,C0 = CF.N(1.5 * PlayerSize,0.5 * PlayerSize,0),C1 = CF.N(0,.5 * PlayerSize,0)}) |
258 | - | else |
258 | + | local NK = NewInstance('Motor',Char,{Part0=Torso,Part1=Head,C0 = CF.N(0,1.5 * PlayerSize,0)}) |
259 | - | startInterp = 1 - t |
259 | + | local LH = NewInstance('Motor',Char,{Part0=Torso,Part1=LLeg,C0 = CF.N(-.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)}) |
260 | - | finishInterp = t |
260 | + | local RH = NewInstance('Motor',Char,{Part0=Torso,Part1=RLeg,C0 = CF.N(.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)}) |
261 | - | end |
261 | + | local RJ = NewInstance('Motor',Char,{Part0=Root,Part1=Torso}) |
262 | - | else |
262 | + | local HW = NewInstance('Motor',Char,{Part0=RArm,Part1=Knife,C0=CF.N(0,-1,-1)*CF.A(M.R(-90),0,0)}) |
263 | - | if (1 + cosTheta) > 0.0001 then |
263 | + | local HW2 = NewInstance('Motor',Char,{Part0=Head,Part1=Hair,C0=CF.N(0,.25,0)}) |
264 | - | local theta = ACOS(-cosTheta) |
264 | + | |
265 | - | local invSinTheta = 1 / SIN(theta) |
265 | + | local LSC0 = LS.C0 |
266 | - | startInterp = SIN((t - 1) * theta) * invSinTheta |
266 | + | local RSC0 = RS.C0 |
267 | - | finishInterp = SIN(t * theta) * invSinTheta |
267 | + | local NKC0 = NK.C0 |
268 | - | else |
268 | + | local LHC0 = LH.C0 |
269 | - | startInterp = t - 1 |
269 | + | local RHC0 = RH.C0 |
270 | - | finishInterp = t |
270 | + | local RJC0 = RJ.C0 |
271 | - | end |
271 | + | |
272 | - | end |
272 | + | --// Artificial HB \\-- |
273 | - | 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 |
273 | + | |
274 | local ArtificialHB = IN("BindableEvent", script) | |
275 | ArtificialHB.Name = "Heartbeat" | |
276 | - | function Clerp(a, b, t) |
276 | + | |
277 | - | local qa = {QuaternionFromCFrame(a)} |
277 | + | script:WaitForChild("Heartbeat") |
278 | - | local qb = {QuaternionFromCFrame(b)} |
278 | + | |
279 | - | local ax, ay, az = a.x, a.y, a.z |
279 | + | local tf = 0 |
280 | - | local bx, by, bz = b.x, b.y, b.z |
280 | + | local allowframeloss = false |
281 | - | local _t = 1 - t |
281 | + | local tossremainder = false |
282 | - | return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t)) |
282 | + | local lastframe = tick() |
283 | local frame = 1/Frame_Speed | |
284 | ArtificialHB:Fire() | |
285 | - | function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME) |
285 | + | |
286 | - | local frame = IT("Frame") |
286 | + | |
287 | - | frame.BackgroundTransparency = TRANSPARENCY |
287 | + | tf = tf + s |
288 | - | frame.BorderSizePixel = BORDERSIZEPIXEL |
288 | + | if tf >= frame then |
289 | - | frame.Position = POSITION |
289 | + | if allowframeloss then |
290 | - | frame.Size = SIZE |
290 | + | script.Heartbeat:Fire() |
291 | - | frame.BackgroundColor3 = COLOR |
291 | + | lastframe = tick() |
292 | - | frame.BorderColor3 = BORDERCOLOR |
292 | + | else |
293 | - | frame.Name = NAME |
293 | + | for i = 1, math.floor(tf / frame) do |
294 | - | frame.Parent = PARENT |
294 | + | ArtificialHB:Fire() |
295 | - | return frame |
295 | + | end |
296 | lastframe = tick() | |
297 | end | |
298 | - | function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME) |
298 | + | if tossremainder then |
299 | - | local label = IT("TextLabel") |
299 | + | tf = 0 |
300 | - | label.BackgroundTransparency = 1 |
300 | + | else |
301 | - | label.Size = UD2(1, 0, 1, 0) |
301 | + | tf = tf - frame * math.floor(tf / frame) |
302 | - | label.Position = UD2(0, 0, 0, 0) |
302 | + | |
303 | - | label.TextColor3 = TEXTCOLOR |
303 | + | end |
304 | - | label.TextStrokeTransparency = STROKETRANSPARENCY |
304 | + | |
305 | - | label.TextTransparency = TRANSPARENCY |
305 | + | |
306 | - | label.FontSize = TEXTFONTSIZE |
306 | + | function swait(num) |
307 | - | label.Font = TEXTFONT |
307 | + | if num == 0 or num == nil then |
308 | - | label.BorderSizePixel = BORDERSIZEPIXEL |
308 | + | ArtificialHB.Event:wait() |
309 | - | label.TextScaled = false |
309 | + | else |
310 | - | label.Text = TEXT |
310 | + | for i = 0, num do |
311 | - | label.Name = NAME |
311 | + | ArtificialHB.Event:wait() |
312 | - | label.Parent = PARENT |
312 | + | |
313 | - | return label |
313 | + | end |
314 | end | |
315 | ||
316 | - | function NoOutlines(PART) |
316 | + | |
317 | - | PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10 |
317 | + | --// Effect Function(s) \\-- |
318 | ||
319 | function Bezier(startpos, pos2, pos3, endpos, t) | |
320 | - | function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1) |
320 | + | local A = startpos:lerp(pos2, t) |
321 | - | local NEWWELD = IT(TYPE) |
321 | + | local B = pos2:lerp(pos3, t) |
322 | - | NEWWELD.Part0 = PART0 |
322 | + | local C = pos3:lerp(endpos, t) |
323 | - | NEWWELD.Part1 = PART1 |
323 | + | local lerp1 = A:lerp(B, t) |
324 | - | NEWWELD.C0 = C0 |
324 | + | local lerp2 = B:lerp(C, t) |
325 | - | NEWWELD.C1 = C1 |
325 | + | local cubic = lerp1:lerp(lerp2, t) |
326 | - | NEWWELD.Parent = PARENT |
326 | + | return cubic |
327 | - | return NEWWELD |
327 | + | |
328 | ||
329 | function Tween(obj,props,time,easing,direction,repeats,backwards) | |
330 | - | local S = IT("Sound") |
330 | + | local info = TweenInfo.new(time or .5, easing or Enum.EasingStyle.Quad, direction or Enum.EasingDirection.Out, repeats or 0, backwards or false) |
331 | - | function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP) |
331 | + | local tween = S.TweenService:Create(obj, info, props) |
332 | - | local NEWSOUND = nil |
332 | + | |
333 | - | coroutine.resume(coroutine.create(function() |
333 | + | tween:Play() |
334 | - | NEWSOUND = S:Clone() |
334 | + | |
335 | - | NEWSOUND.Parent = PARENT |
335 | + | |
336 | - | NEWSOUND.Volume = VOLUME |
336 | + | local FXTable = {} |
337 | - | NEWSOUND.Pitch = PITCH |
337 | + | |
338 | - | NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID |
338 | + | coroutine.resume(coroutine.create(function() |
339 | - | NEWSOUND:play() |
339 | + | while true do |
340 | - | if DOESLOOP == true then |
340 | + | for i = 1, #FXTable do |
341 | - | NEWSOUND.Looped = true |
341 | + | local data = FXTable[i] |
342 | - | else |
342 | + | if(data)then |
343 | - | repeat wait(1) until NEWSOUND.Playing == false |
343 | + | local Frame = data.Frame |
344 | - | NEWSOUND:remove() |
344 | + | local FX = data.Effect or 'ResizeAndFade' |
345 | - | end |
345 | + | local Parent = data.Parent or Effects |
346 | - | end)) |
346 | + | local Color = data.Color or C3.N(0,0,0) |
347 | - | return NEWSOUND |
347 | + | local Size = data.Size or V3.N(1,1,1) |
348 | local MoveDir = data.MoveDirection or nil | |
349 | local MeshData = data.Mesh or nil | |
350 | - | function CFrameFromTopBack(at, top, back) |
350 | + | local SndData = data.Sound or nil |
351 | - | local right = top:Cross(back) |
351 | + | local Frames = data.Frames or 45 |
352 | - | 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) |
352 | + | local CFra = data.CFrame or Torso.CFrame |
353 | local Settings = data.FXSettings or {} | |
354 | local Prt,Msh,Snd = data.Part,data.Mesh,data.Sound | |
355 | - | --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}) |
355 | + | local grow = data.Grow |
356 | - | function WACKYEFFECT(Table) |
356 | + | |
357 | - | local TYPE = (Table.EffectType or "Sphere") |
357 | + | local MoveSpeed = nil; |
358 | - | local SIZE = (Table.Size or VT(1,1,1)) |
358 | + | if(MoveDir)then |
359 | - | local ENDSIZE = (Table.Size2 or VT(0,0,0)) |
359 | + | MoveSpeed = (CFra.p - MoveDir).magnitude/Frames |
360 | - | local TRANSPARENCY = (Table.Transparency or 0) |
360 | + | end |
361 | - | local ENDTRANSPARENCY = (Table.Transparency2 or 1) |
361 | + | if(FX ~= 'Arc')then |
362 | - | local CFRAME = (Table.CFrame or Torso.CFrame) |
362 | + | Frame = Frame + 1 |
363 | - | local MOVEDIRECTION = (Table.MoveToPos or nil) |
363 | + | if(FX == "Fade")then |
364 | - | local ROTATION1 = (Table.RotationX or 0) |
364 | + | Prt.Transparency = (Frame/Frames) |
365 | - | local ROTATION2 = (Table.RotationY or 0) |
365 | + | elseif(FX == "Resize")then |
366 | - | local ROTATION3 = (Table.RotationZ or 0) |
366 | + | if(not Settings.EndSize)then |
367 | - | local MATERIAL = (Table.Material or "Neon") |
367 | + | Settings.EndSize = V3.N(0,0,0) |
368 | - | local COLOR = (Table.Color or C3(1,1,1)) |
368 | + | end |
369 | - | local TIME = (Table.Time or 45) |
369 | + | if(Settings.EndIsIncrement)then |
370 | - | local SOUNDID = (Table.SoundID or nil) |
370 | + | if(Msh)then |
371 | - | local SOUNDPITCH = (Table.SoundPitch or nil) |
371 | + | Msh.Scale = Msh.Scale + Settings.EndSize |
372 | - | local SOUNDVOLUME = (Table.SoundVolume or nil) |
372 | + | else |
373 | - | coroutine.resume(coroutine.create(function() |
373 | + | Prt.Size = Prt.Size + Settings.EndSize |
374 | - | local PLAYSSOUND = false |
374 | + | end |
375 | - | local SOUND = nil |
375 | + | else |
376 | - | local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true) |
376 | + | if(Msh)then |
377 | - | if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then |
377 | + | Msh.Scale = Msh.Scale - grow/Frames |
378 | - | PLAYSSOUND = true |
378 | + | else |
379 | - | SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false) |
379 | + | Prt.Size = Prt.Size - grow/Frames |
380 | - | end |
380 | + | end |
381 | - | EFFECT.Color = COLOR |
381 | + | end |
382 | - | local MSH = nil |
382 | + | elseif(FX == "ResizeAndFade")then |
383 | - | if TYPE == "Sphere" then |
383 | + | if(not Settings.EndSize)then |
384 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0)) |
384 | + | Settings.EndSize = V3.N(0,0,0) |
385 | - | elseif TYPE == "Block" then |
385 | + | end |
386 | - | MSH = IT("BlockMesh",EFFECT) |
386 | + | if(Settings.EndIsIncrement)then |
387 | - | MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X) |
387 | + | if(Msh)then |
388 | - | elseif TYPE == "Wave" then |
388 | + | Msh.Scale = Msh.Scale + Settings.EndSize |
389 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8)) |
389 | + | else |
390 | - | elseif TYPE == "Ring" then |
390 | + | Prt.Size = Prt.Size + Settings.EndSize |
391 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0)) |
391 | + | end |
392 | - | elseif TYPE == "Slash" then |
392 | + | else |
393 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0)) |
393 | + | if(Msh)then |
394 | - | elseif TYPE == "Round Slash" then |
394 | + | Msh.Scale = Msh.Scale - grow/Frames |
395 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0)) |
395 | + | else |
396 | - | elseif TYPE == "Swirl" then |
396 | + | Prt.Size = Prt.Size - grow/Frames |
397 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0)) |
397 | + | end |
398 | - | elseif TYPE == "Skull" then |
398 | + | end |
399 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0)) |
399 | + | Prt.Transparency = (Frame/Frames) |
400 | - | elseif TYPE == "Crystal" then |
400 | + | end |
401 | - | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0)) |
401 | + | if(Settings.RandomizeCFrame)then |
402 | - | end |
402 | + | Prt.CFrame = Prt.CFrame * CF.A(M.RRNG(-360,360),M.RRNG(-360,360),M.RRNG(-360,360)) |
403 | - | if MSH ~= nil then |
403 | + | end |
404 | - | local MOVESPEED = nil |
404 | + | if(MoveDir and MoveSpeed)then |
405 | - | if MOVEDIRECTION ~= nil then |
405 | + | local Orientation = Prt.Orientation |
406 | - | MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME |
406 | + | Prt.CFrame = CF.N(Prt.Position,MoveDir)*CF.N(0,0,-MoveSpeed) |
407 | - | end |
407 | + | Prt.Orientation = Orientation |
408 | - | local GROWTH = SIZE - ENDSIZE |
408 | + | end |
409 | - | local TRANS = TRANSPARENCY - ENDTRANSPARENCY |
409 | + | if(Prt.Transparency >= 1 or Frame >= Frames)then |
410 | - | if TYPE == "Block" then |
410 | + | Prt:destroy() |
411 | - | EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) |
411 | + | table.remove(FXTable,i) |
412 | - | else |
412 | + | else |
413 | - | EFFECT.CFrame = CFRAME |
413 | + | data.Frame = Frame |
414 | - | end |
414 | + | end |
415 | - | for LOOP = 1, TIME+1 do |
415 | + | else |
416 | - | Swait() |
416 | + | local start,third,fourth,endP = Settings.Start,Settings.Third,Settings.Fourth,Settings.End |
417 | - | MSH.Scale = MSH.Scale - GROWTH/TIME |
417 | + | if(not Settings.End and Settings.Home)then endP = Settings.Home.CFrame end |
418 | - | if TYPE == "Wave" then |
418 | + | if(start and endP)then |
419 | - | MSH.Offset = VT(0,0,-MSH.Scale.X/8) |
419 | + | local quarter = third or start:lerp(endP, 0.25) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25)) |
420 | - | end |
420 | + | local threequarter = fourth or start:lerp(endP, 0.75) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25)) |
421 | - | EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME |
421 | + | Frame = Frame + (Settings.Speed or 0.01) |
422 | - | if TYPE == "Block" then |
422 | + | if(Settings.Home)then |
423 | - | EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) |
423 | + | endP = Settings.Home.CFrame |
424 | - | else |
424 | + | end |
425 | - | EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3)) |
425 | + | Prt.CFrame = Bezier(start, quarter, threequarter, endP, Frame) |
426 | - | end |
426 | + | if(Prt.Transparency >= 1 or Frame >= Frames)then |
427 | - | if MOVEDIRECTION ~= nil then |
427 | + | if(Settings.RemoveOnGoal)then |
428 | - | local ORI = EFFECT.Orientation |
428 | + | Prt:destroy() |
429 | - | EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED) |
429 | + | end |
430 | - | EFFECT.Orientation = ORI |
430 | + | end |
431 | - | end |
431 | + | else |
432 | - | end |
432 | + | Prt:destroy() |
433 | - | if PLAYSSOUND == false then |
433 | + | end |
434 | - | EFFECT:remove() |
434 | + | end |
435 | - | else |
435 | + | end |
436 | - | repeat Swait() until SOUND.Playing == false |
436 | + | |
437 | - | EFFECT:remove() |
437 | + | swait() |
438 | - | end |
438 | + | end |
439 | - | else |
439 | + | end)) |
440 | - | if PLAYSSOUND == false then |
440 | + | |
441 | - | EFFECT:remove() |
441 | + | function Effect(data) |
442 | - | else |
442 | + | local FX = data.Effect or 'ResizeAndFade' |
443 | - | repeat Swait() until SOUND.Playing == false |
443 | + | local Parent = data.Parent or Effects |
444 | - | EFFECT:remove() |
444 | + | local Color = data.Color or C3.N(0,0,0) |
445 | - | end |
445 | + | local Size = data.Size or V3.N(1,1,1) |
446 | - | end |
446 | + | local MoveDir = data.MoveDirection or nil |
447 | - | end)) |
447 | + | local MeshData = data.Mesh or nil |
448 | local SndData = data.Sound or nil | |
449 | local Frames = data.Frames or 45 | |
450 | - | function MakeForm(PART,TYPE) |
450 | + | local Manual = data.Manual or nil |
451 | - | if TYPE == "Cyl" then |
451 | + | local Material = data.Material or nil |
452 | - | local MSH = IT("CylinderMesh",PART) |
452 | + | local CFra = data.CFrame or Torso.CFrame |
453 | - | elseif TYPE == "Ball" then |
453 | + | local Settings = data.FXSettings or {} |
454 | - | local MSH = IT("SpecialMesh",PART) |
454 | + | local Shape = data.Shape or Enum.PartType.Block |
455 | - | MSH.MeshType = "Sphere" |
455 | + | local Snd,Prt,Msh; |
456 | - | elseif TYPE == "Wedge" then |
456 | + | coroutine.wrap(function() |
457 | - | local MSH = IT("SpecialMesh",PART) |
457 | + | if(Manual and typeof(Manual) == 'Instance' and Manual:IsA'BasePart')then |
458 | - | MSH.MeshType = "Wedge" |
458 | + | Prt = Manual |
459 | - | end |
459 | + | else |
460 | Prt = Part(Parent,Color,Material,Size,CFra,true,false) | |
461 | Prt.Shape = Shape | |
462 | - | Debris = game:GetService("Debris") |
462 | + | |
463 | if(typeof(MeshData) == 'table')then | |
464 | - | function CastProperRay(StartPos, EndPos, Distance, Ignore) |
464 | + | Msh = Mesh(Prt,MeshData.MeshType,MeshData.MeshId,MeshData.TextureId,MeshData.Scale,MeshData.Offset) |
465 | - | local DIRECTION = CF(StartPos,EndPos).lookVector |
465 | + | elseif(typeof(MeshData) == 'Instance')then |
466 | - | return Raycast(StartPos, DIRECTION, Distance, Ignore) |
466 | + | Msh = MeshData:Clone() |
467 | Msh.Parent = Prt | |
468 | elseif(Shape == Enum.PartType.Block)then | |
469 | - | function CharacterFade(COLOR,TIMER) |
469 | + | Msh = Mesh(Prt,Enum.MeshType.Brick) |
470 | - | coroutine.resume(coroutine.create(function() |
470 | + | |
471 | - | local FADE = IT("Model",Effects) |
471 | + | if(typeof(SndData) == 'table' or typeof(SndData) == 'Instance')then |
472 | - | for _, c in pairs(Character:GetChildren()) do |
472 | + | Snd = Sound(Prt,SndData.SoundId,SndData.Pitch,SndData.Volume,false,false,true) |
473 | - | if c.ClassName == "Part" and c ~= RootPart then |
473 | + | |
474 | - | local FADER = c:Clone() |
474 | + | if(Snd)then |
475 | - | FADER.Color = COLOR |
475 | + | repeat swait() until Snd.Playing and Snd.IsLoaded and Snd.TimeLength > 0 |
476 | - | FADER.CFrame = c.CFrame |
476 | + | Frames = Snd.TimeLength * Frame_Speed/Snd.Pitch |
477 | - | FADER.Parent = FADE |
477 | + | |
478 | - | FADER.Anchored = true |
478 | + | Size = (Msh and Msh.Scale or Size) |
479 | - | FADER.Transparency = 0.25 |
479 | + | local grow = Size-(Settings.EndSize or (Msh and Msh.Scale or Size)/2) |
480 | - | FADER:BreakJoints() |
480 | + | |
481 | - | FADER.Material = "Glass" |
481 | + | local MoveSpeed = nil; |
482 | - | FADER:ClearAllChildren() |
482 | + | if(MoveDir)then |
483 | - | if FADER.Name == "Head" then |
483 | + | MoveSpeed = (CFra.p - MoveDir).magnitude/Frames |
484 | - | FADER.Size = VT(1,1,1) |
484 | + | |
485 | - | end |
485 | + | if(FX ~= 'Arc')then |
486 | - | end |
486 | + | for Frame = 1, Frames do |
487 | - | end |
487 | + | if(FX == "Fade")then |
488 | - | local TRANS = 0.75/TIMER |
488 | + | Prt.Transparency = (Frame/Frames) |
489 | - | for i = 1, TIMER do |
489 | + | elseif(FX == "Resize")then |
490 | - | Swait() |
490 | + | if(not Settings.EndSize)then |
491 | - | for _, c in pairs(FADE:GetChildren()) do |
491 | + | Settings.EndSize = V3.N(0,0,0) |
492 | - | if c.ClassName == "Part" then |
492 | + | end |
493 | - | c.Transparency = c.Transparency + TRANS |
493 | + | if(Settings.EndIsIncrement)then |
494 | - | end |
494 | + | if(Msh)then |
495 | - | end |
495 | + | Msh.Scale = Msh.Scale + Settings.EndSize |
496 | - | end |
496 | + | else |
497 | - | FADE:remove() |
497 | + | Prt.Size = Prt.Size + Settings.EndSize |
498 | - | end)) |
498 | + | end |
499 | else | |
500 | if(Msh)then | |
501 | - | local PE=Instance.new("ParticleEmitter") |
501 | + | Msh.Scale = Msh.Scale - grow/Frames |
502 | - | PE.LightEmission=0.3 |
502 | + | else |
503 | - | PE.Size=NumberSequence.new(0) |
503 | + | Prt.Size = Prt.Size - grow/Frames |
504 | - | PE.Transparency=NumberSequence.new(0,1) |
504 | + | end |
505 | - | PE.Rotation=NumberRange.new(0,360) |
505 | + | end |
506 | - | PE.LockedToPart = false |
506 | + | elseif(FX == "ResizeAndFade")then |
507 | - | PE.Speed = NumberRange.new(0,0,0) |
507 | + | if(not Settings.EndSize)then |
508 | - | PE.ZOffset = 0.3 |
508 | + | Settings.EndSize = V3.N(0,0,0) |
509 | - | PE.Rate = 999 |
509 | + | end |
510 | - | PE.VelocitySpread = 25 |
510 | + | if(Settings.EndIsIncrement)then |
511 | - | PE.Name = "Particles" |
511 | + | if(Msh)then |
512 | Msh.Scale = Msh.Scale + Settings.EndSize | |
513 | - | function CreateParticles(art,accel,drag,lifetime,type,isenabledbydefault,locked,size,speed) |
513 | + | else |
514 | - | local particle = nil |
514 | + | Prt.Size = Prt.Size + Settings.EndSize |
515 | - | coroutine.resume(coroutine.create(function(PART) |
515 | + | end |
516 | - | particle = PE:Clone() |
516 | + | else |
517 | - | Swait() |
517 | + | if(Msh)then |
518 | - | particle.Rate = 999 |
518 | + | Msh.Scale = Msh.Scale - grow/Frames |
519 | - | particle.Parent = art |
519 | + | else |
520 | - | particle.Acceleration = accel |
520 | + | Prt.Size = Prt.Size - grow/Frames |
521 | - | if type == "Fire" then |
521 | + | end |
522 | - | local EyeSizes={ |
522 | + | end |
523 | - | NumberSequenceKeypoint.new(0,size,size/2), |
523 | + | Prt.Transparency = (Frame/Frames) |
524 | - | NumberSequenceKeypoint.new(1,size/4,size/8) |
524 | + | end |
525 | if(Settings.RandomizeCFrame)then | |
526 | - | particle.Size = NumberSequence.new(EyeSizes) |
526 | + | Prt.CFrame = Prt.CFrame * CF.A(M.RRNG(-360,360),M.RRNG(-360,360),M.RRNG(-360,360)) |
527 | - | elseif type == "Smoke" then |
527 | + | end |
528 | - | local EyeSizes={ |
528 | + | if(MoveDir and MoveSpeed)then |
529 | - | NumberSequenceKeypoint.new(0,size/5,0), |
529 | + | local Orientation = Prt.Orientation |
530 | - | NumberSequenceKeypoint.new(1,size*2,0.5) |
530 | + | Prt.CFrame = CF.N(Prt.Position,MoveDir)*CF.N(0,0,-MoveSpeed) |
531 | Prt.Orientation = Orientation | |
532 | - | particle.Size = NumberSequence.new(EyeSizes) |
532 | + | end |
533 | - | elseif type == "Solid" then |
533 | + | swait() |
534 | - | local EyeSizes={ |
534 | + | end |
535 | - | NumberSequenceKeypoint.new(0,size,0), |
535 | + | Prt:destroy() |
536 | - | NumberSequenceKeypoint.new(1,size,0) |
536 | + | else |
537 | local start,third,fourth,endP = Settings.Start,Settings.Third,Settings.Fourth,Settings.End | |
538 | - | particle.Size = NumberSequence.new(EyeSizes) |
538 | + | if(not Settings.End and Settings.Home)then endP = Settings.Home.CFrame end |
539 | if(start and endP)then | |
540 | - | particle.Lifetime=NumberRange.new(lifetime) |
540 | + | local quarter = third or start:lerp(endP, 0.25) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25)) |
541 | - | particle.Drag = drag |
541 | + | local threequarter = fourth or start:lerp(endP, 0.75) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25)) |
542 | - | if locked == true then |
542 | + | for Frame = 0, 1, (Settings.Speed or 0.01) do |
543 | - | particle.LockedToPart = true |
543 | + | if(Settings.Home)then |
544 | endP = Settings.Home.CFrame | |
545 | - | particle.Speed = NumberRange.new(speed*0.8,speed) |
545 | + | end |
546 | - | particle.Texture = "http://www.roblox.com/asset/?id=1179557490" |
546 | + | Prt.CFrame = Bezier(start, quarter, threequarter, endP, Frame) |
547 | - | particle.Enabled = isenabledbydefault |
547 | + | end |
548 | - | particle.Color = ColorSequence.new(Color3.new(255/255, 176/255, 0)) |
548 | + | if(Settings.RemoveOnGoal)then |
549 | - | end)) |
549 | + | Prt:destroy() |
550 | - | return particle |
550 | + | end |
551 | else | |
552 | Prt:destroy() | |
553 | - | --//=================================\\ |
553 | + | assert(start,"You need a start position!") |
554 | - | --|| RAGDOLL STUFF |
554 | + | assert(endP,"You need a start position!") |
555 | - | --\\=================================// |
555 | + | end |
556 | end | |
557 | - | function recurse(root,callback,i) |
557 | + | end)() |
558 | - | i= i or 0 |
558 | + | return Prt,Msh,Snd |
559 | - | for _,v in pairs(root:GetChildren()) do |
559 | + | |
560 | - | i = i + 1 |
560 | + | |
561 | - | callback(i,v) |
561 | + | |
562 | - | |
562 | + | |
563 | - | if #v:GetChildren() > 0 then |
563 | + | function SoulSteal(whom,human) |
564 | - | i = recurse(v,callback,i) |
564 | + | local torso = (whom:FindFirstChild'Torso' or whom:FindFirstChild'UpperTorso' or whom:FindFirstChild'LowerTorso' or whom:FindFirstChild'HumanoidRootPart' or whom:FindFirstChild'Torso') |
565 | - | end |
565 | + | local succ, health, alive = pcall(function() return whom:FindFirstChildOfClass'Humanoid'.Health, whom:FindFirstChildOfClass'Humanoid'.Health > 0 end) |
566 | - | end |
566 | + | if(torso and torso:IsA'BasePart' and alive == true)then |
567 | - | |
567 | + | whom:FindFirstChildOfClass'Humanoid'.Health = 0 |
568 | - | return i |
568 | + | whom:BreakJoints() |
569 | local Model = IN("Model",Effects) | |
570 | warn('Soul stolen from '..whom.Name) | |
571 | - | function ragdollJoint(character, part0, part1, attachmentName, className, properties) |
571 | + | Model.Name = whom.Name.."'s Soul Monster" |
572 | - | attachmentName = attachmentName.."RigAttachment" |
572 | + | local Soul = Part(Model,(human and BrickColor.new'Really red' or BrickColor.new(C3.N(1,1,1))),'Glass',V3.N(1,1,1),torso.CFrame,true,false) |
573 | - | local constraint = Instance.new(className.."Constraint") |
573 | + | Soul.CanCollide=false |
574 | - | constraint.Attachment0 = part0:FindFirstChild(attachmentName) |
574 | + | Mesh(Soul,Enum.MeshType.Sphere) |
575 | - | constraint.Attachment1 = part1:FindFirstChild(attachmentName) |
575 | + | Soul.Name = 'Head' |
576 | - | constraint.Name = "RagdollConstraint"..part1.Name |
576 | + | if(whom.Name == 'CKbackup')then |
577 | - | |
577 | + | Soul.Color = C3.N(1,1,1) |
578 | - | for _,propertyData in next,properties or {} do |
578 | + | local DripEmitter = NewInstance("ParticleEmitter",Soul,{EmissionDirection='Bottom',Color=CS(Soul.Color),LightEmission=.5,LightInfluence=0,Size=NumberSequence.new(0.3),Texture="rbxassetid://243132757",Transparency=NumberSequence.new(0,1),LockedToPart=false,Lifetime=NumberRange.new(1),Rate=150,Speed=NumberRange.new(5)}) |
579 | - | constraint[propertyData[1]] = propertyData[2] |
579 | + | |
580 | - | end |
580 | + | local Hoom = NewInstance("Humanoid",Model,{MaxHealth=(health <= 10000 and health/2 or 10000),Health=(health <= 10000 and health/2 or 10000)}) |
581 | - | |
581 | + | local AT0 = NewInstance("Attachment",Soul,{Position=V3.N(0,.5,0)}) |
582 | - | constraint.Parent = character |
582 | + | local AT1 = NewInstance("Attachment",Soul,{Position=V3.N(0,-.5,0)}) |
583 | local Trail = NewInstance("Trail",Soul,{Attachment0=AT0,Attachment1=AT1,Transparency=NumberSequence.new(0),FaceCamera = true,Texture="rbxassetid://945758042",LightEmission=.3,Color=CS(Soul.Color),Lifetime=.5,MinLength=0}) | |
584 | NewInstance("PointLight",Soul,{Color=Soul.Color,Range=10,Brightness=(human and 3 or .5)}) | |
585 | - | function getAttachment0(character, attachmentName) |
585 | + | |
586 | - | for _,child in next,character:GetChildren() do |
586 | + | local turdso = Soul:Clone() |
587 | - | local attachment = child:FindFirstChild(attachmentName) |
587 | + | turdso.Name = "Torso" |
588 | - | if attachment then |
588 | + | turdso.CanCollide = false |
589 | - | return attachment |
589 | + | turdso.Anchored = true |
590 | - | end |
590 | + | turdso.CFrame = Soul.CFrame |
591 | - | end |
591 | + | turdso.Parent = Model |
592 | turdso.Size = V3.N() | |
593 | turdso.Transparency=1 | |
594 | - | function ArtificialHitbox(Part) |
594 | + | local Distance = math.huge |
595 | - | local HITBOX = CreatePart(3, Part, "Metal", 0, 1, "Really black", "Hitbox", Part.Size/2, false) |
595 | + | repeat |
596 | - | HITBOX.CanCollide = true |
596 | + | Soul.CFrame = CF.N(Soul.Position,Torso.Position)*CF.N(0,0,-1) |
597 | - | HITBOX.CFrame = Part.CFrame |
597 | + | turdso.CFrame = Soul.CFrame |
598 | - | weldBetween(Part,HITBOX) |
598 | + | Distance = (Soul.CFrame.p-Torso.CFrame.p).magnitude |
599 | swait() | |
600 | until Hoom.Health <= 0 or not Soul.Parent or Distance <= 1.2 | |
601 | - | function R15Ragdoll(character,KeepArms) |
601 | + | if(Soul.Parent and Hoom.Health > 0)then |
602 | - | character:BreakJoints() |
602 | + | Model:destroy() |
603 | - | coroutine.resume(coroutine.create(function() |
603 | + | Effect{ |
604 | - | recurse(character, function(_,v) |
604 | + | Effect="ResizeAndFade", |
605 | - | if v:IsA("Attachment") then |
605 | + | Mesh={Enum.MeshType.Sphere}, |
606 | - | v.Axis = Vector3.new(0, 1, 0) |
606 | + | Color = Soul.Color, |
607 | - | v.SecondaryAxis = Vector3.new(0, 0, 1) |
607 | + | CFrame=Torso.CFrame, |
608 | - | v.Rotation = Vector3.new(0, 0, 0) |
608 | + | Size=V3.N(3,3,3), |
609 | - | end |
609 | + | Material=Enum.Material.Neon, |
610 | - | end) |
610 | + | Sound={SoundId=444667859,Pitch=1,Volume=2.5}, |
611 | - | for _,child in next,character:GetChildren() do |
611 | + | FXSettings={ |
612 | - | if child:IsA("Accoutrement") then |
612 | + | EndSize=V3.N(6,6,6), |
613 | - | for _,part in next,child:GetChildren() do |
613 | + | } |
614 | - | if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then |
614 | + | |
615 | - | local attachment1 = part:FindFirstChildOfClass("Attachment") |
615 | + | Souls = Souls + (human and 1 or .1) |
616 | - | local attachment0 = getAttachment0(character,attachment1.Name) |
616 | + | warn("Souls: "..Souls) |
617 | - | if attachment0 and attachment1 then |
617 | + | MaxHealth = MaxHealth + Hoom.Health |
618 | - | local constraint = Instance.new("HingeConstraint") |
618 | + | Hum.Health = Hum.Health + Hoom.Health |
619 | - | constraint.Attachment0 = attachment0 |
619 | + | for i = 1, 5 do |
620 | - | constraint.Attachment1 = attachment1 |
620 | + | Effect{ |
621 | - | constraint.LimitsEnabled = true |
621 | + | Effect="Fade", |
622 | - | constraint.UpperAngle = 0 |
622 | + | Color = Soul.Color, |
623 | - | constraint.LowerAngle = 0 |
623 | + | MoveDirection = (Torso.CFrame*CFrame.new(M.RNG(-40,40),M.RNG(-40,40),M.RNG(-40,40))).p |
624 | - | constraint.Parent = character |
624 | + | } |
625 | - | end |
625 | + | end |
626 | - | ArtificialHitbox(part) |
626 | + | else |
627 | - | elseif part.Name == "HumanoidRootPart" then |
627 | + | |
628 | - | part:remove() |
628 | + | warn("Soul destroyed!") |
629 | - | end |
629 | + | for i = 1, 5 do |
630 | - | end |
630 | + | Effect{ |
631 | - | end |
631 | + | Effect="Fade", |
632 | - | end |
632 | + | Color = Soul.Color, |
633 | - | |
633 | + | CFrame=Soul.CFrame, |
634 | - | ragdollJoint(character,character.LowerTorso, character.UpperTorso, "Waist", "BallSocket", { |
634 | + | MoveDirection = (Soul.CFrame*CFrame.new(M.RNG(-40,40),M.RNG(-40,40),M.RNG(-40,40))).p |
635 | - | {"LimitsEnabled",true}; |
635 | + | } |
636 | - | {"UpperAngle",5}; |
636 | + | end |
637 | - | }) |
637 | + | Effect{ |
638 | - | if character:FindFirstChild("Head") then |
638 | + | Effect="ResizeAndFade", |
639 | - | ragdollJoint(character,character.UpperTorso, character.Head, "Neck", "BallSocket", { |
639 | + | Mesh={Enum.MeshType.Sphere}, |
640 | - | {"LimitsEnabled",true}; |
640 | + | Sound={SoundId=444667859,Pitch=1,Volume=5}, |
641 | - | {"UpperAngle",15}; |
641 | + | Color = Soul.Color, |
642 | - | }) |
642 | + | CFrame=Soul.CFrame, |
643 | - | end |
643 | + | Size=V3.N(3,3,3), |
644 | - | |
644 | + | Material=Enum.Material.Neon, |
645 | - | local handProperties = { |
645 | + | FXSettings={ |
646 | - | {"LimitsEnabled", true}; |
646 | + | EndSize=V3.N(6,6,6), |
647 | - | {"UpperAngle",0}; |
647 | + | } |
648 | - | {"LowerAngle",0}; |
648 | + | |
649 | - | } |
649 | + | Model:destroy() |
650 | - | ragdollJoint(character,character.LeftLowerArm, character.LeftHand, "LeftWrist", "Hinge", handProperties) |
650 | + | |
651 | - | ragdollJoint(character,character.RightLowerArm, character.RightHand, "RightWrist", "Hinge", handProperties) |
651 | + | end |
652 | - | |
652 | + | |
653 | - | local shinProperties = { |
653 | + | |
654 | - | {"LimitsEnabled", true}; |
654 | + | --// Other Functions \\ -- |
655 | - | {"UpperAngle", 0}; |
655 | + | |
656 | - | {"LowerAngle", -75}; |
656 | + | function getRegion(point,range,ignore) |
657 | - | } |
657 | + | return workspace:FindPartsInRegion3WithIgnoreList(R3.N(point-V3.N(1,1,1)*range/2,point+V3.N(1,1,1)*range/2),ignore,100) |
658 | - | ragdollJoint(character,character.LeftUpperLeg, character.LeftLowerLeg, "LeftKnee", "Hinge", shinProperties) |
658 | + | |
659 | - | ragdollJoint(character,character.RightUpperLeg, character.RightLowerLeg, "RightKnee", "Hinge", shinProperties) |
659 | + | |
660 | - | |
660 | + | function clerp(startCF,endCF,alpha) |
661 | - | local footProperties = { |
661 | + | return startCF:lerp(endCF, alpha) |
662 | - | {"LimitsEnabled", true}; |
662 | + | |
663 | - | {"UpperAngle", 15}; |
663 | + | |
664 | - | {"LowerAngle", -45}; |
664 | + | function GetTorso(char) |
665 | - | } |
665 | + | return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart' |
666 | - | ragdollJoint(character,character.LeftLowerLeg, character.LeftFoot, "LeftAnkle", "Hinge", footProperties) |
666 | + | |
667 | - | ragdollJoint(character,character.RightLowerLeg, character.RightFoot, "RightAnkle", "Hinge", footProperties) |
667 | + | |
668 | - | if KeepArms == true then |
668 | + | function ShowDamage(Pos, Text, Time, Color) |
669 | - | ragdollJoint(character,character.UpperTorso, character.RightUpperArm, "RightShoulder", "BallSocket") |
669 | + | coroutine.wrap(function() |
670 | - | ragdollJoint(character,character.RightUpperArm, character.RightLowerArm, "RightElbow", "BallSocket") |
670 | + | local Rate = (1 / Frame_Speed) |
671 | - | ragdollJoint(character,character.UpperTorso, character.LeftUpperArm, "LeftShoulder", "BallSocket") |
671 | + | local Pos = (Pos or Vector3.new(0, 0, 0)) |
672 | - | ragdollJoint(character,character.LeftUpperArm, character.LeftLowerArm, "LeftElbow", "BallSocket") |
672 | + | local Text = (Text or "") |
673 | - | end |
673 | + | local Time = (Time or 2) |
674 | - | ragdollJoint(character,character.LowerTorso, character.LeftUpperLeg, "LeftHip", "BallSocket") |
674 | + | local Color = (Color or Color3.new(1, 0, 1)) |
675 | - | ragdollJoint(character,character.LowerTorso, character.RightUpperLeg, "RightHip", "BallSocket") |
675 | + | local EffectPart = NewInstance("Part",Effects,{ |
676 | - | Debris:AddItem(character,5) |
676 | + | Material=Enum.Material.SmoothPlastic, |
677 | - | end)) |
677 | + | Reflectance = 0, |
678 | Transparency = 1, | |
679 | BrickColor = BrickColor.new(Color), | |
680 | - | function Ragdoll(Character2,CharTorso,KeepArms) |
680 | + | Name = "Effect", |
681 | - | coroutine.resume(coroutine.create(function() |
681 | + | Size = Vector3.new(0,0,0), |
682 | - | Character2:BreakJoints() |
682 | + | Anchored = true, |
683 | - | local hum = Character2:findFirstChild("Humanoid") |
683 | + | CFrame = CF.N(Pos) |
684 | - | hum:remove() |
684 | + | }) |
685 | - | local function Scan(ch) |
685 | + | local BillboardGui = NewInstance("BillboardGui",EffectPart,{ |
686 | - | local e |
686 | + | Size = UDim2.new(1.25, 0, 1.25, 0), |
687 | - | for e = 1,#ch do |
687 | + | Adornee = EffectPart, |
688 | - | Scan(ch[e]:GetChildren()) |
688 | + | }) |
689 | - | if ch[e].ClassName == "Weld" or ch[e].ClassName == "Motor6D" then |
689 | + | local TextLabel = NewInstance("TextLabel",BillboardGui,{ |
690 | - | ch[e]:remove() |
690 | + | BackgroundTransparency = 1, |
691 | - | end |
691 | + | Size = UDim2.new(1, 0, 1, 0), |
692 | - | end |
692 | + | Text = Text, |
693 | - | end |
693 | + | Font = "Arcade", |
694 | - | local NEWHUM = IT("Humanoid") |
694 | + | TextColor3 = Color, |
695 | - | NEWHUM.Name = "Corpse" |
695 | + | TextStrokeColor3 = Color3.new(0,0,0), |
696 | - | NEWHUM.Health = 0 |
696 | + | TextStrokeTransparency=0, |
697 | - | NEWHUM.MaxHealth = 0 |
697 | + | TextScaled = true, |
698 | - | NEWHUM.PlatformStand = true |
698 | + | }) |
699 | - | NEWHUM.Parent = Character2 |
699 | + | S.Debris:AddItem(EffectPart, (Time)) |
700 | - | NEWHUM.DisplayDistanceType = "None" |
700 | + | EffectPart.Parent = workspace |
701 | - | |
701 | + | delay(0, function() |
702 | - | local ch = Character2:GetChildren() |
702 | + | Tween(EffectPart,{CFrame=CF.N(Pos)*CF.N(0,3,0)},Time,Enum.EasingStyle.Elastic,Enum.EasingDirection.Out) |
703 | - | local i |
703 | + | local Frames = (Time / Rate) |
704 | - | for i = 1,#ch do |
704 | + | for Frame = 1, Frames do |
705 | - | if ch[i].Name == "THandle1" or ch[i].Name == "THandle2" then |
705 | + | swait() |
706 | - | ch[i]:remove() |
706 | + | local Percent = (Frame / Frames) |
707 | - | end |
707 | + | TextLabel.TextTransparency = Percent |
708 | - | end |
708 | + | TextLabel.TextStrokeTransparency = Percent |
709 | - | |
709 | + | |
710 | - | local Torso2 = Character2.Torso |
710 | + | if EffectPart and EffectPart.Parent then |
711 | - | local movevector = Vector3.new() |
711 | + | EffectPart:Destroy() |
712 | - | |
712 | + | |
713 | - | if Torso2 then |
713 | + | end) end)() |
714 | - | movevector = CFrame.new(CharTorso.Position,Torso2.Position).lookVector |
714 | + | |
715 | - | local Head = Character2:FindFirstChild("Head") |
715 | + | |
716 | - | if Head then |
716 | + | function Kill(whom) |
717 | - | local Neck = Instance.new("Weld") |
717 | + | if(whom.Name ~= 'Nebula_Zorua')then |
718 | - | Neck.Name = "Neck" |
718 | + | local isPlr = Plrs:GetPlayerFromCharacter(whom) ~= nil |
719 | - | Neck.Part0 = Torso2 |
719 | + | coroutine.wrap(SoulSteal)(whom,isPlr) |
720 | - | Neck.Part1 = Head |
720 | + | for _,v in next, whom:children() do |
721 | - | Neck.C0 = CFrame.new(0, 1.5, 0) |
721 | + | if(v:IsA'BasePart')then |
722 | - | Neck.C1 = CFrame.new() |
722 | + | v.Parent = Effects |
723 | - | Neck.Parent = Torso2 |
723 | + | v:ClearAllChildren() |
724 | - | |
724 | + | v.Anchored = true |
725 | - | end |
725 | + | v.CanCollide = false |
726 | - | local Limb = Character2:FindFirstChild("Right Arm") |
726 | + | v.Transparency = 1 |
727 | - | if Limb and KeepArms == true then |
727 | + | local dust = NewInstance("ParticleEmitter",v,{ |
728 | - | |
728 | + | Color = ColorSequence.new(C3.N(1,1,1)), |
729 | - | Limb.CFrame = Torso2.CFrame * CFrame.new(1.5, 0, 0) |
729 | + | LightEmission=0, |
730 | - | local Joint = Instance.new("Glue") |
730 | + | LightInfluence=1, |
731 | - | Joint.Name = "RightShoulder" |
731 | + | Size=NumberSequence.new{NumberSequenceKeypoint.new(0,1,0),NumberSequenceKeypoint.new(1,0,0)}, |
732 | - | Joint.Part0 = Torso2 |
732 | + | Texture="rbxassetid://284205403", |
733 | - | Joint.Part1 = Limb |
733 | + | Transparency=NumberSequence.new{NumberSequenceKeypoint.new(0,0,0),NumberSequenceKeypoint.new(1,1,0)}, |
734 | - | Joint.C0 = CFrame.new(1.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) |
734 | + | Lifetime = NumberRange.new(1), |
735 | - | Joint.C1 = CFrame.new(-0, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) |
735 | + | Rate=150, |
736 | - | Joint.Parent = Torso2 |
736 | + | Acceleration = V3.N(0,10,0), |
737 | - | |
737 | + | Speed = NumberRange.new(5), |
738 | - | local B = Instance.new("Part") |
738 | + | Enabled = true |
739 | - | B.TopSurface = 0 |
739 | + | }) |
740 | - | B.BottomSurface = 0 |
740 | + | delay(1, function() |
741 | - | B.formFactor = "Symmetric" |
741 | + | dust.Enabled = false |
742 | - | B.Size = Vector3.new(1, 1, 1) |
742 | + | S.Debris:AddItem(v,2) |
743 | - | B.Transparency = 1 |
743 | + | end) |
744 | - | B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0) |
744 | + | end |
745 | - | B.Parent = Character2 |
745 | + | |
746 | - | local W = Instance.new("Weld") |
746 | + | else |
747 | - | W.Part0 = Limb |
747 | + | warn"nope. nawt happenin'" |
748 | - | W.Part1 = B |
748 | + | end |
749 | - | W.C0 = CFrame.new(0, -0.5, 0) |
749 | + | |
750 | - | W.Parent = Limb |
750 | + | |
751 | - | |
751 | + | function DealDamage(who,minDam,maxDam,Knock,Type,critChance,critMult) |
752 | - | end |
752 | + | if(who)then |
753 | - | local Limb = Character2:FindFirstChild("Left Arm") |
753 | + | local hum = who:FindFirstChildOfClass'Humanoid' |
754 | - | if Limb and KeepArms == true then |
754 | + | local Damage = M.RNG(minDam,maxDam) |
755 | - | |
755 | + | local canHit = true |
756 | - | Limb.CFrame = Torso2.CFrame * CFrame.new(-1.5, 0, 0) |
756 | + | if(hum)then |
757 | - | local Joint = Instance.new("Glue") |
757 | + | for _, p in pairs(Hit) do |
758 | - | Joint.Name = "LeftShoulder" |
758 | + | if p[1] == hum then |
759 | - | Joint.Part0 = Torso2 |
759 | + | if(time() - p[2] < 0.4) then |
760 | - | Joint.Part1 = Limb |
760 | + | canHit = false |
761 | - | Joint.C0 = CFrame.new(-1.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) |
761 | + | else |
762 | - | Joint.C1 = CFrame.new(0, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) |
762 | + | Hit[_] = nil |
763 | - | Joint.Parent = Torso2 |
763 | + | end |
764 | - | |
764 | + | end |
765 | - | local B = Instance.new("Part") |
765 | + | end |
766 | - | B.TopSurface = 0 |
766 | + | if(canHit)then |
767 | - | B.BottomSurface = 0 |
767 | + | table.insert(Hit,{hum,time()}) |
768 | - | B.formFactor = "Symmetric" |
768 | + | if(GetTorso(who))then |
769 | - | B.Size = Vector3.new(1, 1, 1) |
769 | + | Sound(GetTorso(who),406913243,1,10,false,true,true) |
770 | - | B.Transparency = 1 |
770 | + | end |
771 | - | B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0) |
771 | + | if(hum.Health >= math.huge)then |
772 | - | B.Parent = Character2 |
772 | + | Kill(who) |
773 | - | local W = Instance.new("Weld") |
773 | + | if(who:FindFirstChild'Head' and hum.Health > 0)then |
774 | - | W.Part0 = Limb |
774 | + | ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), "INSTANT", 3, DamageColor.Color) |
775 | - | W.Part1 = B |
775 | + | end |
776 | - | W.C0 = CFrame.new(0, -0.5, 0) |
776 | + | else |
777 | - | W.Parent = Limb |
777 | + | local player = S.Players:GetPlayerFromCharacter(who) |
778 | - | |
778 | + | if(Type == "Fire")then |
779 | - | end |
779 | + | --idk.. |
780 | - | local Limb = Character2:FindFirstChild("Right Leg") |
780 | + | else |
781 | - | if Limb then |
781 | + | local c = Instance.new("ObjectValue",hum) |
782 | - | |
782 | + | c.Name = "creator" |
783 | - | Limb.CFrame = Torso2.CFrame * CFrame.new(0.5, -2, 0) |
783 | + | c.Value = Plr |
784 | - | local Joint = Instance.new("Glue") |
784 | + | game:service'Debris':AddItem(c,0.35) |
785 | - | Joint.Name = "RightHip" |
785 | + | local Crit = false |
786 | - | Joint.Part0 = Torso2 |
786 | + | if(M.RNG(1,100) <= (critChance or 0) and critMult > 1)then |
787 | - | Joint.Part1 = Limb |
787 | + | Crit = true |
788 | - | Joint.C0 = CFrame.new(0.5, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) |
788 | + | Damage = Damage*(critMult or 2) |
789 | - | Joint.C1 = CFrame.new(0, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) |
789 | + | end |
790 | - | Joint.Parent = Torso2 |
790 | + | Damage = Damage*((Souls/5)+1) |
791 | - | |
791 | + | if(who:FindFirstChild'Head' and hum.Health > 0)then |
792 | - | local B = Instance.new("Part") |
792 | + | ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), (Crit and "[CRIT] " or "").. math.floor(Damage), 3, (Crit and BrickColor.new'New Yeller'.Color or DamageColor.Color)) |
793 | - | B.TopSurface = 0 |
793 | + | end |
794 | - | B.BottomSurface = 0 |
794 | + | |
795 | - | B.formFactor = "Symmetric" |
795 | + | if(hum.Health - Damage <= 0)then |
796 | - | B.Size = Vector3.new(1, 1, 1) |
796 | + | Kill(who) |
797 | - | B.Transparency = 1 |
797 | + | else |
798 | - | B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0) |
798 | + | hum.Health = hum.Health - Damage |
799 | - | B.Parent = Character2 |
799 | + | if(Type == 'Knockback' and GetTorso(who))then |
800 | - | local W = Instance.new("Weld") |
800 | + | local angle = GetTorso(who).Position - Root.Position + Vector3.new(0, 0, 0).unit |
801 | - | W.Part0 = Limb |
801 | + | local body = NewInstance('BodyVelocity',GetTorso(who),{ |
802 | - | W.Part1 = B |
802 | + | P = 500, |
803 | - | W.C0 = CFrame.new(0, -0.5, 0) |
803 | + | maxForce = V3.N(math.huge,0,math.huge), |
804 | - | W.Parent = Limb |
804 | + | velocity = Root.CFrame.lookVector * Knock + Root.Velocity / 1.05 |
805 | - | |
805 | + | }) |
806 | - | end |
806 | + | game:service'Debris':AddItem(body,.5) |
807 | - | local Limb = Character2:FindFirstChild("Left Leg") |
807 | + | elseif(Type == "Electric")then |
808 | - | if Limb then |
808 | + | if(M.RNG(1,100) >= critChance)then |
809 | - | |
809 | + | if(who:FindFirstChild'Head' and hum.Health > 0)then |
810 | - | Limb.CFrame = Torso2.CFrame * CFrame.new(-0.5, -2, 0) |
810 | + | ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), "[PARALYZED]", 3, BrickColor.new"New Yeller".Color) |
811 | - | local Joint = Instance.new("Glue") |
811 | + | end |
812 | - | Joint.Name = "LeftHip" |
812 | + | local asd = hum.WalkSpeed/2 |
813 | - | Joint.Part0 = Torso2 |
813 | + | hum.WalkSpeed = asd |
814 | - | Joint.Part1 = Limb |
814 | + | local paralyzed = true |
815 | - | Joint.C0 = CFrame.new(-0.5, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) |
815 | + | coroutine.wrap(function() |
816 | - | Joint.C1 = CFrame.new(-0, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) |
816 | + | while paralyzed do |
817 | - | Joint.Parent = Torso2 |
817 | + | swait(25) |
818 | - | |
818 | + | if(M.RNG(1,25) == 1)then |
819 | - | local B = Instance.new("Part") |
819 | + | if(who:FindFirstChild'Head' and hum.Health > 0)then |
820 | - | B.TopSurface = 0 |
820 | + | ShowDamage((who.Head.CFrame * CF.N(0, 0, (who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), "[STATIC]", 3, BrickColor.new"New Yeller".Color) |
821 | - | B.BottomSurface = 0 |
821 | + | end |
822 | - | B.formFactor = "Symmetric" |
822 | + | hum.PlatformStand = true |
823 | - | B.Size = Vector3.new(1, 1, 1) |
823 | + | end |
824 | - | B.Transparency = 1 |
824 | + | end |
825 | - | B.CFrame = Limb.CFrame * CFrame.new(0, -0.5, 0) |
825 | + | end)() |
826 | - | B.Parent = Character2 |
826 | + | delay(4, function() |
827 | - | local W = Instance.new("Weld") |
827 | + | paralyzed = false |
828 | - | W.Part0 = Limb |
828 | + | hum.WalkSpeed = hum.WalkSpeed + asd |
829 | - | W.Part1 = B |
829 | + | end) |
830 | - | W.C0 = CFrame.new(0, -0.5, 0) |
830 | + | end |
831 | - | W.Parent = Limb |
831 | + | |
832 | - | |
832 | + | elseif(Type == 'Knockdown' and GetTorso(who))then |
833 | - | end |
833 | + | local rek = GetTorso(who) |
834 | - | --[ |
834 | + | hum.PlatformStand = true |
835 | - | local Bar = Instance.new("Part") |
835 | + | delay(1,function() |
836 | - | Bar.TopSurface = 0 |
836 | + | hum.PlatformStand = false |
837 | - | Bar.BottomSurface = 0 |
837 | + | end) |
838 | - | Bar.formFactor = "Symmetric" |
838 | + | local angle = (GetTorso(who).Position - (Root.Position + Vector3.new(0, 0, 0))).unit |
839 | - | Bar.Size = Vector3.new(1, 1, 1) |
839 | + | local bodvol = NewInstance("BodyVelocity",rek,{ |
840 | - | Bar.Transparency = 1 |
840 | + | velocity = angle * Knock, |
841 | - | Bar.CFrame = Torso2.CFrame * CFrame.new(0, 0.5, 0) |
841 | + | P = 5000, |
842 | - | Bar.Parent = Character2 |
842 | + | maxForce = Vector3.new(8e+003, 8e+003, 8e+003), |
843 | - | local Weld = Instance.new("Weld") |
843 | + | }) |
844 | - | Weld.Part0 = Torso2 |
844 | + | local rl = NewInstance("BodyAngularVelocity",rek,{ |
845 | - | Weld.Part1 = Bar |
845 | + | P = 3000, |
846 | - | Weld.C0 = CFrame.new(0, 0.5, 0) |
846 | + | maxTorque = Vector3.new(500000, 500000, 500000) * 50000000000000, |
847 | - | Weld.Parent = Torso2 |
847 | + | angularvelocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)), |
848 | - | --]] |
848 | + | }) |
849 | - | end |
849 | + | game:GetService("Debris"):AddItem(bodvol, .5) |
850 | - | Character2.Parent = workspace |
850 | + | game:GetService("Debris"):AddItem(rl, .5) |
851 | - | Debris:AddItem(Character2,5) |
851 | + | end |
852 | - | |
852 | + | end |
853 | - | return Character2,Torso2 |
853 | + | end |
854 | - | end)) |
854 | + | end |
855 | end | |
856 | end | |
857 | - | --//=================================\\ |
857 | + | end |
858 | - | --|| WEAPON CREATION |
858 | + | |
859 | - | --\\=================================// |
859 | + | |
860 | ||
861 | - | local DUST = CreateParticles(RightArm,VT(0,0,0),5,2,"Smoke",false,false,5,0) |
861 | + | function AOEDamage(where,range,minDam,maxDam,Knock,Type,critChance,critMult) |
862 | - | DUST.ZOffset = 1 |
862 | + | for _,v in next, getRegion(where,range,{Char}) do |
863 | - | RightArm.Transparency = 1 |
863 | + | if(v.Name ~= 'Nebula_Zorua')then |
864 | - | local BasePart = CreatePart(3, Weapon, "Metal", 0, 0, "Really black", "Part", VT(1,2,1),false) |
864 | + | if(v.Parent and v.Parent:FindFirstChildOfClass'Humanoid')then |
865 | - | CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, BasePart, CF(0,0,0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) |
865 | + | DealDamage(v.Parent,minDam,maxDam,Knock,Type,critChance,critMult) |
866 | - | local Sphere = CreatePart(3, Weapon, "Metal", 0, 0, "Really black", "Part", VT(1.4,1.4,1.4),false) |
866 | + | end |
867 | - | MakeForm(Sphere,"Ball") |
867 | + | |
868 | - | CreateWeldOrSnapOrMotor("Weld", BasePart, BasePart, Sphere, CF(0.2,0.8,0.1) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) |
868 | + | end |
869 | - | local LaserPart = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Part", VT(0.3,0.3,0.1),false) |
869 | + | |
870 | - | MakeForm(LaserPart,"Ball") |
870 | + | |
871 | - | CreateWeldOrSnapOrMotor("Weld", Sphere, Sphere, LaserPart, CF(0,0,-0.65) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) |
871 | + | function AOEKill(where,range) |
872 | - | local Bump = CreatePart(3, Weapon, "Metal", 0, 0, "Really black", "Part", VT(0.3,0.3,0.2),false) |
872 | + | for _,v in next, getRegion(where,range,{Char,Effects}) do |
873 | - | MakeForm(Bump,"Ball") |
873 | + | local succ,alive = pcall(function() return v.Parent:FindFirstChildOfClass'Humanoid'.Health > 0 end) |
874 | - | CreateWeldOrSnapOrMotor("Weld", Sphere, Sphere, Bump, CF(0,0,0.65) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) |
874 | + | if(v.Name ~= 'Nebula_Zorua')then |
875 | - | local BottomLaser = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Part", VT(0.4,0,0.4),false) |
875 | + | if(v.Parent and alive == true)then |
876 | - | MakeForm(BottomLaser,"Cyl") |
876 | + | coroutine.wrap(Kill)(v.Parent) |
877 | - | CreateWeldOrSnapOrMotor("Weld", BasePart, BasePart, BottomLaser, CF(0,-1,0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) |
877 | + | end |
878 | - | local Part1 = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Part", VT(0,0.5,0.5),false) |
878 | + | |
879 | - | CreateWeldOrSnapOrMotor("Weld", BasePart, BasePart, Part1, CF(0,-0.76,-0.26) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) |
879 | + | end |
880 | - | local Part2 = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Part", VT(0,0.5,0.5),false) |
880 | + | |
881 | - | CreateWeldOrSnapOrMotor("Weld", BasePart, Part1, Part2, CF(0,0.25,0) * ANGLES(RAD(0), RAD(0), RAD(-25)), CF(0, -0.25, 0)) |
881 | + | |
882 | - | local Part3 = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Part", VT(0,0.5,0.5),false) |
882 | + | function AOEHeal(where,range,amount) |
883 | - | CreateWeldOrSnapOrMotor("Weld", BasePart, Part1, Part3, CF(0,0.25,0) * ANGLES(RAD(0), RAD(0), RAD(-90)), CF(0, -0.26, 0)) |
883 | + | local healed = {} |
884 | - | local Part4 = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Part", VT(0,0.56,0.5),false) |
884 | + | for _,v in next, getRegion(where,range,{Char}) do |
885 | - | CreateWeldOrSnapOrMotor("Weld", BasePart, Part2, Part4, CF(0,0.25,0) * ANGLES(RAD(0), RAD(0), RAD(90)), CF(0, -0.26, 0)) |
885 | + | local hum = (v.Parent and v.Parent:FindFirstChildOfClass'Humanoid' or nil) |
886 | - | local Part5 = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Part", VT(0,0.56,0.5),false) |
886 | + | if(hum and not healed[hum])then |
887 | - | CreateWeldOrSnapOrMotor("Weld", BasePart, Part4, Part5, CF(0,0.25,0) * ANGLES(RAD(0), RAD(0), RAD(-125)), CF(0, -0.26, 0)) |
887 | + | hum.Health = hum.Health + amount |
888 | - | local Part = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Part", VT(0,0.25,0.5),false) |
888 | + | if(v.Parent:FindFirstChild'Head' and hum.Health > 0)then |
889 | - | CreateWeldOrSnapOrMotor("Weld", BasePart, Part4, Part, CF(0,0.25,0) * ANGLES(RAD(0), RAD(0), RAD(25)), CF(0, -0.26/2, 0)) |
889 | + | ShowDamage((v.Parent.Head.CFrame * CF.N(0, 0, (v.Parent.Head.Size.Z / 2)).p+V3.N(0,1.5,0)), "+"..amount, 1.5, BrickColor.new'Lime green'.Color) |
890 | - | local Part = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Part", VT(0,0.3,0.5),false) |
890 | + | end |
891 | - | CreateWeldOrSnapOrMotor("Weld", BasePart, Part2, Part, CF(0,0.25,0) * ANGLES(RAD(0), RAD(0), RAD(-65)), CF(0, -0.31/2, 0)) |
891 | + | |
892 | - | local Part = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Part", VT(1.4,0,1.4),false) |
892 | + | end |
893 | - | MakeForm(Part,"Cyl") |
893 | + | |
894 | - | CreateWeldOrSnapOrMotor("Weld", Sphere, Sphere, Part, CF(0.035,0,0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) |
894 | + | |
895 | - | local Part = CreatePart(3, Weapon, "Neon", 0, 0, "Really red", "Part", VT(1.4,0,1.4),false) |
895 | + | |
896 | - | MakeForm(Part,"Cyl") |
896 | + | --// Attack Functions \\-- |
897 | - | CreateWeldOrSnapOrMotor("Weld", Sphere, Sphere, Part, CF(0,-0.035,0) * ANGLES(RAD(0), RAD(0), RAD(90)), CF(0, 0, 0)) |
897 | + | |
898 | - | local Sphere = CreatePart(3, Weapon, "Metal", 0, 0, "Really black", "Part", VT(0.3,1.6,0.7),false) |
898 | + | |
899 | - | MakeForm(Sphere,"Ball") |
899 | + | function Slash() |
900 | - | CreateWeldOrSnapOrMotor("Weld", BasePart, BasePart, Sphere, CF(0.45,0.5,0) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0)) |
900 | + | Attack = true |
901 | NeutralAnims = false | |
902 | - | for _, c in pairs(Weapon:GetChildren()) do |
902 | + | local sound = Sound(Knife,357417055,1,5,false,true,false) |
903 | - | if c.ClassName == "Part" then |
903 | + | for i = 0, 2, 0.1 do |
904 | - | c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0) |
904 | + | swait() |
905 | - | end |
905 | + | local Alpha = .2 |
906 | RJ.C0 = clerp(RJ.C0,CFrame.new(0.0343287587, 0.00629056804, 0.0572580174, 0.943793893, 0.00207689893, 0.330528289, 1.0000764e-06, 0.99998033, -0.00628630351, -0.330534875, 0.00593330665, 0.943775296),Alpha) | |
907 | LH.C0 = clerp(LH.C0,CFrame.new(-0.496478021, -0.990818381, 0.021652732, 0.999878168, 0, 0.0156089365, -9.80779296e-05, 0.99998033, 0.00628268253, -0.0156086385, -0.00628344761, 0.999858379),Alpha) | |
908 | - | local SKILLTEXTCOLOR = C3(1,0,0) |
908 | + | RH.C0 = clerp(RH.C0,CFrame.new(0.498511612, -0.990985274, 0.0154910646, 0.999878168, 0, 0.0156089365, -9.80779296e-05, 0.99998033, 0.00628268253, -0.0156086385, -0.00628344761, 0.999858379),Alpha) |
909 | - | local SKILLFONT = "SciFi" |
909 | + | LS.C0 = clerp(LS.C0,CFrame.new(-1.32692134, 0.474511296, -0.0055731535, 0.934981823, 0.354351997, 0.0156129003, -0.354479939, 0.93504262, 0.00628374517, -0.0123721063, -0.0114096552, 0.999858379),Alpha) |
910 | - | local SKILLTEXTSIZE = 5 |
910 | + | RS.C0 = clerp(RS.C0,CFrame.new(1.12629449, 0.369358033, -0.486052871, 0.490151912, 0.65154773, 0.57899636, 0.721657813, 0.0691910982, -0.688783586, -0.488836735, 0.755445719, -0.436280251),Alpha) |
911 | NK.C0 = clerp(NK.C0,CFrame.new(-0.0118216109, 1.49854016, -0.0795068145, 0.943793833, 0.0190048125, -0.329988182, 0.00207654224, 0.997985244, 0.0634154305, 0.330528468, -0.0605363287, 0.94185257),Alpha) | |
912 | - | Weapon.Parent = Character |
912 | + | HW.C0 = HW.C0:lerp(CF.N(0,-1,-1)*CF.A(M.R(-90),0,0),Alpha) |
913 | end | |
914 | - | Humanoid.Died:connect(function() |
914 | + | KTrail.Enabled = true |
915 | - | ATTACK = true |
915 | + | sound:Play() |
916 | for i = 0, 2.5, 0.1 do | |
917 | swait() | |
918 | - | local SKILL1FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.8, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame") |
918 | + | AOEDamage(Knife.CFrame.p,1,15,30,0,"Normal",0,1) |
919 | - | local SKILL2FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.8, 0, 0.86, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame") |
919 | + | local Alpha = .25 |
920 | - | local SKILL3FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.8, 0, 0.82, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame") |
920 | + | RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0352100767, 0.00629066909, -0.0097481478, 0.817972422, -0.00361463916, -0.575246274, -1.74103582e-06, 0.99998033, -0.00628598873, 0.575257719, 0.00514276745, 0.817956269),Alpha) |
921 | - | local SKILL4FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.8, 0, 0.78, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame") |
921 | + | LH.C0 = clerp(LH.C0,CFrame.new(-0.496478021, -0.990818381, 0.0216572341, 0.999878287, 0, 0.015610218, -9.80866607e-05, 0.99998033, 0.00628274865, -0.0156098902, -0.00628351374, 0.999858499),Alpha) |
922 | - | local SKILL5FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.8, 0, 0.74, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame") |
922 | + | RH.C0 = clerp(RH.C0,CFrame.new(0.498511702, -0.990985274, 0.0154905058, 0.999878287, 0, 0.015610218, -9.80866607e-05, 0.99998033, 0.00628274865, -0.0156098902, -0.00628351374, 0.999858499),Alpha) |
923 | - | local SKILL6FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.8, 0, 0.70, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 6 Frame") |
923 | + | LS.C0 = clerp(LS.C0,CFrame.new(-1.32694602, 0.474510223, -0.00555660389, 0.934981823, 0.354351729, 0.0156157613, -0.354479671, 0.935042739, 0.00628153514, -0.012375474, -0.0114085823, 0.999858379),Alpha) |
924 | RS.C0 = clerp(RS.C0,CFrame.new(1.23906493, 0.406229913, 0.00231830776, 0.49015066, -0.849889755, 0.193494052, 0.721655607, 0.520183682, 0.456752002, -0.488841236, -0.0842411816, 0.868295968),Alpha) | |
925 | - | local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z]", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.5, "Text 1") |
925 | + | NK.C0 = clerp(NK.C0,CFrame.new(0.0315471888, 1.49887729, -0.0257819965, 0.817972481, -0.0330747738, 0.574305832, -0.00361499586, 0.998030663, 0.0626262054, -0.575246155, -0.0533026271, 0.81624186),Alpha) |
926 | - | local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B]", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.5, "Text 2") |
926 | + | HW.C0 = HW.C0:lerp(CF.N(0,-1,-1)*CF.A(M.R(-90),0,0),Alpha) |
927 | - | local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C]", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.5, "Text 3") |
927 | + | end |
928 | - | local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V]", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.5, "Text 4") |
928 | + | KTrail.Enabled = false |
929 | - | local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[E]", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.5, "Text 5") |
929 | + | Attack = false |
930 | - | local SKILL6TEXT = CreateLabel(SKILL6FRAME, "[X]", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.5, "Text 6") |
930 | + | NeutralAnims = true |
931 | end | |
932 | - | --//=================================\\ |
932 | + | |
933 | - | --|| ATTACK FUNCTIONS AND STUFF |
933 | + | Mouse.Button1Down:connect(function() |
934 | - | --\\=================================// |
934 | + | if(Attack)then return end |
935 | Slash() | |
936 | - | function Warp() |
936 | + | |
937 | - | local HITFLOOR,HITPOS = Raycast(Mouse.Hit.p+VT(0,1,0), (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 100, Character) |
937 | + | |
938 | - | if HITFLOOR then |
938 | + | Mouse.KeyDown:connect(function(k) |
939 | - | CharacterFade(C3(0.5,0,0),50) |
939 | + | if(Attack)then return end |
940 | - | HITPOS = HITPOS + VT(0,3.5,0) |
940 | + | if(k == 'z')then AOEKill(Root.CFrame.p,25) end -- TODO: Animation and effects |
941 | - | local POS = RootPart.Position |
941 | + | if(k == 'q')then WalkSpeed = (WalkSpeed == 8 and 50 or 8) end |
942 | - | RootPart.CFrame = CF(HITPOS,CF(POS,HITPOS)*CF(0,0,-100000).p) |
942 | + | |
943 | - | CreateSound(289556450,Torso,2,MRANDOM(8,13)/10,false) |
943 | + | |
944 | - | end |
944 | + | |
945 | function Refuse() | |
946 | Attack = true | |
947 | - | function Dash() |
947 | + | warn("B u t i t r e f u s e d.") |
948 | - | ATTACK = true |
948 | + | local oMH = MaxHealth |
949 | - | Rooted = true |
949 | + | MaxHealth = "inf" |
950 | - | local SOUND = CreateSound(1165167610, Torso, 1, 1, true) |
950 | + | Hum.MaxHealth = "inf" |
951 | - | local LOOP = 0 |
951 | + | Hum.Health = "inf" |
952 | - | repeat |
952 | + | Char.Parent = nil |
953 | - | LOOP = LOOP + 1 |
953 | + | Hum:destroy() |
954 | - | Swait() |
954 | + | if(not _G.RefusedAnimation)then |
955 | - | local RAY,RAYPOS = Raycast(RootPart.Position, (CF(RootPart.Position, Mouse.Hit.p)).lookVector, 5, workspace) |
955 | + | _G.RefusedAnimation = true |
956 | - | local HITFLOOR,HITPOS,NORMAL = Raycast(RAYPOS+VT(0,1,0), (CF(RAYPOS, RAYPOS + VT(0, -1, 0))).lookVector, 100, Character) |
956 | + | |
957 | - | if HITFLOOR then |
957 | + | |
958 | - | CharacterFade(C3(0.5,0,0),35) |
958 | + | local Soul; |
959 | - | HITPOS = HITPOS + VT(0,3.5,0) |
959 | + | function Soul(where,decalId) |
960 | - | local POS = RootPart.Position |
960 | + | local destroy = false |
961 | - | RootPart.CFrame = CF(HITPOS,CF(POS,HITPOS)*CF(0,0,-100000).p) |
961 | + | local soul = NewInstance("Part",workspace) |
962 | - | RootPart.Velocity = VT(0,0,0) |
962 | + | soul.Name = "Soul" |
963 | - | RootPart.RotVelocity = VT(0,0,0) |
963 | + | soul.Transparency=1 |
964 | - | end |
964 | + | soul.Size = V3.N(2,2,.05) |
965 | - | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(75), RAD(0), RAD(0)), 1 / Animation_Speed) |
965 | + | soul.Anchored=true |
966 | - | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-45), RAD(0), RAD(0)), 1 / Animation_Speed) |
966 | + | soul.CanCollide=false |
967 | - | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-15), RAD(0), RAD(15)) * RIGHTSHOULDERC0, 1 / Animation_Speed) |
967 | + | soul.CFrame = where |
968 | - | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-15), RAD(0), RAD(-15)) * LEFTSHOULDERC0, 1 / Animation_Speed) |
968 | + | local heartF = NewInstance("Decal",soul,{Face=Enum.NormalId.Front,Texture="rbxassetid://"..decalId}) |
969 | - | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(-15), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
969 | + | local heartB = NewInstance("Decal",soul,{Face=Enum.NormalId.Back,Texture="rbxassetid://"..decalId}) |
970 | - | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(-15), RAD(-80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
970 | + | return soul,heartF,heartB |
971 | - | until KEYHOLD == false |
971 | + | |
972 | - | coroutine.resume(coroutine.create(function() |
972 | + | local owo = Root.CFrame |
973 | - | for i = 1, 20 do |
973 | + | local s,f,b = Soul(owo,1569347904) |
974 | - | Swait() |
974 | + | swait(60) |
975 | - | SOUND.Volume = SOUND.Volume - 1/20 |
975 | + | local snd = Sound(s,862552636,1,5,false,false,false) |
976 | - | end |
976 | + | snd:Play() |
977 | - | SOUND:remove() |
977 | + | f.Texture = "rbxassetid://1569348344" |
978 | - | end)) |
978 | + | b.Texture = "rbxassetid://1569348344" |
979 | - | if LOOP > 50 then |
979 | + | swait(15) |
980 | - | CreateSound(772085046,Torso,5,MRANDOM(8,13)/10,false) |
980 | + | snd:Stop() |
981 | - | for i = 1, 100 do |
981 | + | swait(60) |
982 | - | Swait() |
982 | + | print'lol' |
983 | - | RootPart.CFrame = RootPart.CFrame * CF(0,0,-(1-(i/100))/3) |
983 | + | for i = 0, 6, .1 do |
984 | - | WACKYEFFECT({Time = 25, EffectType = "Sphere", Size = VT(1,0.5,1), Size2 = VT(2,0,2), Transparency = 0.7, Transparency2 = 1, CFrame = CF(RightLeg.CFrame*CF(0,-1,0).p), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0.3,0.3,0.3), SoundID = nil, SoundPitch = nil, SoundVolume = nil}) |
984 | + | swait() |
985 | - | WACKYEFFECT({Time = 25, EffectType = "Sphere", Size = VT(1,0.5,1), Size2 = VT(2,0,2), Transparency = 0.7, Transparency2 = 1, CFrame = CF(LeftLeg.CFrame*CF(0,-1,0).p), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(0.3,0.3,0.3), SoundID = nil, SoundPitch = nil, SoundVolume = nil}) |
985 | + | s.CFrame = owo * CF.N(M.RNG(-50,50)/100,M.RNG(-50,50)/100,M.RNG(-50,50)/100) |
986 | - | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(-15), RAD(0), RAD(0)), 1 / Animation_Speed) |
986 | + | |
987 | - | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(35), RAD(0), RAD(0)), 1 / Animation_Speed) |
987 | + | local snd = Sound(s,862552636,1,5,false,false,false) |
988 | - | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed) |
988 | + | snd:Play() |
989 | - | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-45), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed) |
989 | + | s.CFrame = owo |
990 | - | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
990 | + | f.Texture = "rbxassetid://1569347904" |
991 | - | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
991 | + | b.Texture = "rbxassetid://1569347904" |
992 | - | end |
992 | + | swait(15) |
993 | - | end |
993 | + | snd:Stop() |
994 | - | ATTACK = false |
994 | + | swait(60) |
995 | - | Rooted = false |
995 | + | |
996 | s:destroy() | |
997 | end | |
998 | - | function LimbRip() |
998 | + | |
999 | - | ATTACK = true |
999 | + | RJ.Parent = Char |
1000 | - | Rooted = false |
1000 | + | LS.Parent = Char |
1001 | - | local TARGET = nil |
1001 | + | RS.Parent = Char |
1002 | - | local ROOT = nil |
1002 | + | LH.Parent = Char |
1003 | - | local HUMAN = nil |
1003 | + | RH.Parent = Char |
1004 | - | local DIST = 4 |
1004 | + | NK.Parent = Char |
1005 | - | Speed = 12 |
1005 | + | |
1006 | - | for i=0, 1, 0.1 / Animation_Speed do |
1006 | + | LArm.Parent = Char |
1007 | - | Swait() |
1007 | + | RArm.Parent = Char |
1008 | - | local CHILDREN = workspace:GetDescendants() |
1008 | + | LLeg.Parent = Char |
1009 | - | for index, CHILD in pairs(CHILDREN) do |
1009 | + | LArm.Parent = Char |
1010 | - | if CHILD.ClassName == "Model" and CHILD ~= Character then |
1010 | + | Root.Parent = Char |
1011 | - | local HUM = CHILD:FindFirstChildOfClass("Humanoid") |
1011 | + | Torso.Parent = Char |
1012 | - | if HUM then |
1012 | + | Head.Parent = Char |
1013 | - | local TORSO = CHILD:FindFirstChild("HumanoidRootPart") or CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso") |
1013 | + | |
1014 | - | if TORSO and HUM.Health > 0 then |
1014 | + | Knife.Parent = Char |
1015 | - | if (TORSO.Position - RightArm.Position).Magnitude <= DIST then |
1015 | + | Hair.Parent = Char |
1016 | - | DIST = (TORSO.Position - RightArm.Position).Magnitude |
1016 | + | |
1017 | - | ROOT = TORSO |
1017 | + | HW.Parent = Char |
1018 | - | HUMAN = HUM |
1018 | + | HW2.Parent = Char |
1019 | - | TARGET = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso") |
1019 | + | |
1020 | - | end |
1020 | + | |
1021 | - | end |
1021 | + | REye:destroy() |
1022 | - | end |
1022 | + | LEye:destroy() |
1023 | - | end |
1023 | + | |
1024 | - | end |
1024 | + | |
1025 | - | if ROOT then |
1025 | + | Hum = NewInstance("Humanoid",Char,{DisplayDistanceType='None'}) |
1026 | - | break |
1026 | + | ConnectHum() |
1027 | - | end |
1027 | + | MaxHealth = oMH |
1028 | - | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed) |
1028 | + | Hum.MaxHealth = MaxHealth |
1029 | - | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(10), RAD(0), RAD(-25)), 1 / Animation_Speed) |
1029 | + | Hum.Health = MaxHealth |
1030 | - | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.5, -0.4) * ANGLES(RAD(90), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 1 / Animation_Speed) |
1030 | + | swait(5) |
1031 | - | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(-25), RAD(0), RAD(15)) * LEFTSHOULDERC0, 1 / Animation_Speed) |
1031 | + | Char.Parent = workspace |
1032 | - | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(80), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1032 | + | |
1033 | - | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1033 | + | Attack = false |
1034 | - | end |
1034 | + | |
1035 | - | Speed = 16 |
1035 | + | |
1036 | - | if ROOT then |
1036 | + | function ConnectHum() |
1037 | - | CreateSound(305685800,Torso,5,1.3,false) |
1037 | + | Hum.Died:connect(Refuse) |
1038 | - | Rooted = true |
1038 | + | |
1039 | - | local GORED = false |
1039 | + | ConnectHum() |
1040 | - | coroutine.resume(coroutine.create(function() |
1040 | + | |
1041 | - | repeat |
1041 | + | |
1042 | - | Swait() |
1042 | + | --// Wrap it all up \\-- |
1043 | - | ROOT.Anchored = true |
1043 | + | |
1044 | - | until GORED == true |
1044 | + | swait() |
1045 | - | ROOT.Anchored = false |
1045 | + | Sine = Sine + Change |
1046 | - | end)) |
1046 | + | if(not Music)then |
1047 | - | RootPart.CFrame = ROOT.CFrame*CF(0,0,2.25) |
1047 | + | Music = Sound(Torso,MusicID,1,3,true,false,true) |
1048 | - | if TARGET.Name == "Torso" then |
1048 | + | Music.Name = 'Music' |
1049 | - | local RARM = TARGET.Parent:FindFirstChild("Right Arm") |
1049 | + | end |
1050 | - | local LARM = TARGET.Parent:FindFirstChild("Left Arm") |
1050 | + | Music.Pitch = 1 |
1051 | - | if RARM and LARM then |
1051 | + | Music.Volume = 5 |
1052 | - | for i=0, 1, 0.1 / Animation_Speed do |
1052 | + | Music.SoundId = "rbxassetid://"..MusicID |
1053 | - | Swait() |
1053 | + | Music.Parent = Torso |
1054 | - | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1054 | + | Music:Resume() |
1055 | - | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / Animation_Speed) |
1055 | + | local hitfloor,posfloor = workspace:FindPartOnRay(Ray.new(Root.CFrame.p,((CFrame.new(Root.Position,Root.Position - Vector3.new(0,1,0))).lookVector).unit * 4), Char) |
1056 | - | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.4) * ANGLES(RAD(90), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed) |
1056 | + | local Walking = (math.abs(Root.Velocity.x) > 1 or math.abs(Root.Velocity.z) > 1) |
1057 | - | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.4) * ANGLES(RAD(90), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed) |
1057 | + | local State = (Hum.PlatformStand and 'Paralyzed' or Hum.Sit and 'Sit' or not hitfloor and Root.Velocity.y < -1 and "Fall" or not hitfloor and Root.Velocity.y > 1 and "Jump" or hitfloor and Walking and "Walk" or hitfloor and "Idle") |
1058 | - | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1058 | + | if(not Effects or not Effects.Parent)then |
1059 | - | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1059 | + | Effects = IN("Model",Char) |
1060 | - | end |
1060 | + | Effects.Name = "Effects" |
1061 | - | for _, c in pairs(TARGET.Parent:GetDescendants()) do |
1061 | + | end |
1062 | - | if c:IsA("JointInstance") then |
1062 | + | Hum.WalkSpeed = WalkSpeed |
1063 | - | if c.Part1 == RARM or c.Part1 == LARM or c.Part0 == RARM or c.Part0 == LARM then |
1063 | + | if(State == 'Walk')then |
1064 | - | c:remove() |
1064 | + | if(Hum.WalkSpeed >= 24)then |
1065 | - | end |
1065 | + | local wsVal = 22 / (Hum.WalkSpeed/16) |
1066 | - | end |
1066 | + | local Alpha = math.min(.1 * (Hum.WalkSpeed/16),1) |
1067 | - | end |
1067 | + | Change = 2 |
1068 | - | CreateSound(363808674, TARGET, 3, MRANDOM(7,9)/10, false) |
1068 | + | RH.C1 = RH.C1:lerp(CF.N(0,1,0)*CF.N(0,0-.2*M.C(Sine/wsVal),0+.4*M.C(Sine/wsVal))*CF.A(M.R(25+45*M.C(Sine/wsVal))+-M.S(Sine/wsVal),0,0),Alpha) |
1069 | - | CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, RARM, CF(0,-1.35,0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) |
1069 | + | LH.C1 = LH.C1:lerp(CF.N(0,1,0)*CF.N(0,0+.2*M.C(Sine/wsVal),0-.4*M.C(Sine/wsVal))*CF.A(M.R(25-45*M.C(Sine/wsVal))+M.S(Sine/wsVal),0,0),Alpha) |
1070 | - | CreateWeldOrSnapOrMotor("Weld", LeftArm, LeftArm, LARM, CF(0,-1.35,0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) |
1070 | + | else |
1071 | - | for i=0, 1, 0.1 / Animation_Speed do |
1071 | + | Change = .9 |
1072 | - | Swait() |
1072 | + | local wsVal = 8 / (Hum.WalkSpeed/8) |
1073 | - | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1073 | + | local Alpha = math.min(.2 * (Hum.WalkSpeed/8),1) |
1074 | - | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5), RAD(0), RAD(0)), 1 / Animation_Speed) |
1074 | + | LH.C1 = LH.C1:lerp(CF.N(0,1-.2*M.C(Sine/wsVal)/2,.4*M.C(Sine/wsVal)/2)*CF.A(M.R(15-2*M.C(Sine/wsVal))-M.S(Sine/wsVal)/2.5,0,0)*CF.A(M.R(0-3*M.C(Sine/wsVal)),0,0),Alpha) |
1075 | - | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.4) * ANGLES(RAD(160), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed) |
1075 | + | RH.C1 = RH.C1:lerp(CF.N(0,1+.2*M.C(Sine/wsVal)/2,-.4*M.C(Sine/wsVal)/2)*CF.A(M.R(15+2*M.C(Sine/wsVal))+M.S(Sine/wsVal)/2.5,0,0)*CF.A(M.R(0+3*M.C(Sine/wsVal)),0,0),Alpha) |
1076 | - | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.4) * ANGLES(RAD(160), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed) |
1076 | + | |
1077 | - | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1077 | + | else |
1078 | - | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1078 | + | RH.C1 = RH.C1:lerp(CF.N(0,1,0),.1) |
1079 | - | end |
1079 | + | LH.C1 = LH.C1:lerp(CF.N(0,1,0),.1) |
1080 | - | for i=0, 1, 0.1 / Animation_Speed do |
1080 | + | end |
1081 | - | Swait() |
1081 | + | for _,v in next, Char:children() do |
1082 | - | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0.25) * ANGLES(RAD(-25), RAD(0), RAD(80)), 1 / Animation_Speed) |
1082 | + | if(v:IsA'Accessory')then |
1083 | - | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-30)), 1 / Animation_Speed) |
1083 | + | v:destroy() |
1084 | - | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.4) * ANGLES(RAD(160), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed) |
1084 | + | elseif(v:IsA'Shirt')then |
1085 | - | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.4) * ANGLES(RAD(160), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed) |
1085 | + | v.ShirtTemplate = "rbxassetid://708317707" |
1086 | - | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.6) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-65), RAD(0), RAD(0)) * CF(0,1.5,0), 1 / Animation_Speed) |
1086 | + | elseif(v:IsA'Pants')then |
1087 | - | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed) |
1087 | + | v.PantsTemplate = "rbxassetid://930236162" |
1088 | - | end |
1088 | + | elseif(v:IsA'CharacterMesh')then |
1089 | - | for i=0, 0.1, 0.1 / Animation_Speed do |
1089 | + | v:destroy() |
1090 | - | Swait() |
1090 | + | elseif(v:FindFirstChildOfClass'ShirtGraphic')then |
1091 | - | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0.2, 0.25) * ANGLES(RAD(-35), RAD(0), RAD(80)), 1 / Animation_Speed) |
1091 | + | v:FindFirstChildOfClass'ShirtGraphic':destroy() |
1092 | - | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-30)), 1 / Animation_Speed) |
1092 | + | |
1093 | - | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.4) * ANGLES(RAD(160), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed) |
1093 | + | end |
1094 | - | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.4) * ANGLES(RAD(160), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed) |
1094 | + | local face = Head:FindFirstChild'face' |
1095 | - | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.6) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-65), RAD(0), RAD(0)) * CF(0,-0.3,0), 1 / Animation_Speed) |
1095 | + | if(not face)then |
1096 | - | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed) |
1096 | + | NewInstance("Decal",Head,{Name='face',Face=Enum.NormalId.Front,Texture="rbxassetid://1019155286"}) |
1097 | - | end |
1097 | + | else |
1098 | - | GORED = true |
1098 | + | face.Texture = "rbxassetid://1019155286" |
1099 | - | Ragdoll(TARGET.Parent,Torso) |
1099 | + | end |
1100 | - | if ROOT.Name ~= "Torso" then |
1100 | + | RArm.BrickColor = BrickColor.new'Institutional white' |
1101 | - | ROOT:remove() |
1101 | + | LArm.BrickColor = BrickColor.new'Institutional white' |
1102 | - | end |
1102 | + | RLeg.BrickColor = BrickColor.new'Institutional white' |
1103 | - | local RGRAB = CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, RARM, CF(0,-1.35,0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) |
1103 | + | LLeg.BrickColor = BrickColor.new'Institutional white' |
1104 | - | local LGRAB = CreateWeldOrSnapOrMotor("Weld", LeftArm, LeftArm, LARM, CF(0,-1.35,0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0)) |
1104 | + | Torso.BrickColor = BrickColor.new'Institutional white' |
1105 | - | local bv = Instance.new("BodyVelocity",TARGET) |
1105 | + | Head.BrickColor = BrickColor.new'Institutional white' |
1106 | - | bv.maxForce = Vector3.new(1e9, 1e9, 1e9) |
1106 | + | Hum.Name = 'Chara' |
1107 | - | bv.velocity = TARGET.CFrame.lookVector*75 |
1107 | + | if(Hum.MaxHealth ~= MaxHealth)then |
1108 | - | Debris:AddItem(bv,0.05) |
1108 | + | Hum.MaxHealth = MaxHealth |
1109 | - | CreateSound(621557962, RightLeg, 1, MRANDOM(7,9)/10, false) |
1109 | + | end |
1110 | - | for i=0, 0.5, 0.1 / Animation_Speed do |
1110 | + | Hum.DisplayDistanceType='None' |
1111 | - | Swait() |
1111 | + | if(NeutralAnims)then |
1112 | - | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0.2, 0.25) * ANGLES(RAD(-35), RAD(0), RAD(80)), 1 / Animation_Speed) |
1112 | + | if(State == 'Idle')then |
1113 | - | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15), RAD(0), RAD(-30)), 1 / Animation_Speed) |
1113 | + | Change = 1 |
1114 | - | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.4) * ANGLES(RAD(160), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed) |
1114 | + | local Alpha = .1 |
1115 | - | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.4) * ANGLES(RAD(160), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed) |
1115 | + | RJ.C0 = clerp(RJ.C0,CFrame.new(-0.0999571308, 0+.05*M.C(Sine/16), -0.237876296, 0.857335567, -0.00323621999, -0.514731407, 0, 0.99998033, -0.00628707698, 0.51474154, 0.00539013464, 0.85731858),Alpha) |
1116 | - | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.6) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-65), RAD(0), RAD(0)) * CF(0,-0.3,0), 1 / Animation_Speed) |
1116 | + | LH.C0 = clerp(LH.C0,CFrame.new(-0.536091685, -0.991042495-.05*M.C(Sine/16), -0.0134909991, 0.849195242, 0, 0.528063774, -0.00331997755, 0.99998033, 0.00533895614, -0.528053343, -0.00628707698, 0.849178433),Alpha) |
1117 | - | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-45), RAD(0)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed) |
1117 | + | RH.C0 = clerp(RH.C0,CFrame.new(0.529067397, -0.991597891-.05*M.C(Sine/16), -0.0818087086, 0.849195242, 0, 0.528063774, -0.00331997755, 0.99998033, 0.00533895614, -0.528053343, -0.00628707698, 0.849178433),Alpha) |
1118 | - | end |
1118 | + | LS.C0 = clerp(LS.C0,CFrame.new(-1.32175505, 0.156236127+.15*M.C(Sine/16), 0.233877867, 0.877554953, -0.456876248, 0.145469457, 0.259513229, 0.707695842, 0.657129884, -0.403175086, -0.538916171, 0.739607573),Alpha) |
1119 | - | for i=0, 1, 0.1 / Animation_Speed do |
1119 | + | RS.C0 = clerp(RS.C0,CFrame.new(1.2516855, 0.604915917+.15*M.C(Sine/16), -0.0189059302, 0.915104508, -0.287113011, -0.283108115, 0.301054537, 0.953587949, 0.00603589695, 0.268235415, -0.0907544345, 0.959069014),Alpha) |
1120 | - | Swait() |
1120 | + | NK.C0 = clerp(NK.C0,CFrame.new(1.79447234e-05, 1.49895597, -0.0143749639, 0.769539058, -0.360377938, 0.527197778, 0.387706369, 0.919646919, 0.0627188534, -0.507438183, 0.156133309, 0.847424924),Alpha) |
1121 | - | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1121 | + | HW.C0 = HW.C0:lerp(CF.N(0,-1,-1)*CF.A(M.R(-90),0,0),Alpha) |
1122 | - | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(0)), 1 / Animation_Speed) |
1122 | + | -- idle |
1123 | - | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.4) * ANGLES(RAD(0), RAD(0), RAD(90)) * RIGHTSHOULDERC0, 0.6 / Animation_Speed) |
1123 | + | elseif(State == 'Walk')then |
1124 | - | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.4) * ANGLES(RAD(0), RAD(0), RAD(-90)) * LEFTSHOULDERC0, 0.6 / Animation_Speed) |
1124 | + | if(Hum.WalkSpeed >= 24)then |
1125 | - | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1125 | + | local wsVal = 22 / (Hum.WalkSpeed/16) |
1126 | - | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1126 | + | local Alpha = math.min(.2 * (Hum.WalkSpeed/16),1) |
1127 | - | end |
1127 | + | RJ.C0 = RJ.C0:lerp(CF.N(0,0-.15*M.C(Sine/(wsVal/2)),0)*CF.A(M.R(-15),M.R(0-15*M.S(Sine/wsVal)/2),0),Alpha) |
1128 | - | local HITBOX = CreatePart(3, RARM, "Metal", 0, 1, "Really black", "Part", RARM.Size, false) |
1128 | + | LS.C0 = LS.C0:lerp(LSC0*CF.N(0,0,0-.3*M.S(Sine/wsVal))*CF.A(M.R(0+45*M.S(Sine/wsVal)),0,M.R(-5+15*M.S(Sine/wsVal))),Alpha) |
1129 | - | HITBOX.CFrame = RARM.CFrame |
1129 | + | RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0,0+.3*M.S(Sine/wsVal))*CF.A(M.R(0-45*M.S(Sine/wsVal)),0,M.R(5+15*M.S(Sine/wsVal))),Alpha) |
1130 | - | HITBOX.CanCollide = true |
1130 | + | NK.C0 = NK.C0:lerp(NKC0*CF.A(M.R(15),0,0),Alpha) |
1131 | - | weldBetween(RARM,HITBOX) |
1131 | + | LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0+.15*M.C(Sine/(wsVal/2)),0)*CF.A(M.R(15),0,0),Alpha) |
1132 | - | local HITBOX = CreatePart(3, LARM, "Metal", 0, 1, "Really black", "Part", RARM.Size, false) |
1132 | + | RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0+.15*M.C(Sine/(wsVal/2)),0)*CF.A(M.R(15),0,0),Alpha) |
1133 | - | HITBOX.CFrame = LARM.CFrame |
1133 | + | HW.C0 = HW.C0:lerp(CF.N(0,-1,-1)*CF.A(M.R(-90),0,0),Alpha) |
1134 | - | HITBOX.CanCollide = true |
1134 | + | else |
1135 | - | weldBetween(LARM,HITBOX) |
1135 | + | local wsVal = 8 / (Hum.WalkSpeed/8) |
1136 | - | RGRAB:remove() |
1136 | + | local Alpha = math.min(.2 * (Hum.WalkSpeed/8),1) |
1137 | - | LGRAB:remove() |
1137 | + | RJ.C0 = RJ.C0:lerp(CF.N(0,0-.05*M.C(Sine/(wsVal/2)),0)*CF.A(0,M.R(0-5*M.S(Sine/wsVal)/2),0),Alpha) |
1138 | - | for i=0, 0.4, 0.1 / Animation_Speed do |
1138 | + | LS.C0 = LS.C0:lerp(LSC0*CF.N(0,0,0+.3*M.S(Sine/wsVal))*CF.A(M.R(0-25*M.S(Sine/wsVal)),0,M.R(5-5*M.S(Sine/wsVal))),Alpha) |
1139 | - | Swait() |
1139 | + | RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0,0-.3*M.S(Sine/wsVal))*CF.A(M.R(0+25*M.S(Sine/wsVal)),0,M.R(-5-5*M.S(Sine/wsVal))),Alpha) |
1140 | - | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1140 | + | NK.C0 = NK.C0:lerp(NKC0,Alpha) |
1141 | - | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(25), RAD(0), RAD(0)), 1 / Animation_Speed) |
1141 | + | LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0+.05*M.C(Sine/(wsVal/2)),0),Alpha) |
1142 | - | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.4) * ANGLES(RAD(0), RAD(0), RAD(110)) * RIGHTSHOULDERC0, 1 / Animation_Speed) |
1142 | + | RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0+.05*M.C(Sine/(wsVal/2)),0),Alpha) |
1143 | - | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.4) * ANGLES(RAD(0), RAD(0), RAD(-110)) * LEFTSHOULDERC0, 1 / Animation_Speed) |
1143 | + | HW.C0 = HW.C0:lerp(CF.N(0,-1,-1)*CF.A(M.R(-90),0,0),Alpha) |
1144 | - | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1144 | + | end |
1145 | - | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1145 | + | elseif(State == 'Jump' or State == 'Fall')then |
1146 | - | end |
1146 | + | if(Walking)then |
1147 | - | end |
1147 | + | local Alpha = .2 |
1148 | - | elseif TARGET.Name == "UpperTorso" then |
1148 | + | RJ.C0 = clerp(RJ.C0,RJC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(65)),M.R(65)),0,0),Alpha) |
1149 | - | if TARGET.Parent:FindFirstChild("RightUpperArm") and TARGET.Parent:FindFirstChild("LeftUpperArm") then |
1149 | + | LH.C0 = clerp(LH.C0,CFrame.new(-0.497912645, -1.0987643, -0.0683324337, 0.999878228, 0.00860835519, 0.0130246133, -0.00010142161, 0.837816596, -0.545952022, -0.015611981, 0.545884132, 0.837715328),Alpha) |
1150 | - | for i=0, 0.3, 0.1 / Animation_Speed do |
1150 | + | RH.C0 = clerp(RH.C0,CFrame.new(0.499978393, -1.16382337, 0.109293163, 0.999878228, -0.0120433727, 0.00993486121, -0.00010142161, 0.631323814, 0.775519371, -0.015611981, -0.775425911, 0.631245613),Alpha) |
1151 | - | Swait() |
1151 | + | LS.C0 = clerp(LS.C0,CFrame.new(-1.55211556, 0.576563478, -0.00269976072, 0.976067662, 0.216906726, 0.0156116467, -0.217024669, 0.976145923, 0.00628317893, -0.0138763804, -0.00952091813, 0.999858499),Alpha) |
1152 | - | RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(45)), 1 / Animation_Speed) |
1152 | + | RS.C0 = clerp(RS.C0,CFrame.new(1.50182188, 0.636661649, 0.00632623257, 0.977592707, -0.209926367, 0.0156121543, 0.209851891, 0.977713108, 0.00628198683, -0.016582964, -0.00286500831, 0.999858439),Alpha) |
1153 | - | Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(0), RAD(0), RAD(-45)), 1 / Animation_Speed) |
1153 | + | NK.C0 = clerp(NK.C0,CFrame.new(1.14440072e-05, 1.49924362, -0.0143961608, 1.00000024, -5.82076609e-11, 0, 1.23691279e-10, 0.997964919, 0.0637660474, 0, -0.0637660623, 0.997965038),Alpha) |
1154 | - | RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.45, 0.5, -0.5) * ANGLES(RAD(140), RAD(0), RAD(45)) * ANGLES(RAD(0), RAD(25), RAD(0)) * RIGHTSHOULDERC0, 1 / Animation_Speed) |
1154 | + | HW.C0 = HW.C0:lerp(CF.N(0,-1,-1)*CF.A(M.R(-90),0,0),Alpha) |
1155 | - | LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, 0) * ANGLES(RAD(0), RAD(0), RAD(0)) * LEFTSHOULDERC0, 1 / Animation_Speed) |
1155 | + | else |
1156 | - | RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(70), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1156 | + | local Alpha = .2 |
1157 | - | LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed) |
1157 | + | RJ.C0 = clerp(RJ.C0,RJC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(65)),M.R(65)),0,0),Alpha) |
1158 | - | end |
1158 | + | LH.C0 = clerp(LH.C0,CFrame.new(-0.504374504, -0.291219354, -0.487436086, 0.999878228, -0.00438931212, 0.0149825988, -0.00010142161, 0.957819223, 0.287371844, -0.015611981, -0.287338346, 0.957701981),Alpha) |
1159 | - | local SAWBLADE = CreatePart(3, Weapon, "Neon", 0, 0.5, "Really red", "Part", VT(0,0,0),false) |
1159 | + | RH.C0 = clerp(RH.C0,CFrame.new(0.453094482, -0.871358454, 0.0898642987, 0.985589385, -0.168456957, 0.0153662469, 0.162863791, 0.969548643, 0.182895929, -0.0457084104, -0.177757636, 0.983012319),Alpha) |
1160 | - | local WELD = CreateWeldOrSnapOrMotor("Weld", RightArm, RightArm, SAWBLADE, CF(0,-1,0) * ANGLES(RAD(0), RAD(90), RAD(0)), CF(0, 0, 0)) |
1160 | + | LS.C0 = clerp(LS.C0,CFrame.new(-1.55211556, 0.576563478, -0.00269976072, 0.976067662, 0.216906726, 0.0156116467, -0.217024669, 0.976145923, 0.00628317893, -0.0138763804, -0.00952091813, 0.999858499),Alpha) |
1161 | - | local BLADE = true |
1161 | + | RS.C0 = clerp(RS.C0,CFrame.new(1.50182188, 0.636661649, 0.00632623257, 0.977592707, -0.209926367, 0.0156121543, 0.209851891, 0.977713108, 0.00628198683, -0.016582964, -0.00286500831, 0.999858439),Alpha) |
1162 | - | CreateMesh("SpecialMesh", SAWBLADE, "FileMesh", "74322089", "", VT(1,1,1), VT(0,0,0)) |
1162 | + | NK.C0 = clerp(NK.C0,CFrame.new(1.14440072e-05, 1.49924362, -0.0143961608, 1.00000024, -5.82076609e-11, 0, 1.23691279e-10, 0.997964919, 0.0637660474, 0, -0.0637660623, 0.997965038),Alpha) |
1163 | - | coroutine.resume(coroutine.create(function() |
1163 | + | HW.C0 = HW.C0:lerp(CF.N(0,-1,-1)*CF.A(M.R(-90),0,0),Alpha) |
1164 | - | repeat |
1164 | + | end |
1165 | - | Swait() |
1165 | + | elseif(State == 'Paralyzed')then |
1166 | - | WELD.C1 = WELD.C1 * ANGLES(RAD(0), RAD(0), RAD(25)) |
1166 | + | -- paralyzed |
1167 | - | until BLADE == false |
1167 | + | elseif(State == 'Sit')then |
1168 | - | SAWBLADE:remove() |
1168 | + | -- sit |
1169 | - | end)) |
1169 | + | |
1170 | - | CreateSound(1165167936, SAWBLADE, 2, 1, true) |
1170 | + | end |
1171 | - | for i=0, 1, 0.1 / Animation_Speed do |
1171 | + | end |