Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local key_name = "X"
- local button_name = "LStickPush"
- local keyboard_singleton = sdk.get_native_singleton("via.hid.Keyboard")
- local keyboard_typedef = sdk.find_type_definition("via.hid.Keyboard")
- local keyboardkey_typedef = sdk.find_type_definition("via.hid.KeyboardKey")
- local gamepad_singleton = sdk.get_native_singleton("via.hid.GamePad")
- local gamepad_typedef = sdk.find_type_definition("via.hid.GamePad")
- local gamepadbutton_typedef = sdk.find_type_definition("via.hid.GamePadButton")
- local light_switch_zone_manager = sdk.get_managed_singleton("chainsaw.LightSwitchZoneManager")
- local light_state = false
- local allow_change = false
- local player_id = 100000
- local function prevent_auto_switch(args)
- local id = sdk.to_int64(args[3])
- if not allow_change and id == player_id then
- return sdk.PreHookResult.SKIP_ORIGINAL
- end
- allow_change = false
- end
- sdk.hook(
- light_switch_zone_manager.notifyLightSwitch,
- prevent_auto_switch,
- function(x) return x end
- )
- re.on_frame(function()
- local kb = sdk.call_native_func(keyboard_singleton, keyboard_typedef, "get_Device")
- local gp = sdk.call_native_func(gamepad_singleton, gamepad_typedef, "get_Device")
- local isButtonRelease = kb:call("isRelease", keyboardkey_typedef:get_field(key_name):get_data(nil))
- local isButtonRelease = gp:call("isRelease", gamepadbutton_typedef:get_field(button_name):get_data(nil))
- if isButtonRelease then
- allow_change = true
- light_state = not light_state
- light_switch_zone_manager:notifyLightSwitch(player_id, light_state)
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment