Aldeia RPG

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

Suporte no desenvolvimento de jogos


+6
jiraya
Valentine
Singelinho
renan-vieira
matheus180
RD12
10 participantes

    Separador de Icon Set

    RD12
    RD12
    Lenda
    Lenda

    Medalhas : Separador de Icon Set 48080450Separador de Icon Set Trophy11Separador de Icon Set GIueZSeparador de Icon Set ZgLkiRU
    Mensagens : 1946
    Créditos : 745

    Separador de Icon Set Empty Separador de Icon Set

    Mensagem por RD12 Sex Jan 10, 2014 6:48 pm

    Icon Splitter
    Separador de Icon Set

    Este script serve para separar iconsets, de rmvx, rmvx ace ou seja o que for. Ele recorta todos os ícones e salva, desde que estes estejam organizados na em um template.
    Pode demorar um pouco, dependendo do tamanho do iconset, mantenha a window ativa.


    É possível configurar o tamanho dos ícones. Funcionando em todos templates, sendo possível recortar até mesmo Characters.

    O script impossibilita prosseguir o jogo, então após terminar de usá-lo, desative-o, e agradeça pois nos incentiva a fazer outros scripts.

    IMAGEM
    Separador de Icon Set BvYzmYA

    SCRIPT
    Para usar, configure o nome do iconset, localizado na pasta icons, no module.
    Código:
    #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
    #| RD12 |              Icon Splitter
    #            Separa todos os icones de um Icon Set
    #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
    #Caso não for mais usar delete o script, ou desative-o comentando.
    #=begin

    module Icon_Split
     Width = 24 #Altura de cada ícone
     Height = 24 #Largura de cada ícone
     DIR = "Graphics/ICON_SPLIT/" #Diretório que salvará os ícones
     IconSet = "nome"#Nome do icon set na pasta icons
    end

    class Scene_Title

      def main
        $game_system = Game_System.new
        $data_system  = load_data("Data/System.rxdata")
        @bitmap = RPG::Cache.icon(Icon_Split::IconSet)
        @width = Icon_Split::Width
        @height = Icon_Split::Height
        @mx = @bitmap.width/@width
        @my = @bitmap.height/@height
        @x,@y = 0,0    
        @status = IconSplit_Status.new
        Graphics.transition
        loop do
          Graphics.update
          Input.update
          update
          if $scene != self
            break
          end
        end
        Graphics.freeze
      end
      
      def update
        return if @ended
        if @y >= @my
         n = @my*@mx
         @status.ended
         @status.refresh(@mx, @my, @y, @x)
         @ended = true
         return
        end
        if @x < @mx
          @x += 1
          icon = Bitmap.new(@width,@height)
          icon.blt(0, 0, @bitmap, Rect.new(@width*@x, @height*@y, @width, @height))
          icon.make_png("icon #{@x}-#{@y}", Icon_Split::DIR)        
        else
          @y += 1
          @x = 0
        end
        @status.refresh(@mx, @my, @y, @x)
      end
    end
    #WINDOW
    class IconSplit_Status < Window_Base
     
      def initialize
        super(410/2, 250/2, 300, 200)
        self.windowskin = RPG::Cache.windowskin("001-Blue01")
        self.contents = Bitmap.new(width - 32, height - 32)
        self.contents.font.name = "Segoe UI"
        self.contents.font.size = 20
      end
        
      def refresh(mx, my, y, x)
        self.contents.clear
         self.contents.draw_text(0, 0, 300-64, 32, "Separador de Icon Set",1)
         self.contents.draw_text(0, 20, 300-64, 32, "- RD12",1)
         self.contents.draw_text(0, 52, 200, 32, "#{(y*mx)+x} ícones recortados de #{mx*my}")  
        if @ended
         self.contents.draw_text(0, 82, 300-64, 32, "Pronto! Verifique na pasta os ícons.")  
         self.contents.draw_text(0, 112, 300-64, 32, "Desative o script caso não for usar novamente.")  
        end
      end
      
      def ended
        @ended = true
      end
    end
    #=end

    #==============================================================================
    #               本脚本出自www.66rpg.com,转载请注明。
    #==============================================================================
    =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
    #==============================================================================
    #               本脚本出自www.66rpg.com,转载请注明。
    #==============================================================================

    Fiz para meu parça Singelinho.
    Créditos: RD12 pelo sistema e 轮回者 por ter criado o script "Bitmap To PNG"


    Última edição por RD12 em Sab Jan 11, 2014 5:54 pm, editado 6 vez(es)
    matheus180
    matheus180
    Desenvolvedor
    Desenvolvedor

    Mensagens : 749
    Créditos : 174

    Separador de Icon Set Empty Re: Separador de Icon Set

    Mensagem por matheus180 Sex Jan 10, 2014 6:50 pm

    Ótimo sistema, não esperava menos de você, vou utiliza-lo!
    +1 créd!


    _________________
    Separador de Icon Set 3trEP
    renan-vieira
    renan-vieira
    Colaborador
    Colaborador

    Medalhas : Separador de Icon Set ZgLkiRU
    Mensagens : 651
    Créditos : 254

    Ficha do personagem
    Nível: 1
    Experiência:
    Separador de Icon Set Left_bar_bleue0/50Separador de Icon Set Empty_bar_bleue  (0/50)
    Vida:
    Separador de Icon Set Left_bar_bleue30/30Separador de Icon Set Empty_bar_bleue  (30/30)

    Separador de Icon Set Empty Re: Separador de Icon Set

    Mensagem por renan-vieira Sex Jan 10, 2014 7:29 pm

    tu é pica viado,
    +1 crédito "viadumm"


    _________________
    Secti MaInE - Mapa de Informações Estratégicas do Rio de Janeiro.
    http://maine.rj.gov.br/

    eMuseu - Museu Nacional do Esporte.
    https://www.emuseudoesporte.com.br/

    Memórias - Memórias de Oswaldo Cruz(App Hibrido Ionic).
    Link do APP na playstore

    Projetos citados acima foram produzidos com equipes no qual eu participei como programador Frontend e UI Design/UX Design.



    Skype: Renan.vieiraa 
    Facebook: /renandesign 
    E-mail: renanvieira.webdesign@gmail.com
    ou entre em contato via MP:^.^:
    Singelinho
    Singelinho
    Ocasional
    Ocasional

    Medalhas : Separador de Icon Set ImDuCdXyFXERC
    Mensagens : 228
    Créditos : 93

    Separador de Icon Set Empty Re: Separador de Icon Set

    Mensagem por Singelinho Sex Jan 10, 2014 8:23 pm

    Valeu meu brother!
    +1 Crédito


    _________________
    Separador de Icon Set VMscx1Q
    Valentine
    Valentine
    Administrador
    Administrador

    Medalhas : Separador de Icon Set ZgLkiRU
    Mensagens : 5238
    Créditos : 1150

    Separador de Icon Set Empty Re: Separador de Icon Set

    Mensagem por Valentine Sex Jan 10, 2014 8:52 pm

    Isso é muito bom, tem muitos ícones do vx que eu gosto de usar no rmxp e ter que ficar montando eles manualmente é chato, poupou meu trabalho

    + 1 crédito


    _________________
    Separador de Icon Set Logof5
    Singelinho
    Singelinho
    Ocasional
    Ocasional

    Medalhas : Separador de Icon Set ImDuCdXyFXERC
    Mensagens : 228
    Créditos : 93

    Separador de Icon Set Empty Re: Separador de Icon Set

    Mensagem por Singelinho Sab Jan 11, 2014 11:41 am

    Poderia por para ir separando automático sem deixar janela aberta... Mas bem da hora tá, não é crítica ruim!


    _________________
    Separador de Icon Set VMscx1Q
    RD12
    RD12
    Lenda
    Lenda

    Medalhas : Separador de Icon Set 48080450Separador de Icon Set Trophy11Separador de Icon Set GIueZSeparador de Icon Set ZgLkiRU
    Mensagens : 1946
    Créditos : 745

    Separador de Icon Set Empty Re: Separador de Icon Set

    Mensagem por RD12 Sab Jan 11, 2014 12:05 pm

    Valeu pessoal. Singelinho, é que o jogo pausa automaticamente.
    jiraya
    jiraya
    Membro Ativo
    Membro Ativo

    Mensagens : 284
    Créditos : 26

    Separador de Icon Set Empty Re: Separador de Icon Set

    Mensagem por jiraya Sab Jan 11, 2014 12:48 pm

    I love you  I love you  I love you Vlw RD I love you  I love you  I love you 


    _________________
    Se escrevam no meu Canal no Youtube:  Eberton Munhoz
           
    gladistony
    gladistony
    Membro Ativo
    Membro Ativo

    Mensagens : 336
    Créditos : 217

    Separador de Icon Set Empty Re: Separador de Icon Set

    Mensagem por gladistony Sab Jan 11, 2014 1:30 pm

    ficou muito bom, isso poupa muito tempo. Praticamente recortei + de 1000 itens em alguns minutos Successful

    Uma duvida:
    Na linha 50 onde tem
    Código:
          icon = Bitmap.new(24,24)
          icon.blt(0, 0, @bitmap, Rect.new(24*@x, 24*@y, 24, 24))
    Esse 24 não deveria ser o tamanho do ícone que eu informei?
    tipo

    Código:
        @width = Icon_Split::Width
        @height = Icon_Split::Height
        icon = Bitmap.new(@width,@height)
        icon.blt(0, 0, @bitmap, Rect.new(@width*@x, @height*@y, @width, @height))


    _________________
    Separador de Icon Set 252057
    RD12
    RD12
    Lenda
    Lenda

    Medalhas : Separador de Icon Set 48080450Separador de Icon Set Trophy11Separador de Icon Set GIueZSeparador de Icon Set ZgLkiRU
    Mensagens : 1946
    Créditos : 745

    Separador de Icon Set Empty Re: Separador de Icon Set

    Mensagem por RD12 Sab Jan 11, 2014 5:45 pm

    Realmente glaydistony, falta de atenção minha. Vou atualizar, obrigado.

    Conteúdo patrocinado

    Separador de Icon Set Empty Re: Separador de Icon Set

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Seg Out 25, 2021 1:55 pm