| 
 Call Event VX - woratana -  01-22-2009
 
 Call Event
 Version 1.0
 by Woratana
 Release Date: 05/05/2008
 
 
 Introduction
 It's a little snippet that will add thing like event command 'Call
 Event' in RM2K.
 
 If you haven't use RM2K before, 'Call Event' use to run event commands
 in other event.
 Basically, it's similar to 'Call Common Event', just change from common
 event to event in map.
 
 I also added option to use call event with event from other map. :)
 
 
 Features
 Version 1.0
 
 ScreenshotsCode: # - Same as 'Call Event' in RM2K# - You can also use 'Call Event' with event from other
 map
No need...  :lol:
 
 
 Script
 Place it above main
 
 InstructionCode: #============================================================# ? [VX] ? Call Event ?
 # * Missing features from RM2K
 #------------------------------------------------------------
 # ? by Woratana [woratana@hotmail.com]
 # ? Thaiware RPG Maker Community
 # ? Released Date: 04/05/2008
 #------------------------------------------------------------
 =begin
 
 +[How to use: Version 2]+
 =========================================================================
 >> Call event from other map by call script:
 
 callev(event id, page you want, map ID)
 ------------------------------------------------------------------------
 e.g. callev(5,2,1)
 ^ to call event commands list from 'page 2' of 'event ID 5' in Map ID '1'
 ------------------------------------------------------------------------
 >> Call event in current map by call script:
 
 callev(event id, page you want)
 ------------------------------------------------------------------------
 >> If you want to call event in current page that it's running,
 set 'page you want' to 0
 ------------------------------------------------------------------------
 *Note: You CANNOT call erased event!
 ========================================================================
 =end
 #------------------------------------------------------------
 
 # Make variable 'event' readable from outside
 class Game_Event; attr_reader :event; end
 class Game_Interpreter
 def callev(evid = 0,page = 0, id_map = $game_map.map_id)
 return if evid == 0
 if id_map != $game_map.map_id
 # Load new map data if event is not from current map
 dest_map = load_data(sprintf("Data/Map%03d.rvdata", id_map))
 if page == 0
 # Get first page if user haven't set page
 inter_event = dest_map.events[evid].pages[0]
 else
 inter_event = dest_map.events[evid].pages[page - 1]
 end
 else
 # Use $game_map if event is in current map
 if page == 0
 inter_event = $game_map.events[evid]
 else
 inter_event = $game_map.events[evid].event.pages[page - 1]
 end
 end
 # Add new child_interpreter to run commands
 @child_interpreter = Game_Interpreter.new(@depth + 1)
 # Add commands from target event
 @child_interpreter.setup(inter_event.list, @event_id)
 end
 end
Use 'Call Event' by call script:
 
 orCode: callev(event_id, page, map_id)
 for event in current mapCode: callev(event_id,page)
 If you want to call current page from that event (in case that event
 have many pages depends on condition...)
 just change use 0 for page
 
 
 Author's Notes
 Free for use in your non-commercial work if credit included. If your
 project is commercial, please contact me.
 
 Please do not redistribute this script without permission. If you want
 to post it on any forum, please link to this topic.
 
 
 
 |