SHOW:
|
|
- or go back to the newest paste.
1 | - | Player = game:GetService("Players").LocalPlayer |
1 | + | |
2 | -- This script has convert to FE by who i don't know? | |
3 | ||
4 | ----------------------------------------------------- | |
5 | if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end | |
6 | local Player,game,owner = owner,game | |
7 | local RealPlayer = Player | |
8 | do | |
9 | print("FE Compatibility code by Mokiros | Showcase by Bacon Hair!") | |
10 | local rp = RealPlayer | |
11 | script.Parent = rp.Character | |
12 | ||
13 | --RemoteEvent for communicating | |
14 | local Event = Instance.new("RemoteEvent") | |
15 | Event.Name = "UserInput_Event" | |
16 | ||
17 | --Fake event to make stuff like Mouse.KeyDown work | |
18 | local function fakeEvent() | |
19 | local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end} | |
20 | t.connect = t.Connect | |
21 | return t | |
22 | end | |
23 | ||
24 | --Creating fake input objects with fake variables | |
25 | local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()} | |
26 | local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()} | |
27 | local CAS = {Actions={},BindAction=function(self,name,fun,touch,...) | |
28 | CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil | |
29 | end} | |
30 | --Merged 2 functions into one by checking amount of arguments | |
31 | CAS.UnbindAction = CAS.BindAction | |
32 | ||
33 | - | Tool.Name = "Painis" |
33 | + | --This function will trigger the events that have been :Connect()'ed |
34 | local function te(self,ev,...) | |
35 | local t = m[ev] | |
36 | if t and t._fakeEvent then | |
37 | for _,f in pairs(t.Functions) do | |
38 | f(...) | |
39 | end | |
40 | end | |
41 | end | |
42 | m.TrigEvent = te | |
43 | UIS.TrigEvent = te | |
44 | ||
45 | Event.OnServerEvent:Connect(function(plr,io) | |
46 | if plr~=rp then return end | |
47 | m.Target = io.Target | |
48 | m.Hit = io.Hit | |
49 | if not io.isMouse then | |
50 | local b = io.UserInputState == Enum.UserInputState.Begin | |
51 | if io.UserInputType == Enum.UserInputType.MouseButton1 then | |
52 | return m:TrigEvent(b and "Button1Down" or "Button1Up") | |
53 | end | |
54 | for _,t in pairs(CAS.Actions) do | |
55 | for _,k in pairs(t.Keys) do | |
56 | if k==io.KeyCode then | |
57 | t.Function(t.Name,io.UserInputState,io) | |
58 | end | |
59 | end | |
60 | end | |
61 | m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower()) | |
62 | UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false) | |
63 | end | |
64 | end) | |
65 | Event.Parent = NLS([==[ | |
66 | local Player = game:GetService("Players").LocalPlayer | |
67 | local Event = script:WaitForChild("UserInput_Event") | |
68 | ||
69 | local Mouse = Player:GetMouse() | |
70 | local UIS = game:GetService("UserInputService") | |
71 | local input = function(io,a) | |
72 | if a then return end | |
73 | --Since InputObject is a client-side instance, we create and pass table instead | |
74 | Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target}) | |
75 | end | |
76 | UIS.InputBegan:Connect(input) | |
77 | UIS.InputEnded:Connect(input) | |
78 | ||
79 | local h,t | |
80 | --Give the server mouse data 30 times every second, but only if the values changed | |
81 | - | mo.Name = "EEEEUGH HA HA HAAAAA" |
81 | + | --If player is not moving their mouse, client won't fire events |
82 | while wait(1/30) do | |
83 | if h~=Mouse.Hit or t~=Mouse.Target then | |
84 | h,t=Mouse.Hit,Mouse.Target | |
85 | Event:FireServer({isMouse=true,Target=t,Hit=h}) | |
86 | end | |
87 | end]==],Player.Character) | |
88 | ||
89 | ----Sandboxed game object that allows the usage of client-side methods and services | |
90 | --Real game object | |
91 | local _rg = game | |
92 | ||
93 | --Metatable for fake service | |
94 | local fsmt = { | |
95 | __index = function(self,k) | |
96 | local s = rawget(self,"_RealService") | |
97 | if s then return s[k] end | |
98 | end, | |
99 | __newindex = function(self,k,v) | |
100 | local s = rawget(self,"_RealService") | |
101 | if s then s[k]=v end | |
102 | end, | |
103 | __call = function(self,...) | |
104 | local s = rawget(self,"_RealService") | |
105 | if s then return s(...) end | |
106 | end | |
107 | } | |
108 | local function FakeService(t,RealService) | |
109 | t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService | |
110 | return setmetatable(t,fsmt) | |
111 | end | |
112 | ||
113 | --Fake game object | |
114 | local g = { | |
115 | GetService = function(self,s) | |
116 | return self[s] | |
117 | end, | |
118 | Players = FakeService({ | |
119 | LocalPlayer = FakeService({GetMouse=function(self)return m end},Player) | |
120 | },"Players"), | |
121 | UserInputService = FakeService(UIS,"UserInputService"), | |
122 | ContextActionService = FakeService(CAS,"ContextActionService"), | |
123 | } | |
124 | rawset(g.Players,"localPlayer",g.Players.LocalPlayer) | |
125 | g.service = g.GetService | |
126 | ||
127 | g.RunService = FakeService({ | |
128 | RenderStepped = _rg:GetService("RunService").Heartbeat, | |
129 | BindToRenderStep = function(self,name,_,fun) | |
130 | ||
131 | end, | |
132 | UnbindFromRenderStep = function(self,name) | |
133 | self._btrs[name]:Disconnect() | |
134 | end, | |
135 | },"RunService") | |
136 | ||
137 | setmetatable(g,{ | |
138 | __index=function(self,s) | |
139 | return _rg:GetService(s) or typeof(_rg[s])=="function" | |
140 | and function(_,...)return _rg[s](_rg,...)end or _rg[s] | |
141 | end, | |
142 | __newindex = fsmt.__newindex, | |
143 | __call = fsmt.__call | |
144 | }) | |
145 | --Changing owner to fake player object to support owner:GetMouse() | |
146 | game,owner = g,g.Players.LocalPlayer | |
147 | end | |
148 | ||
149 | ||
150 | Player = game:GetService("Players").THECREATOR20029 | |
151 | ||
152 | Character = Player.Character | |
153 | ||
154 | PlayerGui = Player.PlayerGui | |
155 | ||
156 | Backpack = Player.Backpack | |
157 | ||
158 | Torso = Character.Torso | |
159 | ||
160 | Head = Character.Head | |
161 | ||
162 | LeftArm = Character["Left Arm"] | |
163 | ||
164 | LeftLeg = Character["Left Leg"] | |
165 | ||
166 | RightArm = Character["Right Arm"] | |
167 | ||
168 | RightLeg = Character["Right Leg"] | |
169 | ||
170 | LS = Torso["Left Shoulder"] | |
171 | ||
172 | LH = Torso["Left Hip"] | |
173 | ||
174 | RS = Torso["Right Shoulder"] | |
175 | ||
176 | RH = Torso["Right Hip"] | |
177 | ||
178 | Tool = Instance.new("HopperBin") | |
179 | ||
180 | Tool.Parent = Backpack | |
181 | ||
182 | Tool.Name = "something here?" | |
183 | ||
184 | Bin = Tool | |
185 | ||
186 | so = function(id, par, vol, pit) | |
187 | ||
188 | ||
189 | ||
190 | coroutine.resume(coroutine.create(function() | |
191 | ||
192 | ||
193 | ||
194 | local sou = Instance.new("Sound", par or workspace) | |
195 | ||
196 | sou.Volume = vol | |
197 | ||
198 | sou.Pitch = pit or 1 | |
199 | ||
200 | sou.SoundId = id | |
201 | ||
202 | wait() | |
203 | ||
204 | sou:play() | |
205 | ||
206 | wait(6) | |
207 | ||
208 | sou:Remove() | |
209 | ||
210 | end | |
211 | ||
212 | )) | |
213 | ||
214 | end | |
215 | ||
216 | ||
217 | ||
218 | ob1d = function(mouse) | |
219 | ||
220 | ||
221 | ||
222 | size = 0.5 | |
223 | ||
224 | mode = 1 | |
225 | ||
226 | color = BrickColor.new(Color3.new(math.random(), math.random(), math.random())) | |
227 | ||
228 | mo = Instance.new("Model") | |
229 | ||
230 | mo.Name = "Hmp" | |
231 | ||
232 | mo.Parent = workspace | |
233 | ||
234 | game.Debris:AddItem(mo, 10) | |
235 | ||
236 | p = Instance.new("Seat") | |
237 | ||
238 | p.Name = "Torso" | |
239 | ||
240 | p.Size = Vector3.new(14, 50, 14) * size | |
241 | ||
242 | p.BrickColor = color | |
243 | ||
244 | m = Instance.new("SpecialMesh") | |
245 | ||
246 | m.Parent = p | |
247 | ||
248 | p.Name = "Torso" | |
249 | ||
250 | p.Parent = mo | |
251 | ||
252 | p = Instance.new("Seat") | |
253 | ||
254 | p.Shape = "Ball" | |
255 | - | s.SoundId = "http://www.roblox.com/asset/?id=149779810" |
255 | + | |
256 | p.Size = Vector3.new(24, 24, 24) * size | |
257 | ||
258 | p.BrickColor = color | |
259 | ||
260 | p.Name = "Legball" | |
261 | ||
262 | for i = 1, 10 do | |
263 | ||
264 | lol = Instance.new("Seat") | |
265 | ||
266 | lol.BrickColor = BrickColor:Black() | |
267 | ||
268 | lol.Name = "SEE?" | |
269 | - | so("http://www.roblox.com/asset/?id=148636758", Part, 100, 1) |
269 | + | |
270 | lol.Parent = mo | |
271 | ||
272 | lol.Size = Vector3.new(1, math.random(30, 40), 1) * size | |
273 | ||
274 | w = Instance.new("Weld") | |
275 | ||
276 | w.Part0 = p | |
277 | ||
278 | w.Part1 = lol | |
279 | ||
280 | w.C0 = CFrame.new(0, 0, 0) * CFrame.fromEulerAnglesXYZ(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)) | |
281 | ||
282 | w.Parent = w.Part0 | |
283 | ||
284 | end | |
285 | ||
286 | p.Parent = mo | |
287 | ||
288 | w = Instance.new("Weld") | |
289 | ||
290 | w.Part0 = mo.Torso | |
291 | ||
292 | w.Part1 = p | |
293 | ||
294 | w.C0 = CFrame.new(16 * (size / 2), -48 * (size / 2), 0) | |
295 | ||
296 | w.Parent = w.Part0 | |
297 | ||
298 | p = Instance.new("Seat") | |
299 | ||
300 | p.Shape = "Ball" | |
301 | ||
302 | p.Size = Vector3.new(24, 24, 24) * size | |
303 | ||
304 | p.BrickColor = color | |
305 | ||
306 | p.Name = "Legball" | |
307 | ||
308 | for i = 1, 10 do | |
309 | ||
310 | lol = Instance.new("Seat") | |
311 | ||
312 | lol.BrickColor = BrickColor:Black() | |
313 | ||
314 | lol.Name = "SEE?" | |
315 | ||
316 | lol.Parent = mo | |
317 | ||
318 | lol.Size = Vector3.new(1, math.random(30, 40), 1) * size | |
319 | ||
320 | w = Instance.new("Weld") | |
321 | ||
322 | w.Part0 = p | |
323 | ||
324 | w.Part1 = lol | |
325 | ||
326 | w.C0 = CFrame.new(0, 0, 0) * CFrame.fromEulerAnglesXYZ(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)) | |
327 | ||
328 | w.Parent = w.Part0 | |
329 | ||
330 | end | |
331 | ||
332 | p.Parent = mo | |
333 | ||
334 | w = Instance.new("Weld") | |
335 | ||
336 | w.Part0 = mo.Torso | |
337 | ||
338 | w.Part1 = p | |
339 | ||
340 | w.C0 = CFrame.new(-16 * (size / 2), -48 * (size / 2), 0) | |
341 | ||
342 | w.Parent = w.Part0 | |
343 | ||
344 | p = Instance.new("Seat") | |
345 | ||
346 | p.Shape = "Ball" | |
347 | ||
348 | p.Size = Vector3.new(21, 15, 21) * size | |
349 | ||
350 | p.BrickColor = color | |
351 | ||
352 | p.Name = "Legball" | |
353 | ||
354 | for i = 1, 10 do | |
355 | ||
356 | lol = Instance.new("Seat") | |
357 | ||
358 | lol.BrickColor = BrickColor:Black() | |
359 | ||
360 | lol.Name = "SEE?" | |
361 | ||
362 | lol.Parent = mo | |
363 | ||
364 | lol.Size = Vector3.new(1, math.random(30, 40), 1) * size | |
365 | ||
366 | w = Instance.new("Weld") | |
367 | ||
368 | w.Part0 = p | |
369 | ||
370 | w.Part1 = lol | |
371 | ||
372 | w.C0 = CFrame.new(0, 0, 0) * CFrame.fromEulerAnglesXYZ(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)) | |
373 | ||
374 | w.Parent = w.Part0 | |
375 | ||
376 | end | |
377 | ||
378 | p.Parent = mo | |
379 | ||
380 | w = Instance.new("Weld") | |
381 | ||
382 | w.Part0 = mo.Torso | |
383 | ||
384 | w.Part1 = p | |
385 | ||
386 | w.C0 = CFrame.new(0, 60 * (size / 2), 0) | |
387 | ||
388 | m = Instance.new("SpecialMesh") | |
389 | ||
390 | m.Parent = p | |
391 | ||
392 | p.Name = "Head" | |
393 | ||
394 | w.Parent = w.Part0 | |
395 | ||
396 | s = Instance.new("Sound") | |
397 | ||
398 | s.Parent = mo.Torso | |
399 | ||
400 | s.Volume = 100 | |
401 | ||
402 | s.Pitch = 1 | |
403 | ||
404 | s.SoundId = "http://www.roblox.com/asset/?id=340449725" | |
405 | ||
406 | s.Looped = true | |
407 | ||
408 | s:play() | |
409 | ||
410 | coroutine.resume(coroutine.create(function(Part) | |
411 | ||
412 | ||
413 | ||
414 | while Part.Parent ~= nil do | |
415 | ||
416 | wait(math.random()) | |
417 | ||
418 | so("http://www.roblox.com/asset/?id=0", Part, 100, 1) | |
419 | ||
420 | end | |
421 | ||
422 | end | |
423 | ||
424 | ), mo.Torso) | |
425 | ||
426 | mo.Torso.CFrame = mo.Torso.CFrame * Torso.CFrame * CFrame.new(0, 0, -50 * size) * CFrame.fromEulerAnglesXYZ(-1.57, 0, 0) | |
427 | ||
428 | mo.Torso.Velocity = mouse.Hit.lookVector * 400 | |
429 | ||
430 | coroutine.resume(coroutine.create(function(Part) | |
431 | ||
432 | ||
433 | ||
434 | while 1 do | |
435 | ||
436 | wait(math.random(0, 1) + math.random()) | |
437 | ||
438 | Part.RotVelocity = Vector3.new(math.random(-40, 40), math.random(-40, 40), math.random(-40, 40)) | |
439 | ||
440 | end | |
441 | ||
442 | end | |
443 | ||
444 | ), mo.Torso) | |
445 | ||
446 | end | |
447 | ||
448 | ||
449 | ||
450 | ob1u = function(mouse) | |
451 | ||
452 | ||
453 | ||
454 | end | |
455 | ||
456 | ||
457 | ||
458 | buttonhold = false | |
459 | ||
460 | key = function(key, mouse) | |
461 | ||
462 | ||
463 | ||
464 | end | |
465 | ||
466 | ||
467 | ||
468 | key2 = function(key, mouse) | |
469 | ||
470 | ||
471 | ||
472 | end | |
473 | ||
474 | ||
475 | ||
476 | s = function(mouse) | |
477 | ||
478 | ||
479 | ||
480 | mouse.Button1Down:connect(function() | |
481 | ||
482 | ||
483 | ||
484 | ob1d(mouse) | |
485 | ||
486 | end | |
487 | ||
488 | ) | |
489 | ||
490 | mouse.Button1Up:connect(function() | |
491 | ||
492 | ||
493 | ||
494 | ob1u(mouse) | |
495 | ||
496 | end | |
497 | ||
498 | ) | |
499 | ||
500 | mouse.KeyDown:connect(key) | |
501 | ||
502 | mouse.KeyUp:connect(key2) | |
503 | ||
504 | end | |
505 | ||
506 | ||
507 | ||
508 | ds = function(mouse) | |
509 | ||
510 | ||
511 | ||
512 | end | |
513 | ||
514 | ||
515 | ||
516 | Bin.Selected:connect(s) | |
517 | ||
518 | Bin.Deselected:connect(ds) |