Такой механизм использовался вXAS Hero Edition.
Поэтому скрипт можно смело юзать на XP, с небольшими правками:
Код:#============================================================================== # MOG VX - Event Sensor Range #============================================================================== # By Moghunter # http://www.atelier-rgss.com/ # # ■ Ativa uma determinada página (SELF SWITCH D)do evento dependendo da # distância do personagem. Isso serve para o evento ter 2 comportamentos # uma quando o personagem estiver perto e outro para quando o personagem # estiver longe, útil para fazer puzzles ou eventos inimigos. # --------------------------------------------------------------------------- # Para definir a distância do sensor do evento basta colocar no nome # a seguinte syntax. # # <sensorX> # # X - Distância do sensor. # # Ex - <sensor5> # --------------------------------------------------------------------------- # NOTA - Não esqueça de criar uma nova página com a chave de ativação, está # página será ativada quando o personagem entrar no sensor do evento. #============================================================================== module MOG # Definição da chave de switch. ( A, B , C ,D ) SENSOR_KEY = "D" end #============================================================================== # Game_Event #============================================================================== class Game_Event < Game_Character #-------------------------------------------------------------------------- # ● initialize #-------------------------------------------------------------------------- alias mog_sensor_range initialize def initialize(map_id, event) if event.name =~ /<sensor(\d+)>/i @sensor_range = $1.to_i else @sensor_range = 0 end @key_act = false @key_act_old = @key_act mog_sensor_range(map_id, event) end #-------------------------------------------------------------------------- # ● update #-------------------------------------------------------------------------- alias mog_sensor_update update def update mog_sensor_update if @sensor_range > 0 sx = $game_player.x - self.x sy = $game_player.y - self.y range = (sx.abs + sy.abs) sensor = (range >= @sensor_range) if sensor @key_act = false else @key_act = true end end page_check if @key_act_old != @key_act end #-------------------------------------------------------------------------- # ● page_check #-------------------------------------------------------------------------- def page_check @key_act_old = @key_act key = [@map_id, @event.id, MOG::SENSOR_KEY] $game_self_switches[key] = @key_act refresh end end $mog_rgssvx_event_sensor_range = true




Ответить с цитированием

Социальные закладки