Professional Documents
Culture Documents
# ** Event Spawner
#-----------------------------------------------------------------------------# SephirothSpawn
# Version 2
# 2006-12-09
#-----------------------------------------------------------------------------#==============================================================================
#-----------------------------------------------------------------------------# * SDK Log Script
#-----------------------------------------------------------------------------SDK.log('Event Spawner', 'SephirothSpawn', 2, '2006-12-09')
#-----------------------------------------------------------------------------# * Begin SDK Enable Test
#-----------------------------------------------------------------------------if SDK.state('Event Spawner') == true
#==============================================================================
# ** Event_Spawner
#==============================================================================
module Event_Spawner
#============================================================================
# ** Presets
#============================================================================
module Presets
#-----------------------------------------------------------------------# * Sample Event A
#
# Event Basics: x = 0, y = 0, name = Sample Event A
# Event Graphics: character_name = 002-Fighter02
# Event Command: Show Message = 'I am a spawned event'
# End Event (Save unless Save Passed as false)
#-----------------------------------------------------------------------def self.sample_event_a(x = 0, y = 0, save = true)
Event_Spawner.create_event(x, y, 'Sample Event A')
Event_Spawner.set_page_graphic({'c_name' => '002-Fighter02'})
Event_Spawner.add_event_command(101, ['I am a spawned event'])
Event_Spawner.end_event(save)
end
#-----------------------------------------------------------------------# * Clone Event A
#
# Original Event: event_id = 1
# Event Basics: x = 0, y = 1, name = Clone Event A
# End Event Automatically (No Save)
#-----------------------------------------------------------------------def self.clone_event_a(event_id = 1, x = 0, y = 1)
Event_Spawner.clone_event(event_id, x, y, 'Clone Event A', true)
end
end
#-------------------------------------------------------------------------# * Create Event
#-------------------------------------------------------------------------def self.create_event(x = 0, y = 0, name = '', flag = 0)
@event = nil
end
#-------------------------------------------------------------------------# * Clone Event
#-------------------------------------------------------------------------def self.clone_event(target_id, new_x, new_y, new_name,
end_event = false, save_event = false)
# Stops If Event Not Found
return unless $game_map.events.has_key?(target_id)
# Gets Event Data
@event = $game_map.events[target_id].event
# Changes X, Y & name
@event.x
= new_x
@event.y
= new_y
@event.name = new_name
# Generates New ID
id = 1
id += 1 while $game_map.events.keys.include?(id)
id += 1 while self.saved_events($game_map.map_id).keys.include?(id)
@event.id = id
# If End Event
if end_event
# Ends Event Creation
self.end_event(save_event)
end
end
#-------------------------------------------------------------------------# * Saved Events { map_id => { event_id => name }, ... }
#-------------------------------------------------------------------------@saved_events = {}
#-------------------------------------------------------------------------# * Saved Events (Read)
#-------------------------------------------------------------------------def self.saved_events(map_id = nil)
# If Map ID not Defined
if map_id.nil?
# Return All Saved Event Data
return @saved_events
end
# If Map Data Saved
if @saved_events.has_key?(map_id)
# Return Map Saved Event Data
return @saved_events[map_id]
end
# Return Blank Hash
return {}
end
#-------------------------------------------------------------------------# * Saved Events (Write)
#-------------------------------------------------------------------------def self.saved_events=(saved_events)
@saved_events = saved_events
end
#-------------------------------------------------------------------------# * Current Page
#-------------------------------------------------------------------------def self.get_current_page
return @event.pages.last
end
end
#==============================================================================
# ** Game_Map
#==============================================================================
class Game_Map
#-------------------------------------------------------------------------# * Alias Listings
#-------------------------------------------------------------------------alias seph_eventspawner_gmap_setup setup
#-------------------------------------------------------------------------# * Setup
#-------------------------------------------------------------------------def setup(map_id)
# Original Map Setup
seph_eventspawner_gmap_setup(map_id)
# Passes Through All Saved Events
Event_Spawner.saved_events(@map_id).values.each do |event|
# Add Event
add_event(event)
end
end
#-------------------------------------------------------------------------# * Add Event
#-------------------------------------------------------------------------def add_event(event)
# Unless Event ID Already Taken
unless @events.has_key?(event.id)
# Creates New Event
@events[event.id] = Game_Event.new(@map_id, event)
# Adds To Spriteset
$scene.spriteset.add_event(@events[event.id])
end
end
end
#==============================================================================
# ** Game_Event
#==============================================================================
class Game_Event < Game_Character
#-------------------------------------------------------------------------# * Public Instance Variables
#-------------------------------------------------------------------------attr_reader :event
end
#==============================================================================
# ** Spriteset_Map
#==============================================================================
class Spriteset_Map
#-------------------------------------------------------------------------# * Add Event
#-------------------------------------------------------------------------def add_event(game_event)
# Adds New Sprite
@character_sprites << Sprite_Character.new(@viewport1, game_event)
end
end
#==============================================================================
# ** Scene_Map
#==============================================================================
class Scene_Map
#-------------------------------------------------------------------------# * Public Instance Variables
#-------------------------------------------------------------------------attr_accessor :spriteset
end
#==============================================================================
# ** Scene_Save
#==============================================================================
class Scene_Save
#-------------------------------------------------------------------------# * Alias Listings
#-------------------------------------------------------------------------alias seph_eventspawner_scnsave_wd write_data
#-------------------------------------------------------------------------# * Command : New Game
#-------------------------------------------------------------------------def write_data(file)
# Original Write Data
seph_eventspawner_scnsave_wd(file)
# Saves Saved Event Data
Marshal.dump(Event_Spawner.saved_events, file)
end
end
#==============================================================================
# ** Scene_Load
#==============================================================================
class Scene_Load
#-------------------------------------------------------------------------# * Alias Listings
#-------------------------------------------------------------------------alias seph_eventspawner_scnload_rd read_data
#-------------------------------------------------------------------------# * Command : New Game
#-------------------------------------------------------------------------def read_data(file)
# Original Write Data
seph_eventspawner_scnload_rd(file)
# Load Saved Event Data
Event_Spawner.saved_events = Marshal.load(file)
end
end
#-------------------------------------------------------------------------# * End SDK Enable Test
#-------------------------------------------------------------------------end