Is there a Map-to-Screenshot Script?

Status
Not open for further replies.

GrandmaDeb

Modern Exteriors Posted!
Veteran
Joined
Apr 25, 2012
Messages
4,467
Reaction score
2,942
Primarily Uses
Last edited by a moderator:

Clee

Veteran
Veteran
Joined
Mar 19, 2012
Messages
55
Reaction score
29
First Language
English
Primarily Uses
RMMV
I am currently using Hime's Map Saver script.  You can grab it from his website.
 
Last edited by a moderator:

TheoAllen

Self-proclaimed jack of all trades
Veteran
Joined
Mar 16, 2012
Messages
5,592
Reaction score
6,522
First Language
Indonesian
Primarily Uses
RMVXA
Tsukihime has good map saver script
 

GrandmaDeb

Modern Exteriors Posted!
Veteran
Joined
Apr 25, 2012
Messages
4,467
Reaction score
2,942
Primarily Uses
Last edited by a moderator:

Cadh20000

Veteran
Veteran
Joined
Sep 15, 2013
Messages
1,828
Reaction score
445
First Language
English
Primarily Uses
Last edited by a moderator:

estriole

Veteran
Veteran
Joined
Jun 27, 2012
Messages
1,309
Reaction score
531
First Language
indonesian
yami converted the omega one. and it work with large map i think. (not sure either).

but i forgot the link. so i post the code here instead:

# =============================================================================# Map Saver ACE# Version 0.1# Author: Yami# Credit: Omegas7 for VX version   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[2]*32              if @bitmaps[3] == true                y += 16 if @weird_mode              end              @result.blt(@bitmaps[1]*32,y,@bitmaps[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  endend# =============================================================================# 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)      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  endend#=============================================================================# ** 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')  endend
credits goes to:

Yami, Omega7, Woratana
 

Imploded Tomato

Veteran
Veteran
Joined
Sep 16, 2012
Messages
161
Reaction score
56
First Language
English
Primarily Uses
I use a different method other than scripts to capture my completed whole maps as parallaxed maps. I take screenshots with a free program called "Greenshot" and then I adjust the scaling of the picture in "Paint.net".
 

Cadh20000

Veteran
Veteran
Joined
Sep 15, 2013
Messages
1,828
Reaction score
445
First Language
English
Primarily Uses
@ Zoltor

Same one I gave, I just gave the link to the forum post on here rather than directly to Himeworks.com
 

GrandmaDeb

Modern Exteriors Posted!
Veteran
Joined
Apr 25, 2012
Messages
4,467
Reaction score
2,942
Primarily Uses
Last edited by a moderator:

Shaz

Veteran
Veteran
Joined
Mar 2, 2012
Messages
40,098
Reaction score
13,704
First Language
English
Primarily Uses
RMMV
This thread is being closed, due to being solved. If for some reason you would like this thread re-opened, please report this post and leave a message why. Thank you.
 
Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 0, Guests: 2)

Latest Threads

Latest Posts

Latest Profile Posts

Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??
Yay, now back in action Happy Christmas time, coming back!






Back in action to develop the indie game that has been long overdue... Final Fallacy. A game that keeps on giving! The development never ends as the developer thinks to be the smart cookie by coming back and beginning by saying... "Oh bother, this indie game has been long overdue..." How could one resist such? No-one c

Forum statistics

Threads
105,857
Messages
1,017,019
Members
137,564
Latest member
McFinnaPants
Top