Answered by
6 years ago Edited 6 years ago
The first argument that OnServerEvent takes is always the player who fired the event. If you want to get the user's keyboard input, I suggest you use UserInputService.
Here's my take on this:
LocalScript:
1 | local uiService = game:GetService( "UserInputService" ) |
2 | local event = game.ReplicatedStorage.BusEvent |
3 | local mouse = game.Players.LocalPlayer:GetMouse() |
4 | local Bus = game.Workspace:FindFirstChild(game.Players.LocalPlayer.PlayerGui.TGUI.Value) |
6 | uiService.InputBegan:Connect( function (key) |
7 | event:FireServer(key.KeyCode) |
ServerScript:
01 | local event = game.ReplicatedStorage.BusEvent |
03 | event.OnServerEvent:Connect( function (player, key) |
04 | local Bus = workspace:FindFirstChild(player.PlayerGui.TGUI.Value) |
05 | if key = = Enum.KeyCode.Q then |
06 | Bus.Model.Bodykit.Blinkers.DriversCab.LeftEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.LeftEnable.Value |
07 | Bus.Model.Bodykit.Blinkers.DriversCab.RightEnable.Value = false |
09 | Bus.Model.Bodykit.Blinkers.DriversCab.HazardEnable.Value = false |
11 | elseif key = = Enum.KeyCode.E then |
13 | Bus.Model.Bodykit.Blinkers.DriversCab.RightEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.RightEnable.Value |
15 | Bus.Model.Bodykit.Blinkers.DriversCab.LeftEnable.Value = false |
16 | Bus.Model.Bodykit.Blinkers.DriversCab.HazardEnable.Value = false |
17 | elseif key = = Enum.KeyCode.X then |
19 | Bus.Model.Bodykit.Blinkers.DriversCab.HazardEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.HazardEnable.Value |
20 | Bus.Model.Bodykit.Blinkers.DriversCab.LeftEnable.Value = false |
22 | Bus.Model.Bodykit.Blinkers.DriversCab.RightEnable.Value = false |
23 | elseif key = = Enum.KeyCode.K then |
25 | Bus.Model.Bodykit.Blinkers.DriversCab.KneelEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.KneelEnable.Value |
26 | elseif key = = Enum.KeyCode.M then |
28 | Bus.Model.Bodykit.Blinkers.DriversCab.FrontEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.FrontEnable.Value |
30 | elseif key = = Enum.KeyCode.N then |
32 | Bus.Model.Bodykit.Blinkers.DriversCab.RearEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.RearEnable.Value |
34 | elseif key = = Enum.KeyCode.L then |
35 | Bus.Model.Bodykit.Blinkers.DriversCab.HeadlightsEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.HeadlightsEnable.Value |
37 | elseif key = = Enum.KeyCode.J then |
39 | Bus.Model.Bodykit.Blinkers.DriversCab.InteriorEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.InteriorEnable.Value |
41 | elseif key = = Enum.KeyCode.R then |
43 | Bus.Model.Bodykit.Blinkers.DriversCab.ReverseEnable.Value = not Bus.Model.Bodykit.Blinkers.DriversCab.ReverseEnable.Value |
Not my most efficient code. Untested.
The UserInputService gets the player's input and then returns an InputObject. We use the KeyCode property to figure out which key they're using and then fire the RemoteEvent with the key's KeyCode as its first argument. Then, the OnServerEvent connects with the player who fired the event as its first argument and the KeyCode as its second argument.
We then see if a KeyCode matches the KeyCode we passed to the event. If it does, then you do whatever.