Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Law's Custom Save System
Autor Wiadomość
HESEE 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 31 Mar 2010
Posty: 145
Wysłany: Nie 09 Maj, 2010 18:57
Law's Custom Save System
Siema mam skrypt na save przeczytajcie i zobaczcie.
1.Co to jest ?
Jest to skrypt zapisu,napisany przez The Law G14.Z systemem tym można się spotkać w wielu grach(Gothic,Morrowind i inne).Polega on na tym że prócz nazwy lokacji przebywania postaci,ilości złota czy też czasu gry,pokazuje kawałek zdjęcia w którym widzimy głównego bohatera i kawałek otoczenia w którym się znajduje,podczas
zapisywania gry na jednym z ośmiu ,,slotów".
2.Screenshoty:
Spoiler:




3.Kod skryptu:
Uwaga !
-Lekko spolszczony przeze mnie !
-Należy te dwie części wkleić oddzielnie do dwóch działów w Skryptach.
Część 1
Spoiler:

Kod:
#------------------------------------------------------------------------------
#==============================================================================
#==============================================================================
#======================*Law's Custom Save System*==============================
#==================Author: The Law G14 and Night_Runner========================
#============================Version 1.3=======================================
#==============================================================================
#------------------------------------------------------------------------------

#==============================================================================
# ** Module_Customization
#------------------------------------------------------------------------------
#  This module contains all the customization for the script
#==============================================================================

module Customization
 
  #----------------------------------------------------------------------------
  # * Config Begin
  #----------------------------------------------------------------------------
 
  # Here you can change the number of save slots that will be in your game
  SLOTS = 8
  # Here you can change the name of the text in the save slots
  SLOT_NAME = "Zapis "
 
  # Here you can change what icon will appear next to a filename that isn't empty
  SLOT_ICON_SELECTED = "001-Weapon01"
  # Here you can change what icon will appear next to a filename that is empty
  SLOT_ICON_UNSELECTED = "002-Weapon02"
 
  # Draw Gold
  DRAW_GOLD = true
  # Draw Playtime
  DRAW_PLAYTIME = true
  # Draw location
  DRAW_LOCATION = true
  # Draw Actor's face
  DRAW_FACE = false
  # Draw Actor's name
  DRAW_NAME = true
   
  # Text inside file info window when empty
  EMPTY_SLOT_TEXT = "Brak"
 
  # Playtime Text
  PLAYTIME_TEXT = "Czas gry: "
  # Gold Text
  GOLD_TEXT = "Złoto: "
  # Location Text
  LOCATION_TEXT = "Lokacja: "
 
  # Map image border color (R,G,B,Opacity)
  MAP_BORDER = Color.new(0,0,0,200)
 
  # Text for help window when saving. Ex: "Which file would you like to save to?"
  SAVE_TEXT = "Which file would you like to save to?"
  # Text for help window when loading. Ex: "Which file would you like to load?"
  LOAD_TEXT = "Which file would you like to load?"
 
  # All windows' opacity (Lowest 0 - 255 Highest)
  # Use low opacity when having a background.
  WINDOW_OPACITY = 255
  # Background image file name, it must be in the pictures folder.
  # Put '' if you don't want a background.
  BACKGROUND_IMAGE = ''
  # Opacity for background image
  BACKGROUND_IMAGE_OPACITY = 255
   
  #----------------------------------------------------------------------------
  # * Config End
  #----------------------------------------------------------------------------

end



#==============================================================================
# ** Game_Map
#------------------------------------------------------------------------------
#  This class handles the map. It includes scrolling and passable determining
#  functions. Refer to "$game_map" for the instance of this class.
#==============================================================================

class Game_Map
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader   :name
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias law_css_setup setup
  #--------------------------------------------------------------------------
  # * Setup
  #     map_id : map ID
  #--------------------------------------------------------------------------
  def setup(*args)
    # Run the original setup
    law_css_setup(*args)
    # Load the name of the map
    @name = load_data("Data/MapInfos.rxdata")[@map_id].name
  end
end



#==============================================================================
# ** Spriteset_Map_Loading_Preview
#------------------------------------------------------------------------------
#  This class brings together map screen sprites, tilemaps, etc for the
#   loading screen's preview.
#==============================================================================

class Spriteset_Map_Loading_Preview
  #--------------------------------------------------------------------------
  # * Invariables
  #--------------------------------------------------------------------------
  RES_WIDTH =  352  # Please insert a number divisible by 32
  RES_HEIGHT = 160   # Please insert a number divisible by 32
  TOP_CORNER_X = 201
  TOP_CORNER_Y = 120
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    center
    # Make viewports
    @viewport1 = Viewport.new(TOP_CORNER_X, TOP_CORNER_Y, RES_WIDTH, RES_HEIGHT)
    @viewport2 = Viewport.new(TOP_CORNER_X, TOP_CORNER_Y, RES_WIDTH, RES_HEIGHT)
    @viewport3 = Viewport.new(TOP_CORNER_X, TOP_CORNER_Y, RES_WIDTH, RES_HEIGHT)
    @viewport1.z = 9200
    @viewport2.z = 9200
    @viewport3.z = 95000
    # Make tilemap
    @tilemap = Tilemap.new(@viewport1)
    @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
    for i in 0..6
      autotile_name = $game_map.autotile_names[i]
      @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
    end
    @tilemap.map_data = $game_map.data
    @tilemap.priorities = $game_map.priorities
    # Make panorama plane
    @panorama = Plane.new(@viewport1)
    @panorama.z = -1000
    # Make fog plane
    @fog = Plane.new(@viewport1)
    @fog.z = 3000
    # Make character sprites
    @character_sprites = []
    for i in $game_map.events.keys.sort
      sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
      @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
    # Make weather
    @weather = RPG::Weather.new(@viewport1)
    # Make picture sprites
    @picture_sprites = []
    for i in 1..50
      @picture_sprites.push(Sprite_Picture.new(@viewport2,
        $game_screen.pictures[i]))
    end
    # Make timer sprite
    @timer_sprite = Sprite_Timer.new
    # Frame update
    update
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    # Dispose of tilemap
    @tilemap.tileset.dispose
    for i in 0..6
      @tilemap.autotiles[i].dispose
    end
    @tilemap.dispose
    # Dispose of panorama plane
    @panorama.dispose
    # Dispose of fog plane
    @fog.dispose
    # Dispose of character sprites
    for sprite in @character_sprites
      sprite.dispose
    end
    # Dispose of weather
    @weather.dispose
    # Dispose of picture sprites
    for sprite in @picture_sprites
      sprite.dispose
    end
    # Dispose of timer sprite
    @timer_sprite.dispose
    # Dispose of viewports
    @viewport1.dispose
    @viewport2.dispose
    @viewport3.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    center
    # If panorama is different from current one
    if @panorama_name != $game_map.panorama_name or
       @panorama_hue != $game_map.panorama_hue
      @panorama_name = $game_map.panorama_name
      @panorama_hue = $game_map.panorama_hue
      if @panorama.bitmap != nil
        @panorama.bitmap.dispose
        @panorama.bitmap = nil
      end
      if @panorama_name != ""
        @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
      end
      Graphics.frame_reset
    end
    # If fog is different than current fog
    if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
      @fog_name = $game_map.fog_name
      @fog_hue = $game_map.fog_hue
      if @fog.bitmap != nil
        @fog.bitmap.dispose
        @fog.bitmap = nil
      end
      if @fog_name != ""
        @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
      end
      Graphics.frame_reset
    end
    # Update tilemap
    @tilemap.ox = $game_map.display_x / 4
    @tilemap.oy =  $game_map.display_y / 4
    @tilemap.update
    # Update panorama plane
    @panorama.ox =  $game_map.display_x / 8
    @panorama.oy =  $game_map.display_y / 8
    # Update fog plane
    @fog.zoom_x = $game_map.fog_zoom / 100.0
    @fog.zoom_y = $game_map.fog_zoom / 100.0
    @fog.opacity = $game_map.fog_opacity
    @fog.blend_type = $game_map.fog_blend_type
    @fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
    @fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
    @fog.tone = $game_map.fog_tone
    # Update character sprites
    for sprite in @character_sprites
      sprite.update
    end
    # Update weather graphic
    @weather.type = $game_screen.weather_type
    @weather.max = $game_screen.weather_max
    @weather.ox = $game_map.display_x / 4
    @weather.oy = $game_map.display_y / 4
    @weather.update
    # Update picture sprites
    for sprite in @picture_sprites
      sprite.update
    end
    # Update timer sprite
    @timer_sprite.update
    # Set screen color tone and shake position
    @viewport1.tone = $game_screen.tone
    @viewport1.ox = $game_screen.shake
    # Set screen flash color
    @viewport3.color = $game_screen.flash_color
    # Update viewports
    @viewport1.update
    @viewport3.update
  end
  #--------------------------------------------------------------------------
  # * Set Map Display Position to Center of Screen
  #--------------------------------------------------------------------------
  def center
    x = $game_player.real_x
    y = $game_player.real_y
    max_x = [($game_map.width - RES_WIDTH / 32) * 128, RES_WIDTH].max
    max_y = [($game_map.height - RES_HEIGHT / 32) * 128, RES_HEIGHT].max
    center_x = (RES_WIDTH/2 - 16) * 4   # Center screen x-coordinate * 4
    center_y = (RES_HEIGHT/2 - 16) * 4   # Center screen y-coordinate * 4
    $game_map.display_x = [0, [x - center_x, max_x].min].max
    $game_map.display_y = [0, [y - center_y, max_y].min].max
    $game_map.refresh
  end
end



#==============================================================================
# ** Window_SaveFile
#------------------------------------------------------------------------------
#  This window displays save files on the save and load screens.
#==============================================================================

class Window_SaveFile < Window_Base
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader   :filename                 # file name
  attr_reader   :selected                 # selected
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     file_index : save file index (0-3)
  #     filename   : file name
  #--------------------------------------------------------------------------
  def initialize(file_index, filename, position)
    super(0, 64 + position * 52, 115, 52)
    self.contents = Bitmap.new(width - 32, height - 32)
    @file_index = file_index
    @filename = Customization::SLOT_NAME + "#{@file_index + 1}.rxdata"
    @time_stamp = Time.at(0)
    @file_exist = FileTest.exist?(@filename)
    if @file_exist
      file = File.open(@filename, "r")
      @time_stamp = file.mtime
      @characters = Marshal.load(file)
      @frame_count = Marshal.load(file)
      @game_system = Marshal.load(file)
      @game_switches = Marshal.load(file)
      @game_variables = Marshal.load(file)
      @total_sec = @frame_count / Graphics.frame_rate
      file.close
    end
    refresh
    @selected = false
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    if @file_exist
      # Draw file number
      self.contents.font.color = normal_color
      bitmap = RPG::Cache.icon(Customization::SLOT_ICON_SELECTED)
      @opacity = 255
    else
      self.contents.font.color = disabled_color
      bitmap = RPG::Cache.icon(Customization::SLOT_ICON_UNSELECTED)
      @opacity = 100
    end
    name = Customization::SLOT_NAME + "#{@file_index + 1}"
    self.contents.draw_text(20, -7, 600, 32, name)
    @name_width = contents.text_size(name).width
    self.contents.fill_rect(0, -2, 10, 32, Color.new(0, 0, 0, 0))
    self.contents.blt(0, -2, bitmap, Rect.new(0, 0, 24, 24), opacity)
  end
  #--------------------------------------------------------------------------
  # * Set Selected
  #     selected : new selected (true = selected, false = unselected)
  #--------------------------------------------------------------------------
  def selected=(selected)
    @selected = selected
    update_cursor_rect
  end
  #--------------------------------------------------------------------------
  # * Cursor Rectangle Update
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @selected
      self.cursor_rect.set(0, -7, @name_width + 38, 32)
    else
      self.cursor_rect.empty
    end
  end
end



#==============================================================================
# ** Window_FileInfo
#------------------------------------------------------------------------------
#  This window displays file information.
#==============================================================================

class Window_FileInfo < Window_Base
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  if @law_save_resume_done_before.nil?
    alias nr_dispose dispose
    @law_save_resume_done_before = true
  end
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(115, 64, 525, 416)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh($game_temp.last_file_index)
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh(file_index)
    self.contents.clear
    @spriteset.dispose unless @spriteset.nil?
    @spriteset = nil
    @file_index = file_index
    @filename = Customization::SLOT_NAME + "#{@file_index + 1}.rxdata"
    @file_exist = FileTest.exist?(@filename)
    save_data = Customization::SLOTS
    # If save file exists
    if @file_exist
      file = File.open(@filename, "rb")
      $time_stamp =        file.mtime
      $characters =        Marshal.load(file)
      @frame_count =       Marshal.load(file)
      $game_system = Marshal.load(file)
      $game_switches = Marshal.load(file)
      $game_variables = Marshal.load(file)
      $game_self_switches =  Marshal.load(file)
      $game_screen = Marshal.load(file)
      $game_actors = Marshal.load(file)
      $game_party = Marshal.load(file)
      $game_troop = Marshal.load(file)
      $game_map = Marshal.load(file)
      $game_player = Marshal.load(file)
      file.close
      @total_sec = @frame_count / Graphics.frame_rate
      # Draw Screenshot
      begin
        width = 352 + 4
        height = 160 + 4
        x = (self.width - 32 - width) / 2
        y = 54 - 16
        self.contents.fill_rect(x, y, width, height, Customization::MAP_BORDER)
        @spriteset = Spriteset_Map_Loading_Preview.new
      end
      # Draw Gold
      if Customization::DRAW_GOLD
        cx = contents.text_size($data_system.words.gold).width
        self.contents.font.color = normal_color
        self.contents.font.size = 25
        self.contents.draw_text(40, 0, 100, 32, $game_party.gold.to_s, 2)
        self.contents.font.color = system_color
        self.contents.draw_text(140, 0, 20, 32, $data_system.words.gold, 2)
        self.contents.draw_text(-20, 0, 80, 32, Customization::GOLD_TEXT, 2) 
      end
      # Draw actor face
      if Customization::DRAW_FACE
        for i in 0...$game_party.actors.size
          actor = $game_party.actors[i]
          draw_actor_face_graphic(actor, i*129, 250)
        end
      # Or just their sprite
      else
        for i in 0...$game_party.actors.size
          actor = $game_party.actors[i]
          draw_actor_graphic(actor, i*129 + 60, 330)
        end
      end
      # Draw actor name
      if Customization::DRAW_NAME
        for i in 0...$game_party.actors.size
          self.contents.font.color = system_color
          self.contents.font.size = 25
          actor = $game_party.actors[i]
          draw_actor_name(actor, (i*130) + 25, 350)
        end
      end
      # Draw play time
      if Customization::DRAW_PLAYTIME
        hour = @total_sec / 60 / 60
        min = @total_sec / 60 % 60
        sec = @total_sec % 60
        time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
        self.contents.font.color = normal_color
        self.contents.font.size = 25
        self.contents.draw_text(380, 0, 100, 32, time_string, 2)
        self.contents.font.color = system_color
        time_string = Customization::PLAYTIME_TEXT
        self.contents.draw_text(230, 0, 150, 32, time_string, 2)
      end
      # Draw Location
      if Customization::DRAW_LOCATION
        self.contents.font.color = system_color
        self.contents.font.size = 25
        self.contents.draw_text(4, 210, 120, 32, Customization::LOCATION_TEXT)
        self.contents.font.color = normal_color
        x = (Customization::LOCATION_TEXT.length * 10) + 5
        self.contents.draw_text(x, 210, 120, 32, $game_map.name.to_s, 2)
      end
    else
      self.contents.draw_text(-20, 50, self.contents.width, self.contents.height - 200, Customization::EMPTY_SLOT_TEXT, 1)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Actor Face Graphic
  #--------------------------------------------------------------------------
  def draw_actor_face_graphic(actor, x, y)
    bitmap = RPG::Cache.picture(actor.id.to_s)
    self.contents.blt(x, y, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
  end
  #--------------------------------------------------------------------------
  # * Dispose Window
  #--------------------------------------------------------------------------
  def dispose(*args)
    nr_dispose(*args)
    @spriteset.dispose unless @spriteset.nil?
    @spriteset = nil
  end
end


Część 2
Spoiler:

Kod:
#==============================================================================
# ** Scene_File
#------------------------------------------------------------------------------
#  This is a superclass for the save screen and load screen.
#==============================================================================

class Scene_File
  #--------------------------------------------------------------------------
  # * Invariables
  #--------------------------------------------------------------------------
  CENTER_X = (320 - 16) * 4   # Center screen x-coordinate * 4
  CENTER_Y = (240 - 16) * 4   # Center screen y-coordinate * 4
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     help_text : text string shown in the help window
  #--------------------------------------------------------------------------
  def initialize(help_text)
    @help_text = help_text
  end
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    @cursor_displace = 0
    # Make help window
    @help_window = Window_Help.new
    @help_window.set_text(@help_text)
    @help_window.opacity = Customization::WINDOW_OPACITY
    # Make save file window
    @savefile_windows = []
    for i in 0..Customization::SLOTS - 1
      @savefile_windows.push(Window_SaveFile.new(i, make_filename(i), i))
    end
    # Select last file to be operated
    @file_index = $game_temp.last_file_index
    @savefile_windows[@file_index].selected = true
    for i in @savefile_windows
      i.opacity = Customization::WINDOW_OPACITY
    end
    # Make FileInfo window
    @fileinfo_window = Window_FileInfo.new
    @fileinfo_window.opacity = Customization::WINDOW_OPACITY
    # Make background
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.picture(Customization::BACKGROUND_IMAGE)
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @help_window.dispose
    for i in @savefile_windows
      i.dispose
    end
    @fileinfo_window.dispose
    @sprite.dispose
    @sprite.bitmap.dispose
   # $game_player.center($game_player.x, $game_player.y)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update windows
    @help_window.update
    @fileinfo_window.update
    for i in @savefile_windows
      i.update
    end   
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Call method: on_decision (defined by the subclasses)
      on_decision(make_filename(@file_index))
      $game_temp.last_file_index = @file_index
      @fileinfo_window.refresh(@file_index)
      center
      return
    end
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Call method: on_cancel (defined by the subclasses)
      on_cancel
      return
    end
    # If the down directional button was pressed
    if Input.repeat?(Input::DOWN)
      if Input.trigger?(Input::DOWN) or @file_index < Customization::SLOTS - 1
      if @file_index == Customization::SLOTS - 1
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      @cursor_displace = @file_index
      @cursor_displace += 1
      if @cursor_displace == 8
        @cursor_displace = 7
        for i in @savefile_windows
        i.dispose
        end
        @savefile_windows = []
        for i in 0..Customization::SLOTS
        f = i - 6 + @file_index
        name = make_filename(f)
        @savefile_windows.push(Window_SaveFile.new(f, name, i))
        @savefile_windows[i].selected = false
        end
      end
      $game_system.se_play($data_system.cursor_se)
      @file_index = (@file_index + 1)
      if @file_index == 8
        @file_index = 7
      end
      for i in 0..Customization::SLOTS - 1
        @savefile_windows[i].selected = false
      end
      @savefile_windows[@cursor_displace].selected = true
      @fileinfo_window.refresh(@file_index)
      return
      end
    end
    # If the up directional button was pressed
    if Input.repeat?(Input::UP)
      if Input.trigger?(Input::UP) or @file_index > 0
      if @file_index == 0
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      @cursor_displace = @file_index
      @cursor_displace -= 1
      if @cursor_displace == -1
        @cursor_displace = 0
        for i in @savefile_windows
        i.dispose
        end
        @savefile_windows = []
        for i in 0..Customization::SLOTS
        f = i - 1 + @file_index
        name = make_filename(f)
        @savefile_windows.push(Window_SaveFile.new(f, name, i))
        @savefile_windows[i].selected = false
        end
      end
      $game_system.se_play($data_system.cursor_se)
      @file_index = (@file_index - 1)
      if @file_index == -1
        @file_index = 0
      end
      for i in 0..Customization::SLOTS - 1
        @savefile_windows[i].selected = false
      end
      @savefile_windows[@cursor_displace].selected = true
      @fileinfo_window.refresh(@file_index)
      return
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Make File Name
  #     file_index : save file index (0-3)
  #--------------------------------------------------------------------------
  def make_filename(file_index)
    return Customization::SLOT_NAME + "#{file_index + 1}.rxdata"
  end
  #--------------------------------------------------------------------------
  # * Backup Data
  #--------------------------------------------------------------------------
  def backup_data
    @nr_game_system = $game_system.clone
    @nr_game_switches = $game_switches.clone
    @nr_game_variables = $game_variables.clone
    @nr_game_self_switches = $game_self_switches.clone
    @nr_game_screen = $game_screen.clone
    @nr_game_actors = $game_actors.clone
    @nr_game_party = $game_party.clone
    @nr_game_troop = $game_troop.clone
    @nr_game_map = $game_map.clone
    @nr_game_player = $game_player.clone
  end
  #--------------------------------------------------------------------------
  # * Load Backup Data
  #--------------------------------------------------------------------------
  def load_backup_data
    $game_system = @nr_game_system.clone
    $game_switches = @nr_game_switches.clone
    $game_variables = @nr_game_variables.clone
    $game_self_switches = @nr_game_self_switches.clone
    $game_screen = @nr_game_screen.clone
    $game_actors = @nr_game_actors.clone
    $game_party = @nr_game_party.clone
    $game_troop = @nr_game_troop.clone
    $game_map = @nr_game_map.clone
    $game_player = @nr_game_player.clone
  end
  #--------------------------------------------------------------------------
  # * Set Map Display Position to Center of Screen
  #--------------------------------------------------------------------------
  def center
    max_x = ($game_map.width - 20) * 128
    max_y = ($game_map.height - 15) * 128
    x = $game_player.x
    y = $game_player.y
    $game_map.display_x = [0, [x * 128 - CENTER_X, max_x].min].max
    $game_map.display_y = [0, [y * 128 - CENTER_Y, max_y].min].max
  end
end



#==============================================================================
# ** Scene_Save
#------------------------------------------------------------------------------
#  This class performs save screen processing.
#==============================================================================

class Scene_Save < Scene_File
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias law_css_scene_save_initialize initialize
  alias nr_css_scene_save_on_cancel on_cancel
  alias nr_css_scene_save_on_desision on_decision
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(*args)
    backup_data
    law_css_scene_save_initialize(*args)
    super(Customization::SAVE_TEXT)
  end
  #--------------------------------------------------------------------------
  # * On Decision
  #--------------------------------------------------------------------------
  def on_decision(*args)
    load_backup_data
    nr_css_scene_save_on_desision(*args)
    center
  end
  #--------------------------------------------------------------------------
  # * On Decision
  #--------------------------------------------------------------------------
  def on_cancel(*args)
    load_backup_data
    nr_css_scene_save_on_cancel(*args)
  end
end



#==============================================================================
# ** Scene_Load
#------------------------------------------------------------------------------
#  This class performs load screen processing.
#==============================================================================

class Scene_Load < Scene_File
 
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  if @nr_css_done_before.nil?
    alias law_css_scene_load_initialize initialize
    @nr_css_done_before = true
  end
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(*args)
    law_css_scene_load_initialize(*args)
    super(Customization::LOAD_TEXT)
  end
end



#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
#  This class performs title screen processing.
#==============================================================================

class Scene_Title
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # If battle test
    if $BTEST
      battle_test
      return
    end
    # Load database
    $data_actors        = load_data("Data/Actors.rxdata")
    $data_classes       = load_data("Data/Classes.rxdata")
    $data_skills        = load_data("Data/Skills.rxdata")
    $data_items         = load_data("Data/Items.rxdata")
    $data_weapons       = load_data("Data/Weapons.rxdata")
    $data_armors        = load_data("Data/Armors.rxdata")
    $data_enemies       = load_data("Data/Enemies.rxdata")
    $data_troops        = load_data("Data/Troops.rxdata")
    $data_states        = load_data("Data/States.rxdata")
    $data_animations    = load_data("Data/Animations.rxdata")
    $data_tilesets      = load_data("Data/Tilesets.rxdata")
    $data_common_events = load_data("Data/CommonEvents.rxdata")
    $data_system        = load_data("Data/System.rxdata")
    # Make system object
    $game_system = Game_System.new
    # Make title graphic
    @sprite = Sprite.new
    @sprite.bitmap = RPG::Cache.title($data_system.title_name)
    # Make command window
    s1 = "New Game"
    s2 = "Continue"
    s3 = "Shutdown"
    @command_window = Window_Command.new(192, [s1, s2, s3])
    @command_window.back_opacity = 160
    @command_window.x = 320 - @command_window.width / 2
    @command_window.y = 288
    # Continue enabled determinant
    # Check if at least one save file exists
    # If enabled, make @continue_enabled true; if disabled, make it false
    @continue_enabled = false
    for i in 0..Customization::SLOTS
      if FileTest.exist?(Customization::SLOT_NAME + "#{i + 1}.rxdata")
        @continue_enabled = true
      end
    end
    # If continue is enabled, move cursor to "Continue"
    # If disabled, display "Continue" text in gray
    if @continue_enabled
      @command_window.index = 1
    else
      @command_window.disable_item(1)
    end
    # Play title BGM
    $game_system.bgm_play($data_system.title_bgm)
    # Stop playing ME and BGS
    Audio.me_stop
    Audio.bgs_stop
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of command window
    @command_window.dispose
    # Dispose of title graphic
    @sprite.bitmap.dispose
    @sprite.dispose
  end
end


Jakby coś się działo nie tak,piszcie w komentach!
Link do orginału: http://www.rpgrevolution....showtopic=38298
________________________
http://www.poomoc.pl/
Kilka kliknięć a pomożesz innym!
Czy naprawdę to jest duża strata czasu?
W ten sposób pomożesz innym!

Pomagam bezinteresownie!
Ostatnio zmieniony przez Ayene Nie 06 Cze, 2010 14:50, w całości zmieniany 2 razy  
 
 
 
adzio96 



Preferowany:
RPG Maker VX

Dołączył: 12 Mar 2010
Posty: 41
Skąd: Jaworzno
Wysłany: Sob 05 Cze, 2010 16:41
Dzięki:) wkleiłem do projektu:)) a tu mała poprawka hehe
Part 1:)
Spoiler:

Kod:
#------------------------------------------------------------------------------
#==============================================================================
#==============================================================================
#======================*Law's Custom Save System*==============================
#==================Author: The Law G14 and Night_Runner========================
#============================Version 1.3=======================================
#==============================================================================
#------------------------------------------------------------------------------

#==============================================================================
# ** Module_Customization
#------------------------------------------------------------------------------
# This module contains all the customization for the script
#==============================================================================

module Customization

#----------------------------------------------------------------------------
# * Config Begin
#----------------------------------------------------------------------------

# haha
SLOTS = 8
# haha1
SLOT_NAME = "Zapis "

# Gdzie zapisać
SLOT_ICON_SELECTED = "001-Weapon01"
# Gdzie wczytać?
SLOT_ICON_UNSELECTED = "002-Weapon02"

# Draw Gold
DRAW_GOLD = true
# Draw Playtime
DRAW_PLAYTIME = true
# Draw location
DRAW_LOCATION = true
# Draw Actor's face
DRAW_FACE = false
# Draw Actor's name
DRAW_NAME = true

# Text inside file info window when empty
EMPTY_SLOT_TEXT = "Brak"

# Playtime Text
PLAYTIME_TEXT = "Czas gry: "
# Gold Text
GOLD_TEXT = "Złoto: "
# Location Text
LOCATION_TEXT = "Lokacja: "

# Map image border color (R,G,B,Opacity)
MAP_BORDER = Color.new(0,0,0,200)

# Text for help window when saving. Ex: "Gdzie mam zapisać Grę?"
SAVE_TEXT = "Gdzie to zapisać?"
# Text for help window when loading. Ex: "Którą grę wczytać?"
LOAD_TEXT = "Którą grę wczytać??"

# All windows' opacity (Lowest 0 - 255 Highest)
# Use low opacity when having a background.
WINDOW_OPACITY = 255
# Background image file name, it must be in the pictures folder.
# Put '' if you don't want a background.
BACKGROUND_IMAGE = ''
# Opacity for background image
BACKGROUND_IMAGE_OPACITY = 255

#----------------------------------------------------------------------------
# * Config End
#----------------------------------------------------------------------------

end



#==============================================================================
# ** Game_Map
#------------------------------------------------------------------------------
# This class handles the map. It includes scrolling and passable determining
# functions. Refer to "$game_map" for the instance of this class.
#==============================================================================

class Game_Map
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :name
#--------------------------------------------------------------------------
# * Alias Listing
#--------------------------------------------------------------------------
alias law_css_setup setup
#--------------------------------------------------------------------------
# * Setup
# map_id : map ID
#--------------------------------------------------------------------------
def setup(*args)
# Run the original setup
law_css_setup(*args)
# Load the name of the map
@name = load_data("Data/MapInfos.rxdata")[@map_id].name
end
end



#==============================================================================
# ** Spriteset_Map_Loading_Preview
#------------------------------------------------------------------------------
# This class brings together map screen sprites, tilemaps, etc for the
# loading screen's preview.
#==============================================================================

class Spriteset_Map_Loading_Preview
#--------------------------------------------------------------------------
# * Invariables
#--------------------------------------------------------------------------
RES_WIDTH = 352 # Please insert a number divisible by 32
RES_HEIGHT = 160 # Please insert a number divisible by 32
TOP_CORNER_X = 201
TOP_CORNER_Y = 120
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
center
# Make viewports
@viewport1 = Viewport.new(TOP_CORNER_X, TOP_CORNER_Y, RES_WIDTH, RES_HEIGHT)
@viewport2 = Viewport.new(TOP_CORNER_X, TOP_CORNER_Y, RES_WIDTH, RES_HEIGHT)
@viewport3 = Viewport.new(TOP_CORNER_X, TOP_CORNER_Y, RES_WIDTH, RES_HEIGHT)
@viewport1.z = 9200
@viewport2.z = 9200
@viewport3.z = 95000
# Make tilemap
@tilemap = Tilemap.new(@viewport1)
@tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
for i in 0..6
autotile_name = $game_map.autotile_names[i]
@tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
end
@tilemap.map_data = $game_map.data
@tilemap.priorities = $game_map.priorities
# Make panorama plane
@panorama = Plane.new(@viewport1)
@panorama.z = -1000
# Make fog plane
@fog = Plane.new(@viewport1)
@fog.z = 3000
# Make character sprites
@character_sprites = []
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
@character_sprites.push(sprite)
end
@character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
# Make weather
@weather = RPG::Weather.new(@viewport1)
# Make picture sprites
@picture_sprites = []
for i in 1..50
@picture_sprites.push(Sprite_Picture.new(@viewport2,
$game_screen.pictures[i]))
end
# Make timer sprite
@timer_sprite = Sprite_Timer.new
# Frame update
update
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
def dispose
# Dispose of tilemap
@tilemap.tileset.dispose
for i in 0..6
@tilemap.autotiles[i].dispose
end
@tilemap.dispose
# Dispose of panorama plane
@panorama.dispose
# Dispose of fog plane
@fog.dispose
# Dispose of character sprites
for sprite in @character_sprites
sprite.dispose
end
# Dispose of weather
@weather.dispose
# Dispose of picture sprites
for sprite in @picture_sprites
sprite.dispose
end
# Dispose of timer sprite
@timer_sprite.dispose
# Dispose of viewports
@viewport1.dispose
@viewport2.dispose
@viewport3.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
center
# If panorama is different from current one
if @panorama_name != $game_map.panorama_name or
@panorama_hue != $game_map.panorama_hue
@panorama_name = $game_map.panorama_name
@panorama_hue = $game_map.panorama_hue
if @panorama.bitmap != nil
@panorama.bitmap.dispose
@panorama.bitmap = nil
end
if @panorama_name != ""
@panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
end
Graphics.frame_reset
end
# If fog is different than current fog
if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
@fog_name = $game_map.fog_name
@fog_hue = $game_map.fog_hue
if @fog.bitmap != nil
@fog.bitmap.dispose
@fog.bitmap = nil
end
if @fog_name != ""
@fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
end
Graphics.frame_reset
end
# Update tilemap
@tilemap.ox = $game_map.display_x / 4
@tilemap.oy = $game_map.display_y / 4
@tilemap.update
# Update panorama plane
@panorama.ox = $game_map.display_x / 8
@panorama.oy = $game_map.display_y / 8
# Update fog plane
@fog.zoom_x = $game_map.fog_zoom / 100.0
@fog.zoom_y = $game_map.fog_zoom / 100.0
@fog.opacity = $game_map.fog_opacity
@fog.blend_type = $game_map.fog_blend_type
@fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
@fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
@fog.tone = $game_map.fog_tone
# Update character sprites
for sprite in @character_sprites
sprite.update
end
# Update weather graphic
@weather.type = $game_screen.weather_type
@weather.max = $game_screen.weather_max
@weather.ox = $game_map.display_x / 4
@weather.oy = $game_map.display_y / 4
@weather.update
# Update picture sprites
for sprite in @picture_sprites
sprite.update
end
# Update timer sprite
@timer_sprite.update
# Set screen color tone and shake position
@viewport1.tone = $game_screen.tone
@viewport1.ox = $game_screen.shake
# Set screen flash color
@viewport3.color = $game_screen.flash_color
# Update viewports
@viewport1.update
@viewport3.update
end
#--------------------------------------------------------------------------
# * Set Map Display Position to Center of Screen
#--------------------------------------------------------------------------
def center
x = $game_player.real_x
y = $game_player.real_y
max_x = [($game_map.width - RES_WIDTH / 32) * 128, RES_WIDTH].max
max_y = [($game_map.height - RES_HEIGHT / 32) * 128, RES_HEIGHT].max
center_x = (RES_WIDTH/2 - 16) * 4 # Center screen x-coordinate * 4
center_y = (RES_HEIGHT/2 - 16) * 4 # Center screen y-coordinate * 4
$game_map.display_x = [0, [x - center_x, max_x].min].max
$game_map.display_y = [0, [y - center_y, max_y].min].max
$game_map.refresh
end
end



#==============================================================================
# ** Window_SaveFile
#------------------------------------------------------------------------------
# This window displays save files on the save and load screens.
#==============================================================================

class Window_SaveFile < Window_Base
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :filename # file name
attr_reader :selected # selected
#--------------------------------------------------------------------------
# * Object Initialization
# file_index : save file index (0-3)
# filename : file name
#--------------------------------------------------------------------------
def initialize(file_index, filename, position)
super(0, 64 + position * 52, 115, 52)
self.contents = Bitmap.new(width - 32, height - 32)
@file_index = file_index
@filename = Customization::SLOT_NAME + "#{@file_index + 1}.rxdata"
@time_stamp = Time.at(0)
@file_exist = FileTest.exist?(@filename)
if @file_exist
file = File.open(@filename, "r")
@time_stamp = file.mtime
@characters = Marshal.load(file)
@frame_count = Marshal.load(file)
@game_system = Marshal.load(file)
@game_switches = Marshal.load(file)
@game_variables = Marshal.load(file)
@total_sec = @frame_count / Graphics.frame_rate
file.close
end
refresh
@selected = false
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
if @file_exist
# Draw file number
self.contents.font.color = normal_color
bitmap = RPG::Cache.icon(Customization::SLOT_ICON_SELECTED)
@opacity = 255
else
self.contents.font.color = disabled_color
bitmap = RPG::Cache.icon(Customization::SLOT_ICON_UNSELECTED)
@opacity = 100
end
name = Customization::SLOT_NAME + "#{@file_index + 1}"
self.contents.draw_text(20, -7, 600, 32, name)
@name_width = contents.text_size(name).width
self.contents.fill_rect(0, -2, 10, 32, Color.new(0, 0, 0, 0))
self.contents.blt(0, -2, bitmap, Rect.new(0, 0, 24, 24), opacity)
end
#--------------------------------------------------------------------------
# * Set Selected
# selected : new selected (true = selected, false = unselected)
#--------------------------------------------------------------------------
def selected=(selected)
@selected = selected
update_cursor_rect
end
#--------------------------------------------------------------------------
# * Cursor Rectangle Update
#--------------------------------------------------------------------------
def update_cursor_rect
if @selected
self.cursor_rect.set(0, -7, @name_width + 38, 32)
else
self.cursor_rect.empty
end
end
end



#==============================================================================
# ** Window_FileInfo
#------------------------------------------------------------------------------
# This window displays file information.
#==============================================================================

class Window_FileInfo < Window_Base
#--------------------------------------------------------------------------
# * Alias Listing
#--------------------------------------------------------------------------
if @law_save_resume_done_before.nil?
alias nr_dispose dispose
@law_save_resume_done_before = true
end
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
super(115, 64, 525, 416)
self.contents = Bitmap.new(width - 32, height - 32)
refresh($game_temp.last_file_index)
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh(file_index)
self.contents.clear
@spriteset.dispose unless @spriteset.nil?
@spriteset = nil
@file_index = file_index
@filename = Customization::SLOT_NAME + "#{@file_index + 1}.rxdata"
@file_exist = FileTest.exist?(@filename)
save_data = Customization::SLOTS
# If save file exists
if @file_exist
file = File.open(@filename, "rb")
$time_stamp = file.mtime
$characters = Marshal.load(file)
@frame_count = Marshal.load(file)
$game_system = Marshal.load(file)
$game_switches = Marshal.load(file)
$game_variables = Marshal.load(file)
$game_self_switches = Marshal.load(file)
$game_screen = Marshal.load(file)
$game_actors = Marshal.load(file)
$game_party = Marshal.load(file)
$game_troop = Marshal.load(file)
$game_map = Marshal.load(file)
$game_player = Marshal.load(file)
file.close
@total_sec = @frame_count / Graphics.frame_rate
# Draw Screenshot
begin
width = 352 + 4
height = 160 + 4
x = (self.width - 32 - width) / 2
y = 54 - 16
self.contents.fill_rect(x, y, width, height, Customization::MAP_BORDER)
@spriteset = Spriteset_Map_Loading_Preview.new
end
# Draw Gold
if Customization::DRAW_GOLD
cx = contents.text_size($data_system.words.gold).width
self.contents.font.color = normal_color
self.contents.font.size = 25
self.contents.draw_text(40, 0, 100, 32, $game_party.gold.to_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(140, 0, 20, 32, $data_system.words.gold, 2)
self.contents.draw_text(-20, 0, 80, 32, Customization::GOLD_TEXT, 2)
end
# Draw actor face
if Customization::DRAW_FACE
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
draw_actor_face_graphic(actor, i*129, 250)
end
# Or just their sprite
else
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
draw_actor_graphic(actor, i*129 + 60, 330)
end
end
# Draw actor name
if Customization::DRAW_NAME
for i in 0...$game_party.actors.size
self.contents.font.color = system_color
self.contents.font.size = 25
actor = $game_party.actors[i]
draw_actor_name(actor, (i*130) + 25, 350)
end
end
# Draw play time
if Customization::DRAW_PLAYTIME
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.font.size = 25
self.contents.draw_text(380, 0, 100, 32, time_string, 2)
self.contents.font.color = system_color
time_string = Customization::PLAYTIME_TEXT
self.contents.draw_text(230, 0, 150, 32, time_string, 2)
end
# Draw Location
if Customization::DRAW_LOCATION
self.contents.font.color = system_color
self.contents.font.size = 25
self.contents.draw_text(4, 210, 120, 32, Customization::LOCATION_TEXT)
self.contents.font.color = normal_color
x = (Customization::LOCATION_TEXT.length * 10) + 5
self.contents.draw_text(x, 210, 120, 32, $game_map.name.to_s, 2)
end
else
self.contents.draw_text(-20, 50, self.contents.width, self.contents.height - 200, Customization::EMPTY_SLOT_TEXT, 1)
end
end
#--------------------------------------------------------------------------
# * Draw Actor Face Graphic
#--------------------------------------------------------------------------
def draw_actor_face_graphic(actor, x, y)
bitmap = RPG::Cache.picture(actor.id.to_s)
self.contents.blt(x, y, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
end
#--------------------------------------------------------------------------
# * Dispose Window
#--------------------------------------------------------------------------
def dispose(*args)
nr_dispose(*args)
@spriteset.dispose unless @spriteset.nil?
@spriteset = nil
end
end



PART2:)
Spoiler:

Kod:
#==============================================================================
# ** Scene_File
#------------------------------------------------------------------------------
# This is a superclass for the save screen and load screen.
#==============================================================================

class Scene_File
#--------------------------------------------------------------------------
# * Invariables
#--------------------------------------------------------------------------
CENTER_X = (320 - 16) * 4 # Center screen x-coordinate * 4
CENTER_Y = (240 - 16) * 4 # Center screen y-coordinate * 4
#--------------------------------------------------------------------------
# * Object Initialization
# help_text : text string shown in the help window
#--------------------------------------------------------------------------
def initialize(help_text)
@help_text = help_text
end
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
@cursor_displace = 0
# Make help window
@help_window = Window_Help.new
@help_window.set_text(@help_text)
@help_window.opacity = Customization::WINDOW_OPACITY
# Make save file window
@savefile_windows = []
for i in 0..Customization::SLOTS - 1
@savefile_windows.push(Window_SaveFile.new(i, make_filename(i), i))
end
# Select last file to be operated
@file_index = $game_temp.last_file_index
@savefile_windows[@file_index].selected = true
for i in @savefile_windows
i.opacity = Customization::WINDOW_OPACITY
end
# Make FileInfo window
@fileinfo_window = Window_FileInfo.new
@fileinfo_window.opacity = Customization::WINDOW_OPACITY
# Make background
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.picture(Customization::BACKGROUND_IMAGE)
# Execute transition
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
# Abort loop if screen is changed
if $scene != self
break
end
end
# Prepare for transition
Graphics.freeze
# Dispose of windows
@help_window.dispose
for i in @savefile_windows
i.dispose
end
@fileinfo_window.dispose
@sprite.dispose
@sprite.bitmap.dispose
# $game_player.center($game_player.x, $game_player.y)
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Update windows
@help_window.update
@fileinfo_window.update
for i in @savefile_windows
i.update
end
# If C button was pressed
if Input.trigger?(Input::C)
# Call method: on_decision (defined by the subclasses)
on_decision(make_filename(@file_index))
$game_temp.last_file_index = @file_index
@fileinfo_window.refresh(@file_index)
center
return
end
# If B button was pressed
if Input.trigger?(Input::B)
# Call method: on_cancel (defined by the subclasses)
on_cancel
return
end
# If the down directional button was pressed
if Input.repeat?(Input::DOWN)
if Input.trigger?(Input::DOWN) or @file_index < Customization::SLOTS - 1
if @file_index == Customization::SLOTS - 1
$game_system.se_play($data_system.buzzer_se)
return
end
@cursor_displace = @file_index
@cursor_displace += 1
if @cursor_displace == 8
@cursor_displace = 7
for i in @savefile_windows
i.dispose
end
@savefile_windows = []
for i in 0..Customization::SLOTS
f = i - 6 + @file_index
name = make_filename(f)
@savefile_windows.push(Window_SaveFile.new(f, name, i))
@savefile_windows[i].selected = false
end
end
$game_system.se_play($data_system.cursor_se)
@file_index = (@file_index + 1)
if @file_index == 8
@file_index = 7
end
for i in 0..Customization::SLOTS - 1
@savefile_windows[i].selected = false
end
@savefile_windows[@cursor_displace].selected = true
@fileinfo_window.refresh(@file_index)
return
end
end
# If the up directional button was pressed
if Input.repeat?(Input::UP)
if Input.trigger?(Input::UP) or @file_index > 0
if @file_index == 0
$game_system.se_play($data_system.buzzer_se)
return
end
@cursor_displace = @file_index
@cursor_displace -= 1
if @cursor_displace == -1
@cursor_displace = 0
for i in @savefile_windows
i.dispose
end
@savefile_windows = []
for i in 0..Customization::SLOTS
f = i - 1 + @file_index
name = make_filename(f)
@savefile_windows.push(Window_SaveFile.new(f, name, i))
@savefile_windows[i].selected = false
end
end
$game_system.se_play($data_system.cursor_se)
@file_index = (@file_index - 1)
if @file_index == -1
@file_index = 0
end
for i in 0..Customization::SLOTS - 1
@savefile_windows[i].selected = false
end
@savefile_windows[@cursor_displace].selected = true
@fileinfo_window.refresh(@file_index)
return
end
end
end
#--------------------------------------------------------------------------
# * Make File Name
# file_index : save file index (0-3)
#--------------------------------------------------------------------------
def make_filename(file_index)
return Customization::SLOT_NAME + "#{file_index + 1}.rxdata"
end
#--------------------------------------------------------------------------
# * Backup Data
#--------------------------------------------------------------------------
def backup_data
@nr_game_system = $game_system.clone
@nr_game_switches = $game_switches.clone
@nr_game_variables = $game_variables.clone
@nr_game_self_switches = $game_self_switches.clone
@nr_game_screen = $game_screen.clone
@nr_game_actors = $game_actors.clone
@nr_game_party = $game_party.clone
@nr_game_troop = $game_troop.clone
@nr_game_map = $game_map.clone
@nr_game_player = $game_player.clone
end
#--------------------------------------------------------------------------
# * Load Backup Data
#--------------------------------------------------------------------------
def load_backup_data
$game_system = @nr_game_system.clone
$game_switches = @nr_game_switches.clone
$game_variables = @nr_game_variables.clone
$game_self_switches = @nr_game_self_switches.clone
$game_screen = @nr_game_screen.clone
$game_actors = @nr_game_actors.clone
$game_party = @nr_game_party.clone
$game_troop = @nr_game_troop.clone
$game_map = @nr_game_map.clone
$game_player = @nr_game_player.clone
end
#--------------------------------------------------------------------------
# * Set Map Display Position to Center of Screen
#--------------------------------------------------------------------------
def center
max_x = ($game_map.width - 20) * 128
max_y = ($game_map.height - 15) * 128
x = $game_player.x
y = $game_player.y
$game_map.display_x = [0, [x * 128 - CENTER_X, max_x].min].max
$game_map.display_y = [0, [y * 128 - CENTER_Y, max_y].min].max
end
end



#==============================================================================
# ** Scene_Save
#------------------------------------------------------------------------------
# This class performs save screen processing.
#==============================================================================

class Scene_Save < Scene_File
#--------------------------------------------------------------------------
# * Alias Listing
#--------------------------------------------------------------------------
alias law_css_scene_save_initialize initialize
alias nr_css_scene_save_on_cancel on_cancel
alias nr_css_scene_save_on_desision on_decision
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(*args)
backup_data
law_css_scene_save_initialize(*args)
super(Customization::SAVE_TEXT)
end
#--------------------------------------------------------------------------
# * On Decision
#--------------------------------------------------------------------------
def on_decision(*args)
load_backup_data
nr_css_scene_save_on_desision(*args)
center
end
#--------------------------------------------------------------------------
# * On Decision
#--------------------------------------------------------------------------
def on_cancel(*args)
load_backup_data
nr_css_scene_save_on_cancel(*args)
end
end



#==============================================================================
# ** Scene_Load
#------------------------------------------------------------------------------
# This class performs load screen processing.
#==============================================================================

class Scene_Load < Scene_File

#--------------------------------------------------------------------------
# * Alias Listing
#--------------------------------------------------------------------------
if @nr_css_done_before.nil?
alias law_css_scene_load_initialize initialize
@nr_css_done_before = true
end
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(*args)
law_css_scene_load_initialize(*args)
super(Customization::LOAD_TEXT)
end
end



#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
# This class performs title screen processing.
#==============================================================================

class Scene_Title
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
# If battle test
if $BTEST
battle_test
return
end
# Load database
$data_actors = load_data("Data/Actors.rxdata")
$data_classes = load_data("Data/Classes.rxdata")
$data_skills = load_data("Data/Skills.rxdata")
$data_items = load_data("Data/Items.rxdata")
$data_weapons = load_data("Data/Weapons.rxdata")
$data_armors = load_data("Data/Armors.rxdata")
$data_enemies = load_data("Data/Enemies.rxdata")
$data_troops = load_data("Data/Troops.rxdata")
$data_states = load_data("Data/States.rxdata")
$data_animations = load_data("Data/Animations.rxdata")
$data_tilesets = load_data("Data/Tilesets.rxdata")
$data_common_events = load_data("Data/CommonEvents.rxdata")
$data_system = load_data("Data/System.rxdata")
# Make system object
$game_system = Game_System.new
# Make title graphic
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title($data_system.title_name)
# Make command window
s1 = "Nowa Gra"
s2 = "Wczytaj"
s3 = "Koniec Gry"
@command_window = Window_Command.new(192, [s1, s2, s3])
@command_window.back_opacity = 160
@command_window.x = 320 - @command_window.width / 2
@command_window.y = 288
# Continue enabled determinant
# Check if at least one save file exists
# If enabled, make @continue_enabled true; if disabled, make it false
@continue_enabled = false
for i in 0..Customization::SLOTS
if FileTest.exist?(Customization::SLOT_NAME + "#{i + 1}.rxdata")
@continue_enabled = true
end
end
# If continue is enabled, move cursor to "Continue"
# If disabled, display "Continue" text in gray
if @continue_enabled
@command_window.index = 1
else
@command_window.disable_item(1)
end
# Play title BGM
$game_system.bgm_play($data_system.title_bgm)
# Stop playing ME and BGS
Audio.me_stop
Audio.bgs_stop
# Execute transition
Graphics.transition
# Main loop
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
# Abort loop if screen is changed
if $scene != self
break
end
end
# Prepare for transition
Graphics.freeze
# Dispose of command window
@command_window.dispose
# Dispose of title graphic
@sprite.bitmap.dispose
@sprite.dispose
end
end



teraz powinno być fajnie po polsku, jeśli coś nie gra to pisać na pw pomoge z tym:)
 
 
Izaya 




Pomógł: 2 razy
Dołączył: 20 Mar 2010
Posty: 127
Skąd: z Netaa !
Wysłany: Nie 06 Cze, 2010 16:48
Cóż, mi się niestety nie podoba.
Wszystko mi działa ale jak sobie przestawiłem w title menu po lewej to jak wkleiłem skrypt pokazuje mi menu na środku.
usunąłem skrypt i wszystko gra.
________________________
Padł mi laptop ... wszystko, RPG Maker i projekty, wszystko się skończyło. Nie bawię się już w RPGM'a, Zmieniam wizerunek.

Nowa strona, szukam tłumaczy, edytorów, korektorów i HTMLowców ! :D

P.S.: Aga Organization rlz ! =>
 
 
 
Mikołaj 



Pomógł: 7 razy
Dołączył: 11 Lut 2011
Posty: 84
Wysłany: Wto 01 Mar, 2011 17:15
Skrypt fajny,może kiedyś go użyje jak będe robił grę.
 
 
Xevo 




Preferowany:
RPG Maker XP

Pomógł: 2 razy
Dołączył: 20 Lut 2011
Posty: 43
Skąd: no ide
Wysłany: Sro 02 Mar, 2011 14:34
Przerobie go, bo mam nowszy CMS w XAS.
________________________

Best game ever!    
http://signup.leagueofleg...a947f1268417346
 
 
 
 
wojtas025c 




Preferowany:
RPG Maker VX

Dołączył: 29 Lip 2010
Posty: 106
Skąd: Lubin
Wysłany: Nie 17 Kwi, 2011 02:43
Mam pytanko czy może skrypt może zapisywać z rozszerzeniem .dll lub .sav
________________________
"Jestem jaki jestem i nic tego nie zmieni"
 
 
 
Melvin 




Preferowany:
RPG Maker XP

Ranga RM:
1 gra

Pomógł: 35 razy
Dołączył: 23 Paź 2009
Posty: 1063
Wysłany: Nie 17 Kwi, 2011 12:55
wojtas025c, zapisać w pliku np 'sav; jest w miarę łatwo.. Gorzej z odczytaniem...
Skrypt fajny, ale niestety kłóci się z Blizz-ABS'em.. Muszę go więc jakoś przerobić..
________________________
MelvinClass:
Spoiler:

 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene