Save-Point
Getting the ID of "This common event". - Printable Version

+- Save-Point (https://www.save-point.org)
+-- Forum: Games Development (https://www.save-point.org/forum-4.html)
+--- Forum: Code Support (https://www.save-point.org/forum-20.html)
+--- Thread: Getting the ID of "This common event". (/thread-1920.html)



Getting the ID of "This common event". - PK8 - 09-16-2009

Heya, is there a way I could obtain the ID to "This common event"?

Y'know how map events have @event_id? Is there something like that for common events?


Getting the ID of "This common event". - Yin - 09-16-2009

$data_common_events[common_event_id]

I think. Don't hold me to that. I'm still learning.


Getting the ID of "This common event". - PK8 - 09-16-2009

Doesn't work. ;_;

*doesn't hold Yin to it*


Getting the ID of "This common event". - DerVVulfman - 09-16-2009

Obtain?? Confused

Common Events are called by map events are generally parallel processes. I mean you may be able to 'pass' the id of a common event into a script call to run an event (if you're good enough), but I never heard of one needing to retrieve the ID of a common event itself.

Happy You could set up an event in each common event:
CONTROL VARIABLES[0001: Event-ID] set = '1'
or whatever for each common event.

Then when the common event is run, it changes that one variable (#1) to that value. Then within the script, you can access that through $game_variables. Happy


Getting the ID of "This common event". - Yin - 09-16-2009

Oops.
Cry Sorry.


Getting the ID of "This common event". - PK8 - 09-16-2009

It's alright, Yin. :P


Getting the ID of "This common event". - Zeriab - 09-17-2009

That's evil punk.
You should tell when you get a solution.

Here is an XP solution where I overwrite setup_starting_event rather than alias it because the other way will be computationally more intensive.
Yes, the structure is not set up to allow the id of the running common event to be retrieved easily >_<
Code:
class Game_CommonEvent
  alias :zeriab_interpreter_id_refresh :refresh
  def refresh
    zeriab_interpreter_id_refresh
    @interpreter.common_event_id = @common_event_id unless @interpreter.nil?
  end
end

class Interpreter
  attr_writer :common_event_id
  def common_event_id
    @common_event_id = 0 if @common_event_id.nil?
    @common_event_id
  end
  
  #--------------------------------------------------------------------------
  # * Call Common Event
  #--------------------------------------------------------------------------
  alias :zeriab_common_id_command_117 :command_117
  def command_117
    zeriab_common_id_command_117
    if $data_common_events[@parameters[0]] != nil
      @child_interpreter.common_event_id = @parameters[0]
    end
    true
  end
  
  #--------------------------------------------------------------------------
  # * Starting Event Setup
  #--------------------------------------------------------------------------
  def setup_starting_event
    # Refresh map if necessary
    if $game_map.need_refresh
      $game_map.refresh
    end
    # If common event call is reserved
    if $game_temp.common_event_id > 0
      # Set up event
      setup($data_common_events[$game_temp.common_event_id].list, 0)
      ## Added
      self.common_event_id = $game_temp.common_event_id
      # Release reservation
      $game_temp.common_event_id = 0
      return
    end
    # Loop (map events)
    for event in $game_map.events.values
      # If running event is found
      if event.starting
        # If not auto run
        if event.trigger < 3
          # Clear starting flag
          event.clear_starting
          # Lock
          event.lock
        end
        # Set up event
        setup(event.list, event.id)
        return
      end
    end
    # Loop (common events)
    for common_event in $data_common_events.compact
      # If trigger is auto run, and condition switch is ON
      if common_event.trigger == 1 and
         $game_switches[common_event.switch_id] == true
        # Set up event
        setup(common_event.list, 0)
        ## Added
        self.common_event_id = common_event.id
        return
      end
    end
  end
end

*hugs*