SHARE
TWEET

fe grab knife v3

a guest Feb 16th, 2019 62 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- This script has been converted to FE by iPxter
  2.  
  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. 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.         Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
  70.     end
  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. -- This script has been converted to FE by iPxter
  87.  
  88.  
  89. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  90. local Player,Mouse,mouse,UserInputService,ContextActionService = owner
  91. do
  92.     print("FE Compatibility code by Mokiros | Translated to FE by iPxter")
  93.     script.Parent = Player.Character
  94.  
  95.     --RemoteEvent for communicating
  96.     local Event = Instance.new("RemoteEvent")
  97.     Event.Name = "UserInput_Event"
  98.  
  99.     --Fake event to make stuff like Mouse.KeyDown work
  100.     local function fakeEvent()
  101.         local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
  102.         t.connect = t.Connect
  103.         return t
  104.     end
  105.  
  106.     --Creating fake input objects with fake variables
  107.     local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
  108.     local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  109.     local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  110.         CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  111.     end}
  112.     --Merged 2 functions into one by checking amount of arguments
  113.     CAS.UnbindAction = CAS.BindAction
  114.  
  115.     --This function will trigger the events that have been :Connect()'ed
  116.     local function te(self,ev,...)
  117.         local t = m[ev]
  118.         if t and t._fakeEvent and t.Function then
  119.             t.Function(...)
  120.         end
  121.     end
  122.     m.TrigEvent = te
  123.     UIS.TrigEvent = te
  124.  
  125.     Event.OnServerEvent:Connect(function(plr,io)
  126.         if plr~=Player then return end
  127.         if io.isMouse then
  128.             m.Target = io.Target
  129.             m.Hit = io.Hit
  130.         else
  131.             local b = io.UserInputState == Enum.UserInputState.Begin
  132.             if io.UserInputType == Enum.UserInputType.MouseButton1 then
  133.                 return m:TrigEvent(b and "Button1Down" or "Button1Up")
  134.             end
  135.             for _,t in pairs(CAS.Actions) do
  136.                 for _,k in pairs(t.Keys) do
  137.                     if k==io.KeyCode then
  138.                         t.Function(t.Name,io.UserInputState,io)
  139.                     end
  140.                 end
  141.             end
  142.             m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  143.             UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
  144.         end
  145.     end)
  146.     Event.Parent = NLS([==[
  147.     local Player = game:GetService("Players").LocalPlayer
  148.     local Event = script:WaitForChild("UserInput_Event")
  149.  
  150.     local UIS = game:GetService("UserInputService")
  151.     local input = function(io,a)
  152.         if a then return end
  153.         --Since InputObject is a client-side instance, we create and pass table instead
  154.         Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
  155.     end
  156.     UIS.InputBegan:Connect(input)
  157.     UIS.InputEnded:Connect(input)
  158.  
  159.     local Mouse = Player:GetMouse()
  160.     local h,t
  161.     --Give the server mouse data 30 times every second, but only if the values changed
  162.     --If player is not moving their mouse, client won't fire events
  163.     while wait(1/30) do
  164.         if h~=Mouse.Hit or t~=Mouse.Target then
  165.             h,t=Mouse.Hit,Mouse.Target
  166.             Event:FireServer({isMouse=true,Target=t,Hit=h})
  167.         end
  168.     end]==],Player.Character)
  169.     Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
  170. end
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top