Accueil du SiteAccueil du Site  AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  ConnexionConnexion  S'enregistrerS'enregistrer  



Le Deal du moment : -20%
-20% sur le Lot de 2 écrans PC GIGABYTE ...
Voir le deal
429 €

Partagez
 

 [VX, Ace] Omega map saver

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
RitoJS
Ancien staffeux
Ancien staffeux
RitoJS

Masculin
Messages postés : 1925
Date d'inscription : 22/02/2012
Jauge LPC :
[VX, Ace] Omega map saver 8915271400100 / 100100 / 100[VX, Ace] Omega map saver 8915271400

[VX, Ace] Omega map saver Membre15
[VX, Ace] Omega map saver Mappeu10
[VX, Ace] Omega map saver Projet10
[VX, Ace] Omega map saver Projet16
[VX, Ace] Omega map saver Riche_10


[VX, Ace] Omega map saver Empty
MessageSujet: [VX, Ace] Omega map saver   [VX, Ace] Omega map saver EmptyJeu 7 Juin 2012 - 19:28

Marre de devoir screené chaque partie de votre grande map ?
Alors voici ce qu'il vous faut.
Crédit: Omegas7
Woratana

Instructions:
Créez une image vierge faisant le double de la taille de votre map (Ou plus si vous voulez).
Nommez-la "Blank" et enregistrez l'image au format PNG dans le dossier "system" de votre projet.
Ensuite, vous avez juste faire un évènement en suivant les instruction dans le script.
Dernière chose, pour prendre correctement le screen,Vous devez placer l'équipe tout en bas et tout à gauche de la map. (le screen prend chaque partie de la map puis les assemblent)

Voilà le(s) script(s):
VX:
Code:
# =============================================================================
# Map Saver
# Version 0.1
# Author: Omegas7.  Site: http://www.myrpgmaker.com
# Credit: Woratana for PNG Saver script.
# =============================================================================
# Save a whole map into a .png file by taking multiple screenshots and finally
# combining them. Exporting the resulting bitmap to a .png image file using
# Woratana's PNG Saver script.
# =============================================================================
# Instructions:
#  Go to Paint or whatever image editing software you want.
#  Create a new file, width and height will be the same as your map, but
#  multiplied by 32. (If map's width is 20, the image's width will be 640).
#  Name the image "Blank", and save it on the System folder of your game.
#  Go to your game map, and put the player starting position on the
#  bottom left part of the map.
#  Now make a new event, autorun, with script call:
#  $saver = Map_Saver.new
#  Then turn self-switch A ON.
#  Go to the event's second page, put as condition self-switch A, then put
#  script call:
#  $saver.update
#  Finally make the second page to be autorun as well.
#  Run the game, you will see the map will start scrolling. Let it be.
#  At the end the script will start creating the image file, this process
#  may take several minutes depending on your map's size.
#  Sure, it may take very long, but it saves HOURS if you planned to make
#  your map manually, so do not complain;).
# =============================================================================
# Notes:
#  The final result will be an image file located on your game's main folder.
#  The image will be exactly what appears on the screen, so if you got a HUD,
#  it will appear as well.
#  If you notice a problem with the final result, like with tiles etc,
#  try activating "weird mode" below.
#  If the final result is still not fixed, try to get support.
# =============================================================================


class Map_Saver
  def initialize
   
    # If the resulting image seems to be wrongly made, try turning this value
    # to "true". Normally, this should be false.
    @weird_mode = false
   
    @result = Bitmap.new('Graphics/System/Blank')
    @bitmaps = []
    @moving = true
    @last_place = 'none'
    @finishing = false
    @pause_time = 30
    @scrolling_x = 13
  end
  def update
    if !(@finishing)
      if !($game_map.scrolling?)
        if @moving
          execute_image
        else
          if can_move?(8)
            $game_map.start_scroll(8, @scrolling_x, 7)
            @moving = true
            @last_place = 'down'
          elsif can_move?(6) && @last_place == 'down'
            $game_map.start_scroll(6, 17, 7)
            @last_place = 'left'
          elsif can_move?(2) && @last_place == 'left'
            $game_map.start_scroll(2, $game_map.height, 9)
            @last_place = 'up'
            @moving = true
          else
            @finishing = true
            for i in 0...@bitmaps.size
              y = @bitmaps[i][2]*32
              if @bitmaps[i][3] == true
                y += 16 if @weird_mode
              end
              @result.blt(@bitmaps[i][1]*32,y,@bitmaps[i][0],
              Rect.new(0,0,544,416))
            end
            @result.make_png('Map','')
            print "Map image production is over!"
            exit
          end
        end
      end
    end
  end
  def execute_image
    Graphics.freeze
    Sound.play_decision
    @bitmaps.push([Graphics.snap_to_bitmap,
    $game_map.display_x/256,
    $game_map.display_y/256,
    nil])
    @moving = false
    Graphics.transition(@pause_time)
    if can_move?(8) && can_move?(2)
      @bitmaps[@bitmaps.size - 1][3] = true
    end
  end
  def can_move?(direction)
    case direction
    when 6
      return false if ($game_map.display_x/256) == ($game_map.width - 17)
      return true
    when 2
      return false if ($game_map.display_y/256) == ($game_map.height - 13)
      return true
    when 4
      return false if ($game_map.display_x/256 == 0)
      return true
    when 8
      return false if ($game_map.display_y/256 == 0)
      return true
    end
  end
end


# =============================================================================
# PNG Saver by Woratana.
# =============================================================================

module Zlib
  class Png_File < GzipWriter
    def make_png(bitmap, mode = 0)
      @bitmap, @mode = bitmap, mode
      create_loader
      self.write(make_header)
      self.write(make_ihdr)
      self.write(make_idat)
      self.write(make_iend)
    end
    def create_loader
      w = @bitmap.width
      h = @bitmap.height
      @calculated = [0,nil]
      @calculated[1] = Float.induced_from(w*h)
      @window = Window_Base.new(0,150,544,116)
      @window.contents.font.size = 16
      @update = ((@bitmap.width*@bitmap.height)/3000.0).floor.to_i
      refresh_loader
    end
    def refresh_loader
      Graphics.update
      @window.contents.clear
      text = ['Creating image file, please wait...',
      percent.to_s + '% done...']
      for i in 0...text.size
        @window.contents.draw_text(0,20*i,520,20,text[i])
      end
      Graphics.update
    end
    def percent
      return ((100/@calculated[1])*@calculated[0]).floor
    end
    def make_header
      return [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a].pack('C*')
    end
    def make_ihdr
      ih_size              = [13].pack('N')
      ih_sign              = 'IHDR'
      ih_width              = [@bitmap.width].pack('N')
      ih_height            = [@bitmap.height].pack('N')
      ih_bit_depth          = [8].pack('C')
      ih_color_type        = [6].pack('C')
      ih_compression_method = [0].pack('C')
      ih_filter_method      = [0].pack('C')
      ih_interlace_method  = [0].pack('C')
      string = ih_sign + ih_width + ih_height + ih_bit_depth + ih_color_type +
              ih_compression_method + ih_filter_method + ih_interlace_method
      ih_crc = [Zlib.crc32(string)].pack('N')
      return ih_size + string + ih_crc
    end
    def make_idat
      header  = "\x49\x44\x41\x54"
      data    = @mode == 0 ? make_bitmap_data0 : make_bitmap_data1
      data    = Zlib::Deflate.deflate(data, 8)
      crc    = [Zlib.crc32(header + data)].pack('N')
      size    = [data.length].pack('N')
      return size + header + data + crc
    end
    def make_bitmap_data0
      gz = Zlib::GzipWriter.open('png2.tmp')
      t_Fx = 0
      w = @bitmap.width
      h = @bitmap.height
      data = []
      for y in 0...h
        data.push(0)
        for x in 0...w
          t_Fx += 1
          if t_Fx % 10000 == 0
            Graphics.update
          end
          if t_Fx % 100000 == 0
            s = data.pack('C*')
            gz.write(s)
            data.clear
          end
          color = @bitmap.get_pixel(x, y)
          red = color.red
          green = color.green
          blue = color.blue
          alpha = color.alpha
          data.push(red)
          data.push(green)
          data.push(blue)
          data.push(alpha)
          @calculated[0] += 1
          if @calculated[0] % @update == 0
            refresh_loader
          end
        end
      end
      s = data.pack('C*')
      gz.write(s)
      gz.close 
      data.clear
      gz = Zlib::GzipReader.open('png2.tmp')
      data = gz.read
      gz.close
      File.delete('png2.tmp')
      return data
    end
    def make_bitmap_data1
      w = @bitmap.width
      h = @bitmap.height
      data = []
      for y in 0...h
        data.push(0)
        for x in 0...w
          color = @bitmap.get_pixel(x, y)
          red = color.red
          green = color.green
          blue = color.blue
          alpha = color.alpha
          data.push(red)
          data.push(green)
          data.push(blue)
          data.push(alpha)
          @calculated[0] += 1
          if @calculated[0] % @update == 0
            refresh_loader
          end
        end
      end
      return data.pack('C*')
    end
    def make_iend
      ie_size = [0].pack('N')
      ie_sign = 'IEND'
      ie_crc  = [Zlib.crc32(ie_sign)].pack('N')
      return ie_size + ie_sign + ie_crc
    end
  end
end

#=============================================================================
# ** Bitmap
#=============================================================================
class Bitmap
  def make_png(name = 'like', path = '', mode = 0)
    Zlib::Png_File.open('png.tmp')  { |gz| gz.make_png(self, mode) }
    Zlib::GzipReader.open('png.tmp') { |gz| $read = gz.read }
    f = File.open(path + name + '.png', 'wb')
    f.write($read)
    f.close
    File.delete('png.tmp')
  end
end


Demo vx:
http://www.mediafire.com/?menz5nmmdnm


VX ace(merci à yami pour avoir converti le script pour Ace):
Code:
# =============================================================================
# Map Saver
# Version 0.1
# Author: Omegas7.  Site: http://www.myrpgmaker.com
# Credit: Woratana for PNG Saver script.
# =============================================================================
# Save a whole map into a .png file by taking multiple screenshots and finally
# combining them. Exporting the resulting bitmap to a .png image file using
# Woratana's PNG Saver script.
# =============================================================================
# Instructions:
#  Go to Paint or whatever image editing software you want.
#  Create a new file, width and height will be the same as your map, but
#  multiplied by 32. (If map's width is 20, the image's width will be 640).
#  Name the image "Blank", and save it on the System folder of your game.
#  Go to your game map, and put the player starting position on the
#  bottom left part of the map.
#  Now make a new event, autorun, with script call:
#  $saver = Map_Saver.new
#  Then turn self-switch A ON.
#  Go to the event's second page, put as condition self-switch A, then put
#  script call:
#  $saver.update
#  Finally make the second page to be autorun as well.
#  Run the game, you will see the map will start scrolling. Let it be.
#  At the end the script will start creating the image file, this process
#  may take several minutes depending on your map's size.
#  Sure, it may take very long, but it saves HOURS if you planned to make
#  your map manually, so do not complain ;).
# =============================================================================
# Notes:
#  The final result will be an image file located on your game's main folder.
#  The image will be exactly what appears on the screen, so if you got a HUD,
#  it will appear as well.
#  If you notice a problem with the final result, like with tiles etc,
#  try activating "weird mode" below.
#  If the final result is still not fixed, try to get support.
# =============================================================================

class Map_Saver
  def initialize

    # If the resulting image seems to be wrongly made, try turning this value
    # to "true". Normally, this should be false.
    @weird_mode = false

    @result = Bitmap.new('Graphics/System/Blank')
    @bitmaps = []
    @moving = true
    @last_place = 'none'
    @finishing = false
    @pause_time = 30
    @scrolling_x = 13
  end
  def update
    if !(@finishing)
      if !($game_map.scrolling?)
        if @moving
          execute_image
        else
          if can_move?(8)
            $game_map.start_scroll(8, @scrolling_x, 7)
            @moving = true
            @last_place = 'down'
          elsif can_move?(6) && @last_place == 'down'
            $game_map.start_scroll(6, 17, 7)
            @last_place = 'left'
          elsif can_move?(2) && @last_place == 'left'
            $game_map.start_scroll(2, $game_map.height, 9)
            @last_place = 'up'
            @moving = true
          else
            @finishing = true
            for i in 0...@bitmaps.size
              y = @bitmaps[i][2]*32
              if @bitmaps[i][3] == true
                y += 16 if @weird_mode
              end
              @result.blt(@bitmaps[i][1]*32,y,@bitmaps[i][0],
              Rect.new(0,0,Graphics.width,Graphics.height))
            end
            @result.make_png('Map','')
            print "Map image production is over!"
            exit
          end
        end
      end
    end
  end
  def execute_image
    Graphics.freeze
    @bitmaps.push([Graphics.snap_to_bitmap,
    $game_map.display_x,
    $game_map.display_y,
    nil])
    @moving = false
    Graphics.transition(@pause_time)
    if can_move?(8) && can_move?(2)
      @bitmaps[@bitmaps.size - 1][3] = true
    end
  end
  def can_move?(direction)
    case direction
    when 6
      return false if ($game_map.display_x) == ($game_map.width - Graphics.width / 32)
      return true
    when 2
      return false if ($game_map.display_y) == ($game_map.height - Graphics.height / 32)
      return true
    when 4
      return false if ($game_map.display_x == 0)
      return true
    when 8
      return false if ($game_map.display_y == 0)
      return true
    end
  end
end

# =============================================================================
# PNG Saver by Woratana.
# =============================================================================
module Zlib
  class Png_File < GzipWriter
    def make_png(bitmap, mode = 0)
      @bitmap, @mode = bitmap, mode
      create_loader
      self.write(make_header)
      self.write(make_ihdr)
      self.write(make_idat)
      self.write(make_iend)
    end
    def create_loader
      w = @bitmap.width
      h = @bitmap.height
      @calculated = [0,nil]
      @calculated[1] = (w*h).to_f
      @window = Window_Base.new(0,150,544,116)
      @window.contents.font.size = 16
      @update = ((@bitmap.width*@bitmap.height)/3000.0).floor.to_i
      refresh_loader
    end
    def refresh_loader
      Graphics.update
      @window.contents.clear
      text = ['Creating image file, please wait...',
      percent.to_s + '% done...']
      for i in 0...text.size
        @window.contents.draw_text(0,20*i,520,20,text[i])
      end
      Graphics.update
    end
    def percent
      return ((100/@calculated[1])*@calculated[0]).floor
    end
    def make_header
      return [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a].pack('C*')
    end
    def make_ihdr
      ih_size              = [13].pack('N')
      ih_sign              = 'IHDR'
      ih_width              = [@bitmap.width].pack('N')
      ih_height            = [@bitmap.height].pack('N')
      ih_bit_depth          = [8].pack('C')
      ih_color_type        = [6].pack('C')
      ih_compression_method = [0].pack('C')
      ih_filter_method      = [0].pack('C')
      ih_interlace_method  = [0].pack('C')
      string = ih_sign + ih_width + ih_height + ih_bit_depth + ih_color_type +
              ih_compression_method + ih_filter_method + ih_interlace_method
      ih_crc = [Zlib.crc32(string)].pack('N')
      return ih_size + string + ih_crc
    end
    def make_idat
      header  = "\x49\x44\x41\x54"
      data    = @mode == 0 ? make_bitmap_data0 : make_bitmap_data1
      data    = Zlib::Deflate.deflate(data, 8)
      crc    = [Zlib.crc32(header + data)].pack('N')
      size    = [data.length].pack('N')
      return size + header + data + crc
    end
    def make_bitmap_data0
      gz = Zlib::GzipWriter.open('png2.tmp')
      t_Fx = 0
      w = @bitmap.width
      h = @bitmap.height
      data = []
      for y in 0...h
        data.push(0)
        for x in 0...w
          t_Fx += 1
          if t_Fx % 10000 == 0
            Graphics.update
          end
          if t_Fx % 100000 == 0
            s = data.pack('C*')
            gz.write(s)
            data.clear
          end
          color = @bitmap.get_pixel(x, y)
          red = color.red
          green = color.green
          blue = color.blue
          alpha = color.alpha
          data.push(red)
          data.push(green)
          data.push(blue)
          data.push(alpha)
          @calculated[0] += 1
          if @calculated[0] % @update == 0
            refresh_loader
          end
        end
      end
      s = data.pack('C*')
      gz.write(s)
      gz.close 
      data.clear
      gz = Zlib::GzipReader.open('png2.tmp')
      data = gz.read
      gz.close
      File.delete('png2.tmp')
      return data
    end
    def make_bitmap_data1
      w = @bitmap.width
      h = @bitmap.height
      data = []
      for y in 0...h
        data.push(0)
        for x in 0...w
          color = @bitmap.get_pixel(x, y)
          red = color.red
          green = color.green
          blue = color.blue
          alpha = color.alpha
          data.push(red)
          data.push(green)
          data.push(blue)
          data.push(alpha)
          @calculated[0] += 1
          if @calculated[0] % @update == 0
            refresh_loader
          end
        end
      end
      return data.pack('C*')
    end
    def make_iend
      ie_size = [0].pack('N')
      ie_sign = 'IEND'
      ie_crc  = [Zlib.crc32(ie_sign)].pack('N')
      return ie_size + ie_sign + ie_crc
    end
  end
end
#=============================================================================
# ** Bitmap
#=============================================================================
class Bitmap
  def make_png(name = 'like', path = '', mode = 0)
    Zlib::Png_File.open('png.tmp')  { |gz| gz.make_png(self, mode) }
    Zlib::GzipReader.open('png.tmp') { |gz| $read = gz.read }
    f = File.open(path + name + '.png', 'wb')
    f.write($read)
    f.close
    File.delete('png.tmp')
  end
end

Voilà !
Revenir en haut Aller en bas
http://lunarito.wordpress.com/ https://twitter.com/RitoJS http://ritojs.deviantart.com/
Invité
Invité
Anonymous


[VX, Ace] Omega map saver Empty
MessageSujet: Re: [VX, Ace] Omega map saver   [VX, Ace] Omega map saver EmptyJeu 7 Juin 2012 - 20:45

Merci du partage, je t'ajoute des points. =)
Revenir en haut Aller en bas
Pix
Paysan (niveau 4)
Paysan (niveau 4)
Pix

Messages postés : 35
Date d'inscription : 07/06/2012
Jauge LPC :
[VX, Ace] Omega map saver 89152714000 / 1000 / 100[VX, Ace] Omega map saver 8915271400


[VX, Ace] Omega map saver Empty
MessageSujet: Re: [VX, Ace] Omega map saver   [VX, Ace] Omega map saver EmptyVen 8 Juin 2012 - 20:28

Merci du partage!
Revenir en haut Aller en bas
Pakodar
Paysan (niveau 3)
Paysan (niveau 3)
Pakodar

Masculin
Messages postés : 25
Date d'inscription : 22/04/2012
Jauge LPC :
[VX, Ace] Omega map saver 89152714002 / 1002 / 100[VX, Ace] Omega map saver 8915271400


[VX, Ace] Omega map saver Empty
MessageSujet: Re: [VX, Ace] Omega map saver   [VX, Ace] Omega map saver EmptySam 9 Juin 2012 - 18:05

Génial! Merci beaucoup!
Revenir en haut Aller en bas
Magicalichigo
Ancienne staffeuse
Ancienne staffeuse
Magicalichigo

Féminin
Messages postés : 4252
Date d'inscription : 02/08/2011
Jauge LPC :
[VX, Ace] Omega map saver 891527140056 / 10056 / 100[VX, Ace] Omega map saver 8915271400

[VX, Ace] Omega map saver Projet10
[VX, Ace] Omega map saver Roi-de10
[VX, Ace] Omega map saver Haberg10
[VX, Ace] Omega map saver Altrui10
[VX, Ace] Omega map saver Projet10
[VX, Ace] Omega map saver Event-10
[VX, Ace] Omega map saver Graphi10
[VX, Ace] Omega map saver Dessin10
[VX, Ace] Omega map saver Travai10
[VX, Ace] Omega map saver Mythe_10
[VX, Ace] Omega map saver Membre15
[VX, Ace] Omega map saver Pakont10
[VX, Ace] Omega map saver Collec10
[VX, Ace] Omega map saver Collec11
[VX, Ace] Omega map saver Collec12
[VX, Ace] Omega map saver Riche_10


[VX, Ace] Omega map saver Empty
MessageSujet: Re: [VX, Ace] Omega map saver   [VX, Ace] Omega map saver EmptySam 9 Juin 2012 - 18:52

Alors ça c'est génial, merci beaucoup !
Revenir en haut Aller en bas
Contenu sponsorisé




[VX, Ace] Omega map saver Empty
MessageSujet: Re: [VX, Ace] Omega map saver   [VX, Ace] Omega map saver Empty

Revenir en haut Aller en bas
 
[VX, Ace] Omega map saver
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Tsukihime map saver
» [VX] Omega Map system
» Recrutement Omega
» [RMXP] Omega I
» [RMXP] Omega [ABANDON]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Palais Créatif :: ~ PARTAGE ~ :: Scripts et plugins :: RPG Maker VX :: Autres-
Sauter vers: