SHOW:
|
|
- or go back to the newest paste.
1 | - | -- Created by Nebula_Zorua Edit By PowerSans1234-- |
1 | + | |
2 | - | -- Your DeTERMINATION -- |
2 | + | wait(0.2) |
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. =) -- |
3 | + | |
4 | - | -- Discord: Nebula the Zorua#6969 |
4 | + | Player = game:GetService("Players").LocalPlayer |
5 | - | -- Youtube: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA |
5 | + | PlayerGui = Player.PlayerGui |
6 | Cam = workspace.CurrentCamera | |
7 | Backpack = Player.Backpack | |
8 | - | --// Initializing \\-- |
8 | + | Character = Player.Character |
9 | - | local S = setmetatable({},{__index = function(s,i) return game:service(i) end}) |
9 | + | Humanoid = Character.Humanoid |
10 | - | local Plrs = S.Players |
10 | + | Mouse = Player:GetMouse() |
11 | - | local Plr = Plrs.LocalPlayer |
11 | + | RootPart = Character["HumanoidRootPart"] |
12 | - | local Char = Plr.Character |
12 | + | Torso = Character["Torso"] |
13 | - | local Hum = Char:FindFirstChildOfClass'Humanoid' |
13 | + | Head = Character["Head"] |
14 | - | local RArm = Char["Right Arm"] |
14 | + | RightArm = Character["Right Arm"] |
15 | - | local LArm = Char["Left Arm"] |
15 | + | LeftArm = Character["Left Arm"] |
16 | - | local RLeg = Char["Right Leg"] |
16 | + | RightLeg = Character["Right Leg"] |
17 | - | local LLeg = Char["Left Leg"] |
17 | + | LeftLeg = Character["Left Leg"] |
18 | - | local Root = Char:FindFirstChild'HumanoidRootPart' |
18 | + | RootJoint = RootPart["RootJoint"] |
19 | - | local Torso = Char.Torso |
19 | + | Neck = Torso["Neck"] |
20 | - | local Head = Char.Head |
20 | + | RightShoulder = Torso["Right Shoulder"] |
21 | - | local NeutralAnims = true |
21 | + | LeftShoulder = Torso["Left Shoulder"] |
22 | - | local Attack = false |
22 | + | RightHip = Torso["Right Hip"] |
23 | - | local BloodPuddles = {} |
23 | + | LeftHip = Torso["Left Hip"] |
24 | - | local Effects = {} |
24 | + | local sick = Instance.new("Sound",Torso) |
25 | - | local Debounces = {Debounces={}} |
25 | + | sick.SoundId = "rbxassetid://0" |
26 | - | local Mouse = Plr:GetMouse() |
26 | + | sick.Looped = true |
27 | - | local Hit = {} |
27 | + | sick.Pitch = 1 |
28 | - | local Sine = 0 |
28 | + | sick.Volume = 1 |
29 | - | local Change = 1 |
29 | + | sick:Play() |
30 | - | local Souls = 0 |
30 | + | for i,v in pairs(Character:GetChildren()) do |
31 | - | --// Debounce System \\-- |
31 | + | if v.ClassName == "CharacterMesh" then |
32 | v:Destroy() | |
33 | end | |
34 | - | function Debounces:New(name,cooldown) |
34 | + | |
35 | - | local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0} |
35 | + | for i,v in pairs(Character:GetChildren()) do |
36 | - | setmetatable(aaaaa,{__index = Debounces}) |
36 | + | if v.ClassName == "Hat" or v.ClassName == "Accessory" then |
37 | - | Debounces.Debounces[name] = aaaaa |
37 | + | v:Destroy() |
38 | - | return aaaaa |
38 | + | end |
39 | end | |
40 | ||
41 | - | function Debounces:Use(overrideUsable) |
41 | + | IT = Instance.new |
42 | - | assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use") |
42 | + | CF = CFrame.new |
43 | - | if(self.Usable or overrideUsable)then |
43 | + | VT = Vector3.new |
44 | - | self.Usable = false |
44 | + | RAD = math.rad |
45 | - | self.CoolingDown = true |
45 | + | C3 = Color3.new |
46 | - | local LastUse = time() |
46 | + | UD2 = UDim2.new |
47 | - | self.LastUse = LastUse |
47 | + | BRICKC = BrickColor.new |
48 | - | delay(self.Cooldown or 2,function() |
48 | + | ANGLES = CFrame.Angles |
49 | - | if(self.LastUse == LastUse)then |
49 | + | EULER = CFrame.fromEulerAnglesXYZ |
50 | - | self.CoolingDown = false |
50 | + | COS = math.cos |
51 | - | self.Usable = true |
51 | + | ACOS = math.acos |
52 | - | end |
52 | + | SIN = math.sin |
53 | - | end) |
53 | + | ASIN = math.asin |
54 | - | end |
54 | + | ABS = math.abs |
55 | MRANDOM = math.random | |
56 | FLOOR = math.floor | |
57 | - | function Debounces:Get(name) |
57 | + | |
58 | - | assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name))) |
58 | + | --//=================================\\ |
59 | - | for i,v in next, Debounces.Debounces do |
59 | + | --|| SOME FUNCTIONS |
60 | - | if(i == name)then |
60 | + | --\\=================================// |
61 | - | return v; |
61 | + | |
62 | - | end |
62 | + | function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS) |
63 | - | end |
63 | + | return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS) |
64 | end | |
65 | ||
66 | - | function Debounces:GetProgressPercentage() |
66 | + | function PositiveAngle(NUMBER) |
67 | - | assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use") |
67 | + | if NUMBER >= 0 then |
68 | - | if(self.CoolingDown and not self.Usable)then |
68 | + | NUMBER = 0 |
69 | - | return math.max( |
69 | + | end |
70 | - | math.floor( |
70 | + | return NUMBER |
71 | - | ( |
71 | + | |
72 | - | (time()-self.LastUse)/self.Cooldown or 2 |
72 | + | |
73 | - | )*100 |
73 | + | function NegativeAngle(NUMBER) |
74 | - | ) |
74 | + | if NUMBER <= 0 then |
75 | - | ) |
75 | + | NUMBER = 0 |
76 | - | else |
76 | + | end |
77 | - | return 100 |
77 | + | return NUMBER |
78 | - | end |
78 | + | |
79 | ||
80 | function Swait(NUMBER) | |
81 | - | --// Shortcut Variables \\-- |
81 | + | if NUMBER == 0 or NUMBER == nil then |
82 | - | local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ} |
82 | + | ArtificialHB.Event:wait() |
83 | - | local C3 = {N=Color3.new,RGB=Color3.fromRGB,HSV=Color3.fromHSV,tHSV=Color3.toHSV} |
83 | + | else |
84 | - | local V3 = {N=Vector3.new,FNI=Vector3.FromNormalId,A=Vector3.FromAxis} |
84 | + | for i = 1, NUMBER do |
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} |
85 | + | ArtificialHB.Event:wait() |
86 | - | local R3 = {N=Region3.new} |
86 | + | end |
87 | - | local De = S.Debris |
87 | + | end |
88 | - | local WS = workspace |
88 | + | |
89 | - | local Lght = S.Lighting |
89 | + | |
90 | - | local RepS = S.ReplicatedStorage |
90 | + | function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET) |
91 | - | local IN = Instance.new |
91 | + | local NEWMESH = IT(MESH) |
92 | - | local CSK = ColorSequenceKeypoint.new |
92 | + | if MESH == "SpecialMesh" then |
93 | - | local CS = ColorSequence.new |
93 | + | NEWMESH.MeshType = MESHTYPE |
94 | - | --// Instance Creation Functions \\-- |
94 | + | if MESHID ~= "nil" and MESHID ~= "" then |
95 | NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID | |
96 | - | function Sound(parent,id,pitch,volume,looped,effect,autoPlay) |
96 | + | end |
97 | - | local Sound = IN("Sound") |
97 | + | if TEXTUREID ~= "nil" and TEXTUREID ~= "" then |
98 | - | Sound.SoundId = "rbxassetid://".. tostring(id or 0) |
98 | + | NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID |
99 | - | Sound.Pitch = pitch or 1 |
99 | + | end |
100 | - | Sound.Volume = volume or 1 |
100 | + | end |
101 | - | Sound.Looped = looped or false |
101 | + | NEWMESH.Offset = OFFSET or VT(0, 0, 0) |
102 | - | if(autoPlay)then |
102 | + | NEWMESH.Scale = SCALE |
103 | - | coroutine.wrap(function() |
103 | + | NEWMESH.Parent = PARENT |
104 | - | repeat wait() until Sound.IsLoaded |
104 | + | return NEWMESH |
105 | - | Sound.Playing = autoPlay or false |
105 | + | |
106 | - | end)() |
106 | + | |
107 | - | end |
107 | + | function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR) |
108 | - | if(not looped and effect)then |
108 | + | local NEWPART = IT("Part") |
109 | - | Sound.Stopped:connect(function() |
109 | + | NEWPART.formFactor = FORMFACTOR |
110 | - | Sound.Volume = 0 |
110 | + | NEWPART.Reflectance = REFLECTANCE |
111 | - | Sound:destroy() |
111 | + | NEWPART.Transparency = TRANSPARENCY |
112 | - | end) |
112 | + | NEWPART.CanCollide = false |
113 | - | elseif(effect)then |
113 | + | NEWPART.Locked = true |
114 | - | warn("Sound can't be looped and a sound effect!") |
114 | + | NEWPART.Anchored = true |
115 | - | end |
115 | + | if ANCHOR == false then |
116 | - | Sound.Parent =parent or Torso |
116 | + | NEWPART.Anchored = false |
117 | - | return Sound |
117 | + | end |
118 | NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR)) | |
119 | - | function Part(parent,color,material,size,cframe,anchored,cancollide) |
119 | + | NEWPART.Name = NAME |
120 | - | local part = IN("Part") |
120 | + | NEWPART.Size = SIZE |
121 | - | part[typeof(color) == 'BrickColor' and 'BrickColor' or 'Color'] = color or C3.N(0,0,0) |
121 | + | NEWPART.Position = Torso.Position |
122 | - | part.Material = (material or Enum.Material.SmoothPlastic) |
122 | + | NEWPART.Material = MATERIAL |
123 | - | part.TopSurface,part.BottomSurface=10,10 |
123 | + | NEWPART:BreakJoints() |
124 | - | part.Size = (size or V3.N(1,1,1)) |
124 | + | NEWPART.Parent = PARENT |
125 | - | part.CFrame = (cframe or CF.N(0,0,0)) |
125 | + | return NEWPART |
126 | - | part.Anchored = (anchored or false) |
126 | + | |
127 | - | part.CanCollide = (cancollide or false) |
127 | + | |
128 | - | part.Parent = (parent or Char) |
128 | + | local function weldBetween(a, b) |
129 | - | return part |
129 | + | local weldd = Instance.new("ManualWeld") |
130 | weldd.Part0 = a | |
131 | - | function Mesh(parent,meshtype,meshid,textid,scale,offset) |
131 | + | weldd.Part1 = b |
132 | - | local part = IN("SpecialMesh") |
132 | + | weldd.C0 = CFrame.new() |
133 | - | part.MeshId = meshid or "" |
133 | + | weldd.C1 = b.CFrame:inverse() * a.CFrame |
134 | - | part.TextureId = textid or "" |
134 | + | weldd.Parent = a |
135 | - | part.Scale = scale or V3.N(1,1,1) |
135 | + | return weldd |
136 | - | part.Offset = offset or V3.N(0,0,0) |
136 | + | end |
137 | - | part.MeshType = meshtype or Enum.MeshType.Sphere |
137 | + | |
138 | - | part.Parent = parent |
138 | + | |
139 | - | return part |
139 | + | function QuaternionFromCFrame(cf) |
140 | local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() | |
141 | local trace = m00 + m11 + m22 | |
142 | - | NewInstance = function(instance,parent,properties) |
142 | + | if trace > 0 then |
143 | - | local inst = Instance.new(instance,parent) |
143 | + | local s = math.sqrt(1 + trace) |
144 | - | if(properties)then |
144 | + | local recip = 0.5 / s |
145 | - | for i,v in next, properties do |
145 | + | return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5 |
146 | - | pcall(function() inst[i] = v end) |
146 | + | else |
147 | - | end |
147 | + | local i = 0 |
148 | - | end |
148 | + | if m11 > m00 then |
149 | - | return inst; |
149 | + | i = 1 |
150 | end | |
151 | if m22 > (i == 0 and m00 or m11) then | |
152 | i = 2 | |
153 | end | |
154 | - | --// Extended ROBLOX tables \\-- |
154 | + | if i == 0 then |
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}) |
155 | + | local s = math.sqrt(m00 - m11 - m22 + 1) |
156 | - | --// Customization \\-- |
156 | + | local recip = 0.5 / s |
157 | return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip | |
158 | - | local Frame_Speed = 60 -- The frame speed for swait. 1 is automatically divided by this |
158 | + | elseif i == 1 then |
159 | - | local Remove_Hats = false |
159 | + | local s = math.sqrt(m11 - m22 - m00 + 1) |
160 | - | local Remove_Clothing = true |
160 | + | local recip = 0.5 / s |
161 | - | local PlayerSize = 1 |
161 | + | return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip |
162 | - | local DamageColor = BrickColor.new'Really red' |
162 | + | elseif i == 2 then |
163 | - | local MusicID = 391549957 |
163 | + | local s = math.sqrt(m22 - m00 - m11 + 1) |
164 | - | local WalkSpeed = 8 |
164 | + | local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip |
165 | - | local MaxSouls = 100 |
165 | + | end |
166 | - | local MaxHealth = 500 |
166 | + | end |
167 | end | |
168 | ||
169 | - | if(_G.RefusedAnimation == nil) then _G.RefusedAnimation = false end |
169 | + | function QuaternionToCFrame(px, py, pz, x, y, z, w) |
170 | local xs, ys, zs = x + x, y + y, z + z | |
171 | - | --// Weapon and GUI creation, and Character Customization \\-- |
171 | + | local wx, wy, wz = w * xs, w * ys, w * zs |
172 | local xx = x * xs | |
173 | - | if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end |
173 | + | local xy = x * ys |
174 | - | if(Remove_Clothing)then Instance.ClearChildrenOfClass(Char,"Clothing",true) Instance.ClearChildrenOfClass(Char,"ShirtGraphic",true) end |
174 | + | local xz = x * zs |
175 | - | local Effects = IN("Folder",Char) |
175 | + | local yy = y * ys |
176 | - | Effects.Name = "Effects" |
176 | + | local yz = y * zs |
177 | local zz = z * zs | |
178 | - | Hum.MaxHealth = MaxHealth |
178 | + | 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)) |
179 | - | Hum.Health = MaxHealth |
179 | + | |
180 | ||
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(0,0,0)}) |
181 | + | function QuaternionSlerp(a, b, t) |
182 | - | local KnifeMesh = Mesh(Knife,Enum.MeshType.FileMesh,"rbxassetid://121944778","rbxassetid://121944805",V3.N(1,1,1),V3.N()) |
182 | + | local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4] |
183 | - | local AuraEmitter = NewInstance("ParticleEmitter",Knife,{EmissionDirection='Back',Color=CS{CSK(0,C3.N(1,0,0)),CSK(0.5,C3.N(1,1,0)),CSK(1,C3.RGB(255,191,0))},LightEmission=.5,LightInfluence=0,Size=NumberSequence.new(0.3),Texture="rbxassetid://1",Transparency=NumberSequence.new(0,1),LockedToPart=true,Lifetime=NumberRange.new(1),Rate=150,Speed=NumberRange.new(0)}) |
183 | + | local startInterp, finishInterp; |
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://1",Transparency=NumberSequence.new(0.35,1),Lifetime=NumberRange.new(1,2),Rate=150,Speed=NumberRange.new(3)}) |
184 | + | if cosTheta >= 0.0001 then |
185 | if (1 - cosTheta) > 0.0001 then | |
186 | - | local KTrail = NewInstance("Trail",Knife,{ |
186 | + | local theta = ACOS(cosTheta) |
187 | - | Attachment0=NewInstance("Attachment",Knife,{Position=V3.N(0,-.4,0)}), |
187 | + | local invSinTheta = 1 / SIN(theta) |
188 | - | Attachment1=NewInstance("Attachment",Knife,{Position=V3.N(0,1.2,0)}), |
188 | + | startInterp = SIN((1 - t) * theta) * invSinTheta |
189 | - | Color=CS(C3.N(1,0,0)), |
189 | + | finishInterp = SIN(t * theta) * invSinTheta |
190 | - | Enabled=false, |
190 | + | else |
191 | - | Transparency=NumberSequence.new(0,1), |
191 | + | startInterp = 1 - t |
192 | - | Lifetime=1.25, |
192 | + | finishInterp = t |
193 | - | }) |
193 | + | end |
194 | - | local Hair = Part(Char,C3.N(0,0,0),Enum.Material.SmoothPlastic,V3.N(1,1,1),CF.N(),false,false) |
194 | + | else |
195 | - | local HairMesh = Mesh(Hair,Enum.MeshType.FileMesh,"rbxassetid://876","rbxassetid://07",V3.N(1.05,1.05,1.05),V3.N()) |
195 | + | if (1 + cosTheta) > 0.0001 then |
196 | local theta = ACOS(-cosTheta) | |
197 | - | NewInstance("PointLight",Knife,{Color=C3.N(1,0,0),Range=10,Brightness=3}) |
197 | + | local invSinTheta = 1 / SIN(theta) |
198 | startInterp = SIN((t - 1) * theta) * invSinTheta | |
199 | finishInterp = SIN(t * theta) * invSinTheta | |
200 | - | Hum.DisplayDistanceType = 'None' |
200 | + | else |
201 | startInterp = t - 1 | |
202 | - | local naeeym2 = IN("BillboardGui",Char) |
202 | + | finishInterp = t |
203 | - | naeeym2.AlwaysOnTop = true |
203 | + | end |
204 | - | naeeym2.Size = UDim2.new(5,35,2,15) |
204 | + | end |
205 | - | naeeym2.StudsOffset = V3.N(0,2.5,0) |
205 | + | 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 |
206 | - | naeeym2.Adornee = Char.Head |
206 | + | |
207 | - | naeeym2.Name = "Name" |
207 | + | |
208 | - | naeeym2.PlayerToHideFrom = Plr |
208 | + | function Clerp(a, b, t) |
209 | - | local tecks2 = IN("TextLabel",naeeym2) |
209 | + | local qa = {QuaternionFromCFrame(a)} |
210 | - | tecks2.BackgroundTransparency = 1 |
210 | + | local qb = {QuaternionFromCFrame(b)} |
211 | - | tecks2.TextScaled = true |
211 | + | local ax, ay, az = a.x, a.y, a.z |
212 | - | tecks2.BorderSizePixel = 0 |
212 | + | local bx, by, bz = b.x, b.y, b.z |
213 | - | tecks2.Text = "Killer UnderSwap Sans" |
213 | + | local _t = 1 - t |
214 | - | tecks2.Font = Enum.Font.Bodoni |
214 | + | return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t)) |
215 | - | tecks2.TextSize = 30 |
215 | + | |
216 | - | tecks2.TextStrokeTransparency = 0 |
216 | + | |
217 | - | tecks2.TextColor3 = C3.N(0,0,0) |
217 | + | function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME) |
218 | - | tecks2.TextStrokeColor3 = C3.N(.7,0,0) |
218 | + | local frame = IT("Frame") |
219 | - | tecks2.Size = UDim2.new(1,0,0.5,0) |
219 | + | frame.BackgroundTransparency = TRANSPARENCY |
220 | - | tecks2.Parent = naeeym2 |
220 | + | frame.BorderSizePixel = BORDERSIZEPIXEL |
221 | frame.Position = POSITION | |
222 | frame.Size = SIZE | |
223 | - | IN("Shirt",Char) |
223 | + | frame.BackgroundColor3 = COLOR |
224 | - | IN("Pants",Char) |
224 | + | frame.BorderColor3 = BORDERCOLOR |
225 | frame.Name = NAME | |
226 | - | Hum.WalkSpeed = WalkSpeed |
226 | + | frame.Parent = PARENT |
227 | - | if(PlayerSize ~= 1)then |
227 | + | return frame |
228 | - | for _,v in next, Char:GetDescendats() do |
228 | + | |
229 | - | if(v:IsA'BasePart')then |
229 | + | |
230 | - | v.Size = v.Size * PlayerSize |
230 | + | function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME) |
231 | - | end |
231 | + | local label = IT("TextLabel") |
232 | - | end |
232 | + | label.BackgroundTransparency = 1 |
233 | label.Size = UD2(1, 0, 1, 0) | |
234 | label.Position = UD2(0, 0, 0, 0) | |
235 | label.TextColor3 = TEXTCOLOR | |
236 | label.TextStrokeTransparency = STROKETRANSPARENCY | |
237 | - | pcall(function() |
237 | + | label.TextTransparency = TRANSPARENCY |
238 | - | Char.LeftWing:destroy() |
238 | + | label.FontSize = TEXTFONTSIZE |
239 | - | Char.ReaperShadowHead:destroy() |
239 | + | label.Font = TEXTFONT |
240 | - | end) |
240 | + | label.BorderSizePixel = BORDERSIZEPIXEL |
241 | label.TextScaled = false | |
242 | label.Text = TEXT | |
243 | - | local Music = Sound(Torso,MusicID,1,3,true,false,true) |
243 | + | label.Name = NAME |
244 | - | Music.Name = 'Music' |
244 | + | label.Parent = PARENT |
245 | return label | |
246 | - | --// Stop animations \\-- |
246 | + | |
247 | - | for _,v in next, Hum:GetPlayingAnimationTracks() do |
247 | + | |
248 | - | v:Stop(); |
248 | + | function NoOutlines(PART) |
249 | PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10 | |
250 | end | |
251 | - | pcall(game.Destroy,Char:FindFirstChild'Animate') |
251 | + | |
252 | - | pcall(game.Destroy,Hum:FindFirstChild'Animator') |
252 | + | function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1) |
253 | local NEWWELD = IT(TYPE) | |
254 | - | --// Joints \\-- |
254 | + | NEWWELD.Part0 = PART0 |
255 | NEWWELD.Part1 = PART1 | |
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)}) |
256 | + | NEWWELD.C0 = C0 |
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)}) |
257 | + | NEWWELD.C1 = C1 |
258 | - | local NK = NewInstance('Motor',Char,{Part0=Torso,Part1=Head,C0 = CF.N(0,1.5 * PlayerSize,0)}) |
258 | + | NEWWELD.Parent = PARENT |
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)}) |
259 | + | return NEWWELD |
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)}) |
260 | + | |
261 | - | local RJ = NewInstance('Motor',Char,{Part0=Root,Part1=Torso}) |
261 | + | |
262 | - | local HW = NewInstance('Motor',Char,{Part0=RArm,Part1=Knife,C0=CF.N(0,-1,-1)*CF.A(M.R(-90),0,0)}) |
262 | + | local S = IT("Sound") |
263 | - | local HW2 = NewInstance('Motor',Char,{Part0=Head,Part1=Hair,C0=CF.N(0,.25,0)}) |
263 | + | function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP) |
264 | local NEWSOUND = nil | |
265 | - | local LSC0 = LS.C0 |
265 | + | coroutine.resume(coroutine.create(function() |
266 | - | local RSC0 = RS.C0 |
266 | + | NEWSOUND = S:Clone() |
267 | - | local NKC0 = NK.C0 |
267 | + | NEWSOUND.Parent = PARENT |
268 | - | local LHC0 = LH.C0 |
268 | + | NEWSOUND.Volume = VOLUME |
269 | - | local RHC0 = RH.C0 |
269 | + | NEWSOUND.Pitch = PITCH |
270 | - | local RJC0 = RJ.C0 |
270 | + | NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID |
271 | NEWSOUND:play() | |
272 | - | --// Artificial HB \\-- |
272 | + | if DOESLOOP == true then |
273 | NEWSOUND.Looped = true | |
274 | - | local ArtificialHB = IN("BindableEvent", script) |
274 | + | else |
275 | - | ArtificialHB.Name = "Heartbeat" |
275 | + | repeat wait(1) until NEWSOUND.Playing == false |
276 | NEWSOUND:remove() | |
277 | - | script:WaitForChild("Heartbeat") |
277 | + | end |
278 | end)) | |
279 | - | local tf = 0 |
279 | + | return NEWSOUND |
280 | - | local allowframeloss = false |
280 | + | |
281 | - | local tossremainder = false |
281 | + | |
282 | - | local lastframe = tick() |
282 | + | function CFrameFromTopBack(at, top, back) |
283 | - | local frame = 1/Frame_Speed |
283 | + | local right = top:Cross(back) |
284 | - | ArtificialHB:Fire() |
284 | + | 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) |
285 | end | |
286 | - | game:GetService("RunService").Heartbeat:connect(function(s, p) |
286 | + | |
287 | - | tf = tf + s |
287 | + | --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}) |
288 | - | if tf >= frame then |
288 | + | function WACKYEFFECT(Table) |
289 | - | if allowframeloss then |
289 | + | local TYPE = (Table.EffectType or "Sphere") |
290 | - | script.Heartbeat:Fire() |
290 | + | local SIZE = (Table.Size or VT(1,1,1)) |
291 | - | lastframe = tick() |
291 | + | local ENDSIZE = (Table.Size2 or VT(0,0,0)) |
292 | - | else |
292 | + | local TRANSPARENCY = (Table.Transparency or 0) |
293 | - | for i = 1, math.floor(tf / frame) do |
293 | + | local ENDTRANSPARENCY = (Table.Transparency2 or 1) |
294 | - | ArtificialHB:Fire() |
294 | + | local CFRAME = (Table.CFrame or Torso.CFrame) |
295 | - | end |
295 | + | local MOVEDIRECTION = (Table.MoveToPos or nil) |
296 | - | lastframe = tick() |
296 | + | local ROTATION1 = (Table.RotationX or 0) |
297 | - | end |
297 | + | local ROTATION2 = (Table.RotationY or 0) |
298 | - | if tossremainder then |
298 | + | local ROTATION3 = (Table.RotationZ or 0) |
299 | - | tf = 0 |
299 | + | local MATERIAL = (Table.Material or "Neon") |
300 | - | else |
300 | + | local COLOR = (Table.Color or C3(1,1,1)) |
301 | - | tf = tf - frame * math.floor(tf / frame) |
301 | + | local TIME = (Table.Time or 45) |
302 | - | end |
302 | + | local SOUNDID = (Table.SoundID or nil) |
303 | - | end |
303 | + | local SOUNDPITCH = (Table.SoundPitch or nil) |
304 | - | end) |
304 | + | local SOUNDVOLUME = (Table.SoundVolume or nil) |
305 | coroutine.resume(coroutine.create(function() | |
306 | - | function swait(num) |
306 | + | local PLAYSSOUND = false |
307 | - | if num == 0 or num == nil then |
307 | + | local SOUND = nil |
308 | - | ArtificialHB.Event:wait() |
308 | + | local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true) |
309 | - | else |
309 | + | if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then |
310 | - | for i = 0, num do |
310 | + | PLAYSSOUND = true |
311 | - | ArtificialHB.Event:wait() |
311 | + | SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false) |
312 | - | end |
312 | + | end |
313 | - | end |
313 | + | EFFECT.Color = COLOR |
314 | local MSH = nil | |
315 | if TYPE == "Sphere" then | |
316 | MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0)) | |
317 | - | --// Effect Function(s) \\-- |
317 | + | elseif TYPE == "Block" then |
318 | MSH = IT("BlockMesh",EFFECT) | |
319 | - | function Bezier(startpos, pos2, pos3, endpos, t) |
319 | + | MSH.Scale = VT(SIZE.X,SIZE.X,SIZE.X) |
320 | - | local A = startpos:lerp(pos2, t) |
320 | + | elseif TYPE == "Wave" then |
321 | - | local B = pos2:lerp(pos3, t) |
321 | + | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8)) |
322 | - | local C = pos3:lerp(endpos, t) |
322 | + | elseif TYPE == "Ring" then |
323 | - | local lerp1 = A:lerp(B, t) |
323 | + | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0)) |
324 | - | local lerp2 = B:lerp(C, t) |
324 | + | elseif TYPE == "Slash" then |
325 | - | local cubic = lerp1:lerp(lerp2, t) |
325 | + | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0)) |
326 | - | return cubic |
326 | + | elseif TYPE == "Round Slash" then |
327 | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0)) | |
328 | elseif TYPE == "Swirl" then | |
329 | - | function Tween(obj,props,time,easing,direction,repeats,backwards) |
329 | + | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0)) |
330 | - | local info = TweenInfo.new(time or .5, easing or Enum.EasingStyle.Quad, direction or Enum.EasingDirection.Out, repeats or 0, backwards or false) |
330 | + | elseif TYPE == "Skull" then |
331 | - | local tween = S.TweenService:Create(obj, info, props) |
331 | + | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0)) |
332 | - | |
332 | + | elseif TYPE == "Crystal" then |
333 | - | tween:Play() |
333 | + | MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0)) |
334 | end | |
335 | if MSH ~= nil then | |
336 | - | local FXTable = {} |
336 | + | local MOVESPEED = nil |
337 | if MOVEDIRECTION ~= nil then | |
338 | - | coroutine.resume(coroutine.create(function() |
338 | + | MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME |
339 | - | while true do |
339 | + | end |
340 | - | for i = 1, #FXTable do |
340 | + | local GROWTH = SIZE - ENDSIZE |
341 | - | local data = FXTable[i] |
341 | + | local TRANS = TRANSPARENCY - ENDTRANSPARENCY |
342 | - | if(data)then |
342 | + | if TYPE == "Block" then |
343 | - | local Frame = data.Frame |
343 | + | EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) |
344 | - | local FX = data.Effect or 'ResizeAndFade' |
344 | + | else |
345 | - | local Parent = data.Parent or Effects |
345 | + | EFFECT.CFrame = CFRAME |
346 | - | local Color = data.Color or C3.N(0,0,0) |
346 | + | end |
347 | - | local Size = data.Size or V3.N(1,1,1) |
347 | + | for LOOP = 1, TIME+1 do |
348 | - | local MoveDir = data.MoveDirection or nil |
348 | + | Swait() |
349 | - | local MeshData = data.Mesh or nil |
349 | + | MSH.Scale = MSH.Scale - GROWTH/TIME |
350 | - | local SndData = data.Sound or nil |
350 | + | if TYPE == "Wave" then |
351 | - | local Frames = data.Frames or 45 |
351 | + | MSH.Offset = VT(0,0,-MSH.Scale.X/8) |
352 | - | local CFra = data.CFrame or Torso.CFrame |
352 | + | end |
353 | - | local Settings = data.FXSettings or {} |
353 | + | EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME |
354 | - | local Prt,Msh,Snd = data.Part,data.Mesh,data.Sound |
354 | + | if TYPE == "Block" then |
355 | - | local grow = data.Grow |
355 | + | EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) |
356 | - | |
356 | + | else |
357 | - | local MoveSpeed = nil; |
357 | + | EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3)) |
358 | - | if(MoveDir)then |
358 | + | end |
359 | - | MoveSpeed = (CFra.p - MoveDir).magnitude/Frames |
359 | + | if MOVEDIRECTION ~= nil then |
360 | - | end |
360 | + | local ORI = EFFECT.Orientation |
361 | - | if(FX ~= 'Arc')then |
361 | + | EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED) |
362 | - | Frame = Frame + 1 |
362 | + | EFFECT.Orientation = ORI |
363 | - | if(FX == "Fade")then |
363 | + | end |
364 | - | Prt.Transparency = (Frame/Frames) |
364 | + | end |
365 | - | elseif(FX == "Resize")then |
365 | + | if PLAYSSOUND == false then |
366 | - | if(not Settings.EndSize)then |
366 | + | EFFECT:remove() |
367 | - | Settings.EndSize = V3.N(0,0,0) |
367 | + | else |
368 | - | end |
368 | + | SOUND.Stopped:Connect(function() |
369 | - | if(Settings.EndIsIncrement)then |
369 | + | EFFECT:remove() |
370 | - | if(Msh)then |
370 | + | end) |
371 | - | Msh.Scale = Msh.Scale + Settings.EndSize |
371 | + | end |
372 | - | else |
372 | + | else |
373 | - | Prt.Size = Prt.Size + Settings.EndSize |
373 | + | if PLAYSSOUND == false then |
374 | - | end |
374 | + | EFFECT:remove() |
375 | - | else |
375 | + | else |
376 | - | if(Msh)then |
376 | + | repeat Swait() until SOUND.Playing == false |
377 | - | Msh.Scale = Msh.Scale - grow/Frames |
377 | + | EFFECT:remove() |
378 | - | else |
378 | + | end |
379 | - | Prt.Size = Prt.Size - grow/Frames |
379 | + | end |
380 | - | end |
380 | + | end)) |
381 | - | end |
381 | + | |
382 | - | elseif(FX == "ResizeAndFade")then |
382 | + | |
383 | - | if(not Settings.EndSize)then |
383 | + | function MakeForm(PART,TYPE) |
384 | - | Settings.EndSize = V3.N(0,0,0) |
384 | + | if TYPE == "Cyl" then |
385 | - | end |
385 | + | local MSH = IT("CylinderMesh",PART) |
386 | - | if(Settings.EndIsIncrement)then |
386 | + | elseif TYPE == "Ball" then |
387 | - | if(Msh)then |
387 | + | local MSH = IT("SpecialMesh",PART) |
388 | - | Msh.Scale = Msh.Scale + Settings.EndSize |
388 | + | MSH.MeshType = "Sphere" |
389 | - | else |
389 | + | elseif TYPE == "Wedge" then |
390 | - | Prt.Size = Prt.Size + Settings.EndSize |
390 | + | local MSH = IT("SpecialMesh",PART) |
391 | - | end |
391 | + | MSH.MeshType = "Wedge" |
392 | - | else |
392 | + | end |
393 | - | if(Msh)then |
393 | + | |
394 | - | Msh.Scale = Msh.Scale - grow/Frames |
394 | + | |
395 | - | else |
395 | + | Debris = game:GetService("Debris") |
396 | - | Prt.Size = Prt.Size - grow/Frames |
396 | + | |
397 | - | end |
397 | + | function CastProperRay(StartPos, EndPos, Distance, Ignore) |
398 | - | end |
398 | + | local DIRECTION = CF(StartPos,EndPos).lookVector |
399 | - | Prt.Transparency = (Frame/Frames) |
399 | + | return Raycast(StartPos, DIRECTION, Distance, Ignore) |
400 | - | end |
400 | + | |
401 | - | if(Settings.RandomizeCFrame)then |
401 | + | |
402 | - | Prt.CFrame = Prt.CFrame * CF.A(M.RRNG(-360,360),M.RRNG(-360,360),M.RRNG(-360,360)) |
402 | + | local EyeSizes={ |
403 | - | end |
403 | + | NumberSequenceKeypoint.new(0,1,0), |
404 | - | if(MoveDir and MoveSpeed)then |
404 | + | NumberSequenceKeypoint.new(1,0,0) |
405 | - | local Orientation = Prt.Orientation |
405 | + | } |
406 | - | Prt.CFrame = CF.N(Prt.Position,MoveDir)*CF.N(0,0,-MoveSpeed) |
406 | + | local EyeTrans={ |
407 | - | Prt.Orientation = Orientation |
407 | + | NumberSequenceKeypoint.new(0,0.8,0), |
408 | - | end |
408 | + | NumberSequenceKeypoint.new(1,1,0) |
409 | - | if(Prt.Transparency >= 1 or Frame >= Frames)then |
409 | + | } |
410 | - | Prt:destroy() |
410 | + | local PE=Instance.new("ParticleEmitter",nil) |
411 | - | table.remove(FXTable,i) |
411 | + | PE.LightEmission=.8 |
412 | - | else |
412 | + | PE.Color = ColorSequence.new(BRICKC("Really red").Color) |
413 | - | data.Frame = Frame |
413 | + | PE.Size=NumberSequence.new(EyeSizes) |
414 | - | end |
414 | + | PE.Transparency=NumberSequence.new(EyeTrans) |
415 | - | else |
415 | + | PE.Lifetime=NumberRange.new(0.35,1.5) |
416 | - | local start,third,fourth,endP = Settings.Start,Settings.Third,Settings.Fourth,Settings.End |
416 | + | PE.Rotation=NumberRange.new(0,360) |
417 | - | if(not Settings.End and Settings.Home)then endP = Settings.Home.CFrame end |
417 | + | PE.Rate=999 |
418 | - | if(start and endP)then |
418 | + | PE.VelocitySpread = 10000 |
419 | - | local quarter = third or start:lerp(endP, 0.25) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25)) |
419 | + | PE.Acceleration = Vector3.new(0,0,0) |
420 | - | local threequarter = fourth or start:lerp(endP, 0.75) * CF.N(M.RNG(-25,25),M.RNG(0,25),M.RNG(-25,25)) |
420 | + | PE.Drag = 5 |
421 | - | Frame = Frame + (Settings.Speed or 0.01) |
421 | + | PE.Speed = NumberRange.new(0,0,0) |
422 | - | if(Settings.Home)then |
422 | + | PE.Texture="http://www.roblox.com/asset/?id=1351966707" |
423 | - | endP = Settings.Home.CFrame |
423 | + | PE.ZOffset = -0 |
424 | - | end |
424 | + | PE.Name = "PE" |
425 | - | Prt.CFrame = Bezier(start, quarter, threequarter, endP, Frame) |
425 | + | PE.Enabled = false |
426 | - | if(Prt.Transparency >= 1 or Frame >= Frames)then |
426 | + | |
427 | - | if(Settings.RemoveOnGoal)then |
427 | + | function particles(art) |
428 | - | Prt:destroy() |
428 | + | local PARTICLES = PE:Clone() |
429 | - | end |
429 | + | PARTICLES.Parent = art |
430 | - | end |
430 | + | |
431 | - | else |
431 | + | |
432 | - | Prt:destroy() |
432 | + | function CreateDebreeRing(FLOOR,POSITION,SIZE,BLOCKSIZE,SWAIT) |
433 | - | end |
433 | + | if FLOOR ~= nil then |
434 | - | end |
434 | + | coroutine.resume(coroutine.create(function() |
435 | - | end |
435 | + | local PART = CreatePart(3, Effects, "Plastic", 0, 1, "Pearl", "DebreeCenter", VT(0,0,0)) |
436 | - | end |
436 | + | PART.CFrame = CF(POSITION) |
437 | - | swait() |
437 | + | for i = 1, 45 do |
438 | - | end |
438 | + | local RingPiece = CreatePart(3, Effects, "Plastic", 0, 0, "Pearl", "DebreePart", BLOCKSIZE) |
439 | - | end)) |
439 | + | RingPiece.Material = FLOOR.Material |
440 | RingPiece.Color = FLOOR.Color | |
441 | - | function Effect(data) |
441 | + | RingPiece.CFrame = PART.CFrame * ANGLES(RAD(0), RAD(i*8), RAD(0)) * CF(SIZE, 0, 0) * ANGLES(RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360))) |
442 | - | local FX = data.Effect or 'ResizeAndFade' |
442 | + | Debris:AddItem(RingPiece,SWAIT) |
443 | - | local Parent = data.Parent or Effects |
443 | + | end |
444 | - | local Color = data.Color or C3.N(0,0,0) |
444 | + | PART:remove() |
445 | - | local Size = data.Size or V3.N(1,1,1) |
445 | + | end)) |
446 | - | local MoveDir = data.MoveDirection or nil |
446 | + | end |
447 | - | local MeshData = data.Mesh or nil |
447 | + | |
448 | - | local SndData = data.Sound or nil |
448 | + | |
449 | - | local Frames = data.Frames or 45 |
449 | + | function CreateFlyingDebree(FLOOR,POSITION,AMOUNT,BLOCKSIZE,SWAIT,STRENGTH) |
450 | - | local Manual = data.Manual or nil |
450 | + | if FLOOR ~= nil then |
451 | - | local Material = data.Material or nil |
451 | + | for i = 1, AMOUNT do |
452 | - | local CFra = data.CFrame or Torso.CFrame |
452 | + | local DEBREE = CreatePart(3, Effects, "Neon", FLOOR.Reflectance, FLOOR.Transparency, "Peal", "Debree", BLOCKSIZE, false) |
453 | - | local Settings = data.FXSettings or {} |
453 | + | DEBREE.Material = FLOOR.Material |
454 | - | local Shape = data.Shape or Enum.PartType.Block |
454 | + | DEBREE.Color = FLOOR.Color |
455 | - | local Snd,Prt,Msh; |
455 | + | DEBREE.CFrame = POSITION * ANGLES(RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360)),RAD(MRANDOM(-360,360))) |
456 | - | coroutine.wrap(function() |
456 | + | DEBREE.Velocity = VT(MRANDOM(-STRENGTH,STRENGTH),MRANDOM(-STRENGTH,STRENGTH),MRANDOM(-STRENGTH,STRENGTH)) |
457 | - | if(Manual and typeof(Manual) == 'Instance' and Manual:IsA'BasePart')then |
457 | + | coroutine.resume(coroutine.create(function() |
458 | - | Prt = Manual |
458 | + | Swait(15) |
459 | - | else |
459 | + | DEBREE.Parent = workspace |
460 | - | Prt = Part(Parent,Color,Material,Size,CFra,true,false) |
460 | + | DEBREE.CanCollide = true |
461 | - | Prt.Shape = Shape |
461 | + | Debris:AddItem(DEBREE,SWAIT) |
462 | - | end |
462 | + | end)) |
463 | - | if(typeof(MeshData) == 'table')then |
463 | + | end |
464 | - | Msh = Mesh(Prt,MeshData.MeshType,MeshData.MeshId,MeshData.TextureId,MeshData.Scale,MeshData.Offset) |
464 | + | end |
465 | - | elseif(typeof(MeshData) == 'Instance')then |
465 | + | |
466 | - | Msh = MeshData:Clone() |
466 | + | |
467 | - | Msh.Parent = Prt |
467 | + | --//=================================\\ |
468 | - | elseif(Shape == Enum.PartType.Block)then |
468 | + | --|| WEAPON CREATION |
469 | - | Msh = Mesh(Prt,Enum.MeshType.Brick) |
469 | + | --\\=================================// |
470 | - | end |
470 | + | |
471 | - | if(typeof(SndData) == 'table' or typeof(SndData) == 'Instance')then |
471 | + | local PRT = CreatePart(3, Character, "Fabric", 0, 0, "Really black", "Hood", VT(1,1,1),false) |
472 | - | Snd = Sound(Prt,SndData.SoundId,SndData.Pitch,SndData.Volume,false,false,true) |
472 | + | PRT.Color = C3(0,0,0) |
473 | - | end |
473 | + | local HoodWeld = CreateWeldOrSnapOrMotor("Weld", Head, Head, PRT, CF(0,0.2,0), CF(0, 0, 0)) |
474 | - | if(Snd)then |
474 | + | CreateMesh("SpecialMesh", PRT, "FileMesh", "76062497", "", VT(1,1,1)*1.05, VT(0,0,0)) |
475 | - | repeat swait() until Snd.Playing and Snd.IsLoaded and Snd.TimeLength > 0 |
475 | + | local PRT = CreatePart(3, Character, "Fabric", 0, 0, "Really black", "Scarf", VT(1,1,1),false) |
476 | - | Frames = Snd.TimeLength * Frame_Speed/Snd.Pitch |
476 | + | PRT.Color = C3(0,0,0) |
477 | - | end |
477 | + | CreateWeldOrSnapOrMotor("Weld", Torso, Torso, PRT, CF(0.05,0.4,-0.1) * ANGLES(RAD(-3), RAD(0), RAD(0)), CF(0, 0, 0)) |
478 | - | Size = (Msh and Msh.Scale or Size) |
478 | + | CreateMesh("SpecialMesh", PRT, "FileMesh", "0", "", VT(1.1,1,1.1), VT(0,0,0)) |
479 | - | local grow = Size-(Settings.EndSize or (Msh and Msh.Scale or Size)/2) |
479 | + | local LASTPART = Head |
480 | - | |
480 | + | for i = 1, 20 do |
481 | - | local MoveSpeed = nil; |
481 | + | local MATH = (1-(i/25)) |
482 | - | if(MoveDir)then |
482 | + | if LASTPART == Head then |
483 | - | MoveSpeed = (CFra.p - MoveDir).magnitude/Frames |
483 | + | local Horn = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dirt brown", "Horn", VT(0.25*MATH,0.25,0.25*MATH),false) |
484 | - | end |
484 | + | CreateWeldOrSnapOrMotor("Weld", LASTPART, LASTPART, Horn, CF(0.3, 0.7, -0.35) * ANGLES(RAD(-55), RAD(15), RAD(-15)), CF(0, 0, 0)) |
485 | - | if(FX ~= 'Arc')then |
485 | + | LASTPART = Horn |
486 | - | for Frame = 1, Frames do |
486 | + | Horn.Color = C3((i*3-3)/255,0,0) |
487 | - | if(FX == "Fade")then |
487 | + | else |
488 | - | Prt.Transparency = (Frame/Frames) |
488 | + | local Horn = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dirt brown", "Horn", VT(0.25*MATH,0.25,0.25*MATH),false) |
489 | - | elseif(FX == "Resize")then |
489 | + | CreateWeldOrSnapOrMotor("Weld", LASTPART, LASTPART, Horn, CF(0, Horn.Size.Y/1.8, 0) * ANGLES(RAD(6), RAD(-0.3), RAD(0)), CF(0, 0, 0)) |
490 | - | if(not Settings.EndSize)then |
490 | + | LASTPART = Horn |
491 | - | Settings.EndSize = V3.N(0,0,0) |
491 | + | Horn.Color = C3((i*3-3)/255,0,0) |
492 | - | end |
492 | + | end |
493 | - | if(Settings.EndIsIncrement)then |
493 | + | |
494 | - | if(Msh)then |
494 | + | local LASTPART = Head |
495 | - | Msh.Scale = Msh.Scale + Settings.EndSize |
495 | + | for i = 1, 20 do |
496 | - | else |
496 | + | local MATH = (1-(i/25)) |
497 | - | Prt.Size = Prt.Size + Settings.EndSize |
497 | + | if LASTPART == Head then |
498 | - | end |
498 | + | local Horn = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dirt brown", "Horn", VT(0.25*MATH,0.25,0.25*MATH),false) |
499 | - | else |
499 | + | CreateWeldOrSnapOrMotor("Weld", LASTPART, LASTPART, Horn, CF(-0.3, 0.7, -0.35) * ANGLES(RAD(-55), RAD(-15), RAD(15)), CF(0, 0, 0)) |
500 | - | if(Msh)then |
500 | + | LASTPART = Horn |
501 | - | Msh.Scale = Msh.Scale - grow/Frames |
501 | + | Horn.Color = C3((i*3-3)/255,0,0) |
502 | - | else |
502 | + | else |
503 | - | Prt.Size = Prt.Size - grow/Frames |
503 | + | local Horn = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dirt brown", "Horn", VT(0.25*MATH,0.25,0.25*MATH),false) |
504 | - | end |
504 | + | CreateWeldOrSnapOrMotor("Weld", LASTPART, LASTPART, Horn, CF(0, Horn.Size.Y/1.8, 0) * ANGLES(RAD(6), RAD(0.3), RAD(0)), CF(0, 0, 0)) |
505 | - | end |
505 | + | LASTPART = Horn |
506 | - | elseif(FX == "ResizeAndFade")then |
506 | + | Horn.Color = C3((i*3-3)/255,0,0) |
507 | - | if(not Settings.EndSize)then |
507 | + | end |
508 | - | Settings.EndSize = V3.N(0,0,0) |
508 | + |