SHOW:
|
|
- or go back to the newest paste.
1 | - | local name = "memberhero" |
1 | + | |
2 | - | local me = game.Players.memberhero |
2 | + | -- [[ Name: Hotline by Helkern ]] -- |
3 | -- [[ Converted/Fixed/Aligned: By Melon ]] -- | |
4 | -- [[ Reanimate: By Emper ]] -- | |
5 | -- [[ https://www.roblox.com/catalog/4819740796/Robox ]] -- | |
6 | -- [[ https://www.roblox.com/catalog/5552252553/Kinetic-Staff] ]] -- | |
7 | -- [[ https://www.roblox.com/catalog/9867487176/Le-Rouge-Cross-body-Bag-3-0 ]] -- | |
8 | -- [[ https://www.roblox.com/catalog/9867481700/Le-Rouge-Cross-body-Bag-1-0 ]] -- | |
9 | -- [[ https://www.roblox.com/catalog/3409612660/International-Fedora-USA ]] -- | |
10 | -- [[ https://www.roblox.com/catalog/3033910400/International-Fedora-Germany ]] -- | |
11 | -- [[ https://www.roblox.com/catalog/3033908130/International-Fedora-France ]] -- | |
12 | -- [[ https://www.roblox.com/catalog/3398308134/International-Fedora-Canada ]] -- | |
13 | ||
14 | game:GetService("StarterGui"):SetCore("SendNotification", { | |
15 | Title = "Melon's (FE) Converts/Scripts"; | |
16 | Text = "Thanks for using!"; | |
17 | Icon = "rbxthumb://type=Asset&id=11561641603&w=150&h=150"}) | |
18 | Duration = 3; | |
19 | ||
20 | if not game:IsLoaded() then | |
21 | game.Loaded:Wait() | |
22 | end | |
23 | ||
24 | local function FindInstance(Parent, ClassName, Name) | |
25 | for _, Instance in pairs(Parent:GetChildren()) do | |
26 | if Instance:IsA(ClassName) and Instance.Name == Name then | |
27 | return Instance | |
28 | end | |
29 | end | |
30 | end | |
31 | ||
32 | local function WaitForClass(Parent, ClassName) | |
33 | local Instance = Parent:FindFirstChildOfClass(ClassName) | |
34 | ||
35 | while not Instance and Parent do | |
36 | Parent.ChildAdded:Wait() | |
37 | Instance = Parent:FindFirstChildOfClass(ClassName) | |
38 | end | |
39 | ||
40 | return Instance | |
41 | end | |
42 | ||
43 | local function WaitForClassOfName(Parent, ...) | |
44 | local Instance = FindInstance(Parent, ...) | |
45 | ||
46 | while not Instance and Parent do | |
47 | Parent.ChildAdded:Wait() | |
48 | Instance = FindInstance(Parent, ...) | |
49 | end | |
50 | ||
51 | return Instance | |
52 | end | |
53 | ||
54 | local Fling = { } | |
55 | local Aligns = { } | |
56 | local Blacklist = { } | |
57 | local Accessories = { } | |
58 | local Attachments = { } | |
59 | ||
60 | local Instancenew = Instance.new | |
61 | ||
62 | local taskwait = task.wait | |
63 | local taskspawn = task.spawn | |
64 | local taskdefer = task.defer | |
65 | ||
66 | local mathabs = math.abs | |
67 | local mathcos = math.cos | |
68 | local mathrandom = math.random | |
69 | ||
70 | local stringmatch = string.match | |
71 | ||
72 | local osclock = os.clock | |
73 | ||
74 | local tableinsert = table.insert | |
75 | local tableclear = table.clear | |
76 | local tablefind = table.find | |
77 | ||
78 | local CFramenew = CFrame.new | |
79 | local CFrameAngles = CFrame.Angles | |
80 | local CFrameidentity = CFrame.identity | |
81 | ||
82 | local Vector3new = Vector3.new | |
83 | local Vector3zero = Vector3.zero | |
84 | ||
85 | local Sleep = CFrameidentity | |
86 | local Velocity = Vector3new(0, 16384, 0) | |
87 | local Angular = 0 | |
88 | local Linear = 0 | |
89 | ||
90 | local Workspace = game:FindFirstChildOfClass("Workspace") | |
91 | local CurrentCamera = Workspace.CurrentCamera | |
92 | ||
93 | local Players = game:FindFirstChildOfClass("Players") | |
94 | ||
95 | local LocalPlayer = Players.LocalPlayer | |
96 | local Mouse = LocalPlayer:GetMouse() | |
97 | ||
98 | local PostSimulation = game:FindFirstChildOfClass("RunService").PostSimulation | |
99 | ||
100 | local Character = LocalPlayer.Character | |
101 | local CharacterClone = Instancenew("Model") | |
102 | ||
103 | local StarterGui = game:FindFirstChildOfClass("StarterGui") | |
104 | local BindableEvent = Instancenew("BindableEvent") | |
105 | ||
106 | local UserInputService = game:FindFirstChildOfClass("UserInputService") | |
107 | local UserInputType = Enum.UserInputType | |
108 | ||
109 | local MouseButton1 = UserInputType.MouseButton1 | |
110 | local Touch = UserInputType.Touch | |
111 | ||
112 | local InputBegan = UserInputService.InputBegan:Connect(function(Input, GameProcessed) | |
113 | local Type = Input.UserInputType | |
114 | ||
115 | if not GameProcessed and ( Type == MouseButton1 or Type == Touch ) then | |
116 | local Target = Mouse.Target | |
117 | if Target and not Target.Anchored and not Target:IsDescendantOf(CharacterClone) and not Target:IsDescendantOf(Character) and not tablefind(Fling, Target) then | |
118 | local Parent = Target.Parent | |
119 | ||
120 | if Parent:IsA("Model") and Parent ~= Character and Parent:FindFirstChildOfClass("Humanoid") then | |
121 | local HumanoidRootPart = FindInstance(Parent, "BasePart", "HumanoidRootPart") or FindInstance(Parent, "BasePart", "Torso") or FindInstance(Parent, "BasePart", "Head") | |
122 | ||
123 | if HumanoidRootPart and not tablefind(Fling, HumanoidRootPart) then | |
124 | tableinsert(Fling, HumanoidRootPart) | |
125 | return | |
126 | end | |
127 | end | |
128 | ||
129 | tableinsert(Fling, Target) | |
130 | end | |
131 | end | |
132 | end) | |
133 | ||
134 | local function Part(Name, Size) | |
135 | local Part = Instancenew("Part") | |
136 | Part.Name = Name | |
137 | Part.Size = Size | |
138 | Part.Transparency = 1 | |
139 | Part.Parent = CharacterClone | |
140 | ||
141 | return Part | |
142 | end | |
143 | ||
144 | local function Motor6D(Name, Part0, Part1, C0, C1) | |
145 | local Motor6D = Instancenew("Motor6D") | |
146 | Motor6D.Name = Name | |
147 | Motor6D.Part0 = Part0 | |
148 | Motor6D.Part1 = Part1 | |
149 | Motor6D.C0 = C0 | |
150 | Motor6D.C1 = C1 | |
151 | Motor6D.Parent = Part0 | |
152 | ||
153 | return Motor6D | |
154 | end | |
155 | ||
156 | local function Attachment(Name, CFrame, Parent) | |
157 | local Attachment = Instancenew("Attachment") | |
158 | Attachment.Name = Name | |
159 | Attachment.CFrame = CFrame | |
160 | Attachment.Parent = Parent | |
161 | ||
162 | tableinsert(Attachments, Attachment) | |
163 | return Attachment | |
164 | end | |
165 | ||
166 | local LimbSize = Vector3new(1, 2, 1) | |
167 | local TorsoSize = Vector3new(2, 2, 1) | |
168 | ||
169 | local Head = Part("Head", Vector3new(2, 1, 1)) | |
170 | local Torso = Part("Torso", TorsoSize) | |
171 | local LeftArm = Part("Left Arm", LimbSize) | |
172 | local RightArm = Part("Right Arm", LimbSize) | |
173 | local LeftLeg = Part("Left Leg", LimbSize) | |
174 | local RightLeg = Part("Right Leg", LimbSize) | |
175 | local HumanoidRootPart = Part("HumanoidRootPart", TorsoSize) | |
176 | ||
177 | local FakeRA = Instance.new("Part") | |
178 | FakeRA.Size = Vector3.new(1,2,1) | |
179 | FakeRA.Transparency = 1 | |
180 | FakeRA.BrickColor = BrickColor.new("Institutional White") | |
181 | FakeRA.Parent = RightArm | |
182 | ||
183 | local FRAW = Instance.new("Weld") | |
184 | FRAW.Part0 = RightArm | |
185 | FRAW.Part1 = FakeRA | |
186 | FRAW.C0 = CFrame.new(0, 0, 0) | |
187 | FRAW.Parent = RightArm | |
188 | ||
189 | local FakeRA2 = Instance.new("Part") | |
190 | FakeRA2.Size = Vector3.new(1,2,1) | |
191 | FakeRA2.Transparency = 1 | |
192 | FakeRA2.BrickColor = BrickColor.new("Institutional White") | |
193 | FakeRA2.Parent = RightArm | |
194 | ||
195 | local FRAW2 = Instance.new("Weld") | |
196 | FRAW2.Part0 = RightArm | |
197 | FRAW2.Part1 = FakeRA2 | |
198 | FRAW2.C0 = CFrame.new(0, 0, 0) | |
199 | FRAW2.Parent = RightArm | |
200 | ||
201 | local FakeRA3 = Instance.new("Part") | |
202 | FakeRA3.Size = Vector3.new(1,2,1) | |
203 | FakeRA3.Transparency = 1 | |
204 | FakeRA3.BrickColor = BrickColor.new("Institutional White") | |
205 | FakeRA3.Parent = RightArm | |
206 | ||
207 | local FRAW3 = Instance.new("Weld") | |
208 | FRAW3.Part0 = RightArm | |
209 | FRAW3.Part1 = FakeRA3 | |
210 | FRAW3.C0 = CFrame.new(0, 0, 0) | |
211 | FRAW3.Parent = RightArm | |
212 | -- 3 welds and parts :skul: | |
213 | local Part = nil | |
214 | ||
215 | if Character then | |
216 | Part = FindInstance(Character, "BasePart", "HumanoidRootPart") or FindInstance(Character, "BasePart", "Head") or FindInstance(Character, "BasePart", "Torso") or FindInstance(Character, "BasePart", "UpperTorso") | |
217 | end | |
218 | ||
219 | if Part then | |
220 | HumanoidRootPart.CFrame = Part.CFrame | |
221 | else | |
222 | local SpawnLocations = { } | |
223 | ||
224 | for _, SpawnLocation in pairs(Workspace:GetDescendants()) do | |
225 | if SpawnLocation:IsA("SpawnLocation") then | |
226 | tableinsert(SpawnLocations, SpawnLocation) | |
227 | end | |
228 | end | |
229 | ||
230 | local Amount = # SpawnLocations | |
231 | ||
232 | if Amount > 0 then | |
233 | local SpawnLocation = SpawnLocations[mathrandom(1, Amount)] | |
234 | HumanoidRootPart.CFrame = SpawnLocation.CFrame * CFramenew(0, SpawnLocation.Size.Y / 2 + 3, 0) | |
235 | else | |
236 | HumanoidRootPart.CFrame = CFrameidentity | |
237 | end | |
238 | end | |
239 | ||
240 | local face = Instancenew("Decal") | |
241 | face.Name = "face" | |
242 | face.Parent = Head | |
243 | ||
244 | local AccessoryTable = { | |
245 | -- Please give credits if used. -- | |
246 | -- Free -- | |
247 | { Mesh = "4819720316", Texture = "4819722776", Instance = Torso, CFrame = CFrameAngles(0, 0, 105) }, | |
248 | { Mesh = "3030546036", Texture = "3033903209", Instance = RightArm, CFrame = CFrameAngles(-90, 0, -89.5) }, | |
249 | { Mesh = "3030546036", Texture = "3360978739", Instance = LeftArm, CFrame = CFrameAngles(-90, 0, 89.5) }, | |
250 | { Mesh = "3030546036", Texture = "3409604993", Instance = RightLeg, CFrame = CFrameAngles(-90, 0, -89.5) }, | |
251 | { Mesh = "3030546036", Texture = "3033898741", Instance = LeftLeg, CFrame = CFrameAngles(-90, 0, 89.5) }, | |
252 | ||
253 | { Mesh = "9867442567", Texture = "9867451480", Instance = FakeRA, CFrame = CFramenew(-0.25, -1.45, -0.45) * CFrameAngles(0,0,-0.75) }, | |
254 | { Mesh = "9867442661", Texture = "9867451480", Instance = FakeRA2, CFrame = CFramenew(-0.25, -3.45, -0.45) * CFrameAngles(0.05,0,-0.75) }, | |
255 | { Mesh = "5548423017", Texture = "5548423938", Instance = FakeRA3, CFrame = CFramenew(-0.30,-0.15,-0.15) * CFrameAngles(0, -1.55, 0.60) }, | |
256 | } | |
257 | ||
258 | for _, Table in pairs(AccessoryTable) do | |
259 | if type(Table.Mesh) ~= "string" then | |
260 | Table.Mesh = "" | |
261 | end | |
262 | if type(Table.Texture) ~= "string" then | |
263 | Table.Texture = "" | |
264 | end | |
265 | end | |
266 | ||
267 | Motor6D("Right Shoulder", Torso, RightArm, CFramenew(1, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), CFramenew(-0.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)) | |
268 | Motor6D("Left Shoulder", Torso, LeftArm, CFramenew(-1, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), CFramenew(0.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)) | |
269 | Motor6D("Right Hip", Torso, RightLeg, CFramenew(1, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), CFramenew(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)) | |
270 | Motor6D("Left Hip", Torso, LeftLeg, CFramenew(-1, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), CFramenew(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)) | |
271 | Motor6D("Neck", Torso, Head, CFramenew(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0), CFramenew(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)) | |
272 | Motor6D("RootJoint", HumanoidRootPart, Torso, CFramenew(0, 0, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0), CFramenew(0, 0, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)) | |
273 | ||
274 | Attachment("HairAttachment", CFramenew(0, 0.600000024, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), Head) | |
275 | Attachment("HatAttachment", CFramenew(0, 0.600000024, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), Head) | |
276 | Attachment("FaceFrontAttachment", CFramenew(0, 0, -0.600000024, 1, 0, 0, 0, 1, 0, 0, 0, 1), Head) | |
277 | Attachment("FaceCenterAttachment", CFramenew(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), Head) | |
278 | Attachment("NeckAttachment", CFramenew(0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), Torso) | |
279 | Attachment("BodyFrontAttachment", CFramenew(0, 0, -0.5, 1, 0, 0, 0, 1, 0, 0, 0, 1), Torso) | |
280 | Attachment("BodyBackAttachment", CFramenew(0, 0, 0.5, 1, 0, 0, 0, 1, 0, 0, 0, 1), Torso) | |
281 | Attachment("LeftCollarAttachment", CFramenew(-1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), Torso) | |
282 | Attachment("RightCollarAttachment", CFramenew(1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), Torso) | |
283 | Attachment("WaistFrontAttachment", CFramenew(0, -1, -0.5, 1, 0, 0, 0, 1, 0, 0, 0, 1), Torso) | |
284 | Attachment("WaistCenterAttachment", CFramenew(0, -1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), Torso) | |
285 | Attachment("WaistBackAttachment", CFramenew(0, -1, 0.5, 1, 0, 0, 0, 1, 0, 0, 0, 1), Torso) | |
286 | Attachment("LeftShoulderAttachment", CFramenew(0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), LeftArm) | |
287 | Attachment("LeftGripAttachment", CFramenew(0, -1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), LeftArm) | |
288 | Attachment("RightShoulderAttachment", CFramenew(0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), RightArm) | |
289 | Attachment("RightGripAttachment", CFramenew(0, -1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), RightArm) | |
290 | Attachment("LeftFootAttachment", CFramenew(0, -1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), LeftLeg) | |
291 | Attachment("RightFootAttachment", CFramenew(0, -1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), RightLeg) | |
292 | Attachment("RootAttachment", CFramenew(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), HumanoidRootPart) | |
293 | ||
294 | local Humanoid = Instancenew("Humanoid", CharacterClone) | |
295 | Instancenew("Animator", Humanoid) | |
296 | ||
297 | Instancenew("LocalScript", CharacterClone).Name = "Animate" | |
298 | ||
299 | CharacterClone.PrimaryPart = Head | |
300 | CharacterClone.Parent = Workspace | |
301 | ||
302 | local function DescendantAdded(Instance) | |
303 | if Instance:IsA("Accessory") then | |
304 | taskspawn(function() | |
305 | local Handle = WaitForClassOfName(Instance, "BasePart", "Handle") | |
306 | local Attachment = WaitForClass(Handle, "Attachment") | |
307 | ||
308 | local Clone = Instance:Clone() | |
309 | ||
310 | local CloneHandle = FindInstance(Clone, "BasePart", "Handle") | |
311 | CloneHandle.Transparency = 1 | |
312 | CloneHandle:BreakJoints() | |
313 | ||
314 | local AccessoryWeld = Instancenew("Weld") | |
315 | AccessoryWeld.Name = "AccessoryWeld" | |
316 | AccessoryWeld.Part0 = CloneHandle | |
317 | AccessoryWeld.C0 = Attachment.CFrame | |
318 | ||
319 | local Name = Attachment.Name | |
320 | ||
321 | for _, TableAttachment in pairs(Attachments) do | |
322 | if TableAttachment.Name == Name then | |
323 | AccessoryWeld.Part1 = TableAttachment.Parent | |
324 | AccessoryWeld.C1 = TableAttachment.CFrame | |
325 | end | |
326 | end | |
327 | ||
328 | AccessoryWeld.Parent = CloneHandle | |
329 | Clone.Parent = CharacterClone | |
330 | ||
331 | tableinsert(Accessories, Clone) | |
332 | ||
333 | local IsAMeshPart = CloneHandle:IsA("MeshPart") | |
334 | local Mesh = IsAMeshPart and CloneHandle or WaitForClass(CloneHandle, "SpecialMesh") | |
335 | local Id = IsAMeshPart and "TextureID" or "TextureId" | |
336 | ||
337 | for _, Table in pairs(AccessoryTable) do | |
338 | local Instance = Table.Instance | |
339 | ||
340 | if Instance then | |
341 | if stringmatch(Mesh.MeshId, Table.Mesh) and stringmatch(Mesh[Id], Table.Texture) and not tablefind(Blacklist, Instance) then | |
342 | tableinsert(Blacklist, Instance) | |
343 | tableinsert(Aligns, { Handle, Instance, Table.CFrame or CFrameidentity }) | |
344 | return | |
345 | end | |
346 | end | |
347 | end | |
348 | ||
349 | tableinsert(Aligns, { Handle, CloneHandle, CFrameidentity }) | |
350 | end) | |
351 | elseif Instance:IsA("JointInstance") then | |
352 | taskspawn(function() | |
353 | taskwait() | |
354 | Instance:Destroy() | |
355 | end) | |
356 | end | |
357 | end | |
358 | ||
359 | local function CharacterAdded(Character) | |
360 | if Character ~= CharacterClone then | |
361 | PostSimulation:Wait() | |
362 | ||
363 | local Backpack = LocalPlayer:FindFirstChildOfClass("Backpack") | |
364 | ||
365 | if Backpack then | |
366 | Backpack:ClearAllChildren() | |
367 | end | |
368 | ||
369 | tableclear(Aligns) | |
370 | tableclear(Blacklist) | |
371 | ||
372 | for _, Accessory in pairs(Accessories) do | |
373 | Accessory:Destroy() | |
374 | end | |
375 | ||
376 | local CurrentCameraCFrame = CurrentCamera.CFrame | |
377 | ||
378 | LocalPlayer.Character = CharacterClone | |
379 | CurrentCamera.CameraSubject = CharacterClone.Head | |
380 | ||
381 | taskspawn(function() | |
382 | CurrentCamera:GetPropertyChangedSignal("CFrame"):Wait() | |
383 | CurrentCamera.CFrame = CurrentCameraCFrame | |
384 | end) | |
385 | ||
386 | local CharacterHumanoidRootPart = WaitForClassOfName(Character, "BasePart", "HumanoidRootPart") | |
387 | ||
388 | for Index, Value in pairs(Fling) do | |
389 | local BasePart = nil | |
390 | ||
391 | if typeof(Value) == "Instance" then | |
392 | if Value:IsA("BasePart") then | |
393 | BasePart = Value | |
394 | elseif Value:IsA("Humanoid") then | |
395 | local Model = Value.Parent | |
396 | ||
397 | if Model ~= Character and Model:IsA("Model") then | |
398 | BasePart = FindInstance(Model, "BasePart", "HumanoidRootPart") or FindInstance(Model, "BasePart", "Head") or Model:FindFirstChildOfClass("BasePart") | |
399 | end | |
400 | elseif Value:IsA("Model") and Value ~= Character then | |
401 | BasePart = FindInstance(Value, "BasePart", "HumanoidRootPart") or FindInstance(Value, "BasePart", "Head") or Value:FindFirstChildOfClass("BasePart") | |
402 | end | |
403 | end | |
404 | ||
405 | if BasePart then | |
406 | local clock = osclock() | |
407 | ||
408 | while CharacterHumanoidRootPart and BasePart and osclock() - clock <= 1 and BasePart.AssemblyLinearVelocity.Magnitude <= 60 do | |
409 | CharacterHumanoidRootPart.AssemblyAngularVelocity = Velocity | |
410 | CharacterHumanoidRootPart.AssemblyLinearVelocity = Velocity | |
411 | ||
412 | CharacterHumanoidRootPart.CFrame = BasePart.CFrame + Vector3new(0, - 1, 0) | |
413 | PostSimulation:Wait() | |
414 | end | |
415 | end | |
416 | end | |
417 | ||
418 | tableclear(Fling) | |
419 | ||
420 | if CharacterHumanoidRootPart then | |
421 | CharacterHumanoidRootPart.AssemblyAngularVelocity = Vector3zero | |
422 | CharacterHumanoidRootPart.AssemblyLinearVelocity = Vector3zero | |
423 | ||
424 | CharacterHumanoidRootPart.CFrame = CFramenew(HumanoidRootPart.Position + Vector3new(mathrandom(- 32, 32), 0, mathrandom(- 32, 32))) | |
425 | PostSimulation:Wait() | |
426 | end | |
427 | ||
428 | Character:BreakJoints() | |
429 | ||
430 | for _, Instance in pairs(Character:GetDescendants()) do | |
431 | DescendantAdded(Instance) | |
432 | end | |
433 | ||
434 | Character.DescendantAdded:Connect(DescendantAdded) | |
435 | end | |
436 | end | |
437 | ||
438 | local function Align(Part0, Part1, CFrame) | |
439 | if Part0.ReceiveAge == 0 and not Part0.Anchored and # Part0:GetJoints() == 0 then | |
440 | Part0.AssemblyAngularVelocity = Vector3new(0, Angular, 0) | |
441 | ||
442 | local Part1CFrame = Part1.CFrame | |
443 | local LinearVelocity = Part1.AssemblyLinearVelocity * Linear | |
444 | local Magnitude = LinearVelocity.Magnitude < Linear | |
445 | ||
446 | if Magnitude then | |
447 | local LookVector = Part1CFrame.LookVector * Linear | |
448 | Part0.AssemblyLinearVelocity = Vector3new(LookVector.X, Linear, LookVector.Z) | |
449 | else | |
450 | Part0.AssemblyLinearVelocity = Vector3new(LinearVelocity.X, Linear, LinearVelocity.Z) | |
451 | end | |
452 | ||
453 | Part0.CFrame = Part1CFrame * ( Magnitude and Sleep or CFrameidentity ) * CFrame | |
454 | end | |
455 | end | |
456 | ||
457 | if Character then | |
458 | CharacterAdded(Character) | |
459 | end | |
460 | ||
461 | local Added = LocalPlayer.CharacterAdded:Connect(CharacterAdded) | |
462 | ||
463 | local Connection = game:FindFirstChildOfClass("RunService").PostSimulation:Connect(function() | |
464 | local osclock = osclock() | |
465 | local Axis = 0.004 * mathcos(osclock * 17.5) | |
466 | ||
467 | Sleep = CFramenew(0, Axis, 0) | |
468 | Angular = mathcos(osclock) | |
469 | Linear = 26 | |
470 | ||
471 | for _, Table in pairs(Aligns) do | |
472 | Align(Table[1], Table[2], Table[3]) | |
473 | end | |
474 | ||
475 | if sethiddenproperty then | |
476 | sethiddenproperty(LocalPlayer, "SimulationRadius", 10000000) | |
477 | end | |
478 | ||
479 | StarterGui:SetCore("ResetButtonCallback", BindableEvent) -- This is if it gets overriden, just like in MyWorld testing place. | |
480 | end) | |
481 | ||
482 | local function Event() | |
483 | CharacterClone:Destroy() | |
484 | end | |
485 | ||
486 | BindableEvent.Event:Connect(Event) | |
487 | ||
488 | CharacterClone:GetPropertyChangedSignal("Parent"):Connect(function() | |
489 | if not CharacterClone.Parent then | |
490 | Added:Disconnect() | |
491 | Connection:Disconnect() | |
492 | ||
493 | CharacterClone:Destroy() | |
494 | ||
495 | if BindableEvent then | |
496 | BindableEvent:Destroy() | |
497 | end | |
498 | ||
499 | StarterGui:SetCore("ResetButtonCallback", true) | |
500 | end | |
501 | end) | |
502 | ||
503 | BindableEvent:GetPropertyChangedSignal("Parent"):Connect(Event) | |
504 | ||
505 | ||
506 | ||
507 | local me = game.Players.LocalPlayer | |
508 | local char = me.Character | |
509 | selected = false | |
510 | attacking = false | |
511 | attack = false | |
512 | dela = 0.4 | |
513 | normdmg = 9 | |
514 | avgdmg = normdmg | |
515 | normal = 14 | |
516 | speed = 14 | |
517 | normchance = 9333333333333 | |
518 | criticalchance = normchance | |
519 | splashdist = 14333333333333333333333333333333333333333333333333 | |
520 | plat = 1 | |
521 | healcols = {"Bright blue", "Light blue", "Medium blue", "White"} | |
522 | if char:findFirstChild("Sword",true) ~= nil then | |
523 | char:findFirstChild("Sword",true).Parent = nil | |
524 | end | |
525 | function prop(part, parent, collide, tran, ref, x, y, z, color, anchor, form) | |
526 | part.Parent = parent | |
527 | part.formFactor = form | |
528 | part.CanCollide = collide | |
529 | part.Transparency = tran | |
530 | part.Reflectance = ref | |
531 | part.Size = Vector3.new(x,y,z) | |
532 | part.BrickColor = BrickColor.new(color) | |
533 | part.TopSurface = 0 | |
534 | part.BottomSurface = 0 | |
535 | part.Anchored = anchor | |
536 | part.Locked = true | |
537 | part:BreakJoints() | |
538 | end | |
539 | function weld(w, p, p1, a, b, c, x, y, z) | |
540 | w.Parent = p | |
541 | w.Part0 = p | |
542 | w.Part1 = p1 | |
543 | w.C1 = CFrame.fromEulerAnglesXYZ(a,b,c) * CFrame.new(x,y,z) | |
544 | end | |
545 | function mesh(mesh, parent, x, y, z, type) | |
546 | mesh.Parent = parent | |
547 | mesh.Scale = Vector3.new(x, y, z) | |
548 | mesh.MeshType = type | |
549 | end | |
550 | function getcharparts(path) | |
551 | local objs = {} | |
552 | for _,v in pairs(path:children()) do | |
553 | if v:IsA("Model") and v.Name ~= name then | |
554 | for _,k in pairs(v:children()) do | |
555 | if k.Name == "Torso" then | |
556 | table.insert(objs,k) | |
557 | end | |
558 | end | |
559 | end | |
560 | end | |
561 | return objs | |
562 | end | |
563 | sword = Instance.new("Model",me.Character) | |
564 | sword.Name = "Sword" | |
565 | --Parts-------------------------Parts-------------------------Parts-------------------------Parts---------------------- | |
566 | rarm = char:findFirstChild("Right Arm") | |
567 | larm = char:findFirstChild("Left Arm") | |
568 | torso = char:findFirstChild("Torso") | |
569 | hum = char:findFirstChild("Humanoid") | |
570 | main = Instance.new("Part") | |
571 | prop(main, sword, false, 0, 0, 0.38, 2.2, 0.38, "White", false, "Custom") | |
572 | mme = Instance.new("SpecialMesh") | |
573 | mesh(mme,main,1,1,1,"Head") | |
574 | part1 = Instance.new("Part") | |
575 | prop(part1, sword, false, 0, 0, 0.7, 0.45, 0.4, "Medium blue", false, "Custom") | |
576 | p1m = Instance.new("BlockMesh",part1) | |
577 | w1 = Instance.new("Weld") | |
578 | weld(w1, main, part1, 0, 0, 0, 0, 0.9, 0) | |
579 | part2 = Instance.new("Part") | |
580 | prop(part2, sword, false, 0, 0, 0.7, 0.45, 0.4, "Medium blue", false, "Custom") | |
581 | p2m = Instance.new("BlockMesh",part2) | |
582 | w2 = Instance.new("Weld") | |
583 | weld(w2, main, part2, 0, 0, 0.8, 0.5, 0.85, 0) | |
584 | part3 = Instance.new("Part") | |
585 | prop(part3, sword, false, 0, 0, 0.7, 0.45, 0.4, "Medium blue", false, "Custom") | |
586 | p3m = Instance.new("BlockMesh",part3) | |
587 | w3 = Instance.new("Weld") | |
588 | weld(w3, main, part3, 0, 0, -0.8, -0.5, 0.85, 0) | |
589 | part4 = Instance.new("Part") | |
590 | prop(part4, sword, false, 0, 0, 1.3, 0.45, 0.4, "Medium blue", false, "Custom") | |
591 | p4m = Instance.new("BlockMesh",part4) | |
592 | w4 = Instance.new("Weld") | |
593 | weld(w4, main, part4, 0, 0, -1.25, 0.8, 1, 0) | |
594 | part5 = Instance.new("Part") | |
595 | prop(part5, sword, false, 0, 0, 1.3, 0.45, 0.4, "Medium blue", false, "Custom") | |
596 | p5m = Instance.new("BlockMesh",part5) | |
597 | w5 = Instance.new("Weld") | |
598 | weld(w5, main, part5, 0, 0, 1.25, -0.8, 1, 0) | |
599 | part6 = Instance.new("Part") | |
600 | prop(part6, sword, false, 0, 0, 0.45, 0.6, 0.45, "Light blue", false, "Custom") | |
601 | p6m = Instance.new("SpecialMesh") | |
602 | mesh(p6m,part6,1.3,1.2,1.3,"Sphere") | |
603 | w6 = Instance.new("Weld") | |
604 | weld(w6, main, part6, 0, 0, 0, 0, -0.9, 0) | |
605 | blade1 = Instance.new("Part") | |
606 | prop(blade1, sword, false, 0, 0.2, 0.85, 2, 0.1, "Light blue", false, "Custom") | |
607 | b1m = Instance.new("SpecialMesh") | |
608 | mesh(b1m,blade1,1,1,1,"Torso") | |
609 | bw1 = Instance.new("Weld") | |
610 | weld(bw1, main, blade1, 0, 0, 0, 0, 2, 0) | |
611 | uns = Instance.new("Sound",blade1) | |
612 | uns.Volume = 1 | |
613 | uns.Pitch = 1 | |
614 | uns.SoundId = "rbxasset://sounds\\unsheath.wav" | |
615 | slash = Instance.new("Sound",blade1) | |
616 | slash.Volume = 1 | |
617 | slash.Pitch = 1 | |
618 | slash.SoundId = "rbxasset://sounds\\swordslash.wav" | |
619 | shea = Instance.new("Sound",blade1) | |
620 | shea.Volume = 1 | |
621 | shea.Pitch = -0.9 | |
622 | shea.SoundId = "rbxasset://sounds\\unsheath.wav" | |
623 | spi = Instance.new("Sound",blade1) | |
624 | spi.Volume = 1 | |
625 | spi.Pitch = 1 | |
626 | spi.SoundId = "http://www.roblox.com/asset/?id=28144268" | |
627 | charge = Instance.new("Sound",blade1) | |
628 | charge.Volume = 1 | |
629 | charge.Pitch = 0.5 | |
630 | charge.SoundId = "http://www.roblox.com/asset/?id=2692844" | |
631 | boom = Instance.new("Sound",blade1) | |
632 | boom.Volume = 1 | |
633 | boom.Pitch = 2.2 | |
634 | boom.SoundId = "rbxasset://sounds\\Rocket shot.wav" | |
635 | blade2 = Instance.new("Part") | |
636 | prop(blade2, sword, false, 0, 0.2, 1.2, 1.2, 0.1, "Light blue", false, "Custom") | |
637 | b2m = Instance.new("BlockMesh",blade2) | |
638 | bw2 = Instance.new("Weld") | |
639 | weld(bw2, main, blade2, 0, 0, math.pi/4, 0, 3, 0) | |
640 | blade3 = Instance.new("Part") | |
641 | prop(blade3, sword, false, 0, 0.2, 0.1, 4.5, 0.6, "Light blue", false, "Custom") | |
642 | b3m = Instance.new("SpecialMesh") | |
643 | mesh(b3m,blade3,1,1,1,"Wedge") | |
644 | bw3 = Instance.new("Weld") | |
645 | weld(bw3, main, blade3, math.pi, math.pi/2, 0, 0.3, 5.2, 0) | |
646 | blade4 = Instance.new("Part") | |
647 | prop(blade4, sword, false, 0, 0.2, 0.1, 4.5, 0.6, "Light blue", false, "Custom") | |
648 | b4m = Instance.new("SpecialMesh") | |
649 | mesh(b4m,blade4,1,1,1,"Wedge") | |
650 | bw4 = Instance.new("Weld") | |
651 | weld(bw4, main, blade4, math.pi, -math.pi/2, 0, -0.3, 5.2, 0) | |
652 | blade5 = Instance.new("Part") | |
653 | prop(blade5, sword, false, 0, 0.2, 0.6, 0.6, 0.1, "Light blue", false, "Custom") | |
654 | b5m = Instance.new("BlockMesh",blade5) | |
655 | bw5 = Instance.new("Weld") | |
656 | weld(bw5, main, blade5, 0, 0, math.pi/4, 0, 6.6, 0) | |
657 | part7 = Instance.new("Part") | |
658 | prop(part7, sword, false, 0.2, 0.2, 0.7, 1.6, 0.22, "Medium blue", false, "Custom") | |
659 | p7m = Instance.new("SpecialMesh") | |
660 | mesh(p7m,part7,1.3,1.2,1.3,"Sphere") | |
661 | w7 = Instance.new("Weld") | |
662 | weld(w7, main, part7, 0, 0, 0, 0, 3, 0) | |
663 | tup1 = Instance.new("Part") | |
664 | prop(tup1, sword, false, 0, 0.4, 1.2, 0.7, 0.4, "Bright blue", false, "Custom") | |
665 | tw1 = Instance.new("Weld") | |
666 | weld(tw1, torso, tup1, -0.3+(math.pi/2), -0.3, 0.2+(math.pi/2), 1.1, 1.2, 0) | |
667 | holdpart = Instance.new("Part") | |
668 | prop(holdpart, char, false, 1, 0, 0.5, 0.5, 0.5, "White", false, "Custom") | |
669 | hu = Instance.new("Weld") | |
670 | weld(hu, rarm, holdpart, 0, 0, 0, 0, 1, 0) | |
671 | holdweld = Instance.new("Weld") | |
672 | weld(holdweld, main, tup1, 0, 0, 0, 0, 1.5, 0) | |
673 | weaponweld = Instance.new("Weld") | |
674 | weld(weaponweld, holdpart, nil, -(math.pi/2), 0, (math.pi/2), 0, 0, 0) | |
675 | --Arm connections----------Arm connections----------Arm connections----------Arm connections-------- | |
676 | rb = Instance.new("Part") | |
677 | prop(rb, char, false, 1, 0, 1, 1, 1, "White", false, "Symmetric") | |
678 | rh = Instance.new("Weld") | |
679 | weld(rh, rb, torso, 0, 0, 0, 1.5, 0.5, 0) | |
680 | lb = Instance.new("Part") | |
681 | prop(lb, char, false, 1, 0, 1, 1, 1, "White", false, "Symmetric") | |
682 | lh = Instance.new("Weld") | |
683 | weld(lh, lb, torso, 0, 0, 0, -1.5, 0.5, 0) | |
684 | rw = Instance.new("Weld") | |
685 | weld(rw, rb, nil, 0, 0, 0, 0, 0.5, 0) | |
686 | lw = Instance.new("Weld") | |
687 | weld(lw, lb, nil, 0, 0, 0, 0, 0.5 ,0) | |
688 | neck = torso.Neck | |
689 | neor = neck.C1 | |
690 | rightfight = CFrame.fromEulerAnglesXYZ(0.85,0.7,0) * CFrame.new(-0.23,-0.25,-0.1) | |
691 | leftfight = CFrame.fromEulerAnglesXYZ(0.3,0,0.4) * CFrame.new(0.2,-0.4,0.1) | |
692 | function selectmotion() | |
693 | weaponweld.C0 = CFrame.new(0,0,0) | |
694 | rw.C0 = CFrame.new(0,0,0) | |
695 | lw.C0 = CFrame.new(0,0,0) | |
696 | rw.Part1 = rarm | |
697 | lw.Part1 = larm | |
698 | for i=1, 15 do | |
699 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(-0.04,0,-0.07) * CFrame.new(0,0,0) | |
700 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0.07,0.16,0.04) * CFrame.new(-0.01,-0.05,-0.04) | |
701 | lw.C0 = lw.C0 * CFrame.fromEulerAnglesXYZ(0.04,0.08,0.01) * CFrame.new(0,0,0) | |
702 | wait() | |
703 | end | |
704 | weaponweld.Part1 = main | |
705 | holdweld.Part1 = nil | |
706 | wait(0.14) | |
707 | uns:play() | |
708 | for i=1, 4 do | |
709 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.05,0,0.03) * CFrame.new(0,0,0) | |
710 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0,0,0) * CFrame.new(0.12,-0.03,0.26) | |
711 | lw.C0 = lw.C0 * CFrame.fromEulerAnglesXYZ(-0.05,0.04,0.03) * CFrame.new(0,0,0) | |
712 | wait() | |
713 | end | |
714 | for i=1, 10 do | |
715 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0,0,0.15) * CFrame.new(0,0,0) | |
716 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.15,-0.22,0.1) * CFrame.new(0.05,0.1,0.05) | |
717 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(-0.1,0,0) * CFrame.new(0,0.07,0) | |
718 | lw.C0 = lw.C0 * CFrame.fromEulerAnglesXYZ(-0.04,0.06,0.03) * CFrame.new(0,0,0) | |
719 | wait() | |
720 | end | |
721 | wait(0.1) | |
722 | for i=1, 6 do | |
723 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.05,-0.04,-0.09) * CFrame.new(0,0,0) | |
724 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.04,0.18,-0.14) * CFrame.new(-0.08,0.05,0.05) | |
725 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(0.2,0,0) * CFrame.new(0,0,0) | |
726 | lw.C0 = lw.C0 * CFrame.fromEulerAnglesXYZ(0,0,-0.12) * CFrame.new(0,-0.04,0) | |
727 | wait() | |
728 | end | |
729 | rw.C0 = rightfight | |
730 | lw.C0 = leftfight | |
731 | neck.C1 = neor | |
732 | weaponweld.C0 = CFrame.new(0,0,0) | |
733 | selected = true | |
734 | end | |
735 | function deselmotion() | |
736 | for i=1, 12 do | |
737 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(-0.04,0,-0.07) * CFrame.new(0,0,0) | |
738 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0.07,0.16,0.04) * CFrame.new(0.02,-0.05,-0.04) | |
739 | lw.C0 = lw.C0 * CFrame.fromEulerAnglesXYZ(-0.05,0,-0.05) * CFrame.new(-0.02,0.03,0) | |
740 | wait() | |
741 | end | |
742 | shea:play() | |
743 | weaponweld.Part1 = nil | |
744 | holdweld.Part1 = tup1 | |
745 | wait(0.1) | |
746 | for i=1, 8 do | |
747 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.05,0,0.09) * CFrame.new(0,0,0) | |
748 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0.12,0,-0.12) * CFrame.new(-0.07,0.11,0) | |
749 | lw.C0 = lw.C0 * CFrame.fromEulerAnglesXYZ(0.05,0,0.04) * CFrame.new(0,0,0) | |
750 | wait() | |
751 | end | |
752 | rw.Part1 = nil | |
753 | lw.Part1 = nil | |
754 | rw.C0 = CFrame.new(0,0,0) | |
755 | lw.C0 = CFrame.new(0,0,0) | |
756 | neck.C1 = neor | |
757 | weaponweld.C0 = CFrame.new(0,0,0) | |
758 | selected = false | |
759 | end | |
760 | ----Effects--------------------------Effects--------------------------Effects--------------------------Effects---------------------- | |
761 | function fade(brick,mesh,scale,tran,speed) | |
762 | coroutine.resume(coroutine.create(function() | |
763 | for i=tran,1,speed do | |
764 | wait() | |
765 | brick.Transparency = i | |
766 | mesh.Scale = mesh.Scale - Vector3.new(scale,scale,scale) | |
767 | end | |
768 | brick:remove() | |
769 | end)) | |
770 | end | |
771 | function block(part,avg,cols) | |
772 | for i=1, math.random(1,3) do | |
773 | local s = (avg*1.4)*100 | |
774 | local s2 = (avg/5)*100 | |
775 | local size = math.random(s2,s)/100 | |
776 | local p = Instance.new("Part",me.Character) | |
777 | prop(p,me.Character,false,math.random(15,50)/100,0,size,size,size,cols[math.random(1,#cols)],true,"Custom") | |
778 | p.CFrame = CFrame.new(part.Position) * CFrame.Angles(math.random(-320,320)/100,math.random(-320,320)/100,math.random(-320,320)/100) | |
779 | coroutine.resume(coroutine.create(function() | |
780 | for i=p.Transparency, 1, 0.2 do | |
781 | wait(0.15) | |
782 | p.Transparency = i | |
783 | local cf = p.CFrame | |
784 | p.Size = Vector3.new(size,size,size) | |
785 | p.CFrame = cf * CFrame.Angles(math.random(-320,320)/100,math.random(-320,320)/100,math.random(-320,320)/100) | |
786 | size = size - 0.2 | |
787 | end | |
788 | p:remove() | |
789 | end)) | |
790 | end | |
791 | end | |
792 | function blocks(part,avg,cols) | |
793 | for i=1, math.random(1,3) do | |
794 | local s = (avg*1.4)*100 | |
795 | local s2 = (avg/5)*100 | |
796 | local size = math.random(s2,s)/100 | |
797 | local p = Instance.new("Part",me.Character) | |
798 | local pos = p.CFrame | |
799 | local pos2 = pos * CFrame.new(0,12,-15) | |
800 | local pos3 = pos2 * CFrame.new(0,-12,-12) | |
801 | local bv = Instance.new("BodyPosition",p) | |
802 | bv.maxForce = Vector3.new(math.huge,math.huge,math.huge) | |
803 | bv.position = pos2.p | |
804 | local bg = Instance.new("BodyGyro",p) | |
805 | bg.cframe = CFrame.new(pos.p,pos3.p) | |
806 | bg.maxTorque = Vector3.new(math.huge,math.huge,math.huge) | |
807 | bg.P = 30000 | |
808 | prop(p,me.Character,false,math.random(15,50)/100,0,size,size,size,cols[math.random(1,#cols)],true,"Custom") | |
809 | p.CFrame = CFrame.new(part.Position) * CFrame.Angles(math.random(-320,320)/100,math.random(-320,320)/100,math.random(-320,320)/100) | |
810 | coroutine.resume(coroutine.create(function() | |
811 | for i=p.Transparency, 1, 0.2 do | |
812 | wait(0.15) | |
813 | p.Transparency = i | |
814 | local cf = p.CFrame | |
815 | p.Size = Vector3.new(size,size,size) | |
816 | p.CFrame = cf * CFrame.Angles(math.random(-320,320)/100,math.random(-320,320)/100,math.random(-320,320)/100) | |
817 | size = size - 0.2 | |
818 | end | |
819 | p:remove() | |
820 | end)) | |
821 | end | |
822 | end | |
823 | function blading(part,color) | |
824 | local p = Instance.new("Part",me.Character) | |
825 | prop(p,me.Character,false,0.4,0,0.2,1.4,3.8,color,true,"Custom") | |
826 | p.CFrame = part.CFrame | |
827 | coroutine.resume(coroutine.create(function() | |
828 | for i=p.Transparency, 1, 0.04 do | |
829 | wait() | |
830 | p.Transparency = i | |
831 | end | |
832 | p:remove() | |
833 | end)) | |
834 | end | |
835 | function spikes(part,color) | |
836 | local p = Instance.new("Part",me.Character) | |
837 | prop(p,me.Character,false,0.4,0,0.2,0.2,0.2,color,true,"Custom") | |
838 | p.CFrame = part.CFrame * CFrame.new(0,-3,0) | |
839 | local mww = Instance.new("SpecialMesh") | |
840 | mesh(mww,p,6,5,6,"FileMesh") | |
841 | mww.MeshId = "http://www.roblox.com/asset/?id=20329976" | |
842 | fade(p,mww,0.55,p.Transparency,0.08) | |
843 | end | |
844 | function spikes2(part,color) | |
845 | local p = Instance.new("Part",me.Character) | |
846 | prop(p,me.Character,false,0.4,0,0.2,0.2,0.2,color,true,"Custom") | |
847 | p.CFrame = part.CFrame * CFrame.new(0,0,6) * CFrame.Angles(math.pi/2,0,0) | |
848 | local mww = Instance.new("SpecialMesh") | |
849 | mesh(mww,p,8,7,8,"FileMesh") | |
850 | mww.MeshId = "http://www.roblox.com/asset/?id=20329976" | |
851 | fade(p,mww,0.55,p.Transparency,0.06) | |
852 | end | |
853 | function bal(part,color,dist) | |
854 | local p = Instance.new("Part",me.Character) | |
855 | prop(p,me.Character,false,0.4,0,1,1,1,color,true,"Custom") | |
856 | p.CFrame = part.CFrame | |
857 | local mww = Instance.new("SpecialMesh") | |
858 | mesh(mww,p,dist,dist,dist,"Sphere") | |
859 | fade(p,mww,3,p.Transparency,0.06) | |
860 | end | |
861 | --Kill function----------------------Kill function----------------------Kill function-------------------- | |
862 | function blast(dmg,part,crit) | |
863 | local randomposx = math.random(-30,30) | |
864 | local randomposy = math.random(-50,-10) | |
865 | local bil = Instance.new("BillboardGui",part) | |
866 | bil.Adornee = bil.Parent | |
867 | bil.Size = UDim2.new(0,110,0,70) | |
868 | local img = Instance.new("ImageLabel",bil) | |
869 | img.Size = UDim2.new(1,0,1,0) | |
870 | img.Image = "http://www.roblox.com/asset/?id=42621332" | |
871 | img.Position = UDim2.new(0,randomposx,0,randomposy) | |
872 | img.BackgroundTransparency = 1 | |
873 | local txt = Instance.new("TextLabel",img) | |
874 | txt.Size = UDim2.new(1,0,1,0) | |
875 | txt.BackgroundTransparency = 1 | |
876 | txt.Text = dmg | |
877 | txt.TextColor3 = Color3.new(0,0,0) | |
878 | txt.FontSize = "Size18" | |
879 | if crit then | |
880 | img.Image = "http://www.roblox.com/asset/?id=42621315" | |
881 | txt.FontSize = "Size24" | |
882 | txt.TextColor3 = Color3.new(0.6,0,0) | |
883 | end | |
884 | coroutine.resume(coroutine.create(function() | |
885 | wait(0.2) | |
886 | for i=1, math.random(30,50) do | |
887 | img.Position = UDim2.new(0,randomposx,0,randomposy) | |
888 | randomposy = randomposy - 4 | |
889 | wait() | |
890 | end | |
891 | bil:remove() | |
892 | end)) | |
893 | end | |
894 | deb = true | |
895 | function kill(hit,mod) | |
896 | if deb and attack and hit.Parent.Name ~= name then | |
897 | local ch = hit.Parent | |
898 | if ch:findFirstChild("Humanoid") and ch:findFirstChild("Head") and ch:findFirstChild("Torso") then | |
899 | deb = false | |
900 | local dm = math.random(0,avgdmg*2) | |
901 | local cri = false | |
902 | local cripro = math.random(1,criticalchance) | |
903 | if cripro == 1 then | |
904 | cri = true | |
905 | dm = math.random(avgdmg*1.5,avgdmg*4.5) | |
906 | end | |
907 | ch["Humanoid"].Health = ch["Humanoid"].Health - dm | |
908 | blast(dm,ch.Head,cri) | |
909 | if cri then | |
910 | coroutine.resume(coroutine.create(function() | |
911 | local lol = math.random(1,plat) | |
912 | if lol == 1 then | |
913 | ch["Humanoid"].PlatformStand = true | |
914 | ch.Torso.RotVelocity = Vector3.new(math.random(-20,20),math.random(-20,20),math.random(-20,20)) | |
915 | wait(0.9) | |
916 | ch["Humanoid"].PlatformStand = false | |
917 | if mod == true then | |
918 | ch.Torso.RotVelocity = Vector3.new(math.random(-30,30),math.random(-30,30),math.random(-30,30)) | |
919 | ch.Torso.Velocity = Vector3.new(math.random(-30,30),math.random(15,70),math.random(-30,30)) | |
920 | end | |
921 | end | |
922 | end)) | |
923 | end | |
924 | wait(dela) | |
925 | deb = true | |
926 | end | |
927 | end | |
928 | end | |
929 | function ris(hit,mod) | |
930 | if deb and attack and hit.Parent.Name ~= name then | |
931 | local ch = hit.Parent | |
932 | if ch:findFirstChild("Humanoid") and ch:findFirstChild("Head") and ch:findFirstChild("Torso") then | |
933 | deb = false | |
934 | local dm = math.random(0,avgdmg*2) | |
935 | local cri = false | |
936 | local cripro = math.random(1,criticalchance) | |
937 | if cripro == 1 then | |
938 | cri = true | |
939 | dm = math.random(avgdmg*1.5,avgdmg*4.5) | |
940 | end | |
941 | ch["Humanoid"].Health = ch["Humanoid"].Health - dm | |
942 | blast(dm,ch.Head,cri) | |
943 | if cri then | |
944 | coroutine.resume(coroutine.create(function() | |
945 | local lol = math.random(1,plat) | |
946 | if lol == 1 then | |
947 | ch["Humanoid"].PlatformStand = true | |
948 | ch.Torso.RotVelocity = Vector3.new(math.random(-20,20),math.random(-20,20),math.random(-20,20)) | |
949 | wait(0.9) | |
950 | ch["Humanoid"].PlatformStand = false | |
951 | if mod == true then | |
952 | ch.Torso.RotVelocity = Vector3.new(math.random(-100,100),math.random(-100,100),math.random(-100,100)) | |
953 | ch.Torso.Velocity = Vector3.new(math.random(-100,100),math.random(105,170),math.random(-100,100)) | |
954 | end | |
955 | end | |
956 | end)) | |
957 | end | |
958 | wait(dela) | |
959 | deb = true | |
960 | end | |
961 | end | |
962 | end | |
963 | blade3.Touched:connect(kill) | |
964 | blade4.Touched:connect(kill) | |
965 | blade2.Touched:connect(kill) | |
966 | blade1.Touched:connect(kill) | |
967 | blade5.Touched:connect(kill) | |
968 | blade5.Touched:connect(ris) | |
969 | ----Attacks----------------------Attacks----------------------Attacks----------------------Attacks------------------ | |
970 | -- block(blade5,2,{"Medium blue", "Light blue", "White", "Tr. Blue"}) | |
971 | -- blading(blade2,"Bright red") | |
972 | function att() | |
973 | attacking = true | |
974 | for i=1,8 do | |
975 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0.32,-0.06,0) * CFrame.new(0,0,0) | |
976 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(-0.1,0,0) * CFrame.new(0,0,0) | |
977 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.05,0,0.03) | |
978 | wait() | |
979 | end | |
980 | slash:play() | |
981 | wait(0.13) | |
982 | attack = true | |
983 | for i=1,6 do | |
984 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.44,0.08,0) * CFrame.new(0,0,0) | |
985 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(-0.04,0,0) * CFrame.new(0,0,0) | |
986 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(-0.14,0,0) | |
987 | block(blade5,2,{"Medium blue", "Light blue", "White", "Tr. Blue"}) | |
988 | wait() | |
989 | end | |
990 | attack = false | |
991 | wait(0.08) | |
992 | for i=1,3 do | |
993 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0,0,0.08) | |
994 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(0.23,0,0) | |
995 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.1,0,-0.05) | |
996 | wait() | |
997 | end | |
998 | rw.C0 = rightfight | |
999 | lw.C0 = leftfight | |
1000 | neck.C1 = neor | |
1001 | weaponweld.C0 = CFrame.new(0,0,0) | |
1002 | attacking = false | |
1003 | end | |
1004 | function stab() | |
1005 | attacking = true | |
1006 | for i=1,8 do | |
1007 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0.32,-0.06,0) * CFrame.new(0,0,0) | |
1008 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(-0.1,0,0) * CFrame.new(0,0,0) | |
1009 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.05,0,0.03) | |
1010 | wait() | |
1011 | end | |
1012 | slash:play() | |
1013 | avgdmg = 15 | |
1014 | criticalchance = 95 | |
1015 | wait(0.13) | |
1016 | attack = true | |
1017 | for i=1,6 do | |
1018 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0,-0.44,-0.8) * CFrame.new(0,0,0) | |
1019 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(-0.04,0,0) * CFrame.new(0,0,0) | |
1020 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(-0.14,0,0) | |
1021 | block(blade5,2,{"Medium blue", "Light blue", "White", "Tr. Blue"}) | |
1022 | bal(blade5,"Tr. Blue",25) | |
1023 | wait() | |
1024 | end | |
1025 | attack = false | |
1026 | wait(0.08) | |
1027 | for i=1,3 do | |
1028 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0,0,0.08) | |
1029 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(0.23,0,0) | |
1030 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.1,0,-0.05) | |
1031 | blocks(blade5,2,{"Medium blue", "Light blue", "White", "Tr. Blue"}) | |
1032 | bal(blade5,"Tr. Blue",25) | |
1033 | wait() | |
1034 | end | |
1035 | rw.C0 = rightfight | |
1036 | lw.C0 = leftfight | |
1037 | neck.C1 = neor | |
1038 | weaponweld.C0 = CFrame.new(0,0,0) | |
1039 | attacking = false | |
1040 | end | |
1041 | function attas() | |
1042 | attacking = true | |
1043 | local pos = torso.CFrame | |
1044 | local pos2 = pos * CFrame.new(0,12,-15) | |
1045 | local pos3 = pos2 * CFrame.new(0,-12,-12) | |
1046 | for i=1,6 do | |
1047 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0.32,-0.06,0) * CFrame.new(0,0,0) | |
1048 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(-0.1,0,0) * CFrame.new(0,0,0) | |
1049 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.05,0,0.03) | |
1050 | spikes(torso,"Light blue") | |
1051 | spikes2(torso,"Bright blue") | |
1052 | bal(torso,"Tr. Blue",25) | |
1053 | wait() | |
1054 | end | |
1055 | slash:play() | |
1056 | avgdmg = 15 | |
1057 | criticalchance = 65 | |
1058 | wait(0.13) | |
1059 | attack = true | |
1060 | local bv = Instance.new("BodyPosition",torso) | |
1061 | bv.maxForce = Vector3.new(math.huge,math.huge,math.huge) | |
1062 | bv.position = pos2.p | |
1063 | local bg = Instance.new("BodyGyro",torso) | |
1064 | bg.cframe = CFrame.new(pos.p,pos3.p) | |
1065 | bg.maxTorque = Vector3.new(math.huge,math.huge,math.huge) | |
1066 | bg.P = 30000 | |
1067 | for i=1,6 do | |
1068 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.54,0.08,0) * CFrame.new(0,0,0) | |
1069 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(-0.05,0,0) * CFrame.new(0,0,0) | |
1070 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(-0.24,0,0) | |
1071 | block(blade5,2,{"Medium blue", "Light blue", "White", "Tr. Blue"}) | |
1072 | wait() | |
1073 | end | |
1074 | attack = false | |
1075 | wait(0.08) | |
1076 | for i=1,3 do | |
1077 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0,0,0.08) | |
1078 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(0.23,0,0) | |
1079 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.1,0,-0.05) | |
1080 | wait() | |
1081 | end | |
1082 | rw.C0 = rightfight | |
1083 | lw.C0 = leftfight | |
1084 | bv:remove() | |
1085 | bg:remove() | |
1086 | neck.C1 = neor | |
1087 | weaponweld.C0 = CFrame.new(0,0,0) | |
1088 | attacking = false | |
1089 | end | |
1090 | function spin() | |
1091 | attacking = true | |
1092 | hum.WalkSpeed = 0 | |
1093 | for i=1,7 do | |
1094 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0.08,0.1,0.03) * CFrame.new(0,0,0) | |
1095 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(-0.2,0,0) * CFrame.new(0,0,0) | |
1096 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0,0,0) * CFrame.new(0,0,0) | |
1097 | wait() | |
1098 | end | |
1099 | spi:play() | |
1100 | wait(0.3) | |
1101 | spi:play() | |
1102 | dela = 0.1 | |
1103 | avgdmg = 6 | |
1104 | criticalchance = 12 | |
1105 | local bv = Instance.new("BodyVelocity",torso) | |
1106 | bv.maxForce = Vector3.new(math.huge,math.huge,math.huge) | |
1107 | bv.velocity = torso.CFrame.lookVector * 22 | |
1108 | local bav = Instance.new("BodyAngularVelocity",torso) | |
1109 | bav.maxTorque = Vector3.new(math.huge,math.huge,math.huge) | |
1110 | bav.angularvelocity = Vector3.new(0,36,0) | |
1111 | bav.P = 15000 | |
1112 | attack = true | |
1113 | for i=1, 30 do | |
1114 | wait() | |
1115 | spikes(torso,"Medium blue") | |
1116 | end | |
1117 | bv:remove() | |
1118 | bav:remove() | |
1119 | hum.WalkSpeed = normal | |
1120 | attack = false | |
1121 | avgdmg = normdmg | |
1122 | for i=1,5 do | |
1123 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.1,-0.12,-0.04) * CFrame.new(0,0,0) | |
1124 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(0.25,0,0) * CFrame.new(0,0,0) | |
1125 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0,0,0) * CFrame.new(0,0,0) | |
1126 | wait() | |
1127 | end | |
1128 | dela = 0.4 | |
1129 | rw.C0 = rightfight | |
1130 | lw.C0 = leftfight | |
1131 | neck.C1 = neor | |
1132 | weaponweld.C0 = CFrame.new(0,0,0) | |
1133 | attacking = false | |
1134 | criticalchance = normchance | |
1135 | end | |
1136 | function spins() | |
1137 | attacking = true | |
1138 | hum.WalkSpeed = 0 | |
1139 | for i=1,7 do | |
1140 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0.08,0.1,0.03) * CFrame.new(0,0,0) | |
1141 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(-0.2,0,0) * CFrame.new(0,0,0) | |
1142 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0,0,0) * CFrame.new(0,0,0) | |
1143 | bal(torso,"Tr. Blue",25) | |
1144 | wait() | |
1145 | end | |
1146 | spi:play() | |
1147 | wait(0.3) | |
1148 | spi:play() | |
1149 | dela = 0.1 | |
1150 | avgdmg = 6 | |
1151 | criticalchance = 12 | |
1152 | local bv = Instance.new("BodyVelocity",torso) | |
1153 | bv.maxForce = Vector3.new(math.huge,math.huge,math.huge) | |
1154 | bv.velocity = torso.CFrame.lookVector * 22 | |
1155 | local bav = Instance.new("BodyAngularVelocity",torso) | |
1156 | bav.maxTorque = Vector3.new(math.huge,math.huge,math.huge) | |
1157 | bav.angularvelocity = Vector3.new(0,36,0) | |
1158 | bav.P = 15000 | |
1159 | attack = true | |
1160 | for i=1, 30 do | |
1161 | wait() | |
1162 | spikes(torso,"Medium blue") | |
1163 | end | |
1164 | bv:remove() | |
1165 | bav:remove() | |
1166 | hum.WalkSpeed = normal | |
1167 | attack = false | |
1168 | avgdmg = normdmg | |
1169 | for i=1,5 do | |
1170 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.1,-0.12,-0.04) * CFrame.new(0,0,0) | |
1171 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(0.25,0,0) * CFrame.new(0,0,0) | |
1172 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0,0,0) * CFrame.new(0,0,0) | |
1173 | wait() | |
1174 | end | |
1175 | dela = 0.4 | |
1176 | rw.C0 = rightfight | |
1177 | lw.C0 = leftfight | |
1178 | neck.C1 = neor | |
1179 | weaponweld.C0 = CFrame.new(0,0,0) | |
1180 | attacking = false | |
1181 | criticalchance = normchance | |
1182 | end | |
1183 | function rise() | |
1184 | attacking = true | |
1185 | local pos = torso.CFrame | |
1186 | local pos2 = pos * CFrame.new(0,5,-15) | |
1187 | local pos3 = pos2 * CFrame.new(0,-3,-12) | |
1188 | hum.WalkSpeed = 0 | |
1189 | for i=1,7 do | |
1190 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0.08,0.1,0.03) * CFrame.new(0,0,0) | |
1191 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(-0.2,0,0) * CFrame.new(0,0,0) | |
1192 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0,0,0) * CFrame.new(0,0,0) | |
1193 | bal(torso,"Tr. Blue",25) | |
1194 | wait() | |
1195 | end | |
1196 | spi:play() | |
1197 | wait(0.3) | |
1198 | spi:play() | |
1199 | dela = 0.1 | |
1200 | avgdmg = 6 | |
1201 | criticalchance = 12 | |
1202 | local bv = Instance.new("BodyPosition",torso) | |
1203 | bv.maxForce = Vector3.new(math.huge,math.huge,math.huge) | |
1204 | bv.position = pos2.p | |
1205 | local bg = Instance.new("BodyGyro",torso) | |
1206 | bg.cframe = CFrame.new(pos.p,pos3.p) | |
1207 | bg.maxTorque = Vector3.new(math.huge,math.huge,math.huge) | |
1208 | bg.P = 30000 | |
1209 | attack = true | |
1210 | for i=1, 30 do | |
1211 | wait() | |
1212 | spikes2(torso,"Medium blue") | |
1213 | end | |
1214 | bv:remove() | |
1215 | bg:remove() | |
1216 | hum.WalkSpeed = normal | |
1217 | attack = false | |
1218 | avgdmg = normdmg | |
1219 | for i=1,5 do | |
1220 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.1,-0.12,-0.04) * CFrame.new(0,0,0) | |
1221 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(0.25,0,0) * CFrame.new(0,0,0) | |
1222 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0,0,0) * CFrame.new(0,0,0) | |
1223 | wait() | |
1224 | end | |
1225 | dela = 0.4 | |
1226 | rw.C0 = rightfight | |
1227 | lw.C0 = leftfight | |
1228 | neck.C1 = neor | |
1229 | weaponweld.C0 = CFrame.new(0,0,0) | |
1230 | attacking = false | |
1231 | criticalchance = normchance | |
1232 | end | |
1233 | function sprint() | |
1234 | attacking = true | |
1235 | hum.WalkSpeed = 0 | |
1236 | local pos = torso.CFrame | |
1237 | local pos2 = pos * CFrame.new(0,12,-15) | |
1238 | local pos3 = pos2 * CFrame.new(0,-12,-12) | |
1239 | for i=1,6 do | |
1240 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.2,0,0) | |
1241 | lw.C0 = lw.C0 * CFrame.fromEulerAnglesXYZ(-0.2,0,0) | |
1242 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.1,0,0) * CFrame.new(0,0,0) | |
1243 | wait() | |
1244 | end | |
1245 | avgdmg = 14 | |
1246 | local bv = Instance.new("BodyPosition",torso) | |
1247 | bv.maxForce = Vector3.new(math.huge,math.huge,math.huge) | |
1248 | bv.position = pos2.p | |
1249 | local bg = Instance.new("BodyGyro",torso) | |
1250 | bg.cframe = CFrame.new(pos.p,pos3.p) | |
1251 | bg.maxTorque = Vector3.new(math.huge,math.huge,math.huge) | |
1252 | bg.P = 30000 | |
1253 | for i=1, 7 do | |
1254 | wait() | |
1255 | spikes2(torso,"Medium blue") | |
1256 | end | |
1257 | wait(0.1) | |
1258 | coroutine.resume(coroutine.create(function() | |
1259 | for i=1, 17 do | |
1260 | wait() | |
1261 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0.15,0,-0.04) | |
1262 | lw.C0 = lw.C0 * CFrame.fromEulerAnglesXYZ(0.16,0,0.05) | |
1263 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.02,0,0) * CFrame.new(0,0,0) | |
1264 | end | |
1265 | end)) | |
1266 | coroutine.resume(coroutine.create(function() | |
1267 | for i=0.4, 5.3,0.07 do | |
1268 | wait(0.04) | |
1269 | block(blade5,i,{"Medium blue", "Light blue", "White", "Tr. Blue"}) | |
1270 | end | |
1271 | end)) | |
1272 | charge:play() | |
1273 | coroutine.resume(coroutine.create(function() | |
1274 | wait(2.5) | |
1275 | for i=1, 11 do | |
1276 | wait() | |
1277 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0.05,0,0) | |
1278 | lw.C0 = lw.C0 * CFrame.fromEulerAnglesXYZ(0.08,0,0) | |
1279 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(0,-(math.pi/11),0) | |
1280 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(-0.03,0,0) * CFrame.new(0,0,0) | |
1281 | end | |
1282 | end)) | |
1283 | criticalchance = 1 | |
1284 | plat = 1 | |
1285 | dela = 0 | |
1286 | wait(3.8) | |
1287 | boom:play() | |
1288 | attack = true | |
1289 | coroutine.resume(coroutine.create(function() | |
1290 | for i=1, 5 do | |
1291 | wait() | |
1292 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.34,0,0) | |
1293 | lw.C0 = lw.C0 * CFrame.fromEulerAnglesXYZ(-0.34,0,0) | |
1294 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(-0.1,0,0) * CFrame.new(0,0,0) | |
1295 | end | |
1296 | end)) | |
1297 | bv.position = pos3.p | |
1298 | for i=1, 7 do | |
1299 | wait() | |
1300 | spikes2(torso,"Medium blue") | |
1301 | end | |
1302 | coroutine.resume(coroutine.create(function() | |
1303 | for i=1, 12 do | |
1304 | wait() | |
1305 | bal(blade5,"Medium blue",splashdist*2) | |
1306 | end | |
1307 | end)) | |
1308 | local parts = getcharparts(workspace) | |
1309 | for _,v in pairs(parts) do | |
1310 | if (v.Position - blade5.Position).magnitude < 14 then | |
1311 | kill(v,true) | |
1312 | end | |
1313 | end | |
1314 | wait(0.3) | |
1315 | attack = false | |
1316 | bv:remove() | |
1317 | bg:remove() | |
1318 | hum.WalkSpeed = normal | |
1319 | avgdmg = normdmg | |
1320 | rw.C0 = rightfight | |
1321 | lw.C0 = leftfight | |
1322 | neck.C1 = neor | |
1323 | weaponweld.C0 = CFrame.new(0,0,0) | |
1324 | attacking = false | |
1325 | criticalchance = normchance | |
1326 | plat = 2 | |
1327 | end | |
1328 | function sprint2() | |
1329 | attacking = true | |
1330 | hum.WalkSpeed = 0 | |
1331 | local pos = torso.CFrame | |
1332 | local pos2 = pos * CFrame.new(0,15,-15) | |
1333 | local pos3 = pos2 * CFrame.new(0,-13,-12) | |
1334 | for i=1,6 do | |
1335 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.2,0,0) | |
1336 | lw.C0 = lw.C0 * CFrame.fromEulerAnglesXYZ(-0.2,0,0) | |
1337 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.1,0,0) * CFrame.new(0,0,0) | |
1338 | wait() | |
1339 | end | |
1340 | avgdmg = 14 | |
1341 | local bv = Instance.new("BodyPosition",torso) | |
1342 | bv.maxForce = Vector3.new(math.huge,math.huge,math.huge) | |
1343 | bv.position = pos2.p | |
1344 | local bg = Instance.new("BodyGyro",torso) | |
1345 | bg.cframe = CFrame.new(pos.p,pos3.p) | |
1346 | bg.maxTorque = Vector3.new(math.huge,math.huge,math.huge) | |
1347 | bg.P = 30000 | |
1348 | for i=1, 4 do | |
1349 | wait() | |
1350 | spikes2(torso,"Medium blue") | |
1351 | spikes2(torso,"Light blue") | |
1352 | spikes2(torso,"Bright blue") | |
1353 | end | |
1354 | wait(0.1) | |
1355 | coroutine.resume(coroutine.create(function() | |
1356 | for i=1, 34 do | |
1357 | wait() | |
1358 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0.15,0,-0.04) | |
1359 | lw.C0 = lw.C0 * CFrame.fromEulerAnglesXYZ(0.16,0,0.05) | |
1360 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.02,0,0) * CFrame.new(0,0,0) | |
1361 | end | |
1362 | end)) | |
1363 | coroutine.resume(coroutine.create(function() | |
1364 | for i=0.4, 5.3,0.07 do | |
1365 | wait(0.04) | |
1366 | block(blade5,i,{"Medium blue", "Light blue", "White", "Tr. Blue"}) | |
1367 | end | |
1368 | end)) | |
1369 | charge:play() | |
1370 | coroutine.resume(coroutine.create(function() | |
1371 | wait(2.5) | |
1372 | for i=1, 11 do | |
1373 | wait() | |
1374 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0.05,0,0) | |
1375 | lw.C0 = lw.C0 * CFrame.fromEulerAnglesXYZ(0.08,0,0) | |
1376 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(0,-(math.pi/11),0) | |
1377 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(-0.03,0,0) * CFrame.new(0,0,0) | |
1378 | end | |
1379 | end)) | |
1380 | criticalchance = 1 | |
1381 | plat = 1 | |
1382 | dela = 0 | |
1383 | wait(3.8) | |
1384 | boom:play() | |
1385 | attack = true | |
1386 | coroutine.resume(coroutine.create(function() | |
1387 | for i=1, 5 do | |
1388 | wait() | |
1389 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.34,0,0) | |
1390 | lw.C0 = lw.C0 * CFrame.fromEulerAnglesXYZ(-0.34,0,0) | |
1391 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(-0.1,0,0) * CFrame.new(0,0,0) | |
1392 | end | |
1393 | end)) | |
1394 | bv.position = pos3.p | |
1395 | for i=1, 7 do | |
1396 | wait() | |
1397 | spikes2(torso,"Medium blue") | |
1398 | end | |
1399 | coroutine.resume(coroutine.create(function() | |
1400 | for i=1, 12 do | |
1401 | wait() | |
1402 | bal(blade5,"Medium blue",splashdist*2) | |
1403 | end | |
1404 | end)) | |
1405 | local parts = getcharparts(workspace) | |
1406 | for _,v in pairs(parts) do | |
1407 | if (v.Position - blade5.Position).magnitude < 14 then | |
1408 | kill(v,true) | |
1409 | end | |
1410 | end | |
1411 | wait(0.3) | |
1412 | attack = false | |
1413 | bv:remove() | |
1414 | bg:remove() | |
1415 | hum.WalkSpeed = normal | |
1416 | avgdmg = normdmg | |
1417 | rw.C0 = rightfight | |
1418 | lw.C0 = leftfight | |
1419 | neck.C1 = neor | |
1420 | weaponweld.C0 = CFrame.new(0,0,0) | |
1421 | attacking = false | |
1422 | criticalchance = normchance | |
1423 | plat = 2 | |
1424 | end | |
1425 | function combo() | |
1426 | att() | |
1427 | attas() | |
1428 | sprint() | |
1429 | spin() | |
1430 | end | |
1431 | function run() | |
1432 | spin() | |
1433 | spin() | |
1434 | spin() | |
1435 | end | |
1436 | function rush() | |
1437 | attacking = true | |
1438 | for i=1,8 do | |
1439 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.03,0.1,0) * CFrame.new(0,0,0) | |
1440 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(-(math.pi/2)/12,0.03,0.07) * CFrame.new(0,0,0) | |
1441 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.05,0,0.03) | |
1442 | wait(0.1) | |
1443 | end | |
1444 | slash:play() | |
1445 | wait(0.13) | |
1446 | attack = true | |
1447 | local bv = Instance.new("BodyVelocity",torso) | |
1448 | bv.maxForce = Vector3.new(math.huge,math.huge,math.huge) | |
1449 | bv.velocity = torso.CFrame.lookVector * 220 | |
1450 | local bav = Instance.new("BodyAngularVelocity",torso) | |
1451 | bav.maxTorque = Vector3.new(math.huge,math.huge,math.huge) | |
1452 | bav.angularvelocity = Vector3.new(0,36,0) | |
1453 | bav.P = 15000 | |
1454 | for i=1,6 do | |
1455 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.44,0.08,0) * CFrame.new(0,0,0) | |
1456 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(-0.04,0,0) * CFrame.new(0,0,0) | |
1457 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(-0.14,0,0) | |
1458 | block(blade5,2,{"Medium blue", "Light blue", "White", "Tr. Blue"}) | |
1459 | wait() | |
1460 | end | |
1461 | attack = false | |
1462 | wait(0.08) | |
1463 | for i=1,3 do | |
1464 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0,0,0.08) | |
1465 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(0.23,0,0) | |
1466 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.1,0,-0.05) | |
1467 | block(blade5,2,{"Medium blue", "Light blue", "White", "Tr. Blue"}) | |
1468 | wait() | |
1469 | end | |
1470 | rw.C0 = rightfight | |
1471 | lw.C0 = leftfight | |
1472 | bv:remove() | |
1473 | bav:remove() | |
1474 | neck.C1 = neor | |
1475 | weaponweld.C0 = CFrame.new(0,0,0) | |
1476 | attacking = false | |
1477 | end | |
1478 | function masta() | |
1479 | attacking = true | |
1480 | for i=1,8 do | |
1481 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.03,0.1,0) * CFrame.new(0,0,0) | |
1482 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(-(math.pi/2)/12,0.03,0.07) * CFrame.new(0,0,0) | |
1483 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.05,0,0.03) | |
1484 | bal(torso,"Tr. Blue",25) | |
1485 | spikes2(torso,"Medium blue") | |
1486 | block(blade5,i,{"Medium blue", "Light blue", "White", "Tr. Blue"}) | |
1487 | wait(0.1) | |
1488 | end | |
1489 | slash:play() | |
1490 | avgdmg = 37 | |
1491 | criticalchance = 125 | |
1492 | wait(0.13) | |
1493 | attack = true | |
1494 | local bv = Instance.new("BodyVelocity",torso) | |
1495 | bv.maxForce = Vector3.new(math.huge,math.huge,math.huge) | |
1496 | bv.velocity = torso.CFrame.lookVector * 220 | |
1497 | local bav = Instance.new("BodyAngularVelocity",torso) | |
1498 | bav.maxTorque = Vector3.new(math.huge,math.huge,math.huge) | |
1499 | bav.angularvelocity = Vector3.new(0,36,0) | |
1500 | bav.P = 15000 | |
1501 | for i=1,6 do | |
1502 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(-0.44,0.08,0) * CFrame.new(0,0,0) | |
1503 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(-0.04,0,0) * CFrame.new(0,0,0) | |
1504 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(-0.14,0,0) | |
1505 | bal(torso,"Tr. Blue",25) | |
1506 | spikes2(torso,"Medium blue") | |
1507 | block(blade5,i,{"Medium blue", "Light blue", "White", "Tr. Blue"}) | |
1508 | wait() | |
1509 | end | |
1510 | attack = false | |
1511 | wait(0.08) | |
1512 | for i=1,3 do | |
1513 | rw.C0 = rw.C0 * CFrame.fromEulerAnglesXYZ(0,0,0.08) | |
1514 | weaponweld.C0 = weaponweld.C0 * CFrame.fromEulerAnglesXYZ(0.23,0,0) | |
1515 | neck.C1 = neck.C1 * CFrame.fromEulerAnglesXYZ(0.1,0,-0.05) | |
1516 | bal(torso,"Tr. Blue",25) | |
1517 | spikes2(torso,"Medium blue") | |
1518 | block(blade5,i,{"Medium blue", "Light blue", "White", "Tr. Blue"}) | |
1519 | wait() | |
1520 | end | |
1521 | rw.C0 = rightfight | |
1522 | lw.C0 = leftfight | |
1523 | bv:remove() | |
1524 | bav:remove() | |
1525 | neck.C1 = neor | |
1526 | weaponweld.C0 = CFrame.new(0,0,0) | |
1527 | attacking = false | |
1528 | end | |
1529 | if script.Parent.className ~= "HopperBin" then | |
1530 | local h = Instance.new("HopperBin",me.Backpack) | |
1531 | h.Name = "SoulSword" | |
1532 | script.Parent = h | |
1533 | end | |
1534 | local bin = script.Parent | |
1535 | function sel(mouse) | |
1536 | neck.C1 = neor | |
1537 | if (selected == false) then | |
1538 | selectmotion() | |
1539 | end | |
1540 | mouse.Button1Down:connect(function() | |
1541 | if (attacking == false) then | |
1542 | att() | |
1543 | end | |
1544 | end) | |
1545 | mouse.KeyDown:connect(function(kuu) | |
1546 | local kai = kuu:lower() | |
1547 | if attacking == false then | |
1548 | if (kai == "q") then | |
1549 | spin() | |
1550 | elseif (kai == "e") then | |
1551 | att() | |
1552 | elseif (kai == "r") then | |
1553 | sprint() | |
1554 | elseif (kai == "l") then | |
1555 | stab() | |
1556 | elseif (kai == "t") then | |
1557 | attas() | |
1558 | elseif (kai == "z") then | |
1559 | masta() | |
1560 | elseif (kai == "y") then | |
1561 | spins() | |
1562 | elseif (kai == "g") then | |
1563 | combo() | |
1564 | elseif (kai == "p") then | |
1565 | rise() | |
1566 | elseif (kai == "j") then | |
1567 | sprint2() | |
1568 | elseif (kai == "h") then | |
1569 | run() | |
1570 | elseif (kai == "f") then | |
1571 | rush() | |
1572 | end | |
1573 | end | |
1574 | end) | |
1575 | while selected do | |
1576 | wait(0.8) | |
1577 | local k = math.random(1,5) | |
1578 | if k == 1 then | |
1579 | if hum.Health < 50 then | |
1580 | for i=1, math.random(4,24) do | |
1581 | wait(0.1) | |
1582 | local col = healcols[math.random(1,#healcols)] | |
1583 | local sa = math.random(30,90)/100 | |
1584 | local p = Instance.new("Part") | |
1585 | prop(p,me.Character,false,0.1,0.05,1,1,1,col,false,"Symmetric") | |
1586 | p.CFrame = CFrame.new(torso.Position) * CFrame.Angles(math.random(-320,320)/100,math.random(-320,320)/100,math.random(-320,320)/100) * CFrame.new(0,0,math.random(4,12)) | |
1587 | local mes = Instance.new("SpecialMesh") | |
1588 | mesh(mes,p,sa,sa,sa,"Sphere") | |
1589 | local bg = Instance.new("BodyPosition",p) | |
1590 | bg.maxForce = Vector3.new(1000000,1000000,1000000) | |
1591 | bg.P = 100000 | |
1592 | bg.position = torso.Position | |
1593 | coroutine.resume(coroutine.create(function() | |
1594 | repeat | |
1595 | bg.position = torso.Position | |
1596 | wait() | |
1597 | until (p.Position - torso.Position).magnitude < 1.8 | |
1598 | hum.Health = hum.Health + 1.2 | |
1599 | p:remove() | |
1600 | end)) | |
1601 | end | |
1602 | end | |
1603 | end | |
1604 | end | |
1605 | end | |
1606 | function desel() | |
1607 | neck.C1 = neor | |
1608 | if selected then | |
1609 | deselmotion() | |
1610 | end | |
1611 | end | |
1612 | bin.Selected:connect(sel) | |
1613 | bin.Deselected:connect(desel) | |
1614 | print 'Hello world!' |