SHOW:
|
|
- or go back to the newest paste.
1 | -- This script has been converted to FE by iPxter | |
2 | - | wait(1) |
2 | + | |
3 | - | Player = game:GetService("Players").LocalPlayer |
3 | + | |
4 | if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end | |
5 | - | Mouse = Player:GetMouse() |
5 | + | local Player,Mouse,mouse,UserInputService,ContextActionService = owner |
6 | do | |
7 | print("FE Compatibility code by Mokiros | Translated to FE by iPxter") | |
8 | script.Parent = Player.Character | |
9 | ||
10 | --RemoteEvent for communicating | |
11 | local Event = Instance.new("RemoteEvent") | |
12 | Event.Name = "UserInput_Event" | |
13 | ||
14 | --Fake event to make stuff like Mouse.KeyDown work | |
15 | local function fakeEvent() | |
16 | local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end} | |
17 | t.connect = t.Connect | |
18 | return t | |
19 | end | |
20 | ||
21 | --Creating fake input objects with fake variables | |
22 | local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()} | |
23 | local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()} | |
24 | local CAS = {Actions={},BindAction=function(self,name,fun,touch,...) | |
25 | CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil | |
26 | end} | |
27 | --Merged 2 functions into one by checking amount of arguments | |
28 | CAS.UnbindAction = CAS.BindAction | |
29 | ||
30 | --This function will trigger the events that have been :Connect()'ed | |
31 | local function te(self,ev,...) | |
32 | local t = m[ev] | |
33 | if t and t._fakeEvent and t.Function then | |
34 | t.Function(...) | |
35 | end | |
36 | end | |
37 | m.TrigEvent = te | |
38 | UIS.TrigEvent = te | |
39 | ||
40 | Event.OnServerEvent:Connect(function(plr,io) | |
41 | if plr~=Player then return end | |
42 | if io.isMouse then | |
43 | m.Target = io.Target | |
44 | m.Hit = io.Hit | |
45 | else | |
46 | local b = io.UserInputState == Enum.UserInputState.Begin | |
47 | if io.UserInputType == Enum.UserInputType.MouseButton1 then | |
48 | return m:TrigEvent(b and "Button1Down" or "Button1Up") | |
49 | end | |
50 | for _,t in pairs(CAS.Actions) do | |
51 | for _,k in pairs(t.Keys) do | |
52 | if k==io.KeyCode then | |
53 | t.Function(t.Name,io.UserInputState,io) | |
54 | end | |
55 | end | |
56 | end | |
57 | m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower()) | |
58 | UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false) | |
59 | end | |
60 | end) | |
61 | Event.Parent = NLS([==[ | |
62 | local Player = game:GetService("Players").LocalPlayer | |
63 | local Event = script:WaitForChild("UserInput_Event") | |
64 | ||
65 | local UIS = game:GetService("UserInputService") | |
66 | local input = function(io,a) | |
67 | if a then return end | |
68 | --Since InputObject is a client-side instance, we create and pass table instead | |
69 | - | game:GetService("RunService").RenderStepped:wait() |
69 | + | Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState}) |
70 | end | |
71 | - | game:GetService("RunService").RenderStepped:wait() |
71 | + | UIS.InputBegan:Connect(input) |
72 | UIS.InputEnded:Connect(input) | |
73 | ||
74 | local Mouse = Player:GetMouse() | |
75 | local h,t | |
76 | --Give the server mouse data 30 times every second, but only if the values changed | |
77 | --If player is not moving their mouse, client won't fire events | |
78 | while wait(1/30) do | |
79 | if h~=Mouse.Hit or t~=Mouse.Target then | |
80 | h,t=Mouse.Hit,Mouse.Target | |
81 | Event:FireServer({isMouse=true,Target=t,Hit=h}) | |
82 | end | |
83 | end]==],Player.Character) | |
84 | Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS | |
85 | end | |
86 | local p = owner | |
87 | local char = p.Character | |
88 | local larm = char["Left Arm"] | |
89 | local rarm = char["Right Arm"] | |
90 | local lleg = char["Left Leg"] | |
91 | local rleg = char["Right Leg"] | |
92 | local hed = char.Head | |
93 | local torso = char.Torso | |
94 | local hum = char.Humanoid | |
95 | local cam = game.Workspace.CurrentCamera | |
96 | local root = char.HumanoidRootPart | |
97 | local deb = false | |
98 | local shot = 0 | |
99 | local debris=game:service"Debris" | |
100 | local l = game:GetService("Lighting") | |
101 | local rs = game:GetService("RunService").RenderStepped | |
102 | for i,v in pairs(char:children()) do | |
103 | if v:IsA("Shirt") and v:IsA("Pants") and v:IsA("Hat") and v:IsA("Accessory") then | |
104 | v:Remove() | |
105 | end | |
106 | - | game:GetService("RunService").RenderStepped:wait() |
106 | + | end |
107 | shirt = Instance.new("Shirt", char) | |
108 | shirt.Name = "Shirt" | |
109 | - | game:GetService("RunService").RenderStepped:wait() |
109 | + | pants = Instance.new("Pants", char) |
110 | pants.Name = "Pants" | |
111 | char.Shirt.ShirtTemplate = "rbxassetid://2276760724" | |
112 | char.Pants.PantsTemplate = "rbxassetid://770508500" | |
113 | - | game:GetService("RunService").RenderStepped:wait() |
113 | + | local Hair = Instance.new("Part", char) |
114 | Hair.Name = "Hair" | |
115 | Hair.CanCollide = false | |
116 | Hair.BrickColor = BrickColor.new("Institutional white") | |
117 | Hair.Transparency = 0 | |
118 | Hair.Material = "Plastic" | |
119 | - | Player = game:GetService("Players").LocalPlayer |
119 | + | Hair.Size = Vector3.new(1, 1, 2) |
120 | Hair.TopSurface = Enum.SurfaceType.Smooth | |
121 | Hair.BottomSurface = Enum.SurfaceType.Smooth | |
122 | ||
123 | local Weld = Instance.new("Weld", Hair) | |
124 | Weld.Part0 = hed | |
125 | Weld.Part1 = Hair | |
126 | Weld.C1 = CFrame.new(0, -.6, 0) | |
127 | Weld.C0 = CFrame.Angles(math.rad(0),math.rad(0),0) | |
128 | ||
129 | local M2 = Instance.new("SpecialMesh") | |
130 | M2.Parent = Hair | |
131 | M2.MeshId = "http://www.roblox.com/asset/?id=16627529" | |
132 | M2.TextureId = "http://www.roblox.com/asset/?id=16627494" | |
133 | M2.Scale = Vector3.new(1, 1, 1) | |
134 | CV="Maroon" | |
135 | Player = owner | |
136 | Character = Player.Character | |
137 | local txt = Instance.new("BillboardGui", Character) | |
138 | txt.Adornee = Character .Head | |
139 | txt.Name = "_status" | |
140 | txt.Size = UDim2.new(2, 0, 1.2, 0) | |
141 | txt.StudsOffset = Vector3.new(-9, 8, 0) | |
142 | local text = Instance.new("TextLabel", txt) | |
143 | text.Size = UDim2.new(10, 0, 7, 0) | |
144 | text.FontSize = "Size24" | |
145 | text.TextScaled = true | |
146 | text.TextTransparency = 0 | |
147 | text.BackgroundTransparency = 1 | |
148 | text.TextTransparency = 0 | |
149 | text.TextStrokeTransparency = 0 | |
150 | text.Font = "Bodoni" | |
151 | text.TextStrokeColor3 = Color3.new(0,0,0) | |
152 | ||
153 | v=Instance.new("Part") | |
154 | v.Name = "ColorBrick" | |
155 | v.Parent=Player.Character | |
156 | v.FormFactor="Symmetric" | |
157 | v.Anchored=true | |
158 | v.CanCollide=false | |
159 | v.BottomSurface="Smooth" | |
160 | v.TopSurface="Smooth" | |
161 | v.Size=Vector3.new(3,3,3) | |
162 | v.Transparency=1 | |
163 | v.CFrame=Character.Torso.CFrame | |
164 | v.BrickColor=BrickColor.new(CV) | |
165 | v.Transparency=1 | |
166 | text.TextColor3 = Color3.new(0,0,0) | |
167 | v.Shape="Block" | |
168 | text.Text = "MICHEAL THE PROJECT 0012" | |
169 | BTAUNT3 = Instance.new("Sound", torso) | |
170 | BTAUNT3.SoundId = "http://www.roblox.com/asset/?id=465622636" | |
171 | BTAUNT3.Volume = 10 | |
172 | BTAUNT3.Pitch = 1 | |
173 | BTAUNT3.Looped = true | |
174 | BTAUNT3.TimePosition = 0 | |
175 | local p = owner | |
176 | local char = p.Character | |
177 | local larm = char["Left Arm"] | |
178 | local rarm = char["Right Arm"] | |
179 | local lleg = char["Left Leg"] | |
180 | local rleg = char["Right Leg"] | |
181 | local hed = char.Head | |
182 | local torso = char.Torso | |
183 | local hum = char.Humanoid | |
184 | local cam = game.Workspace.CurrentCamera | |
185 | local root = char.HumanoidRootPart | |
186 | local rj = root.RootJoint | |
187 | local deb = false | |
188 | local shot = 0 | |
189 | local stanceToggle = "Idle1" | |
190 | local l = game:GetService("Lighting") | |
191 | local rs = game:GetService("RunService").RenderStepped | |
192 | local hb = game:GetService("RunService").Heartbeat | |
193 | local Stepped = game:GetService("RunService").Stepped | |
194 | hed.face.Texture = "rbxassetid://403870689" | |
195 | local shir = Instance.new("Shirt",char) | |
196 | local pan = Instance.new("Pants",char) | |
197 | shir.ShirtTemplate = "http://www.roblox.com/asset/?id=2276760724" | |
198 | pan.PantsTemplate = "http://www.roblox.com/asset/?id=770508500" | |
199 | spawn(function() | |
200 | while wait() do | |
201 | for i,v in pairs(char:GetChildren()) do | |
202 | if v:IsA('Part') then | |
203 | v.BrickColor = BrickColor.new("Really black") | |
204 | end | |
205 | end | |
206 | end | |
207 | end) | |
208 | ||
209 | wait(1) | |
210 | Player = owner | |
211 | Character = Player.Character | |
212 | m = Instance.new("Model", Character) | |
213 | Character.Humanoid.JumpPower = Character.Humanoid.JumpPower * 2 | |
214 | pcall(function() | |
215 | Character.RobloxUHood.Handle.Material = "Neon" | |
216 | Character.RobloxUHood.Handle.Mesh.TextureId = "rbxassetid://426317630" | |
217 | Character.RobloxUHood.Handle.Mesh.VertexColor = Vector3.new(1, 0, 0) | |
218 | end) | |
219 | local weldBetween = function(a, b) | |
220 | local weldd = Instance.new("ManualWeld") | |
221 | weldd.Part0 = a | |
222 | weldd.Part1 = b | |
223 | weldd.C0 = CFrame.new() | |
224 | weldd.C1 = b.CFrame:inverse() * a.CFrame | |
225 | weldd.Parent = a | |
226 | return weldd | |
227 | end | |
228 | it = Instance.new | |
229 | function nooutline(part) | |
230 | part.TopSurface, part.BottomSurface, part.LeftSurface, part.RightSurface, part.FrontSurface, part.BackSurface = 10, 10, 10, 10, 10, 10 | |
231 | end | |
232 | function part(formfactor, parent, material, reflectance, transparency, brickcolor, name, size) | |
233 | local fp = it("Part") | |
234 | fp.formFactor = formfactor | |
235 | fp.Parent = parent | |
236 | fp.Reflectance = reflectance | |
237 | fp.Transparency = transparency | |
238 | fp.CanCollide = false | |
239 | fp.Locked = true | |
240 | fp.BrickColor = BrickColor.new(tostring(brickcolor)) | |
241 | - | game:service("RunService").RenderStepped:wait() |
241 | + | |
242 | fp.Size = size | |
243 | fp.Position = Character.Torso.Position | |
244 | - | game:service("RunService").RenderStepped:wait() |
244 | + | |
245 | fp.Material = material | |
246 | fp:BreakJoints() | |
247 | return fp | |
248 | end | |
249 | function mesh(Mesh, part, meshtype, meshid, offset, scale) | |
250 | local mesh = it(Mesh) | |
251 | mesh.Parent = part | |
252 | if Mesh == "SpecialMesh" then | |
253 | mesh.MeshType = meshtype | |
254 | mesh.MeshId = meshid | |
255 | mesh.TextureId = "http://www.roblox.com/asset/?id=269748808" | |
256 | - | Plr = game.Players.LocalPlayer |
256 | + | |
257 | mesh.Offset = offset | |
258 | - | Mouse = Plr:GetMouse() |
258 | + | |
259 | return mesh | |
260 | end | |
261 | function weld(parent, part0, part1, c0, c1) | |
262 | local weld = it("Weld") | |
263 | weld.Parent = parent | |
264 | weld.Part0 = part0 | |
265 | weld.Part1 = part1 | |
266 | weld.C0 = c0 | |
267 | weld.C1 = c1 | |
268 | return weld | |
269 | end | |
270 | Character["Right Arm"].Transparency = 1 | |
271 | m.ChildAdded:connect(function(p) | |
272 | if p:IsA("Part") then | |
273 | p.Transparency = 1 | |
274 | repeat | |
275 | game:GetService("RunService").Stepped:wait() | |
276 | p.Transparency = p.Transparency - 0.01 | |
277 | game:GetService("RunService").Stepped:wait() | |
278 | p.Transparency = p.Transparency + 0.005 | |
279 | wait() | |
280 | until p.Transparency <= 0 | |
281 | end | |
282 | end) | |
283 | Handle = part(Enum.FormFactor.Symmetric, m, Enum.Material.Neon, 0, 0, "Medium stone grey", "Handle", Vector3.new(0.200000003, 0.200000003, 0.200000003)) | |
284 | Handleweld = weld(m, Character["Right Arm"], Handle, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.0399861336, -0.0400176048, 0, 1, 0, 0, 0, 0.999999881, 0, 0, 0, 1)) | |
285 | Arm = part(Enum.FormFactor.Symmetric, m, Enum.Material.Neon, 0, 0, "Black", "Arm", Vector3.new(1, 2, 1)) | |
286 | Armweld = weld(m, Handle, Arm, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.109999657, -0.0488853455, 4.76837158E-6, 1, 0, 0, 0, 1, 0, 0, 0, 1)) | |
287 | mesh("SpecialMesh", Arm, Enum.MeshType.FileMesh, "rbxassetid://33308774", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1)) | |
288 | wait(0.3) | |
289 | Claw = part(Enum.FormFactor.Plate, m, Enum.Material.Neon, 0.10000000149012, 0, "Mid gray", "Claw", Vector3.new(1, 1, 2)) | |
290 | Clawweld = weld(m, Handle, Claw, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.142930031, -0.0899963379, -1.43707323, 0.965925932, 0.258819073, 0, 0, 0, 1, 0.258819073, -0.965925932, 0)) | |
291 | mesh("SpecialMesh", Claw, Enum.MeshType.FileMesh, "http://www.roblox.com/asset/?id=10681506", Vector3.new(0, 0, 0), Vector3.new(1, 1, 0.899999976)) | |
292 | wait(0.3) | |
293 | Detail = part(Enum.FormFactor.Plate, m, Enum.Material.Neon, 0, 0, "Black", "Detail", Vector3.new(0.200000003, 0.200000048, 0.399999976)) | |
294 | Detailweld = weld(m, Handle, Detail, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.667227745, 0.135678291, -0.0999965668, 0.866025388, -0.5, 0, 0.5, 0.866025388, 0, 0, 0, 1)) | |
295 | mesh("SpecialMesh", Detail, Enum.MeshType.FileMesh, "http://www.roblox.com/asset/?id=1033714", Vector3.new(0, 0, 0), Vector3.new(0.300000012, 1.20000005, 0.300000012)) | |
296 | for i, v in pairs(m:children("")) do | |
297 | if v:IsA("Part") and v.Name ~= "Handle" then | |
298 | pe = Instance.new("ParticleEmitter", v) | |
299 | pe.Color = ColorSequence.new(Color3.new(0.00392156862745098, 0.00392156862745098, 0.00392156862745098), Color3.new(1, 0.00392156862745098, 0.00392156862745098)) | |
300 | pe.Lifetime = NumberRange.new(0.3) | |
301 | pe.RotSpeed = NumberRange.new(100) | |
302 | pe.Rotation = NumberRange.new(100) | |
303 | pe.Rate = 200 | |
304 | pe.LightEmission = 0.1 | |
305 | pe.Size = NumberSequence.new(0.4) | |
306 | pe.Texture = "http://www.roblox.com/asset/?id=246689799" | |
307 | pe.Transparency = NumberSequence.new(0.3) | |
308 | pe.VelocitySpread = 50 | |
309 | pe.Speed = NumberRange.new(1.5) | |
310 | spawn(function() | |
311 | while true do | |
312 | game:GetService("RunService").Stepped:wait() | |
313 | for i = 1, 255 do | |
314 | v.Mesh.VertexColor = Vector3.new(i / 255 / 2, 0.00392156862745098, 0.00392156862745098) | |
315 | game:GetService("RunService").Stepped:wait() | |
316 | end | |
317 | for i = 1, 255 do | |
318 | v.Mesh.VertexColor = Vector3.new((1.003921568627451 - i / 255) / 2, 0.00392156862745098, 0.00392156862745098) | |
319 | game:GetService("RunService").Stepped:wait() | |
320 | end | |
321 | end | |
322 | end) | |
323 | end | |
324 | end | |
325 | Player = owner | |
326 | Character = Player.Character | |
327 | Character.Animate:Destroy() | |
328 | PlayerGui = Player.PlayerGui | |
329 | Backpack = Player.Backpack | |
330 | Torso = Character.Torso | |
331 | Head = Character.Head | |
332 | Humanoid = Character.Humanoid | |
333 | LeftArm = Character["Left Arm"] | |
334 | LeftLeg = Character["Left Leg"] | |
335 | RightArm = Character["Right Arm"] | |
336 | RightLeg = Character["Right Leg"] | |
337 | LS = Torso["Left Shoulder"] | |
338 | LH = Torso["Left Hip"] | |
339 | RS = Torso["Right Shoulder"] | |
340 | RH = Torso["Right Hip"] | |
341 | Neck = Torso.Neck | |
342 | it = Instance.new | |
343 | vt = Vector3.new | |
344 | cf = CFrame.new | |
345 | euler = CFrame.fromEulerAnglesXYZ | |
346 | angles = CFrame.Angles | |
347 | necko = cf(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0) | |
348 | necko2 = cf(0, -0.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0) | |
349 | LHC0 = cf(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0) | |
350 | LHC1 = cf(-0.5, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0) | |
351 | RHC0 = cf(1, -1, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0) | |
352 | RHC1 = cf(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0) | |
353 | RootPart = Character.HumanoidRootPart | |
354 | RootJoint = RootPart.RootJoint | |
355 | RootCF = euler(-1.57, 0, 3.14) | |
356 | attack = false | |
357 | attackdebounce = false | |
358 | MMouse = nil | |
359 | combo = 0 | |
360 | local Anim = "Idle" | |
361 | player = nil | |
362 | RSH, LSH = nil, nil | |
363 | RW, LW = Instance.new("Weld"), Instance.new("Weld") | |
364 | RW.Name = "Right Shoulder" | |
365 | LW.Name = "Left Shoulder" | |
366 | LH = Torso["Left Hip"] | |
367 | RH = Torso["Right Hip"] | |
368 | function clerp(a, b, t) | |
369 | local qa = { | |
370 | QuaternionFromCFrame(a) | |
371 | } | |
372 | local qb = { | |
373 | QuaternionFromCFrame(b) | |
374 | } | |
375 | local ax, ay, az = a.x, a.y, a.z | |
376 | local bx, by, bz = b.x, b.y, b.z | |
377 | local _t = 1 - t | |
378 | return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t)) | |
379 | end | |
380 | function QuaternionFromCFrame(cf) | |
381 | local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() | |
382 | local trace = m00 + m11 + m22 | |
383 | if trace > 0 then | |
384 | local s = math.sqrt(1 + trace) | |
385 | local recip = 0.5 / s | |
386 | return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5 | |
387 | else | |
388 | local i = 0 | |
389 | if m00 < m11 then | |
390 | i = 1 | |
391 | end | |
392 | if m22 > (i == 0 and m00 or m11) then | |
393 | i = 2 | |
394 | end | |
395 | if i == 0 then | |
396 | local s = math.sqrt(m00 - m11 - m22 + 1) | |
397 | local recip = 0.5 / s | |
398 | return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip | |
399 | elseif i == 1 then | |
400 | local s = math.sqrt(m11 - m22 - m00 + 1) | |
401 | local recip = 0.5 / s | |
402 | return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip | |
403 | elseif i == 2 then | |
404 | local s = math.sqrt(m22 - m00 - m11 + 1) | |
405 | local recip = 0.5 / s | |
406 | return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip | |
407 | end | |
408 | end | |
409 | end | |
410 | function QuaternionToCFrame(px, py, pz, x, y, z, w) | |
411 | local xs, ys, zs = x + x, y + y, z + z | |
412 | local wx, wy, wz = w * xs, w * ys, w * zs | |
413 | local xx = x * xs | |
414 | local xy = x * ys | |
415 | local xz = x * zs | |
416 | local yy = y * ys | |
417 | local yz = y * zs | |
418 | local zz = z * zs | |
419 | 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)) | |
420 | end | |
421 | function QuaternionSlerp(a, b, t) | |
422 | local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4] | |
423 | local startInterp, finishInterp | |
424 | if cosTheta >= 1.0E-4 then | |
425 | if 1 - cosTheta > 1.0E-4 then | |
426 | local theta = math.acos(cosTheta) | |
427 | local invSinTheta = 1 / math.sin(theta) | |
428 | startInterp = math.sin((1 - t) * theta) * invSinTheta | |
429 | finishInterp = math.sin(t * theta) * invSinTheta | |
430 | else | |
431 | startInterp = 1 - t | |
432 | finishInterp = t | |
433 | end | |
434 | elseif 1 + cosTheta > 1.0E-4 then | |
435 | local theta = math.acos(-cosTheta) | |
436 | local invSinTheta = 1 / math.sin(theta) | |
437 | startInterp = math.sin((t - 1) * theta) * invSinTheta | |
438 | finishInterp = math.sin(t * theta) * invSinTheta | |
439 | else | |
440 | startInterp = t - 1 | |
441 | finishInterp = t | |
442 | end | |
443 | 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 | |
444 | end | |
445 | function swait(num) | |
446 | if num == 0 or num == nil then | |
447 | game:service("RunService").Stepped:wait() | |
448 | else | |
449 | for i = 0, num do | |
450 | game:service("RunService").Stepped:wait() | |
451 | end | |
452 | end | |
453 | end | |
454 | function weld(parent, part0, part1, c0) | |
455 | local weld = it("Weld") | |
456 | weld.Parent = parent | |
457 | weld.Part0 = part0 | |
458 | weld.Part1 = part1 | |
459 | weld.C0 = c0 | |
460 | return weld | |
461 | end | |
462 | Plr = owner | |
463 | P = Plr.Character | |
464 | ch = P | |
465 | RSH = ch.Torso["Right Shoulder"] | |
466 | LSH = ch.Torso["Left Shoulder"] | |
467 | RF, LF = Instance.new("Weld"), Instance.new("Weld") | |
468 | RSH.Parent = nil | |
469 | LSH.Parent = nil | |
470 | RW.Name = "Right Shoulder" | |
471 | RW.Part0 = ch.Torso | |
472 | RW.C0 = cf(1.5, 0.5, 0) | |
473 | RW.C1 = cf(0, 0.5, 0) | |
474 | RW.Part1 = ch["Right Arm"] | |
475 | RW.Parent = P.Torso | |
476 | LW.Name = "Left Shoulder" | |
477 | LW.Part0 = ch.Torso | |
478 | LW.C0 = cf(-1.5, 0.5, 0) | |
479 | LW.C1 = cf(0, 0.5, 0) | |
480 | LW.Part1 = ch["Left Arm"] | |
481 | LW.Parent = P.Torso | |
482 | RF.Name = "Right Hip" | |
483 | RF.Part0 = ch.Torso | |
484 | RF.C0 = cf(0.5, -1.5, 0) | |
485 | RF.C1 = cf(0, 0.5, 0) | |
486 | RF.Part1 = ch["Right Leg"] | |
487 | RF.Parent = P.Torso | |
488 | LF.Name = "Left Hip" | |
489 | LF.Part0 = ch.Torso | |
490 | LF.C0 = cf(-0.5, -1.5, 0) | |
491 | LF.C1 = cf(0, 0.5, 0) | |
492 | LF.Part1 = ch["Left Leg"] | |
493 | LF.Parent = P.Torso | |
494 | RFC0 = RF.C0 | |
495 | LFC0 = LF.C0 | |
496 | local Rads = 14 | |
497 | local sine = 0 | |
498 | local Arms = true | |
499 | local Legs = true | |
500 | w = Instance.new("Weld", P) | |
501 | w.Part1 = nil | |
502 | w.Part0 = P["Right Arm"] | |
503 | - | game:GetService("RunService").RenderStepped:wait() |
503 | + | |
504 | grabbing = false | |
505 | function Walk() | |
506 | P.Humanoid.WalkSpeed = 32 | |
507 | - | game:GetService("RunService").RenderStepped:wait() |
507 | + | |
508 | if w.Part1 == nil then | |
509 | RW.C0 = clerp(RW.C0, cf(1.5, 0.5, 0) * euler(-math.rad(55) - math.sin(sine / 3) / 5, 0, math.pi / 16), 0.3) | |
510 | elseif w.Part1 ~= nil or grabbing == true then | |
511 | RW.C0 = clerp(RW.C0, cf(1.5, 0.5, 0) * euler(math.rad(110), -math.sin(sine / 3) / 5, 0, math.pi / 16), 0.3) | |
512 | end | |
513 | LW.C0 = clerp(LW.C0, cf(math.sin(sine / 3) / 5 - 1, 0.5, -0.5) * euler(0, math.rad(45) - math.sin(sine / 3) / 5, math.pi / 2), 0.3) | |
514 | RootJoint.C0 = clerp(RootJoint.C0, RootCF, 0.3) | |
515 | end | |
516 | if Legs then | |
517 | RF.C0 = clerp(RF.C0, cf(0.5, -1.5, math.sin(sine / 3) * 0.4) * euler(-math.sin(sine / 3), 0, 0), 0.5) | |
518 | LF.C0 = clerp(LF.C0, cf(-0.5, -1.5, math.sin(-sine / 3) * 0.4) * euler(-math.sin(-sine / 3), 0, 0), 0.5) | |
519 | end | |
520 | sine = sine + math.rad(Rads) | |
521 | Torso.Neck.C0 = clerp(Torso.Neck.C0, necko * euler(math.rad(15), 0, 0), 0.3) | |
522 | end | |
523 | function Idle() | |
524 | if Arms then | |
525 | if w.Part1 == nil then | |
526 | RW.C0 = clerp(RW.C0, cf(1.5, 0.5 + math.sin(sine / 3) / 10 / 1.6666666666666667, 0) * euler(0, 0, math.pi / 32 + math.sin(tick()) * 0.05 + math.sin(sine / 3) / 10 / 1.6666666666666667), 0.3) | |
527 | elseif w.Part1 ~= nil or grabbing == true then | |
528 | RW.C0 = clerp(RW.C0, cf(1.5, 0.5 + math.sin(sine / 3) / 10 / 1.6666666666666667, 0) * euler(math.rad(110), 0, math.pi / 32 + math.sin(tick()) * 0.05 + math.sin(sine / 3) / 10 / 1.6666666666666667), 0.3) | |
529 | end | |
530 | LW.C0 = clerp(LW.C0, cf(-1.5, 0.5 + math.sin(sine / 3) / 10 / 1.6666666666666667, 0) * euler(0, 0, -math.pi / 32 - math.sin(tick()) * 0.05 - math.sin(sine / 3) / 10 / 1.6666666666666667), 0.3) | |
531 | RootJoint.C0 = clerp(RootJoint.C0, RootCF, 0.3) | |
532 | end | |
533 | if Legs then | |
534 | RF.C0 = clerp(RF.C0, RFC0 * cf(0, 0, 0.2) * euler(-math.rad(15), -math.rad(15), 0), 0.3) | |
535 | LF.C0 = clerp(LF.C0, LFC0 * cf(0, 0, -0.2) * euler(math.rad(15), math.rad(15), 0), 0.3) | |
536 | end | |
537 | sine = sine + math.rad(Rads) | |
538 | Torso.Neck.C0 = clerp(Torso.Neck.C0, necko * CFrame.new(0, -math.sin(sine / 3) / 10 / 1.6666666666666667, -math.sin(sine / 3) / 10 / 1.6666666666666667) * euler(math.sin(sine / 3) / 15 + math.rad(5), 0, 0), 0.3) | |
539 | end | |
540 | function Sound(ID, Par, Pitch, Vol) | |
541 | local Sound = Instance.new("Sound", Par) | |
542 | Sound.SoundId = "http://www.roblox.com/asset/?id=" .. tostring(ID) | |
543 | game:GetService("ContentProvider"):Preload("http://www.roblox.com/asset/?id=" .. tostring(ID)) | |
544 | Sound.Pitch = Pitch | |
545 | Sound.Volume = Vol | |
546 | game.Debris:AddItem(Sound, Sound.TimeLength) | |
547 | Sound:Play() | |
548 | end | |
549 | local Jumping = false | |
550 | local Jumpi = 0 | |
551 | - | game:GetService("RunService").RenderStepped:wait() |
551 | + | |
552 | if Jumping == true then | |
553 | Jumpi = Jumpi + 1 | |
554 | if Arms then | |
555 | - | game:GetService("RunService").RenderStepped:wait() |
555 | + | |
556 | LW.C0 = clerp(LW.C0, cf(-1, 1, 0) * euler(0, 0, -math.pi / 2 - math.pi / 4), 0.3) | |
557 | RootJoint.C0 = clerp(RootJoint.C0, RootCF * euler(math.pi / 16, 0, 0), 0.3) | |
558 | end | |
559 | if Legs then | |
560 | RF.C0 = clerp(RF.C0, RFC0 * cf(0, 0, 0) * euler(0, 0, 0), 0.3) | |
561 | LF.C0 = clerp(LF.C0, LFC0 * cf(0, 0.5, -0.6) * euler(0, 0, 0), 0.3) | |
562 | end | |
563 | Torso.Neck.C0 = clerp(Torso.Neck.C0, necko * euler(0, 0, 0), 0.5) | |
564 | if Jumpi == 10 then | |
565 | Jumping = false | |
566 | Jumpi = 0 | |
567 | end | |
568 | elseif (Vector3.new(P.Torso.Velocity.x, 0, P.Torso.Velocity.z)).magnitude < 3 then | |
569 | Idle() | |
570 | elseif (Vector3.new(P.Torso.Velocity.x, 0, P.Torso.Velocity.z)).magnitude > 3 then | |
571 | Walk() | |
572 | end | |
573 | end) | |
574 | local AttArm = 0 | |
575 | local AttLeg = 0 | |
576 | local Enabled = true | |
577 | function hwait() | |
578 | game:GetService("RunService").Heartbeat:wait() | |
579 | end | |
580 | function Damage(Dmg, Part) | |
581 | local Child = Part | |
582 | local Par = Part.Parent | |
583 | if Par == workspace then | |
584 | else | |
585 | repeat | |
586 | Child = Par | |
587 | Par = Par.Parent | |
588 | until Par == workspace | |
589 | end | |
590 | local Found = false | |
591 | function Search(c) | |
592 | coroutine.resume(coroutine.create(function() | |
593 | for i, v in pairs(c:GetChildren()) do | |
594 | if v:IsA("Humanoid") then | |
595 | for i = 1, 10 do | |
596 | v.Health = v.Health - Dmg / 10 | |
597 | Found = true | |
598 | end | |
599 | end | |
600 | Search(v) | |
601 | end | |
602 | end)) | |
603 | end | |
604 | if Child ~= P then | |
605 | Search(Child) | |
606 | end | |
607 | if Found == false then | |
608 | return false | |
609 | else | |
610 | return true | |
611 | end | |
612 | end | |
613 | P.Humanoid.Jumping:connect(function() | |
614 | if Arms == false and Legs == false then | |
615 | else | |
616 | Jumping = true | |
617 | end | |
618 | end) | |
619 | Mouse.KeyDown:connect(function(key) | |
620 | if key:lower() == "z" and Enabled == true then | |
621 | Legs = false | |
622 | Enabled = false | |
623 | do | |
624 | local Hit = false | |
625 | AttLeg = AttLeg + 1 | |
626 | Sound(175024455, P.Torso, 1, 0.8) | |
627 | if AttLeg % 2 ~= 0 then | |
628 | P["Right Leg"].Touched:connect(function(part) | |
629 | if Hit == false then | |
630 | local Hitz = Damage(10, part) | |
631 | if Hitz == true then | |
632 | local Velo = Instance.new("BodyVelocity", part) | |
633 | Velo.maxForce = Vector3.new(math.huge, math.huge, math.huge) | |
634 | Velo.velocity = P.Torso.CFrame.lookVector * 35 | |
635 | game.Debris:AddItem(Velo, 0.1) | |
636 | Hit = true | |
637 | end | |
638 | end | |
639 | end) | |
640 | for i = 0, 1, 0.2 do | |
641 | hwait() | |
642 | if Jumping == false then | |
643 | RW.C0 = clerp(RW.C0, cf(1.5, 0.5, -0.5) * euler(0, 0, math.pi / 16), 0.6) | |
644 | LW.C0 = clerp(LW.C0, cf(-1.5, 0.5, 0) * euler(0, 0, -math.pi / 16), 0.6) | |
645 | end | |
646 | RootJoint.C0 = clerp(RootJoint.C0, RootCF * euler(-math.pi / 8, 0, math.pi / 4), 0.6) | |
647 | RF.C0 = clerp(RF.C0, cf(0.5, -1.5, -0.5) * euler(math.pi / 2, 0, 0), 0.6) | |
648 | LF.C0 = clerp(LF.C0, cf(-0.5, -1.5, 0) * euler(-math.pi / 8, 0, 0), 0.6) | |
649 | Torso.Neck.C0 = clerp(Torso.Neck.C0, necko * euler(math.pi / 8, 0, 0), 0.6) | |
650 | end | |
651 | else | |
652 | P["Left Leg"].Touched:connect(function(part) | |
653 | if Hit == false then | |
654 | local Hitz = Damage(10, part) | |
655 | if Hitz == true then | |
656 | local Velo = Instance.new("BodyVelocity", part) | |
657 | Velo.maxForce = Vector3.new(math.huge, math.huge, math.huge) | |
658 | Velo.velocity = P.Torso.CFrame.lookVector * 34 | |
659 | game.Debris:AddItem(Velo, 0.1) | |
660 | Hit = true | |
661 | end | |
662 | end | |
663 | end) | |
664 | for i = 0, 1, 0.2 do | |
665 | hwait() | |
666 | if Jumping == false then | |
667 | RW.C0 = clerp(RW.C0, cf(1.5, 0.5, -0.5) * euler(0, 0, math.pi / 16), 0.6) | |
668 | LW.C0 = clerp(LW.C0, cf(-1.5, 0.5, 0) * euler(0, 0, -math.pi / 16), 0.6) | |
669 | end | |
670 | RootJoint.C0 = clerp(RootJoint.C0, RootCF * euler(-math.pi / 8, 0, -math.pi / 4), 0.6) | |
671 | RF.C0 = clerp(RF.C0, cf(0.5, -1.5, 0) * euler(-math.pi / 8, 0, 0), 0.6) | |
672 | LF.C0 = clerp(LF.C0, cf(-0.5, -1.5, -0.5) * euler(math.pi / 2, 0, 0), 0.6) | |
673 | Torso.Neck.C0 = clerp(Torso.Neck.C0, necko * euler(math.pi / 8, 0, 0), 0.6) | |
674 | end | |
675 | end | |
676 | Legs = true | |
677 | Hit = true | |
678 | wait(0.2) | |
679 | Enabled = true | |
680 | end | |
681 | end | |
682 | end) | |
683 | cooldown = false | |
684 | function Spike(pos, times) | |
685 | if cooldown == false then | |
686 | spawn(function() | |
687 | cooldown = true | |
688 | wait(10) | |
689 | cooldown = false | |
690 | end) | |
691 | do | |
692 | local p = Instance.new("Part", workspace) | |
693 | p.Anchored = true | |
694 | p.BrickColor = BrickColor.new("Really black") | |
695 | p.Material = "Granite" | |
696 | p.Size = Vector3.new(3, 8, 3) | |
697 | p.CFrame = pos * CFrame.new(0, -8, 0) | |
698 | local m = Instance.new("SpecialMesh", p) | |
699 | m.MeshType = "FileMesh" | |
700 | m.Scale = p.Size | |
701 | m.MeshId = "http://www.roblox.com/asset/?id=1323306" | |
702 | m.TextureId = "http://www.roblox.com/asset/?id=269748808" | |
703 | Sound(289842971, p, 1, 0.5) | |
704 | spawn(function() | |
705 | while true do | |
706 | for i = 1, 255 do | |
707 | m.VertexColor = Vector3.new(i / 255, 0.00392156862745098, 0.00392156862745098) | |
708 | game:GetService("RunService").Stepped:wait() | |
709 | end | |
710 | for i = 1, 255 do | |
711 | m.VertexColor = Vector3.new(1.003921568627451 - i / 255, 0.00392156862745098, 0.00392156862745098) | |
712 | game:GetService("RunService").Stepped:wait() | |
713 | end | |
714 | end | |
715 | end) | |
716 | p.Touched:connect(function(op) | |
717 | if op.Parent.Name ~= P.Name and op.Parent:FindFirstChild("Humanoid") then | |
718 | op.Parent.Humanoid:TakeDamage(10) | |
719 | end | |
720 | end) | |
721 | game.Debris:AddItem(p, times) | |
722 | local initialpc = p.CFrame | |
723 | for i = 1, 100 do | |
724 | wait() | |
725 | p.CFrame = p.CFrame:lerp(initialpc * CFrame.new(0, 8, 0), i / 100) | |
726 | end | |
727 | end | |
728 | end | |
729 | end | |
730 | cooldowntwo = false | |
731 | function LesserSpike(pos, times) | |
732 | if cooldowntwo == false then | |
733 | spawn(function() | |
734 | cooldowntwo = true | |
735 | wait(3) | |
736 | cooldowntwo = false | |
737 | end) | |
738 | for i = 1, 5 do | |
739 | do | |
740 | local p = Instance.new("Part", workspace) | |
741 | p.Anchored = true | |
742 | p.BrickColor = BrickColor.new("Really black") | |
743 | p.Material = "Granite" | |
744 | p.Size = Vector3.new(1.5, 4, 1.5) | |
745 | p.CFrame = pos * CFrame.new(0, -8, 0) * CFrame.new(0, 0, -3.5 * i) | |
746 | local m = Instance.new("SpecialMesh", p) | |
747 | m.MeshType = "FileMesh" | |
748 | m.Scale = p.Size | |
749 | m.MeshId = "http://www.roblox.com/asset/?id=1323306" | |
750 | m.TextureId = "http://www.roblox.com/asset/?id=269748808" | |
751 | Sound(289842971, p, 1, 0.5) | |
752 | spawn(function() | |
753 | while true do | |
754 | for i = 1, 255 do | |
755 | m.VertexColor = Vector3.new(i / 255, 0.00392156862745098, 0.00392156862745098) | |
756 | game:GetService("RunService").Stepped:wait() | |
757 | end | |
758 | for i = 1, 255 do | |
759 | m.VertexColor = Vector3.new(1.003921568627451 - i / 255, 0.00392156862745098, 0.00392156862745098) | |
760 | game:GetService("RunService").Stepped:wait() | |
761 | end | |
762 | end | |
763 | end) | |
764 | p.Touched:connect(function(op) | |
765 | if op.Parent.Name ~= P.Name and op.Parent:FindFirstChild("Humanoid") then | |
766 | op.Parent.Humanoid:TakeDamage(10) | |
767 | end | |
768 | end) | |
769 | game.Debris:AddItem(p, times) | |
770 | local initialpc = p.CFrame | |
771 | spawn(function() | |
772 | for i = 1, 100 do | |
773 | wait() | |
774 | p.CFrame = p.CFrame:lerp(initialpc * CFrame.new(0, 8, 0), i / 100) | |
775 | end | |
776 | end) | |
777 | end | |
778 | end | |
779 | end | |
780 | end | |
781 | Mouse.KeyDown:connect(function(k) | |
782 | if k == "v" then | |
783 | spawn(function() | |
784 | RW.C0 = clerp(RW.C0, cf(1.5, 0.5, 0) * euler(math.pi / 2, 0, 0), 1) | |
785 | for i = 0, 1, 0.05 do | |
786 | hwait() | |
787 | RW.C0 = clerp(RW.C0, cf(1.5, 0.5, -0.5) * euler(-math.pi / 8, 0, 0), 0.3) | |
788 | LW.C0 = clerp(LW.C0, cf(-1.5, 0.5, 0) * euler(-math.pi / 8, 0, math.pi / 16), 0.3) | |
789 | RootJoint.C0 = clerp(RootJoint.C0, RootCF * CFrame.new(0, -1, -1) * euler(math.pi / 8, 0, 0), 0.3) | |
790 | RF.C0 = clerp(RF.C0, cf(0.5, -1.5, 0) * euler(-math.pi / 8, 0, 0), 0.3) | |
791 | LF.C0 = clerp(LF.C0, cf(-0.5, -1.5, 0) * euler(-math.pi / 8, 0, 0), 0.3) | |
792 | Torso.Neck.C0 = clerp(Torso.Neck.C0, necko * euler(math.pi / 48, 0, 0), 0.3) | |
793 | end | |
794 | end) | |
795 | Spike(P.Torso.CFrame * CFrame.new(0, 0, -15), 5) | |
796 | elseif k == "x" then | |
797 | spawn(function() | |
798 | RW.C0 = clerp(RW.C0, cf(1.5, 0.5, 0) * euler(math.pi / 2, 0, 0), 1) | |
799 | for i = 0, 1, 0.2 do | |
800 | hwait() | |
801 | RW.C0 = clerp(RW.C0, cf(1.5, 0.5, -0.5) * euler(math.pi / 2, math.pi / 6, -math.pi / 8), 0.3) | |
802 | LW.C0 = clerp(LW.C0, cf(-1.5, 0.5, 0) * euler(0, 0, -math.pi / 16), 0.3) | |
803 | RootJoint.C0 = clerp(RootJoint.C0, RootCF * euler(math.pi / 32, 0, math.pi / 8), 0.3) | |
804 | RF.C0 = clerp(RF.C0, cf(0.5, -1.5, 0) * euler(0, 0, 0), 0.3) | |
805 | LF.C0 = clerp(LF.C0, cf(-0.5, -1.5, 0) * euler(0, 0, 0), 0.3) | |
806 | Torso.Neck.C0 = clerp(Torso.Neck.C0, necko * euler(-math.pi / 48, 0, 0), 0.3) | |
807 | end | |
808 | end) | |
809 | LesserSpike(P.Torso.CFrame * CFrame.new(0, 0, -5), 2) | |
810 | end | |
811 | end) | |
812 | cooldowng = false | |
813 | Mouse.KeyDown:connect(function(k) | |
814 | if k == "c" and cooldowng == false then | |
815 | coroutine.wrap(function() | |
816 | for i = 0, 1, 0.2 do | |
817 | hwait() | |
818 | RW.C0 = clerp(RW.C0, cf(1.5, 0.7, 0) * euler(0, 0, math.rad(55)), 0.3) | |
819 | LW.C0 = clerp(LW.C0, cf(-1.5, 0.7, 0) * euler(0, 0, -math.rad(55)), 0.3) | |
820 | RootJoint.C0 = clerp(RootJoint.C0, RootCF * euler(0, 0, 0), 0.3) | |
821 | RF.C0 = clerp(RF.C0, cf(0.5, -0.5, -1.5) * euler(0, 0, 0), 0.3) | |
822 | LF.C0 = clerp(LF.C0, cf(-0.5, -1.5, 0) * euler(0, 0, 0), 0.3) | |
823 | Torso.Neck.C0 = clerp(Torso.Neck.C0, necko * euler(0, 0, 0), 0.3) | |
824 | end | |
825 | for i = 0, 1, 0.2 do | |
826 | hwait() | |
827 | RW.C0 = clerp(RW.C0, cf(1.5, 0.5, 0) * euler(0, 0, math.rad(55)), 0.3) | |
828 | LW.C0 = clerp(LW.C0, cf(-1.5, 0.5, 0) * euler(0, 0, -math.rad(55)), 0.3) | |
829 | RootJoint.C0 = clerp(RootJoint.C0, RootCF * euler(0, 0, 0), 0.3) | |
830 | RF.C0 = clerp(RF.C0, cf(0.5, -1.5, 0) * euler(0, 0, 0), 0.3) | |
831 | LF.C0 = clerp(LF.C0, cf(-0.5, -1.5, 0) * euler(0, 0, 0), 0.3) | |
832 | Torso.Neck.C0 = clerp(Torso.Neck.C0, necko * euler(0, 0, 0), 0.3) | |
833 | end | |
834 | end)() | |
835 | spawn(function() | |
836 | cooldowng = true | |
837 | wait(5) | |
838 | cooldowng = false | |
839 | end) | |
840 | do | |
841 | local p = Instance.new("Part", workspace) | |
842 | p.Anchored = true | |
843 | p.CanCollide = false | |
844 | p.Size = Vector3.new(4, 4, 1) | |
845 | p.Transparency = 0 | |
846 | local m = Instance.new("SpecialMesh", p) | |
847 | m.MeshType = "FileMesh" | |
848 | m.Scale = p.Size | |
849 | m.MeshId = "http://www.roblox.com/asset/?id=3270017" | |
850 | local initpcf = P.Torso.CFrame * CFrame.new(0, -2.5, 0) * CFrame.Angles(math.rad(90), 0, 0) | |
851 | p.Touched:connect(function(op) | |
852 | if op.Parent.Name ~= P.Name and op.Parent:FindFirstChild("Humanoid") then | |
853 | op.Parent.Humanoid:TakeDamage(5) | |
854 | end | |
855 | end) | |
856 | spawn(function() | |
857 | repeat | |
858 | wait() | |
859 | p.Size = p.Size + Vector3.new(0.5, 0.5, 0) | |
860 | p.CFrame = initpcf | |
861 | p.Transparency = p.Transparency + 0.01 | |
862 | m.Scale = p.Size | |
863 | until p.Transparency >= 1 | |
864 | p:Remove() | |
865 | end) | |
866 | end | |
867 | end | |
868 | end) | |
869 | grabbing = false | |
870 | Mouse.KeyDown:connect(function(k) | |
871 | if k == "f" then | |
872 | local tp = P.Torso.CFrame.p | |
873 | local rayforward = Ray.new(tp, tp - Vector3.new(0, 0, -1000)) | |
874 | local raybackward = Ray.new(tp, tp - Vector3.new(0, 0, 1000)) | |
875 | local rayleft = Ray.new(tp, tp - Vector3.new(-1000, 0, 0)) | |
876 | local rayright = Ray.new(tp, tp - Vector3.new(1000, 0, 0)) | |
877 | local hit, pos = workspace:FindPartOnRay(rayforward, P) | |
878 | local hit1, pos1 = workspace:FindPartOnRay(raybackward, P) | |
879 | local hit2, pos2 = workspace:FindPartOnRay(rayleft, P) | |
880 | local hit3, pos3 = workspace:FindPartOnRay(rayright, P) | |
881 | if hit ~= nil and (tp - pos).magnitude <= 2 then | |
882 | P.Humanoid.Sit = true | |
883 | wait() | |
884 | P.Humanoid.Jump = true | |
885 | end | |
886 | if hit1 ~= nil and (tp - pos1).magnitude <= 2 then | |
887 | P.Humanoid.Sit = true | |
888 | wait() | |
889 | P.Humanoid.Jump = true | |
890 | end | |
891 | if hit2 ~= nil and (tp - pos2).magnitude <= 2 then | |
892 | P.Humanoid.Sit = true | |
893 | wait() | |
894 | P.Humanoid.Jump = true | |
895 | end | |
896 | if hit3 ~= nil and (tp - pos3).magnitude <= 2 then | |
897 | P.Humanoid.Sit = true | |
898 | wait() | |
899 | P.Humanoid.Jump = true | |
900 | end | |
901 | elseif k == "e" then | |
902 | if w.Part1 == nil then | |
903 | spawn(function() | |
904 | grabbing = true | |
905 | wait(0.5) | |
906 | grabbing = false | |
907 | end) | |
908 | P["Right Arm"].Touched:connect(function(op) | |
909 | if grabbing == true and op ~= nil and op.Parent:FindFirstChild("Humanoid") then | |
910 | w.Part1 = op.Parent.Head | |
911 | op.Parent.Humanoid.PlatformStand = true | |
912 | end | |
913 | end) | |
914 | elseif w.Part1 ~= nil then | |
915 | for i, v in pairs(m:children("")) do | |
916 | if v:IsA("Part") and v.Name ~= "Handle" then | |
917 | v.ParticleEmitter:Emit(200) | |
918 | end | |
919 | end | |
920 | w.Part1.Parent.Humanoid:TakeDamage(15) | |
921 | P.Humanoid.Health = P.Humanoid.Health + 15 | |
922 | w.Part1 = nil | |
923 | end | |
924 | end | |
925 | end) | |
926 | Mouse.Button1Down:connect(function() | |
927 | if Enabled == true then | |
928 | Enabled = false | |
929 | Arms = false | |
930 | do | |
931 | local Hit = false | |
932 | AttArm = AttArm + 1 | |
933 | P.Model.Handle.Touched:connect(function(part) | |
934 | if Hit == false then | |
935 | local Hitz = Damage(10, part) | |
936 | if Hitz == true then | |
937 | Hit = true | |
938 | end | |
939 | end | |
940 | end) | |
941 | P["Left Arm"].Touched:connect(function(part) | |
942 | if Hit == false then | |
943 | local Hitz = Damage(10, part) | |
944 | if Hitz == true then | |
945 | Hit = true | |
946 | end | |
947 | end | |
948 | end) | |
949 | Sound(220025675, P.Torso, 1, 1) | |
950 | if AttArm % 2 ~= 0 then | |
951 | RW.C0 = clerp(RW.C0, cf(1.5, 0.5, 0) * euler(math.pi / 2, 0, 0), 1) | |
952 | for i = 0, 1, 0.05 do | |
953 | hwait() | |
954 | RW.C0 = clerp(RW.C0, cf(1.5, 0.5, -0.5) * euler(math.pi / 2, math.pi / 6, -math.pi / 8), 0.3) | |
955 | LW.C0 = clerp(LW.C0, cf(-1.5, 0.5, 0) * euler(0, 0, -math.pi / 16), 0.3) | |
956 | RootJoint.C0 = clerp(RootJoint.C0, RootCF * euler(math.pi / 32, 0, math.pi / 8), 0.3) | |
957 | RF.C0 = clerp(RF.C0, cf(0.5, -1.5, 0) * euler(0, 0, 0), 0.3) | |
958 | LF.C0 = clerp(LF.C0, cf(-0.5, -1.5, 0) * euler(0, 0, 0), 0.3) | |
959 | Torso.Neck.C0 = clerp(Torso.Neck.C0, necko * euler(-math.pi / 48, 0, 0), 0.3) | |
960 | end | |
961 | else | |
962 | LW.C0 = clerp(LW.C0, cf(-1.5, 0.5, 0) * euler(math.pi / 2, 0, 0), 1) | |
963 | for i = 0, 1, 0.2 do | |
964 | hwait() | |
965 | RW.C0 = clerp(RW.C0, cf(1.5, 0.5, 0) * euler(0, 0, math.pi / 16), 0.3) | |
966 | LW.C0 = clerp(LW.C0, cf(-1.5, 0.5, -0.5) * euler(math.pi / 2, -math.pi / 6, math.pi / 8), 0.3) | |
967 | RootJoint.C0 = clerp(RootJoint.C0, RootCF * euler(math.pi / 32, 0, -math.pi / 8), 0.3) | |
968 | RF.C0 = clerp(RF.C0, cf(0.5, -1.5, 0) * euler(0, 0, 0), 0.3) | |
969 | LF.C0 = clerp(LF.C0, cf(-0.5, -1.5, 0) * euler(0, 0, 0), 0.3) | |
970 | Torso.Neck.C0 = clerp(Torso.Neck.C0, necko * euler(-math.pi / 48, 0, 0), 0.3) | |
971 | end | |
972 | end | |
973 | Hit = true | |
974 | Enabled = true | |
975 | Arms = true | |
976 | end | |
977 | end | |
978 | end) |