DaxSoft

Sensor Event

Mar 1st, 2014
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.69 KB | None | 0 0
  1. #==============================================================================
  2. # • Sensor Event
  3. #==============================================================================
  4. # Autor: Dax
  5. # Versão: 1.0
  6. # Site: www.dax-soft.weebly.com
  7. # Requerimento: Dax Core
  8. #==============================================================================
  9. # • Descrição:
  10. #------------------------------------------------------------------------------
  11. # Permite que o evento tenha dois comportamentos, de curta distância e de
  12. # longa distância.
  13. #==============================================================================
  14. # • Como usar:
  15. #------------------------------------------------------------------------------
  16. # Crie um comentário no evento assim:
  17. # <sensor: N>
  18. # *N -?> Area do sensor { números }
  19. # Depois crie uma página com a switche local determinada no 'module', está página
  20. # ficará a função de quando o personagem atingir a área do sensor.
  21. #==============================================================================
  22. Dax.register(:sensor_event, "Dax", 1.0)
  23. module Rpg::Sensor_Event
  24. # Defina aqui a switche local usada para o sensor
  25. Switche_Local_Sensor_Event = "D"
  26. end
  27. #==============================================================================
  28. # • Game_Event
  29. #==============================================================================
  30. class Game_Event < Game_Character
  31. #--------------------------------------------------------------------------
  32. # • Variavéis públicas
  33. #--------------------------------------------------------------------------
  34. attr_accessor :sensor
  35. #--------------------------------------------------------------------------
  36. # • Lista de aliasing
  37. #--------------------------------------------------------------------------
  38. alias event_sensor_setup_page_settings setup_page_settings
  39. alias event_sensor_update update
  40. #--------------------------------------------------------------------------
  41. # • Configuração da pagina
  42. #--------------------------------------------------------------------------
  43. def setup_page_settings
  44. event_sensor_setup_page_settings
  45. setup_event
  46. end
  47. #--------------------------------------------------------------------------
  48. # • Configuração do comentário
  49. #--------------------------------------------------------------------------
  50. def setup_event
  51. return if @list.nil?
  52. for command in @list
  53. if command.code == 108
  54. @sensor = command.parameters[0] =~ /<sensor: (\d+)>/ ? $1.to_i : 0
  55. end
  56. end
  57. end
  58. #--------------------------------------------------------------------------
  59. # • Atualiza o processo
  60. #--------------------------------------------------------------------------
  61. def update
  62. event_sensor_update
  63. update_sensor_event
  64. end
  65. #--------------------------------------------------------------------------
  66. # • Atualiza o processo do sensor
  67. #--------------------------------------------------------------------------
  68. def update_sensor_event
  69. return if @sensor == 0 or @sensor.nil?
  70. distance = DMath.distance_sensor($game_player, self)
  71. enable = (distance <= @sensor)
  72. key = [$game_map.map_id, self.id, Rpg::Sensor_Event::Switche_Local_Sensor_Event]
  73. last_enable = $game_self_switches[key]
  74. execute_sensor(enable,key) unless enable == last_enable
  75. end
  76. #--------------------------------------------------------------------------
  77. # ? Executa o sensor
  78. #--------------------------------------------------------------------------
  79. def execute_sensor(enable,key)
  80. @pattern = 0
  81. @pattern_count = 0
  82. $game_self_switches[key] = enable
  83. self.refresh
  84. end
  85. end
Advertisement
Add Comment
Please, Sign In to add comment