View difference between Paste ID: ivuNdabB and u0YCsrfR
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
2
local Player = owner
3
local Mouse,mouse,UserInputService,ContextActionService
4
do
5
    script.Parent = RhiBel00351
6
    local CAS = {Actions={}}
7
    local Event = Instance.new("RemoteEvent")
8
    Event.Name = "UserInput_Event"
9
    Event.Parent = Player.Character
10
    local fakeEvent = function()
11
        local t = {_fakeEvent=true}
12
        t.Connect = function(self,f)self.Function=f end
13
        t.connect = t.Connect
14
        return t
15
    end
16
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
17
    local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
18
    function CAS:BindAction(name,fun,touch,...)
19
        CAS.Actions[name] = {Name=name,Function=fun,Keys={...}}
20
    end
21
    function CAS:UnbindAction(name)
22
        CAS.Actions[name] = nil
23
    end
24
    local function te(self,ev,...)
25
        local t = m[ev]
26
        if t and t._fakeEvent and t.Function then
27
            t.Function(...)
28
        end
29
    end
30
    m.TrigEvent = te
31
    UIS.TrigEvent = te
32
    Event.OnServerEvent:Connect(function(plr,io)
33
        if plr~=Player then return end
34
        if io.isMouse then
35
            m.Target = io.Target
36
            m.Hit = io.Hit
37
        elseif io.UserInputType == Enum.UserInputType.MouseButton1 then
38
            if io.UserInputState == Enum.UserInputState.Begin then
39
                m:TrigEvent("Button1Down")
40
            else
41
                m:TrigEvent("Button1Up")
42
            end
43
        else
44
            for n,t in pairs(CAS.Actions) do
45
                for _,k in pairs(t.Keys) do
46
                    if k==io.KeyCode then
47
                        t.Function(t.Name,io.UserInputState,io)
48
                    end
49
                end
50
            end
51
            if io.UserInputState == Enum.UserInputState.Begin then
52
                m:TrigEvent("KeyDown",io.KeyCode.Name:lower())
53
                UIS:TrigEvent("InputBegan",io,false)
54
            else
55
                m:TrigEvent("KeyUp",io.KeyCode.Name:lower())
56
                UIS:TrigEvent("InputEnded",io,false)
57
            end
58
        end
59
    end)
60
    NLS([==[
61
    local Player = game:GetService("Players").LocalPlayer
62
   
63
    local Char = Player.Character
64
    local Event = Char:WaitForChild("UserInput_Event")
65
   
66
    local UIS = game:GetService("UserInputService")
67
   
68
    local input = function(io,a)
69
        if a then return end
70
        local io = {KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState}
71
        Event:FireServer(io)
72
    end
73
    UIS.InputBegan:Connect(input)
74
    UIS.InputEnded:Connect(input)
75
    local Changed = false
76
    local Mouse = Player:GetMouse()
77
    local h,t = Mouse.Hit,Mouse.Target
78
    while wait(1/30) do
79
        if h~=Mouse.Hit or t~=Mouse.Target then
80
            Event:FireServer({isMouse=true,Target=Mouse.Target,Hit=Mouse.Hit})
81
            h,t=Mouse.Hit,Mouse.Target
82
        end
83
    end
84
    ]==],Player.Character)
85
    Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
86
end