Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # [XP] DRG - Multiple Event Trigger
- # Version: 1.10
- # Author : LiTTleDRAgo
- #==============================================================================
- #==============================================================================
- # ** Game_Character
- #------------------------------------------------------------------------------
- # This class deals with characters. It's used as a superclass for the
- # Game_Player and Game_Event classes.
- #==============================================================================
- if !defined?(Window_ActorCommand)
- class Game_Character
- #--------------------------------------------------------------------------
- # * Some Crap about map_trigger
- #--------------------------------------------------------------------------
- def map_trigger(*a) maptrigger(*a) end
- def drg1632013_s(*a) event_table[a[0],a[1]] = a[2] end
- def event_table()
- s = $game_map.instance_variable_get(:@event_table)
- s = $game_map.instance_variable_set(:@event_table, {}) if !s.is_a?(Hash)
- i = $game_map.map_id
- m = $game_map.instance_variable_get(:@map) if s[i].nil?
- m = Table.new(m.width*2, m.height*2) if s[i].nil?
- s[i] = m if s[i].nil?
- return s[i]
- end
- def maptrigger(x,y,id=@id)
- x,y = [x.is_a?(Integer) ? [x]*2 : x, y.is_a?(Integer) ? [y]*2 : y ]
- x,y = [x.is_a?(Range) ? x.to_a : x, y.is_a?(Range) ? y.to_a : y ]
- return if !x.is_a?(Array) || !y.is_a?(Array)
- x.each {|a| y.each {|b|drg1632013_s(a,b,id) }}
- end
- end
- #==============================================================================
- # ** Game_Player
- #------------------------------------------------------------------------------
- # This class handles the player. Its functions include event starting
- # determinants and map scrolling. Refer to "$game_player" for the one
- # instance of this class.
- #==============================================================================
- class Game_Player
- #--------------------------------------------------------------------------
- # * Alias Method
- #--------------------------------------------------------------------------
- if !method_defined?(:drg1532013_here)
- alias drg1532013_here check_event_trigger_here
- alias drg1532013_there check_event_trigger_there
- alias drg1532013_touch check_event_trigger_touch
- end
- #--------------------------------------------------------------------------
- # * Same Position Starting Determinant
- #--------------------------------------------------------------------------
- def check_event_trigger_here(t)
- result = drg1532013_here(t)
- s = event_table[@x, @y] || 0
- e = $game_map.events[s] if $game_map.events.include?(s)
- s = !e.nil? && t.include?(e.trigger) && !e.jumping?
- [e.start, result = true] if s && !$game_system.map_interpreter.running?
- return result
- end
- #--------------------------------------------------------------------------
- # * Front Event Starting Determinant
- #--------------------------------------------------------------------------
- def check_event_trigger_there(t)
- result = drg1532013_there(t)
- new_x = @x + (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
- new_y = @y + (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
- return result if $game_system.map_interpreter.running?
- s = event_table[new_x, new_y] || 0
- e = $game_map.events[s] if $game_map.events.include?(s)
- f = !e.nil? && t.include?(e.trigger) && !e.jumping?
- [e.start, result = true] if f
- if result == false && $game_map.counter?(new_x, new_y)
- new_x += (@direction == 6 ? 1 : @direction == 4 ? -1 : 0)
- new_y += (@direction == 2 ? 1 : @direction == 8 ? -1 : 0)
- s = event_table[new_x, new_y] || 0
- e = $game_map.events[s] if $game_map.events.include?(s)
- f = !e.nil? && t.include?(e.trigger) && !e.jumping?
- [e.start, result = true] if f
- end
- return result
- end
- #--------------------------------------------------------------------------
- # * Touch Event Starting Determinant
- #--------------------------------------------------------------------------
- def check_event_trigger_touch(x, y)
- result = drg1532013_touch(x, y)
- s = event_table[x, y] || 0
- e = $game_map.events[s] if $game_map.events.include?(s)
- s = !e.nil? && [1,2].include?(e.trigger) && !e.jumping?
- [e.start, result = true] if s && !$game_system.map_interpreter.running?
- return result
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement