Lua RPG Maker
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

problema com unificador de tilesets XP

2 participantes

Ir para baixo

problema com unificador de tilesets XP Empty problema com unificador de tilesets XP

Mensagem por marcosx Sex Jul 23, 2010 8:30 am

Eu estou usando o uificador de tilesets para untar alguns tilesets.Eu os coloco na pasta Tilesets, mas quando vou unificar, aparece a segunte mensagem:
problema com unificador de tilesets XP Unificador
Alguem pode me dizer o que aconteceu? Sad
marcosx
marcosx

Mensagens : 57
Data de inscrição : 19/07/2010
Idade : 27
Localização : No PC!!

Ir para o topo Ir para baixo

problema com unificador de tilesets XP Empty Re: problema com unificador de tilesets XP

Mensagem por RayquazaBR Sex Jul 23, 2010 1:54 pm

Posta o script aqui, acho que não da pra ajudar sem o script...
RayquazaBR
RayquazaBR

Mensagens : 218
Data de inscrição : 14/07/2010

Ir para o topo Ir para baixo

problema com unificador de tilesets XP Empty Re: problema com unificador de tilesets XP

Mensagem por marcosx Sex Jul 23, 2010 7:08 pm

RayquazaBR escreveu:Posta o script aqui, acho que não da pra ajudar sem o script...
O script é esse mas pra funcionar vc tem que excluir todos os outros e só deixar só esse:


Código:
#===============================================================================
# Tileset  Merger - Unificador de Tileset
# Versão  1.0
# Autor    game_guy
#
# Este script foi traduzido por Shocks(SnakeDeath).
#-------------------------------------------------------------------------------
# Introdução:
#
# -Nescessita de tilesets unidos para mapear? Esse script unifica
# tilesets automaticamente para você.
#
#-------------------------------------------------------------------------------
#
# Instruções:
#
# 1- Coloque os tilesets que queira unificar na pasta
# "\Graphics\Tilesets".
#
# Execute o jogo para unifica-los, não feche o aplicativo até que
# uma mensagem de alerta confirme a unificação.
#
#
# Os tilesets devem ter a mesma cor de fundo para ser importado
# corretamente.
#
#-------------------------------------------------------------------------------
#
# Creditos:
#
# game_guy  ~ Criar o script
# Fantasist ~ Me dar um pedaço do código
# 66rpg    ~ Código do Bitmap para PNG
# GAX72    ~ Nescessitar um unificador de tilesets
#===============================================================================

=begin
==============================================================================
                        Bitmap to PNG By 轮回者
==============================================================================

 对Bitmap对象直接使用
 
 bitmap_obj.make_png(name[, path])
 
 name:保存文件名
 path:保存路径

 感谢66、夏娜、金圭子的提醒和帮助!
 
==============================================================================
=end

module Zlib
  class Png_File < GzipWriter
    #--------------------------------------------------------------------------
    # ● 主处理
    #--------------------------------------------------------------------------
    def make_png(bitmap_Fx,mode)
      @mode = mode
      @bitmap_Fx = bitmap_Fx
      self.write(make_header)
      self.write(make_ihdr)
      self.write(make_idat)
      self.write(make_iend)
    end
    #--------------------------------------------------------------------------
    # ● PNG文件头数据块
    #--------------------------------------------------------------------------
    def make_header
      return [0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a].pack("C*")
    end
    #--------------------------------------------------------------------------
    # ● PNG文件情报头数据块(IHDR)
    #--------------------------------------------------------------------------
    def make_ihdr
      ih_size = [13].pack("N")
      ih_sign = "IHDR"
      ih_width = [@bitmap_Fx.width].pack("N")
      ih_height = [@bitmap_Fx.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
    #--------------------------------------------------------------------------
    # ● 生成图像数据(IDAT)
    #--------------------------------------------------------------------------
    def make_idat
      header = "\x49\x44\x41\x54"
      case @mode # 请54~
      when 1
        data = make_bitmap_data#1
      else
        data = make_bitmap_data
      end
      data = Zlib::Deflate.deflate(data, 8)
      crc = [Zlib.crc32(header + data)].pack("N")
      size = [data.length].pack("N")
      return size + header + data + crc
    end
    #--------------------------------------------------------------------------
    # ● 从Bitmap对象中生成图像数据 mode 1(请54~)
    #--------------------------------------------------------------------------
    def make_bitmap_data1
      w = @bitmap_Fx.width
      h = @bitmap_Fx.height
      data = []
      for y in 0...h
        data.push(0)
        for x in 0...w
          color = @bitmap_Fx.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)
        end
      end
      return data.pack("C*")
    end
    #--------------------------------------------------------------------------
    # ● 从Bitmap对象中生成图像数据 mode 0
    #--------------------------------------------------------------------------
    def make_bitmap_data
      gz = Zlib::GzipWriter.open('hoge.gz')
      t_Fx = 0
      w = @bitmap_Fx.width
      h = @bitmap_Fx.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
            #GC.start
          end
          color = @bitmap_Fx.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)
        end
      end
      s = data.pack("C*")
      gz.write(s)
      gz.close   
      data.clear
      gz = Zlib::GzipReader.open('hoge.gz')
      data = gz.read
      gz.close
      File.delete('hoge.gz')
      return data
    end
    #--------------------------------------------------------------------------
    # ● PNG文件尾数据块(IEND)
    #--------------------------------------------------------------------------
    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
#------------------------------------------------------------------------------
#  关联到Bitmap。
#==============================================================================
class Bitmap
  #--------------------------------------------------------------------------
  # ● 关联
  #--------------------------------------------------------------------------
  def make_png(name="like", path="",mode=0)
    make_dir(path) if path != ""
    Zlib::Png_File.open("temp.gz") {|gz|
      gz.make_png(self,mode)
    }
    Zlib::GzipReader.open("temp.gz") {|gz|
      $read = gz.read
    }
    f = File.open(path + name + ".png","wb")
    f.write($read)
    f.close
    File.delete('temp.gz')
    end
  #--------------------------------------------------------------------------
  # ● 生成保存路径
  #--------------------------------------------------------------------------
  def make_dir(path)
    dir = path.split("/")
    for i in 0...dir.size
      unless dir == "."
        add_dir = dir[0..i].join("/")
        begin
          Dir.mkdir(add_dir)
        rescue
        end
      end
    end
  end
end
begin
  @time = Time.now
  @height = 0
  @names = []
  dir = Dir.new('Graphics/Tilesets/')
  dir.entries.each {|file| next unless file.include?('.png')
  @names.push(file); RPG::Cache.tileset(file)}
  for i in 0...@names.size
    @tile = RPG::Cache.tileset(@names[i])
    @height += @tile.height
  end
  @bitmap = Bitmap.new(256, @height)
  @height = 0
  for i in 0...@names.size
    @tile = RPG::Cache.tileset(@names[i])
    @rect = Rect.new(0, 0, @tile.width, @tile.height)
    @bitmap.blt(0, @height, @tile, @rect)
    @height += @tile.height
  end
  @bitmap.make_png("Tileset Unificado")
  print "                                Unificação Completa!\nForam unificados #{@names.size} tilesets no tempo de #{Time.now - @time} segundos."
  exit
end
marcosx
marcosx

Mensagens : 57
Data de inscrição : 19/07/2010
Idade : 27
Localização : No PC!!

Ir para o topo Ir para baixo

problema com unificador de tilesets XP Empty Re: problema com unificador de tilesets XP

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos