SHOW:
|
|
- or go back to the newest paste.
1 | -- that's right get no scoped ^^ | |
2 | - | if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end |
2 | + | |
3 | - | local Player,game,owner = owner,game |
3 | + | |
4 | - | local RealPlayer = Player |
4 | + | |
5 | - | do |
5 | + | |
6 | - | print("FE Compatibility code by Mokiros") |
6 | + | |
7 | - | local rp = RealPlayer |
7 | + | |
8 | - | script.Parent = rp.Character |
8 | + | |
9 | - | |
9 | + | |
10 | - | --RemoteEvent for communicating |
10 | + | |
11 | - | local Event = Instance.new("RemoteEvent") |
11 | + | |
12 | - | Event.Name = "UserInput_Event" |
12 | + | |
13 | shirt.Name = "Shirt" | |
14 | - | --Fake event to make stuff like Mouse.KeyDown work |
14 | + | |
15 | - | local function fakeEvent() |
15 | + | |
16 | - | local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end} |
16 | + | |
17 | - | t.connect = t.Connect |
17 | + | |
18 | - | return t |
18 | + | |
19 | tp = true | |
20 | shoot = true | |
21 | - | --Creating fake input objects with fake variables |
21 | + | |
22 | - | local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()} |
22 | + | |
23 | - | local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()} |
23 | + | |
24 | - | local CAS = {Actions={},BindAction=function(self,name,fun,touch,...) |
24 | + | |
25 | - | CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil |
25 | + | |
26 | - | end} |
26 | + | |
27 | - | --Merged 2 functions into one by checking amount of arguments |
27 | + | |
28 | - | CAS.UnbindAction = CAS.BindAction |
28 | + | |
29 | root=char.HumanoidRootPart | |
30 | - | --This function will trigger the events that have been :Connect()'ed |
30 | + | |
31 | - | local function te(self,ev,...) |
31 | + | |
32 | - | local t = m[ev] |
32 | + | |
33 | - | if t and t._fakeEvent then |
33 | + | |
34 | - | for _,f in pairs(t.Functions) do |
34 | + | |
35 | - | f(...) |
35 | + | |
36 | m=player:GetMouse() | |
37 | bb = Instance.new("BillboardGui",player.Character.Head) | |
38 | bb.Enabled = true | |
39 | - | m.TrigEvent = te |
39 | + | |
40 | - | UIS.TrigEvent = te |
40 | + | |
41 | hit,pos=Workspace:FindPartOnRayWithIgnoreList(rey,wat) | |
42 | - | Event.OnServerEvent:Connect(function(plr,io) |
42 | + | |
43 | - | if plr~=rp then return end |
43 | + | |
44 | - | m.Target = io.Target |
44 | + | |
45 | - | m.Hit = io.Hit |
45 | + | |
46 | - | if not io.isMouse then |
46 | + | |
47 | - | local b = io.UserInputState == Enum.UserInputState.Begin |
47 | + | |
48 | - | if io.UserInputType == Enum.UserInputType.MouseButton1 then |
48 | + | |
49 | - | return m:TrigEvent(b and "Button1Down" or "Button1Up") |
49 | + | |
50 | Vec1 = Vec1+Vector3.new(0,1,0) | |
51 | - | for _,t in pairs(CAS.Actions) do |
51 | + | |
52 | - | for _,k in pairs(t.Keys) do |
52 | + | |
53 | - | if k==io.KeyCode then |
53 | + | |
54 | - | t.Function(t.Name,io.UserInputState,io) |
54 | + | |
55 | - | end |
55 | + | |
56 | - | end |
56 | + | |
57 | return CFrame.new(Orig.X,Orig.Y,Orig.Z,Right.X,Up.X,Forward.X,Right.Y,Up.Y,Forward.Y,Right.Z,Up.Z,Forward.Z) | |
58 | - | m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower()) |
58 | + | |
59 | - | UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false) |
59 | + | |
60 | - | end |
60 | + | |
61 | - | end) |
61 | + | |
62 | - | Event.Parent = NLS([==[ |
62 | + | |
63 | - | local Player = game:GetService("Players").LocalPlayer |
63 | + | |
64 | - | local Event = script:WaitForChild("UserInput_Event") |
64 | + | |
65 | CF = CFr*(CF*CFrame.Angles(0,0,math.pi)) | |
66 | - | local Mouse = Player:GetMouse() |
66 | + | |
67 | - | local UIS = game:GetService("UserInputService") |
67 | + | |
68 | - | local input = function(io,a) |
68 | + | |
69 | - | if a then return end |
69 | + | |
70 | - | --Since InputObject is a client-side instance, we create and pass table instead |
70 | + | |
71 | - | Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target}) |
71 | + | |
72 | CF = CFr | |
73 | - | UIS.InputBegan:Connect(input) |
73 | + | |
74 | - | UIS.InputEnded:Connect(input) |
74 | + | |
75 | local _,_,_,_,X,_,_,Y,_,_,Z,_ = CF:components() | |
76 | - | local h,t |
76 | + | |
77 | - | --Give the server mouse data 30 times every second, but only if the values changed |
77 | + | |
78 | - | --If player is not moving their mouse, client won't fire events |
78 | + | |
79 | - | while wait(1/30) do |
79 | + | |
80 | - | if h~=Mouse.Hit or t~=Mouse.Target then |
80 | + | |
81 | - | h,t=Mouse.Hit,Mouse.Target |
81 | + | |
82 | - | Event:FireServer({isMouse=true,Target=t,Hit=h}) |
82 | + | |
83 | ||
84 | - | end]==],Player.Character) |
84 | + | |
85 | local joint = j | |
86 | - | ----Sandboxed game object that allows the usage of client-side methods and services |
86 | + | |
87 | - | --Real game object |
87 | + | |
88 | - | local _rg = game |
88 | + | |
89 | if i > 1 then joint = t[i-1][1].CFrame*CFrame.new(0,0,d*.5) end | |
90 | - | --Metatable for fake service |
90 | + | |
91 | - | local fsmt = { |
91 | + | |
92 | - | __index = function(self,k) |
92 | + | |
93 | - | local s = rawget(self,"_RealService") |
93 | + | |
94 | - | if s then return s[k] end |
94 | + | |
95 | - | end, |
95 | + | |
96 | - | __newindex = function(self,k,v) |
96 | + | |
97 | - | local s = rawget(self,"_RealService") |
97 | + | |
98 | - | if s then s[k]=v end |
98 | + | |
99 | - | end, |
99 | + | |
100 | - | __call = function(self,...) |
100 | + | |
101 | - | local s = rawget(self,"_RealService") |
101 | + | |
102 | - | if s then return s(...) end |
102 | + | |
103 | end | |
104 | - | } |
104 | + | |
105 | - | local function FakeService(t,RealService) |
105 | + | |
106 | - | t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService |
106 | + | |
107 | - | return setmetatable(t,fsmt) |
107 | + | |
108 | bb.AlwaysOnTop = true | |
109 | bb.Size = UDim2.new(0,200,0,50) | |
110 | - | --Fake game object |
110 | + | |
111 | - | local g = { |
111 | + | |
112 | - | GetService = function(self,s) |
112 | + | |
113 | - | return self[s] |
113 | + | |
114 | - | end, |
114 | + | |
115 | - | Players = FakeService({ |
115 | + | |
116 | - | LocalPlayer = FakeService({GetMouse=function(self)return m end},Player) |
116 | + | |
117 | - | },"Players"), |
117 | + | |
118 | - | UserInputService = FakeService(UIS,"UserInputService"), |
118 | + | |
119 | - | ContextActionService = FakeService(CAS,"ContextActionService"), |
119 | + | |
120 | - | } |
120 | + | |
121 | - | rawset(g.Players,"localPlayer",g.Players.LocalPlayer) |
121 | + | |
122 | - | g.service = g.GetService |
122 | + | |
123 | - | |
123 | + | |
124 | - | g.RunService = FakeService({ |
124 | + | |
125 | - | RenderStepped = _rg:GetService("RunService").Heartbeat, |
125 | + | |
126 | - | BindToRenderStep = function(self,name,_,fun) |
126 | + | |
127 | - | self._btrs[name] = self.Heartbeat:Connect(fun) |
127 | + | |
128 | - | end, |
128 | + | |
129 | - | UnbindFromRenderStep = function(self,name) |
129 | + | |
130 | - | self._btrs[name]:Disconnect() |
130 | + | |
131 | - | end, |
131 | + | |
132 | - | },"RunService") |
132 | + | |
133 | img.Size = UDim2.new(0,46,0,47) | |
134 | - | setmetatable(g,{ |
134 | + | |
135 | - | __index=function(self,s) |
135 | + | |
136 | - | return _rg:GetService(s) or typeof(_rg[s])=="function" |
136 | + | |
137 | - | and function(_,...)return _rg[s](_rg,...)end or _rg[s] |
137 | + | |
138 | - | end, |
138 | + | |
139 | - | __newindex = fsmt.__newindex, |
139 | + | |
140 | - | __call = fsmt.__call |
140 | + | |
141 | - | }) |
141 | + | |
142 | - | --Changing owner to fake player object to support owner:GetMouse() |
142 | + | |
143 | - | game,owner = g,g.Players.LocalPlayer |
143 | + | |
144 | boom2 = Instance.new("Sound",char) | |
145 | boom2.SoundId = "http://www.roblox.com/asset/?id = 449025737" | |
146 | boom2.Volume = 1 | |
147 | boom3 = Instance.new("Sound",char) | |
148 | boom3.SoundId = "http://www.roblox.com/asset/?id = 450719019" | |
149 | boom3.Volume = 1 | |
150 | tps = Instance.new("Sound",char) | |
151 | tps.SoundId = "http://www.roblox.com/asset/?id = 449860746" | |
152 | tps.Volume = 1 | |
153 | asd = Instance.new("Sound",char) | |
154 | asd.SoundId = "http://www.roblox.com/asset/?id = 447310433" | |
155 | asd.Volume =1 | |
156 | asd1 = Instance.new("Sound",char) | |
157 | asd1.SoundId = "http://www.roblox.com/asset/?id = 358280695" | |
158 | ||
159 | asd2 = Instance.new("Sound",char) | |
160 | asd2.SoundId = "http://www.roblox.com/asset/?id = 386713054" | |
161 | asd2.Looped = true | |
162 | asd2.Volume = 5 | |
163 | asd3 = Instance.new("Sound",char) | |
164 | asd3.SoundId = "http://www.roblox.com/asset/?id = 339250412" | |
165 | asd3.Looped = true | |
166 | asd4 = Instance.new("Sound",char) | |
167 | asd4.SoundId = "http://www.roblox.com/asset/?id = 401258325" | |
168 | asd4.Looped = true | |
169 | asd5 = Instance.new("Sound",char) | |
170 | asd5.SoundId = "http://www.roblox.com/asset/?id = 362252261" | |
171 | asd5.Looped = true | |
172 | gas = Instance.new("Sound",char) | |
173 | gas.SoundId = "http://www.roblox.com/asset/?id = 345052019" | |
174 | asd6 = Instance.new("Sound",char) | |
175 | asd6.SoundId = "http://www.roblox.com/asset/?id = 401258325" | |
176 | asd6.Looped = true | |
177 | function play(play) | |
178 | asd:Play() | |
179 | wait(0.05) | |
180 | --asd1:Play() | |
181 | end | |
182 | ||
183 | ||
184 | ||
185 | ------------ | |
186 | ------------------------- | |
187 | ||
188 | function stream(origin,dir,length,size) | |
189 | local parts = {} | |
190 | for i = 1,length do | |
191 | local p = Instance.new("Part",char) | |
192 | p.Anchored = true | |
193 | p.Transparency = 0.5 | |
194 | p.TopSurface = 0 | |
195 | p.BottomSurface = 0 | |
196 | p.CanCollide = false | |
197 | p.BrickColor = BrickColor.new("Institutional white") | |
198 | p.Size = Vector3.new(10,30,10) -- for now | |
199 | p.CFrame = CFrame.new(origin+dir*i*size)*CFrame.Angles(math.random()*math.pi,math.random()*math.pi,math.random()*math.pi) | |
200 | parts[i] = {p,CFrame.Angles(math.random()*math.pi/5,math.random()*math.pi/5,math.random()*math.pi/5)} | |
201 | game:GetService("Debris"):AddItem(p,3) | |
202 | end | |
203 | Spawn(function() | |
204 | while parts do | |
205 | for i,v in pairs(parts) do | |
206 | if v[1].Parent == char then | |
207 | v[1].CFrame = v[1].CFrame*v[2] | |
208 | else | |
209 | parts = nil | |
210 | break | |
211 | end | |
212 | end | |
213 | wait(0.02) | |
214 | end | |
215 | end) | |
216 | end | |
217 | ||
218 | --[[-- listen for their chatting | |
219 | player.Chatted:connect(function(message) | |
220 | a = string.len(message) | |
221 | gui.Text = "" | |
222 | gui.Visible = true | |
223 | gui1.Visible = true | |
224 | des = false | |
225 | img.Visible = true | |
226 | print(a) | |
227 | if dot == false then | |
228 | gui.Text = "" | |
229 | for i = 1,string.len(message) do | |
230 | gui.Text =gui.Text..message:sub(i,i) | |
231 | play() | |
232 | ||
233 | end | |
234 | end | |
235 | ||
236 | ||
237 | des = true | |
238 | end)]]-- | |
239 | m.KeyDown:connect(function(k) | |
240 | if k == "g" then | |
241 | asd2:Play() | |
242 | ||
243 | ||
244 | end | |
245 | end) | |
246 | ||
247 | m.KeyDown:connect(function(k) | |
248 | if k == "r" then | |
249 | ||
250 | asd4:Play() | |
251 | end | |
252 | end) | |
253 | m.KeyDown:connect(function(k) | |
254 | if k == "q" then | |
255 | ||
256 | asd3:Play() | |
257 | end | |
258 | end) | |
259 | m.KeyDown:connect(function(k) | |
260 | if k == "z" then | |
261 | img.Image = "rbxassetid://332766052" | |
262 | ||
263 | end | |
264 | end) | |
265 | m.KeyDown:connect(function(k) | |
266 | if k == "c" then | |
267 | img.Image = "rbxassetid://447301252" | |
268 | ||
269 | end | |
270 | end) | |
271 | m.KeyDown:connect(function(k) | |
272 | if k == "b" then | |
273 | ||
274 | asd6:Play() | |
275 | end | |
276 | end) | |
277 | mouse = p:GetMouse() | |
278 | m.KeyDown:connect(function(k) | |
279 | if k:byte() == 48 then | |
280 | ||
281 | hum.WalkSpeed = 100 | |
282 | end | |
283 | end) | |
284 | m.KeyDown:connect(function(k) | |
285 | if k:byte() == 50 then | |
286 | ||
287 | soka:Play() | |
288 | end | |
289 | end) | |
290 | m.KeyDown:connect(function(k) | |
291 | if k:byte() == 52 then | |
292 | ||
293 | char.Head.face.Texture = "rbxassetid://444037452" | |
294 | end | |
295 | end) | |
296 | m.KeyDown:connect(function(k) | |
297 | if k:byte() == 51 then | |
298 | ||
299 | char.Head.face.Texture = "rbxassetid://332768867" | |
300 | end | |
301 | end) | |
302 | m.KeyUp:connect(function(k) | |
303 | if k:byte() == 48 then | |
304 | ||
305 | hum.WalkSpeed = 50 | |
306 | end | |
307 | end) | |
308 | p.Chatted:connect(function(m) | |
309 | if m == "Okay." then | |
310 | soka:Play() | |
311 | end | |
312 | end) | |
313 | m.KeyDown:connect(function(k) | |
314 | if k == "x" then | |
315 | if des == true then | |
316 | gui.Visible = false | |
317 | gui.Text = "* " | |
318 | gui1.Visible = false | |
319 | img.Visible = false | |
320 | end | |
321 | end | |
322 | end) | |
323 | m.KeyDown:connect(function(key) | |
324 | if key == "j" then | |
325 | if tp == true then | |
326 | tp = false | |
327 | tps:Play() | |
328 | char.Head.face.Parent = game.Lighting | |
329 | for i,v in pairs(char:GetChildren()) do if v:IsA("Part") then v.Transparency = 1 | |
330 | end | |
331 | ||
332 | end | |
333 | wait(0.5) | |
334 | for i,v in pairs(char:GetChildren()) do if v:IsA("Part") then v.Transparency = 0 | |
335 | end | |
336 | ||
337 | end | |
338 | char.HumanoidRootPart.CFrame = mouse.Hit * CFrame.new(0, 3, 0) | |
339 | char.HumanoidRootPart.Transparency = 1 | |
340 | game.Lighting.face.Parent = char.Head | |
341 | wait(0.2) | |
342 | ||
343 | tp = true | |
344 | ||
345 | ||
346 | end | |
347 | end | |
348 | end) | |
349 | ||
350 | ||
351 | m.KeyDown:connect(function(key) | |
352 | if key == "t" then | |
353 | if punch2 == true then | |
354 | punch2 = false | |
355 | punch = false | |
356 | ||
357 | local ChatService = game:GetService("Chat") | |
358 | ||
359 | neck.C0 = neck.C0 * CFrame.Angles(0.3,0,0) | |
360 | ChatService:Chat(char.Head, "Mind if I get Serious?") | |
361 | wait(1) | |
362 | local ChatService = game:GetService("Chat") | |
363 | ||
364 | ||
365 | ChatService:Chat(char.Head ,"Killer Move: Serious Series...") | |
366 | wait(1) | |
367 | local ChatService = game:GetService("Chat") | |
368 | ||
369 | ||
370 | ChatService:Chat(char.Head, "SERIOUS PUNCH.") | |
371 | neck.C0 = neckp | |
372 | wait(0.6) | |
373 | org = char.Torso["Left Shoulder"].C0 | |
374 | char.Torso["Left Shoulder"].C0 = char.Torso["Left Shoulder"].C0 * CFrame.new(-0.3,0,0) * CFrame.Angles(0,0,math.rad(-90)) | |
375 | wait() | |
376 | killbrick2 = Instance.new("Part",char) | |
377 | killbrick2.Size = Vector3.new(300,160,5800) | |
378 | killbrick2.Transparency = 1 | |
379 | ||
380 | killbrick2.CanCollide = true | |
381 | wait(0.1) | |
382 | killbrick2.CanCollide = false | |
383 | ||
384 | killbrick2.Anchored = true | |
385 | ||
386 | killbrick2.CFrame = char.Torso.CFrame * CFrame.new(0,0,-1005) | |
387 | ||
388 | killbrick2.Touched:connect(function(h) | |
389 | local x = h.Parent:FindFirstChild("Humanoid") | |
390 | if x then | |
391 | if x.Parent.Name == game.Players.LocalPlayer.Name then | |
392 | safe = true | |
393 | else safe = false | |
394 | end | |
395 | if x then | |
396 | if safe == false then | |
397 | h.Parent.Torso.Velocity = CFrame.new(char.Torso.Position,h.Parent.Torso.Position).lookVector * 900 | |
398 | local bodyforc = Instance.new("BodyForce", h.Parent.Torso) | |
399 | boom:Play() | |
400 | bodyforc.force = Vector3.new(0, h.Parent.Torso:GetMass() * 196.1, 0) | |
401 | ||
402 | ||
403 | wait(0.2) | |
404 | x.Parent:BreakJoints() | |
405 | wait() | |
406 | safe = true | |
407 | end | |
408 | end | |
409 | end | |
410 | end) | |
411 | ||
412 | ||
413 | ||
414 | ||
415 | ||
416 | ||
417 | ||
418 | ||
419 | local rng = Instance.new("Part", char) | |
420 | rng.Anchored = true | |
421 | rng.BrickColor = BrickColor.new("Institutional white") | |
422 | rng.CanCollide = false | |
423 | rng.FormFactor = 3 | |
424 | rng.Name = "Ring" | |
425 | rng.Size = Vector3.new(1, 1, 1) | |
426 | rng.Transparency = 0.8 | |
427 | rng.TopSurface = 0 | |
428 | rng.BottomSurface = 0 | |
429 | rng.CFrame = char["Left Arm"].CFrame * CFrame.new(0,-2,0) | |
430 | --rng.Rotation = Vector3.new(math.pi/2,0,0) | |
431 | rng.CFrame = rng.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)) | |
432 | local rngm = Instance.new("SpecialMesh", rng) | |
433 | rngm.MeshId = "http://www.roblox.com/asset/?id=3270017" | |
434 | rngm.Scale = Vector3.new(1, 1.3, 2) | |
435 | local rng1 = Instance.new("Part", char) | |
436 | rng1.Anchored = true | |
437 | rng1.BrickColor = BrickColor.new("Institutional white") | |
438 | rng1.CanCollide = false | |
439 | rng1.FormFactor = 3 | |
440 | rng1.Name = "Ring" | |
441 | rng1.Size = Vector3.new(1, 1, 1) | |
442 | rng1.Transparency = 0.8 | |
443 | rng1.TopSurface = 0 | |
444 | rng1.BottomSurface = 0 | |
445 | rng1.CFrame = char["Left Arm"].CFrame * CFrame.new(0,-2,0) | |
446 | --rng1.Rotation = Vector3.new(math.pi/2,0,0) | |
447 | rng1.CFrame = rng1.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)) | |
448 | local rngm1 = Instance.new("SpecialMesh", rng1) | |
449 | rngm1.MeshId = "http://www.roblox.com/asset/?id=3270017" | |
450 | rngm1.Scale = Vector3.new(1, 1.3, 2) | |
451 | ||
452 | local p = (torso.CFrame*CFrame.new(-20,0,3)) | |
453 | stream(p.p,((p*Vector3.new(-0.7,0,1))-p.p).unit,90,5) -- 20 is number of parts, 6 is distance between each one | |
454 | local p = (torso.CFrame*CFrame.new(20,0,3)) | |
455 | stream(p.p,((p*Vector3.new(0.7,0,1))-p.p).unit,90,5) -- same here | |
456 | ||
457 | local rng2 = Instance.new("Part", char) | |
458 | rng2.Anchored = true | |
459 | rng2.BrickColor = BrickColor.new("Institutional white") | |
460 | rng2.CanCollide = false | |
461 | rng2.FormFactor = 3 | |
462 | rng2.Name = "Ring" | |
463 | rng2.Size = Vector3.new(1, 1, 1) | |
464 | rng2.Transparency = 0.8 | |
465 | rng2.TopSurface = 0 | |
466 | rng2.BottomSurface = 0 | |
467 | rng2.CFrame = char["Left Arm"].CFrame * CFrame.new(0,-2,0) | |
468 | --rng1.Rotation = Vector3.new(math.pi/2,0,0) | |
469 | rng2.CFrame = rng2.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)) | |
470 | local rngm2 = Instance.new("SpecialMesh", rng2) | |
471 | rngm2.MeshId = "http://www.roblox.com/asset/?id=3270017" | |
472 | rngm2.Scale = Vector3.new(1, 1.3, 2) | |
473 | wait(0.1) | |
474 | ||
475 | boom3:Play() | |
476 | coroutine.wrap(function() | |
477 | for i = 1, 35, 0.5 do | |
478 | ||
479 | ||
480 | ||
481 | ||
482 | ||
483 | rngm.Scale = Vector3.new(50 + i*2, 10 + i*2, 2.5+ i*4) | |
484 | rngm1.Scale = Vector3.new(50 + i*2, 1.4 + i*2, 1.4+ i*4) | |
485 | rngm2.Scale = Vector3.new(50 + i*2, 10 + i*2, 1.2+ i*4) | |
486 | ||
487 | wait() | |
488 | end | |
489 | wait() | |
490 | rng:Destroy() | |
491 | rng1:Destroy() | |
492 | rng2:Destroy() | |
493 | killbrick2:Remove() | |
494 | wait(0.5) | |
495 | char.Torso["Left Shoulder"].C0 = org | |
496 | wait(1) | |
497 | punch2 = true | |
498 | punch = true | |
499 | wait() | |
500 | ||
501 | ||
502 | end)() | |
503 | ||
504 | ||
505 | ||
506 | end | |
507 | ||
508 | ||
509 | wait(.1) | |
510 | ||
511 | ||
512 | end | |
513 | end) | |
514 | ||
515 | ||
516 | ||
517 | ||
518 | ||
519 | m.KeyDown:connect(function(key) | |
520 | if key == "k" then | |
521 | if punch == true then | |
522 | punch = false | |
523 | ||
524 | local ChatService = game:GetService("Chat") | |
525 | ||
526 | ||
527 | ChatService:Chat(char.Head ,"Normal Punch") | |
528 | wait(1) | |
529 | org = char.Torso["Left Shoulder"].C0 | |
530 | char.Torso["Left Shoulder"].C0 = char.Torso["Left Shoulder"].C0 * CFrame.new(-0.3,0,0) * CFrame.Angles(0,0,math.rad(-90)) | |
531 | killbrick = Instance.new("Part",char) | |
532 | killbrick.Size = Vector3.new(5,1,5) | |
533 | killbrick.Transparency = 1 | |
534 | killbrick:BreakJoints() | |
535 | killbrick.CanCollide = false | |
536 | local wel = Instance.new("Weld",killbrick) | |
537 | wel.Part0 = killbrick | |
538 | wel.Part1 = char["Left Arm"] | |
539 | wel.C0 = CFrame.new(0,1,0) | |
540 | force = 90 | |
541 | ||
542 | killbrick.Touched:connect(function(h) | |
543 | local x = h.Parent.Humanoid | |
544 | if x.Health >= 6000 then | |
545 | fling = false | |
546 | end | |
547 | if x.Health < 6000 then | |
548 | fling = true | |
549 | end | |
550 | local stop = h.Parent.Torso.Velocity | |
551 | if x.Parent.Name == game.Players.LocalPlayer.Name then | |
552 | safe = true | |
553 | else safe = false | |
554 | end | |
555 | if x then | |
556 | if safe == false then | |
557 | if fling == true then | |
558 | force = 900 | |
559 | ||
560 | end | |
561 | if fling == false then | |
562 | force = 200 | |
563 | end | |
564 | ||
565 | ||
566 | h.Parent.Torso.Velocity = CFrame.new(char.Torso.Position,h.Parent.Torso.Position).lookVector * force | |
567 | local bodyforc = Instance.new("BodyForce", h.Parent.Torso) | |
568 | boom:Play() | |
569 | bodyforc.force = Vector3.new(0, h.Parent.Torso:GetMass() * 196.1, 0) | |
570 | ||
571 | ||
572 | wait(0.2) | |
573 | x:TakeDamage(500) | |
574 | wait() | |
575 | safe = true | |
576 | bodyforc:Remove() | |
577 | h.Parent.Torso.Velocity = stop | |
578 | ||
579 | end | |
580 | end | |
581 | end) | |
582 | ||
583 | ||
584 | ||
585 | ||
586 | ||
587 | ||
588 | ||
589 | ||
590 | ||
591 | ||
592 | local rng = Instance.new("Part", char) | |
593 | rng.Anchored = true | |
594 | rng.BrickColor = BrickColor.new("Institutional white") | |
595 | rng.CanCollide = false | |
596 | rng.FormFactor = 3 | |
597 | rng.Name = "Ring" | |
598 | rng.Size = Vector3.new(1, 1, 1) | |
599 | rng.Transparency = 0.8 | |
600 | rng.TopSurface = 0 | |
601 | rng.BottomSurface = 0 | |
602 | rng.CFrame = char["Left Arm"].CFrame * CFrame.new(0,-2,0) | |
603 | --rng.Rotation = Vector3.new(math.pi/2,0,0) | |
604 | rng.CFrame = rng.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)) | |
605 | local rngm = Instance.new("SpecialMesh", rng) | |
606 | rngm.MeshId = "http://www.roblox.com/asset/?id=3270017" | |
607 | rngm.Scale = Vector3.new(1, 1.3, 2) | |
608 | wait(0.1) | |
609 | ||
610 | boom2:Play() | |
611 | coroutine.wrap(function() | |
612 | for i = 1, 10, .4 do | |
613 | rngm.Scale = Vector3.new(2 + i*2, 2 + i*2, 1) | |
614 | ||
615 | wait() | |
616 | end | |
617 | wait() | |
618 | rng:Destroy() | |
619 | killbrick:Remove() | |
620 | wait(0.5) | |
621 | char.Torso["Left Shoulder"].C0 = org | |
622 | wait(1) | |
623 | ||
624 | punch = true | |
625 | wait() | |
626 | end)() | |
627 | ||
628 | ||
629 | ||
630 | end | |
631 | ||
632 | ||
633 | wait(.1) | |
634 | ||
635 | ||
636 | end | |
637 | end) | |
638 | ||
639 | ||
640 | ||
641 | ||
642 | ||
643 | ||
644 | ||
645 | ||
646 | ||
647 | ||
648 | ||
649 | ||
650 | ||
651 | ||
652 | m.KeyDown:connect(function(key) | |
653 | if key == "m" then | |
654 | if jump == true then | |
655 | jump = false | |
656 | ||
657 | ||
658 | local rng = Instance.new("Part", char) | |
659 | rng.Anchored = true | |
660 | rng.BrickColor = BrickColor.new("Institutional white") | |
661 | rng.CanCollide = false | |
662 | rng.FormFactor = 3 | |
663 | rng.Name = "Ring" | |
664 | rng.Size = Vector3.new(1, 1, 1) | |
665 | rng.Transparency = 0.35 | |
666 | rng.TopSurface = 0 | |
667 | rng.BottomSurface = 0 | |
668 | rng.Position = torso.Position - Vector3.new(0,2,0) | |
669 | rng.CFrame = rng.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)) | |
670 | local rngm = Instance.new("SpecialMesh", rng) | |
671 | rngm.MeshId = "http://www.roblox.com/asset/?id=3270017" | |
672 | rngm.Scale = Vector3.new(1, 1.3, 2) | |
673 | wait(0.1) | |
674 | BV = Instance.new("BodyVelocity", torso) | |
675 | BV.maxForce = Vector3.new(0,20000,0) | |
676 | BV.P = 1000 | |
677 | BV.velocity = Vector3.new(0,100,0) | |
678 | boom:Play() | |
679 | coroutine.wrap(function() | |
680 | for i = 1, 60, 2 do | |
681 | rngm.Scale = Vector3.new(2 + i*2, 2 + i*2, 1) | |
682 | rng.Transparency = i/60 | |
683 | wait() | |
684 | end | |
685 | wait() | |
686 | rng:Destroy() | |
687 | ||
688 | hum.WalkSpeed = 50 | |
689 | wait(1) | |
690 | ||
691 | for i,v in pairs(torso:GetChildren()) do if v:IsA("BodyVelocity") then | |
692 | v:Destroy() jumping2 = true falling = true wait(0.3) jumping2 = false falling = false wait(1.7) jump = true hum.WalkSpeed = 16 falling = false | |
693 | end end | |
694 | wait() | |
695 | end)() | |
696 | ||
697 | ||
698 | ||
699 | end | |
700 | ||
701 | ||
702 | wait(.1) | |
703 | ||
704 | ||
705 | end | |
706 | end) | |
707 | ||
708 | ||
709 | ||
710 | ||
711 | ||
712 | ||
713 | m.KeyDown:connect(function(key) | |
714 | if key == "n" then | |
715 | ||
716 | if falling == true then | |
717 | falling = false | |
718 | if jumping2 == true then | |
719 | jumping2 = false | |
720 | jump = false | |
721 | BV = Instance.new("BodyVelocity", torso) | |
722 | BV.maxForce = Vector3.new(0,-20000,0) | |
723 | BV.P = -1000 | |
724 | BV.velocity = Vector3.new(0,-70,0) | |
725 | wait(0.6) | |
726 | local rng = Instance.new("Part", char) | |
727 | rng.Anchored = true | |
728 | rng.BrickColor = BrickColor.new("Institutional white") | |
729 | rng.CanCollide = false | |
730 | rng.FormFactor = 3 | |
731 | rng.Name = "Ring" | |
732 | rng.Size = Vector3.new(1, 1, 1) | |
733 | rng.Transparency = 0.35 | |
734 | rng.TopSurface = 0 | |
735 | rng.BottomSurface = 0 | |
736 | rng.Position = torso.Position - Vector3.new(0,2,0) | |
737 | rng.CFrame = rng.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)) | |
738 | local rngm = Instance.new("SpecialMesh", rng) | |
739 | rngm.MeshId = "http://www.roblox.com/asset/?id=3270017" | |
740 | rngm.Scale = Vector3.new(1, 1.3, 2) | |
741 | ||
742 | ||
743 | boom:Play() | |
744 | coroutine.wrap(function() | |
745 | for i = 1, 60, 2 do | |
746 | rngm.Scale = Vector3.new(2 + i*2, 2 + i*2, 1) | |
747 | rng.Transparency = i/60 | |
748 | wait() | |
749 | end | |
750 | wait() | |
751 | rng:Destroy() | |
752 | ||
753 | ||
754 | ||
755 | ||
756 | for i,v in pairs(torso:GetChildren()) do if v:IsA("BodyVelocity") then | |
757 | v:Destroy() wait(2) jumping2 = true hum.WalkSpeed = 16 | |
758 | end end | |
759 | wait() | |
760 | end)() | |
761 | ||
762 | ||
763 | ||
764 | end | |
765 | ||
766 | ||
767 | wait(.1) | |
768 | ||
769 | end | |
770 | end | |
771 | end) | |
772 | m.KeyDown:connect(function(k) | |
773 | if k == "f" then | |
774 | asd3:Stop() | |
775 | asd2:Stop() | |
776 | asd4:Stop() | |
777 | asd6:Stop() | |
778 | asd5:Stop() | |
779 | end | |
780 | end) | |
781 | ------------ | |
782 | ||
783 | local verlet = {} | |
784 | verlet.step_time = 1 / 50 | |
785 | verlet.gravity = Vector3.new(0, -10, 0) | |
786 | ||
787 | local char = game.Players.LocalPlayer.Character | |
788 | local torso = char:WaitForChild("Torso") | |
789 | local parts = {} | |
790 | local render = game:GetService("RunService").RenderStepped | |
791 | ||
792 | wait(2) | |
793 | ||
794 | local point = {} | |
795 | local link = {} | |
796 | local rope = {} | |
797 | ||
798 | local function ccw(A,B,C) | |
799 | return (C.y-A.y) * (B.x-A.x) > (B.y-A.y) * (C.x-A.x) | |
800 | end | |
801 | ||
802 | local function intersect(A,B,C,D) | |
803 | return ccw(A,C,D) ~= ccw(B,C,D) and ccw(A,B,C) ~= ccw(A,B,D) | |
804 | end | |
805 | ||
806 | local function vec2(v) | |
807 | return Vector2.new(v.x, v.z) | |
808 | end | |
809 | ||
810 | function point:step() | |
811 | if not self.fixed then | |
812 | local derivative = (self.position - self.last_position) * 0.95 | |
813 | self.last_position = self.position | |
814 | self.position = self.position + derivative + (self.velocity * verlet.step_time ^ 2) | |
815 | --[[local torsoP = torso.CFrame * CFrame.new(-1, 0, 0.5) | |
816 | local torsoE = torso.CFrame * CFrame.new(1, 0, 0.5) | |
817 | local pointE = self.position + torso.CFrame.lookVector * 100 | |
818 | local doIntersect = intersect(vec2(torsoP.p), vec2(torsoE.p), vec2(self.position), vec2(pointE)) | |
819 | if not doIntersect then | |
820 | self.postition = self.position - torso.CFrame.lookVector * 10 | |
821 | end]] | |
822 | end | |
823 | end | |
824 | ||
825 | function link:step() | |
826 | for i = 1, 1 do | |
827 | local distance = self.point1.position - self.point2.position | |
828 | local magnitude = distance.magnitude | |
829 | local differance = (self.length - magnitude) / magnitude | |
830 | local translation = ((self.point1.fixed or self.point2.fixed) and 1 or 0.6) * distance * differance | |
831 | if not self.point1.fixed then | |
832 | self.point1.position = self.point1.position + translation | |
833 | end | |
834 | if not self.point2.fixed then | |
835 | self.point2.position = self.point2.position - translation | |
836 | end | |
837 | end | |
838 | end | |
839 | ||
840 | function verlet.new(class, a, b, c) | |
841 | if class == "Point" then | |
842 | local new = {} | |
843 | setmetatable(new, {__index = point}) | |
844 | new.class = class | |
845 | new.position = a or Vector3.new() | |
846 | new.last_position = new.position | |
847 | new.velocity = verlet.gravity | |
848 | new.fixed = false | |
849 | return new | |
850 | elseif class == "Link" then | |
851 | local new = {} | |
852 | setmetatable(new, {__index = link}) | |
853 | new.class = class | |
854 | new.point1 = a | |
855 | new.point2 = b | |
856 | new.length = c or (a.position - b.position).magnitude | |
857 | return new | |
858 | elseif class == "Rope" then | |
859 | local new = {} | |
860 | setmetatable(new, {__index = link}) | |
861 | new.class = class | |
862 | new.start_point = a | |
863 | new.finish_point = b | |
864 | new.points = {} | |
865 | new.links = {} | |
866 | local inc = (b - a) / 10 | |
867 | for i = 0, 10 do | |
868 | table.insert(new.points, verlet.new("Point", a + (i * inc))) | |
869 | end | |
870 | for i = 2, #new.points do | |
871 | table.insert(new.links, verlet.new("Link", new.points[i - 1], new.points[i])) | |
872 | end | |
873 | return new | |
874 | end | |
875 | end | |
876 | ||
877 | local tris = {} | |
878 | local triParts = {} | |
879 | ||
880 | local function GetDiscoColor(hue) | |
881 | local section = hue % 1 * 3 | |
882 | local secondary = 0.5 * math.pi * (section % 1) | |
883 | if section < 1 then | |
884 | return Color3.new(255, 255, 255) | |
885 | elseif section < 2 then | |
886 | return Color3.new(255, 255, 255) | |
887 | else | |
888 | return Color3.new(255, 255, 255) | |
889 | end | |
890 | end | |
891 | ||
892 | local function setupPart(part) | |
893 | part.Anchored = true | |
894 | part.FormFactor = 3 | |
895 | part.CanCollide = false | |
896 | part.TopSurface = 10 | |
897 | part.BottomSurface = 10 | |
898 | part.LeftSurface = 10 | |
899 | part.RightSurface = 10 | |
900 | part.FrontSurface = 10 | |
901 | part.BackSurface = 10 | |
902 | part.Material = "Plastic" | |
903 | local m = Instance.new("SpecialMesh", part) | |
904 | m.MeshType = "Wedge" | |
905 | m.Scale = Vector3.new(0.2, 1, 1) | |
906 | return part | |
907 | end | |
908 | ||
909 | local function CFrameFromTopBack(at, top, back) | |
910 | local right = top:Cross(back) | |
911 | return CFrame.new(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z) | |
912 | end | |
913 | ||
914 | local function drawTri(parent, a, b, c) | |
915 | local this = {} | |
916 | local mPart1 = table.remove(triParts, 1) or setupPart(Instance.new("Part")) | |
917 | local mPart2 = table.remove(triParts, 1) or setupPart(Instance.new("Part")) | |
918 | function this:Set(a, b, c) | |
919 | local ab, bc, ca = b-a, c-b, a-c | |
920 | local abm, bcm, cam = ab.magnitude, bc.magnitude, ca.magnitude | |
921 | local edg1 = math.abs(0.5 + ca:Dot(ab)/(abm*abm)) | |
922 | local edg2 = math.abs(0.5 + ab:Dot(bc)/(bcm*bcm)) | |
923 | local edg3 = math.abs(0.5 + bc:Dot(ca)/(cam*cam)) | |
924 | if edg1 < edg2 then | |
925 | if edg1 >= edg3 then | |
926 | a, b, c = c, a, b | |
927 | ab, bc, ca = ca, ab, bc | |
928 | abm = cam | |
929 | end | |
930 | else | |
931 | if edg2 < edg3 then | |
932 | a, b, c = b, c, a | |
933 | ab, bc, ca = bc, ca, ab | |
934 | abm = bcm | |
935 | else | |
936 | a, b, c = c, a, b | |
937 | ab, bc, ca = ca, ab, bc | |
938 | abm = cam | |
939 | end | |
940 | end | |
941 | ||
942 | local len1 = -ca:Dot(ab)/abm | |
943 | local len2 = abm - len1 | |
944 | local width = (ca + ab.unit*len1).magnitude | |
945 | ||
946 | local maincf = CFrameFromTopBack(a, ab:Cross(bc).unit, -ab.unit) | |
947 | ||
948 | if len1 > 0.2 then | |
949 | mPart1.Parent = parent | |
950 | mPart1.Size = Vector3.new(0.2, width, len1) | |
951 | mPart1.CFrame = maincf*CFrame.Angles(math.pi,0,math.pi/2)*CFrame.new(0,width/2,len1/2) | |
952 | else | |
953 | mPart1.Parent = nil | |
954 | end | |
955 | ||
956 | if len2 > 0.2 then | |
957 | mPart2.Parent = parent | |
958 | mPart2.Size = Vector3.new(0.2, width, len2) | |
959 | mPart2.CFrame = maincf*CFrame.Angles(math.pi,math.pi,-math.pi/2)*CFrame.new(0,width/2,-len1 - len2/2) | |
960 | else | |
961 | mPart2.Parent = nil | |
962 | end | |
963 | end | |
964 | function this:SetProperty(prop, value) | |
965 | mPart1[prop] = value | |
966 | mPart2[prop] = value | |
967 | end | |
968 | this:Set(a, b, c) | |
969 | function this:Destroy() | |
970 | mPart1:Destroy() | |
971 | mPart2:Destroy() | |
972 | end | |
973 | this.p1 = mPart1 | |
974 | this.p2 = mPart2 | |
975 | this.p1.BrickColor = BrickColor.new(GetDiscoColor(math.noise(0.5, 0.5, this.p1.CFrame.Y * 0.5 + time()))) | |
976 | this.p2.BrickColor = BrickColor.new(GetDiscoColor(math.noise(0.5, 0.5, this.p2.CFrame.Y * 0.5 + time()))) | |
977 | return this | |
978 | end | |
979 | ||
980 | function verlet.draw(object, id) | |
981 | if object.class == "Point" then | |
982 | local part = parts[id] | |
983 | part.BrickColor = BrickColor.new(255, 0, 0) | |
984 | part.Transparency = 0 | |
985 | part.formFactor = 3 | |
986 | part.Anchored = true | |
987 | part.CanCollide = false | |
988 | part.TopSurface = 0 | |
989 | part.BottomSurface = 0 | |
990 | part.Size = Vector3.new(0.35, 0.35, 0.35) | |
991 | part.Material = "Plastic" | |
992 | part.CFrame = CFrame.new(object.position) | |
993 | part.Parent = torso | |
994 | return part | |
995 | elseif object.class == "Link" then | |
996 | local part = parts[id] | |
997 | local dist = (object.point1.position - object.point2.position).magnitude | |
998 | part.Size = Vector3.new(0.2, 0.2, dist) | |
999 | part.CFrame = CFrame.new(object.point1.position, object.point2.position) * CFrame.new(0, 0, dist * -0.5) | |
1000 | part.Parent = torso | |
1001 | return part | |
1002 | end | |
1003 | end | |
1004 | ||
1005 | function verlet.clear() | |
1006 | for _, v in pairs(workspace:GetChildren()) do | |
1007 | if v.Name == "Part" then | |
1008 | v:Destroy() | |
1009 | end | |
1010 | end | |
1011 | end | |
1012 | ||
1013 | local points = {} | |
1014 | local links = {} | |
1015 | ||
1016 | for x = 0, 2 do | |
1017 | points[x] = {} | |
1018 | for y = 0, 3 do | |
1019 | points[x][y] = verlet.new("Point", torso.Position + Vector3.new(x * 0.8 - 2, 2 - y * 0.8, 5 + y * 0.4)) | |
1020 | points[x][y].fixed = y == 0 | |
1021 | end | |
1022 | end | |
1023 | ||
1024 | for x = 1, 2 do | |
1025 | for y = 0, 3 do | |
1026 | links[#links + 1] = verlet.new("Link", points[x][y], points[x - 1][y], 1 + y * 0.08) | |
1027 | end | |
1028 | end | |
1029 | ||
1030 | for x = 0, 2 do | |
1031 | for y = 1, 3 do | |
1032 | links[#links + 1] = verlet.new("Link", points[x][y], points[x][y - 1], 1.2 + y * 0.03) | |
1033 | end | |
1034 | end | |
1035 | ||
1036 | render:connect(function() | |
1037 | for x = 0, 2 do | |
1038 | for y = 0, 3 do | |
1039 | if y == 0 then | |
1040 | points[x][y].position = (torso.CFrame * CFrame.new(x * 1 - 1, 1, 0.5)).p | |
1041 | else | |
1042 | points[x][y]:step() | |
1043 | end | |
1044 | end | |
1045 | end | |
1046 | for i = 1, #links do | |
1047 | links[i]:step() | |
1048 | end | |
1049 | for i = 1, #tris do | |
1050 | triParts[#triParts + 1] = tris[i].p1 | |
1051 | triParts[#triParts + 1] = tris[i].p2 | |
1052 | end | |
1053 | tris = {} | |
1054 | for x = 1, 2 do | |
1055 | for y = 1, 3 do | |
1056 | tris[#tris + 1] = drawTri(torso, points[x - 1][y - 1].position, points[x - 1][y].position, points[x][y - 1].position) | |
1057 | tris[#tris + 1] = drawTri(torso, points[x][y].position, points[x - 1][y].position, points[x][y - 1].position) | |
1058 | end | |
1059 | end | |
1060 | end) | |
1061 | ||
1062 | --/ edited by the cancerous rocky2u | |
1063 | ||
1064 | local plr = game.Players.LocalPlayer | |
1065 | local chr = plr.Character | |
1066 | local mouse = plr:GetMouse() | |
1067 | ||
1068 | _G.hotkey = 'e' | |
1069 | ||
1070 | mouse.KeyDown:connect(function(key) | |
1071 | if key == _G.hotkey then | |
1072 | local chr = game.Players.LocalPlayer.Character | |
1073 | stopAnimations() | |
1074 | chr.Animate.Disabled = true | |
1075 | chr.Torso["Left Shoulder"].C1 = CFrame.new(0, 0.699999988, 0, 0.939692616, 0, -0.342020124, -0.330366075, -0.258819044, -0.907673359, -0.0885213241, 0.965925813, -0.243210346) | |
1076 | chr.Torso["Right Shoulder"].C1 = CFrame.new(-0.600000024, 0.5, -0.200000003, 0.664462984, 0.241844743, 0.707106769, -0.664462984, -0.241844788, 0.707106769, 0.342020154, -0.939692616, -3.09086197e-008) | |
1077 | chr.Torso["Neck"].C1 = CFrame.new(0, -0.600000024, 0, -0.866025388, 0.5, 0, -0.171010137, -0.29619807, 0.939692616, 0.469846278, 0.813797653, 0.342020124) | |
1078 | end | |
1079 | end) | |
1080 | ||
1081 | mouse.KeyUp:connect(function(key) | |
1082 | if key == _G.hotkey then | |
1083 | local chr = game.Players.LocalPlayer.Character | |
1084 | chr.Animate.Disabled = false | |
1085 | chr.Torso["Left Shoulder"].C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) | |
1086 | chr.Torso["Right Shoulder"].C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) | |
1087 | chr.Torso["Neck"].C1 = CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0) | |
1088 | end | |
1089 | end) | |
1090 | ||
1091 | function stopAnimations() | |
1092 | for _,v in pairs(game.Players.LocalPlayer.Character.Humanoid:GetPlayingAnimationTracks()) do | |
1093 | v:Stop() | |
1094 | end | |
1095 | end |