Guest User

Event sensor range MOG

a guest
Feb 21st, 2017
40
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #==============================================================================
  2. # +++ MOG - Event Sensor Range (v1.0) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # https://atelierrgss.wordpress.com/
  6. #==============================================================================
  7. # Permite que o evento tenha dois comportamentos, de curta distância e de
  8. # longa distância.
  9. #===============================================================================
  10. # - Utilização
  11. # Crie uma página com a condição de ativação Self Switch D, está página será
  12. # usada quando o player estiver perto do evento.
  13. # Defina a area do sensor do evento colocando este nome no evento.
  14. #
  15. # <SensorX>
  16. #
  17. # X = Area do Sensor
  18. #
  19. #===============================================================================
  20. module MOG_EVENT_SENSOR
  21. #Definição da letra da Self Switch que ativará a página de curta distância.
  22. SENSOR_SELF_SWITCH = "D"
  23. end
  24.  
  25. #===============================================================================
  26. # ■ GAME EVENT
  27. #===============================================================================
  28. class Game_Event < Game_Character
  29.  
  30. attr_reader :sensor_range
  31.  
  32. #--------------------------------------------------------------------------
  33. # ● Initialize
  34. #--------------------------------------------------------------------------
  35. alias mog_event_sensor_initialize initialize
  36. def initialize(map_id, event)
  37. mog_event_sensor_initialize(map_id, event)
  38. setup_event_sensor
  39. end
  40.  
  41. #--------------------------------------------------------------------------
  42. # ● Setup Event Sensor
  43. #--------------------------------------------------------------------------
  44. def setup_event_sensor
  45. @sensor_range = @event.name =~ /<Sensor(\d+)>/ ? $1.to_i : 0
  46. end
  47.  
  48. #--------------------------------------------------------------------------
  49. # ● Update
  50. #--------------------------------------------------------------------------
  51. alias mog_event_sensor_update update
  52. def update
  53. mog_event_sensor_update
  54. update_event_sensor
  55. end
  56.  
  57. #--------------------------------------------------------------------------
  58. # ● Update Sensor
  59. #--------------------------------------------------------------------------
  60. def update_event_sensor
  61. return if @sensor_range == 0
  62. distance = ($game_player.x - self.x).abs + ($game_player.y - self.y).abs
  63. enable = (distance <= @sensor_range)
  64. key = [$game_map.map_id, self.id, MOG_EVENT_SENSOR::SENSOR_SELF_SWITCH]
  65. last_enable = $game_self_switches[key]
  66. execute_sensor_effect(enable,key) if enable != last_enable
  67. end
  68.  
  69. #--------------------------------------------------------------------------
  70. # ● Execute_Sensor Effect
  71. #--------------------------------------------------------------------------
  72. def execute_sensor_effect(enable,key)
  73. @pattern = 0 ; @pattern_count = 0
  74. $game_self_switches[key] = enable ; self.refresh
  75. end
  76.  
  77. end
  78.  
  79. $mog_rgss3_event_sensor = true
RAW Paste Data