Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # • Sensor Event
- #==============================================================================
- # Autor: Dax
- # Versão: 1.0
- # Site: www.dax-soft.weebly.com
- # Requerimento: Dax Core
- #==============================================================================
- # • Descrição:
- #------------------------------------------------------------------------------
- # Permite que o evento tenha dois comportamentos, de curta distância e de
- # longa distância.
- #==============================================================================
- # • Como usar:
- #------------------------------------------------------------------------------
- # Crie um comentário no evento assim:
- # <sensor: N>
- # *N -?> Area do sensor { números }
- # Depois crie uma página com a switche local determinada no 'module', está página
- # ficará a função de quando o personagem atingir a área do sensor.
- #==============================================================================
- Dax.register(:sensor_event, "Dax", 1.0)
- module Rpg::Sensor_Event
- # Defina aqui a switche local usada para o sensor
- Switche_Local_Sensor_Event = "D"
- end
- #==============================================================================
- # • Game_Event
- #==============================================================================
- class Game_Event < Game_Character
- #--------------------------------------------------------------------------
- # • Variavéis públicas
- #--------------------------------------------------------------------------
- attr_accessor :sensor
- #--------------------------------------------------------------------------
- # • Lista de aliasing
- #--------------------------------------------------------------------------
- alias event_sensor_setup_page_settings setup_page_settings
- alias event_sensor_update update
- #--------------------------------------------------------------------------
- # • Configuração da pagina
- #--------------------------------------------------------------------------
- def setup_page_settings
- event_sensor_setup_page_settings
- setup_event
- end
- #--------------------------------------------------------------------------
- # • Configuração do comentário
- #--------------------------------------------------------------------------
- def setup_event
- return if @list.nil?
- for command in @list
- if command.code == 108
- @sensor = command.parameters[0] =~ /<sensor: (\d+)>/ ? $1.to_i : 0
- end
- end
- end
- #--------------------------------------------------------------------------
- # • Atualiza o processo
- #--------------------------------------------------------------------------
- def update
- event_sensor_update
- update_sensor_event
- end
- #--------------------------------------------------------------------------
- # • Atualiza o processo do sensor
- #--------------------------------------------------------------------------
- def update_sensor_event
- return if @sensor == 0 or @sensor.nil?
- distance = DMath.distance_sensor($game_player, self)
- enable = (distance <= @sensor)
- key = [$game_map.map_id, self.id, Rpg::Sensor_Event::Switche_Local_Sensor_Event]
- last_enable = $game_self_switches[key]
- execute_sensor(enable,key) unless enable == last_enable
- end
- #--------------------------------------------------------------------------
- # ? Executa o sensor
- #--------------------------------------------------------------------------
- def execute_sensor(enable,key)
- @pattern = 0
- @pattern_count = 0
- $game_self_switches[key] = enable
- self.refresh
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment