The0roboro

RE4:R Manual Flashlight Mod Edit

Sep 26th, 2023 (edited)
1,575
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.59 KB | Source Code | 0 0
  1. local key_name = "X"
  2. local button_name = "LStickPush"
  3.  
  4. local keyboard_singleton = sdk.get_native_singleton("via.hid.Keyboard")
  5. local keyboard_typedef = sdk.find_type_definition("via.hid.Keyboard")
  6. local keyboardkey_typedef = sdk.find_type_definition("via.hid.KeyboardKey")
  7. local gamepad_singleton = sdk.get_native_singleton("via.hid.GamePad")
  8. local gamepad_typedef = sdk.find_type_definition("via.hid.GamePad")
  9. local gamepadbutton_typedef = sdk.find_type_definition("via.hid.GamePadButton")
  10. local light_switch_zone_manager = sdk.get_managed_singleton("chainsaw.LightSwitchZoneManager")
  11.  
  12.  
  13. local light_state = false
  14. local allow_change = false
  15. local player_id = 100000
  16.  
  17. local function prevent_auto_switch(args)
  18.     local id = sdk.to_int64(args[3])
  19.     if not allow_change and id == player_id then
  20.         return sdk.PreHookResult.SKIP_ORIGINAL
  21.     end
  22.     allow_change = false
  23. end
  24.  
  25. sdk.hook(
  26.     light_switch_zone_manager.notifyLightSwitch,
  27.     prevent_auto_switch,
  28.     function(x) return x end
  29. )
  30.  
  31. re.on_frame(function()
  32.     local kb = sdk.call_native_func(keyboard_singleton, keyboard_typedef, "get_Device")
  33.     local gp = sdk.call_native_func(gamepad_singleton, gamepad_typedef, "get_Device")
  34.     local isButtonRelease = kb:call("isRelease", keyboardkey_typedef:get_field(key_name):get_data(nil))
  35.     local isButtonRelease = gp:call("isRelease", gamepadbutton_typedef:get_field(button_name):get_data(nil))
  36.  
  37.     if isButtonRelease then
  38.         allow_change = true
  39.         light_state = not light_state
  40.         light_switch_zone_manager:notifyLightSwitch(player_id, light_state)
  41.     end
  42. end)
Advertisement
Add Comment
Please, Sign In to add comment