Aldeia RPG

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

Suporte ao desenvolvimento de jogos


+4
=K=
Kincy
Trpino
Dumsol
8 participantes

    Minimapa pra Netplay 4.9.2

    Dumsol
    Dumsol
    Iniciante
    Iniciante


    Mensagens : 36
    Créditos : 2

    Minimapa pra Netplay 4.9.2 Empty Minimapa pra Netplay 4.9.2

    Mensagem por Dumsol Seg maio 18, 2015 1:00 am

    Bem, vou disponibilizar esse script que encontrei faz um bom tempo e estava guardando pra quando eu volta-se a mexer no Xp. É um minimapa bem bonito e leve.

    Ps: Não é de minha autoria, o crédito por ter feito o script é do squall

    1-) Coloque esse script acima do Main
    Código:
    #==============================================================================
    # ■ Passability Mini Map
    #------------------------------------------------------------------------------
    # made by squall // squall@rmxp.ch
    # released the 30th of May 2006
    #==============================================================================

    #==============================================================================
    # ■ Scene_Map
    #------------------------------------------------------------------------------
    # draw the mini map
    # @corner is the corner you want the mini map to be displayed in.
    # 1 is upper left, 2 is upper right, 3 is bottom left and 4 is bottom right
    #==============================================================================

    class Scene_Map
      alias main_passminimap main
      alias update_passminimap update
      alias transfer_passminimap transfer_player
      #--------------------------------------------------------------------------
      # ● initialize
      #--------------------------------------------------------------------------
      def initialize
        @corner = 4 # 1 or 2 or 3 or 4
      end
      #--------------------------------------------------------------------------
      # ● main
      #--------------------------------------------------------------------------
      def main
        @mini_map = Map_Event.new(@corner)
        main_passminimap
        @mini_map.dispose
      end
      #--------------------------------------------------------------------------
      # ● update
      #--------------------------------------------------------------------------
      def update
        @mini_map.update
        if $game_system.map_interpreter.running?
          @mini_map.visible = false
        elsif not $game_system.map_interpreter.running? and @mini_map.on?
          @mini_map.visible = true
        end
        update_passminimap
      end
      #--------------------------------------------------------------------------
      # ● transfer_player
      #--------------------------------------------------------------------------
      def transfer_player
        transfer_passminimap
        @mini_map.dispose
        @mini_map = Map_Event.new(@corner)
      end
    end

    #==============================================================================
    # ■ Map_Base
    #------------------------------------------------------------------------------
    #  Base class for mini maps
    #==============================================================================

    class Map_Base < Sprite
      #--------------------------------------------------------------------------
      # ● constants and instances
      #--------------------------------------------------------------------------
      PMP_VERSION  = 6
      ACTIVATED_ID = 142 # set the switch id for the minimap display (on/off)
      attr_reader :event
      #--------------------------------------------------------------------------
      # ● initialize
      #--------------------------------------------------------------------------
      def initialize(corner)
        super(Viewport.new(16, 16, width, height))
        viewport.z = 8000
        @border = Sprite.new
        @border.x = viewport.rect.x - 6
        @border.y = viewport.rect.y - 6
        @border.z = viewport.z - 1
        @border.bitmap = RPG::Cache.picture("mapback")
        self.visible = on?
        self.opacity = 180
        case corner
        when 1
          self.x = 16
          self.y = 16
        when 2
          self.x = 640 - width - 16
          self.y = 16
        when 3
          self.x = 16
          self.y = 480 - height - 16
        when 4
          self.x = 640 - width - 16
          self.y = 480 - height - 16
        else
          self.x = 16
          self.y = 16
        end
        self.visible = on?
      end
      #--------------------------------------------------------------------------
      # ● dispose
      #--------------------------------------------------------------------------
      def dispose
        @border.dispose
        super
      end
      #--------------------------------------------------------------------------
      # ● x=
      #--------------------------------------------------------------------------
      def x=(x)
        self.viewport.rect.x = x
        @border.x = x - 6
      end
      #--------------------------------------------------------------------------
      # ● y=
      #--------------------------------------------------------------------------
      def y=(y)
        self.viewport.rect.y = y
        @border.y = y - 6
      end
      #--------------------------------------------------------------------------
      # ● visible=
      #--------------------------------------------------------------------------
      def visible=(bool)
        super
        self.viewport.visible = bool
        @border.visible = bool
      end
      #--------------------------------------------------------------------------
      # ● minimap_on?
      #--------------------------------------------------------------------------
      def on?
        return $game_switches[ACTIVATED_ID]
      end
      #--------------------------------------------------------------------------
      # ● update
      #--------------------------------------------------------------------------
      def update
        super
        self.visible = on?
        
        if viewport.ox < display_x
          viewport.ox += 1
        elsif viewport.ox > display_x
          viewport.ox -= 1
        end
        if viewport.oy < display_y
          viewport.oy += 1
        elsif viewport.oy > display_y
          viewport.oy -= 1
        end
      end
      #--------------------------------------------------------------------------
      # ● width
      #--------------------------------------------------------------------------
      def width
        return 120
      end
      #--------------------------------------------------------------------------
      # ● height
      #--------------------------------------------------------------------------
      def height
        return 220
      end
      #--------------------------------------------------------------------------
      # ● display_x
      #--------------------------------------------------------------------------
      def display_x
        return $game_map.display_x * 3 / 64
      end
      #--------------------------------------------------------------------------
      # ● display_y
      #--------------------------------------------------------------------------
      def display_y
        return $game_map.display_y * 3 / 64
      end
    end

    #==============================================================================
    # ■ Map_Passability
    #------------------------------------------------------------------------------
    #   draws the mini map
    #
    #  thanks to Fanha Giang (aka fanha99) for the autotile drawing method
    #==============================================================================

    class Map_Passability < Map_Base
      #--------------------------------------------------------------------------
      # ● constants
      #--------------------------------------------------------------------------
      INDEX  =
      [
      26, 27, 32, 33,    4, 27, 32, 33,   26,  5, 32, 33,    4,  5, 32, 33,    
      26, 27, 32, 11,    4, 27, 32, 11,   26,  5, 32, 11,    4,  5, 32, 11,    
      26, 27, 10, 33,    4, 27, 10, 33,   26,  5, 10, 33,    4,  5, 10, 33,
      26, 27, 10, 11,    4, 27, 10, 11,   26,  5, 10, 11,    4,  5, 10, 11,  
      24, 25, 30, 31,   24,  5, 30, 31,   24, 25, 30, 11,   24,  5, 30, 11,  
      14, 15, 20, 21,   14, 15, 20, 11,   14, 15, 10, 21,   14, 15, 10, 11,
      28, 29, 34, 35,   28, 29, 10, 35,    4, 29, 34, 35,    4, 29, 10, 35,
      38, 39, 44, 45,    4, 39, 44, 45,   38,  5, 44, 45,    4,  5, 44, 45,
      24, 29, 30, 35,   14, 15, 44, 45,   12, 13, 18, 19,   12, 13, 18, 11,
      16, 17, 22, 23,   16, 17, 10, 23,   40, 41, 46, 47,    4, 41, 46, 47,
      36, 37, 42, 43,   36,  5, 42, 43,   12, 17, 18, 23,   12, 13, 42, 43,
      36, 41, 42, 47,   16, 17, 46, 47,   12, 17, 42, 47,    0,  1,  6,  7
      ]
      X = [0, 1, 0, 1]
      Y = [0, 0, 1, 1]
      #--------------------------------------------------------------------------
      # ● initialize
      #--------------------------------------------------------------------------
      def initialize(corner)
        super(corner)
        @autotile = RPG::Cache.picture("minimap_tiles")
        setup()
      end
      #--------------------------------------------------------------------------
      # ● setup
      #--------------------------------------------------------------------------
      def setup()
        @map = load_data(sprintf("Data/Map%03d.rxdata", $game_map.map_id))
        tileset = $data_tilesets[@map.tileset_id]
        @passages = tileset.passages
        @priorities = tileset.priorities
        redefine_tiles
        refresh
      end
      #--------------------------------------------------------------------------
      # ● pass
      #--------------------------------------------------------------------------
      def pass(tile_id)
        return 15 if tile_id == nil
        return @passages[tile_id] != nil ? @passages[tile_id] : 15
      end
      #--------------------------------------------------------------------------
      # ● passable
      #--------------------------------------------------------------------------
      def passable(tile_id)
        return pass(tile_id) < 15
      end
      #--------------------------------------------------------------------------
      # ● redefine_tile
      #--------------------------------------------------------------------------
      def redefine_tiles
        width = @map.width
        height = @map.height
        map = RPG::Map.new(width, height)
        map.data = @map.data.dup
        for x in 0...width
          for y in 0...height
            for level in [1, 2]
              id = @map.data[x, y, level]
              if id != 0 and @priorities[id] == 0
                @map.data[x, y, 0] = id
                @passages[@map.data[x, y, 0]] = @passages[id]
              end
            end
          end
        end
        for x in 0...width
          for y in 0...height
            for level in [0]
            tile = @map.data[x, y, level]
            u = @map.data[x,   y-1, level]
            l = @map.data[x-1, y,   level]
            r = @map.data[x+1, y,   level]
            d = @map.data[x,   y+1, level]
            if !passable(tile)
              map.data[x, y] = 0
            else
              if tile == 0
                map.data[x, y, level] = 0
                next
              end
              if pass(tile) < 15
                if !passable(u) and !passable(l) and !passable(r) and !passable(d)
                  map.data[x, y, level] = 0
                elsif !passable(u) and !passable(l) and !passable(r) and passable(d)
                  map.data[x, y, level] = 90
                elsif !passable(u) and !passable(l) and !passable(d) and passable(r)
                  map.data[x, y, level] = 91
                elsif !passable(u) and !passable(r) and !passable(d) and passable(l)
                  map.data[x, y, level] = 93
                elsif !passable(l) and !passable(r) and !passable(d) and passable(u)
                  map.data[x, y, level] = 92
                elsif !passable(u) and !passable(d) and passable(r) and passable(l)
                  map.data[x, y, level] = 81
                elsif !passable(u) and !passable(r) and passable(d) and passable(l)
                  map.data[x, y, level] = 84
                elsif !passable(u) and !passable(l) and passable(d) and passable(r)
                  map.data[x, y, level] = 82
                elsif !passable(d) and !passable(r) and passable(l) and passable(u)
                  map.data[x, y, level] = 86
                elsif !passable(d) and !passable(l) and passable(r) and passable(u)
                  map.data[x, y, level] = 88
                elsif !passable(r) and !passable(l) and passable(d) and passable(u)
                  map.data[x, y, level] = 80
                elsif !passable(u) and passable(d) and passable(r) and passable(l)
                  map.data[x, y, level] = 68
                elsif !passable(d) and passable(u) and passable(r) and passable(l)
                  map.data[x, y, level] = 76
                elsif !passable(r) and passable(d) and passable(u) and passable(l)
                  map.data[x, y, level] = 72
                elsif !passable(l) and passable(d) and passable(u) and passable(r)
                  map.data[x, y, level] = 64
                else
                  map.data[x, y, level] = 48
                end
              else
                map.data[x, y, level] = 0
              end
            end
            end
          end
        end
        @map = map.dup
        map = nil
      end
      #--------------------------------------------------------------------------
      # ● refresh
      #--------------------------------------------------------------------------
      def refresh
        self.visible = false
        self.bitmap = Bitmap.new(@map.width * 6, @map.height *
        bitmap = Bitmap.new(@map.width * 6, @map.height *
        rect1 = Rect.new(6, 0, 6,
        for y in 0...@map.height
          for x in 0...@map.width
            for level in [0]
              tile_id = @map.data[x, y, level]
              next if tile_id == 0
              id = tile_id / 48 - 1
              tile_id %= 48
              for g in 0..3
                h = 4 * tile_id + g
                y1 = INDEX[h] / 6
                x1 = INDEX[h] % 6
                rect2 = Rect.new(x1 * 3, y1 * 3, 3, 3)
                bitmap.blt(x * 6 + X[g] *  3, y * 6 + Y[g] * 3, @autotile, rect2)
              end
            end
          end
        end
        d_rect = Rect.new(0, 0, @map.width * 6, @map.height *
        s_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
        self.bitmap.stretch_blt(d_rect, bitmap, s_rect)
        self.viewport.ox = display_x
        self.viewport.oy = display_y
        bitmap.clear
        bitmap.dispose
      end
    end

    #==============================================================================
    # ■ Map_Event
    #------------------------------------------------------------------------------
    #  draw the events and hero position
    #==============================================================================

    class Map_Event < Map_Passability
      #--------------------------------------------------------------------------
      # ● initialize
      #--------------------------------------------------------------------------
      def initialize(corner = 4)
        super(corner)
        @dots = []
        @player = Sprite.new(self.viewport)
        @player.bitmap = RPG::Cache.picture("mm cursors")
        @player.src_rect = Rect.new(0, 0, 15, 15)
        @player.z = self.z + 3
        @events = {}
        
        for key in $game_map.events.keys
          event = $game_map.events[key]
          next if event.list == nil
          for i in 0...event.list.size
            next if event.list[i].code != 108
            @events[key] = Sprite.new(self.viewport)
            @events[key].z = self.z + 2
            if event.list[i].parameters[0].include?("event")
              @events[key].bitmap = RPG::Cache.picture("event")
            elsif event.list[i].parameters[0].include?("enemy")
              @events[key].bitmap = RPG::Cache.picture("enemy")
            elsif event.list[i].parameters[0].include?("teleport")
              @events[key].bitmap = RPG::Cache.picture("teleport")
            elsif event.list[i].parameters[0].include?("chest")
              @events[key].bitmap = RPG::Cache.picture("chest")
            elsif event.list[i].parameters[0].include?("npc")
              @events[key].bitmap = RPG::Cache.picture("npc")
            elsif event.list[i].parameters[0].include?("savepoint")
              @events[key].bitmap = RPG::Cache.picture("savepoint")
            end
          end
        end
      end
      #--------------------------------------------------------------------------
      # ● dispose
      #--------------------------------------------------------------------------
      def dispose
        @player.dispose
        for event in @events.values
          event.dispose
        end
        super
      end
      #--------------------------------------------------------------------------
      # ● update
      #--------------------------------------------------------------------------
      def update
        super
        @player.x = $game_player.real_x * 3 / 64 - 5
        @player.y = $game_player.real_y * 3 / 64 - 4
        @player.src_rect.x = ($game_player.direction / 2 - 1) * 15
        for key in @events.keys
          event = @events[key]
          mapevent = $game_map.events[key]
          event.x = mapevent.real_x * 3 / 64
          event.y = mapevent.real_y * 3 / 64
        end
      end
    end

    Depois de ter colocado o script, baixe esse pacote de imagem e jogue-a na pasta Pictures (é necessário)
    Código:
    http://www.mediafire.com/download/lhgbv8d03v8crd7/fly.zip

    Depois crie um evento comum e coloque tais comandos
    Código:
    http://prntscr.com/76h4m5

    se você manjar das capoeiras pode chamar o script sem ser pelo evento comum e adicionar ao um item.

    Screen do minimapa
    Código:
    http://prntscr.com/76h562
    Fury Fury  já é a 4 vez que tento fazer esse tópico se não pegar dessa vez desisto
    avatar
    Trpino
    Membro Ativo
    Membro Ativo


    Mensagens : 300
    Créditos : 12

    Ficha do personagem
    Nível: 1
    Experiência:
    Minimapa pra Netplay 4.9.2 Left_bar_bleue0/0Minimapa pra Netplay 4.9.2 Empty_bar_bleue  (0/0)
    Vida:
    Minimapa pra Netplay 4.9.2 Left_bar_bleue30/30Minimapa pra Netplay 4.9.2 Empty_bar_bleue  (30/30)

    Minimapa pra Netplay 4.9.2 Empty Re: Minimapa pra Netplay 4.9.2

    Mensagem por Trpino Seg maio 18, 2015 1:35 am

    mete uns prints desse mapa mano


    _________________
                                                                                                                                          
    Dumsol
    Dumsol
    Iniciante
    Iniciante


    Mensagens : 36
    Créditos : 2

    Minimapa pra Netplay 4.9.2 Empty Re: Minimapa pra Netplay 4.9.2

    Mensagem por Dumsol Seg maio 18, 2015 1:40 am

    Trpino escreveu:mete uns prints desse mapa mano
    Eu tinha colocado no tópico    Wink
    http://prntscr.com/76h562
    Kincy
    Kincy
    Membro Ativo
    Membro Ativo


    Mensagens : 289
    Créditos : 31

    Ficha do personagem
    Nível: 1
    Experiência:
    Minimapa pra Netplay 4.9.2 Left_bar_bleue0/0Minimapa pra Netplay 4.9.2 Empty_bar_bleue  (0/0)
    Vida:
    Minimapa pra Netplay 4.9.2 Left_bar_bleue30/30Minimapa pra Netplay 4.9.2 Empty_bar_bleue  (30/30)

    Minimapa pra Netplay 4.9.2 Empty Re: Minimapa pra Netplay 4.9.2

    Mensagem por Kincy Seg maio 18, 2015 12:52 pm

    Ficou muito bom, obrigado por disponibilizar!
    =K=
    =K=
    Novato
    Novato


    Mensagens : 20
    Créditos : 1

    Minimapa pra Netplay 4.9.2 Empty Re: Minimapa pra Netplay 4.9.2

    Mensagem por =K= Qui Jun 25, 2015 10:05 pm

    Ola eu estou tendo um problema no script na linha 337

    Código:
      d_rect = Rect.new(0, 0, @map.width * 6, @map.height *

    Alguém pode me ajudar?
    Jonny
    Jonny
    Aldeia Friend
    Aldeia Friend


    Medalhas : Minimapa pra Netplay 4.9.2 Trophy11Minimapa pra Netplay 4.9.2 9P5Gx
    Mensagens : 1936
    Créditos : 327

    Minimapa pra Netplay 4.9.2 Empty Re: Minimapa pra Netplay 4.9.2

    Mensagem por Jonny Sex Jun 26, 2015 11:25 am

    =K= escreveu:Ola eu estou tendo um problema no script na linha 337

    Código:
       d_rect = Rect.new(0, 0, @map.width * 6, @map.height *

    Alguém pode me ajudar?

    Puedeme mostrar o error con uma imagen¿?


    _________________
    Spoiler:


    Minimapa pra Netplay 4.9.2 KVIdx
    =K=
    =K=
    Novato
    Novato


    Mensagens : 20
    Créditos : 1

    Minimapa pra Netplay 4.9.2 Empty Re: Minimapa pra Netplay 4.9.2

    Mensagem por =K= Sex Jun 26, 2015 11:52 am

    Spoiler:
    Jonny
    Jonny
    Aldeia Friend
    Aldeia Friend


    Medalhas : Minimapa pra Netplay 4.9.2 Trophy11Minimapa pra Netplay 4.9.2 9P5Gx
    Mensagens : 1936
    Créditos : 327

    Minimapa pra Netplay 4.9.2 Empty Re: Minimapa pra Netplay 4.9.2

    Mensagem por Jonny Sex Jun 26, 2015 12:29 pm

    vc puede dispobilinisar o scritp.. ¿?


    _________________
    Spoiler:


    Minimapa pra Netplay 4.9.2 KVIdx
    =K=
    =K=
    Novato
    Novato


    Mensagens : 20
    Créditos : 1

    Minimapa pra Netplay 4.9.2 Empty Re: Minimapa pra Netplay 4.9.2

    Mensagem por =K= Sex Jun 26, 2015 12:35 pm

    Código:
    #==============================================================================
    # ■ Scene_Map
    #------------------------------------------------------------------------------
    # draw the mini map
    # @corner is the corner you want the mini map to be displayed in.
    # 1 is upper left, 2 is upper right, 3 is bottom left and 4 is bottom right
    #==============================================================================

    class Scene_Map
      alias main_passminimap main
      alias update_passminimap update
      alias transfer_passminimap transfer_player
      #--------------------------------------------------------------------------
      # ● initialize
      #--------------------------------------------------------------------------
      def initialize
        @corner = 4 # 1 or 2 or 3 or 4
      end
      #--------------------------------------------------------------------------
      # ● main
      #--------------------------------------------------------------------------
      def main
        @mini_map = Map_Event.new(@corner)
        main_passminimap
        @mini_map.dispose
      end
      #--------------------------------------------------------------------------
      # ● update
      #--------------------------------------------------------------------------
      def update
        @mini_map.update
        if $game_system.map_interpreter.running?
          @mini_map.visible = false
        elsif not $game_system.map_interpreter.running? and @mini_map.on?
          @mini_map.visible = true
        end
        update_passminimap
      end
      #--------------------------------------------------------------------------
      # ● transfer_player
      #--------------------------------------------------------------------------
      def transfer_player
        transfer_passminimap
        @mini_map.dispose
        @mini_map = Map_Event.new(@corner)
      end
    end

    #==============================================================================
    # ■ Map_Base
    #------------------------------------------------------------------------------
    #  Base class for mini maps
    #==============================================================================

    class Map_Base < Sprite
      #--------------------------------------------------------------------------
      # ● constants and instances
      #--------------------------------------------------------------------------
      PMP_VERSION  = 6
      ACTIVATED_ID = 142 # set the switch id for the minimap display (on/off)
      attr_reader :event
      #--------------------------------------------------------------------------
      # ● initialize
      #--------------------------------------------------------------------------
      def initialize(corner)
        super(Viewport.new(16, 16, width, height))
        viewport.z = 8000
        @border = Sprite.new
        @border.x = viewport.rect.x - 6
        @border.y = viewport.rect.y - 6
        @border.z = viewport.z - 1
        @border.bitmap = RPG::Cache.picture("mapback")
        self.visible = on?
        self.opacity = 180
        case corner
        when 1
          self.x = 16
          self.y = 16
        when 2
          self.x = 640 - width - 16
          self.y = 16
        when 3
          self.x = 16
          self.y = 480 - height - 16
        when 4
          self.x = 640 - width - 16
          self.y = 480 - height - 16
        else
          self.x = 16
          self.y = 16
        end
        self.visible = on?
      end
      #--------------------------------------------------------------------------
      # ● dispose
      #--------------------------------------------------------------------------
      def dispose
        @border.dispose
        super
      end
      #--------------------------------------------------------------------------
      # ● x=
      #--------------------------------------------------------------------------
      def x=(x)
        self.viewport.rect.x = x
        @border.x = x - 6
      end
      #--------------------------------------------------------------------------
      # ● y=
      #--------------------------------------------------------------------------
      def y=(y)
        self.viewport.rect.y = y
        @border.y = y - 6
      end
      #--------------------------------------------------------------------------
      # ● visible=
      #--------------------------------------------------------------------------
      def visible=(bool)
        super
        self.viewport.visible = bool
        @border.visible = bool
      end
      #--------------------------------------------------------------------------
      # ● minimap_on?
      #--------------------------------------------------------------------------
      def on?
        return $game_switches[ACTIVATED_ID]
      end
      #--------------------------------------------------------------------------
      # ● update
      #--------------------------------------------------------------------------
      def update
        super
        self.visible = on?
        
        if viewport.ox < display_x
          viewport.ox += 1
        elsif viewport.ox > display_x
          viewport.ox -= 1
        end
        if viewport.oy < display_y
          viewport.oy += 1
        elsif viewport.oy > display_y
          viewport.oy -= 1
        end
      end
      #--------------------------------------------------------------------------
      # ● width
      #--------------------------------------------------------------------------
      def width
        return 120
      end
      #--------------------------------------------------------------------------
      # ● height
      #--------------------------------------------------------------------------
      def height
        return 220
      end
      #--------------------------------------------------------------------------
      # ● display_x
      #--------------------------------------------------------------------------
      def display_x
        return $game_map.display_x * 3 / 64
      end
      #--------------------------------------------------------------------------
      # ● display_y
      #--------------------------------------------------------------------------
      def display_y
        return $game_map.display_y * 3 / 64
      end
    end

    #==============================================================================
    # ■ Map_Passability
    #------------------------------------------------------------------------------
    #   draws the mini map
    #
    #  thanks to Fanha Giang (aka fanha99) for the autotile drawing method
    #==============================================================================

    class Map_Passability < Map_Base
      #--------------------------------------------------------------------------
      # ● constants
      #--------------------------------------------------------------------------
      INDEX  =
      [
      26, 27, 32, 33,    4, 27, 32, 33,   26,  5, 32, 33,    4,  5, 32, 33,    
      26, 27, 32, 11,    4, 27, 32, 11,   26,  5, 32, 11,    4,  5, 32, 11,    
      26, 27, 10, 33,    4, 27, 10, 33,   26,  5, 10, 33,    4,  5, 10, 33,
      26, 27, 10, 11,    4, 27, 10, 11,   26,  5, 10, 11,    4,  5, 10, 11,  
      24, 25, 30, 31,   24,  5, 30, 31,   24, 25, 30, 11,   24,  5, 30, 11,  
      14, 15, 20, 21,   14, 15, 20, 11,   14, 15, 10, 21,   14, 15, 10, 11,
      28, 29, 34, 35,   28, 29, 10, 35,    4, 29, 34, 35,    4, 29, 10, 35,
      38, 39, 44, 45,    4, 39, 44, 45,   38,  5, 44, 45,    4,  5, 44, 45,
      24, 29, 30, 35,   14, 15, 44, 45,   12, 13, 18, 19,   12, 13, 18, 11,
      16, 17, 22, 23,   16, 17, 10, 23,   40, 41, 46, 47,    4, 41, 46, 47,
      36, 37, 42, 43,   36,  5, 42, 43,   12, 17, 18, 23,   12, 13, 42, 43,
      36, 41, 42, 47,   16, 17, 46, 47,   12, 17, 42, 47,    0,  1,  6,  7
      ]
      X = [0, 1, 0, 1]
      Y = [0, 0, 1, 1]
      #--------------------------------------------------------------------------
      # ● initialize
      #--------------------------------------------------------------------------
      def initialize(corner)
        super(corner)
        @autotile = RPG::Cache.picture("minimap_tiles")
        setup()
      end
      #--------------------------------------------------------------------------
      # ● setup
      #--------------------------------------------------------------------------
      def setup()
        @map = load_data(sprintf("Data/Map%03d.rxdata", $game_map.map_id))
        tileset = $data_tilesets[@map.tileset_id]
        @passages = tileset.passages
        @priorities = tileset.priorities
        redefine_tiles
        refresh
      end
      #--------------------------------------------------------------------------
      # ● pass
      #--------------------------------------------------------------------------
      def pass(tile_id)
        return 15 if tile_id == nil
        return @passages[tile_id] != nil ? @passages[tile_id] : 15
      end
      #--------------------------------------------------------------------------
      # ● passable
      #--------------------------------------------------------------------------
      def passable(tile_id)
        return pass(tile_id) < 15
      end
      #--------------------------------------------------------------------------
      # ● redefine_tile
      #--------------------------------------------------------------------------
      def redefine_tiles
        width = @map.width
        height = @map.height
        map = RPG::Map.new(width, height)
        map.data = @map.data.dup
        for x in 0...width
          for y in 0...height
            for level in [1, 2]
              id = @map.data[x, y, level]
              if id != 0 and @priorities[id] == 0
                @map.data[x, y, 0] = id
                @passages[@map.data[x, y, 0]] = @passages[id]
              end
            end
          end
        end
        for x in 0...width
          for y in 0...height
            for level in [0]
            tile = @map.data[x, y, level]
            u = @map.data[x,   y-1, level]
            l = @map.data[x-1, y,   level]
            r = @map.data[x+1, y,   level]
            d = @map.data[x,   y+1, level]
            if !passable(tile)
              map.data[x, y] = 0
            else
              if tile == 0
                map.data[x, y, level] = 0
                next
              end
              if pass(tile) < 15
                if !passable(u) and !passable(l) and !passable(r) and !passable(d)
                  map.data[x, y, level] = 0
                elsif !passable(u) and !passable(l) and !passable(r) and passable(d)
                  map.data[x, y, level] = 90
                elsif !passable(u) and !passable(l) and !passable(d) and passable(r)
                  map.data[x, y, level] = 91
                elsif !passable(u) and !passable(r) and !passable(d) and passable(l)
                  map.data[x, y, level] = 93
                elsif !passable(l) and !passable(r) and !passable(d) and passable(u)
                  map.data[x, y, level] = 92
                elsif !passable(u) and !passable(d) and passable(r) and passable(l)
                  map.data[x, y, level] = 81
                elsif !passable(u) and !passable(r) and passable(d) and passable(l)
                  map.data[x, y, level] = 84
                elsif !passable(u) and !passable(l) and passable(d) and passable(r)
                  map.data[x, y, level] = 82
                elsif !passable(d) and !passable(r) and passable(l) and passable(u)
                  map.data[x, y, level] = 86
                elsif !passable(d) and !passable(l) and passable(r) and passable(u)
                  map.data[x, y, level] = 88
                elsif !passable(r) and !passable(l) and passable(d) and passable(u)
                  map.data[x, y, level] = 80
                elsif !passable(u) and passable(d) and passable(r) and passable(l)
                  map.data[x, y, level] = 68
                elsif !passable(d) and passable(u) and passable(r) and passable(l)
                  map.data[x, y, level] = 76
                elsif !passable(r) and passable(d) and passable(u) and passable(l)
                  map.data[x, y, level] = 72
                elsif !passable(l) and passable(d) and passable(u) and passable(r)
                  map.data[x, y, level] = 64
                else
                  map.data[x, y, level] = 48
                end
              else
                map.data[x, y, level] = 0
              end
            end
            end
          end
        end
        @map = map.dup
        map = nil
      end
      #--------------------------------------------------------------------------
      # ● refresh
      #--------------------------------------------------------------------------
      def refresh
        self.visible = false
        self.bitmap = Bitmap.new(@map.width * 6, @map.height *
        bitmap = Bitmap.new(@map.width * 6, @map.height *
        rect1 = Rect.new(6, 0, 6,
        for y in 0...@map.height
          for x in 0...@map.width
            for level in [0]
              tile_id = @map.data[x, y, level]
              next if tile_id == 0
              id = tile_id / 48 - 1
              tile_id %= 48
              for g in 0..3
                h = 4 * tile_id + g
                y1 = INDEX[h] / 6
                x1 = INDEX[h] % 6
                rect2 = Rect.new(x1 * 3, y1 * 3, 3, 3)
                bitmap.blt(x * 6 + X[g] *  3, y * 6 + Y[g] * 3, @autotile, rect2)
              end
            end
          end
        end
        d_rect = Rect.new(0, 0, @map.width * 6, @map.height *
        s_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
        self.bitmap.stretch_blt(d_rect, bitmap, s_rect)
        self.viewport.ox = display_x
        self.viewport.oy = display_y
        bitmap.clear
        bitmap.dispose
      end
    end

    #==============================================================================
    # ■ Map_Event
    #------------------------------------------------------------------------------
    #  draw the events and hero position
    #==============================================================================

    class Map_Event < Map_Passability
      #--------------------------------------------------------------------------
      # ● initialize
      #--------------------------------------------------------------------------
      def initialize(corner = 4)
        super(corner)
        @dots = []
        @player = Sprite.new(self.viewport)
        @player.bitmap = RPG::Cache.picture("mm cursors")
        @player.src_rect = Rect.new(0, 0, 15, 15)
        @player.z = self.z + 3
        @events = {}
        
        for key in $game_map.events.keys
          event = $game_map.events[key]
          next if event.list == nil
          for i in 0...event.list.size
            next if event.list[i].code != 108
            @events[key] = Sprite.new(self.viewport)
            @events[key].z = self.z + 2
            if event.list[i].parameters[0].include?("event")
              @events[key].bitmap = RPG::Cache.picture("event")
            elsif event.list[i].parameters[0].include?("enemy")
              @events[key].bitmap = RPG::Cache.picture("enemy")
            elsif event.list[i].parameters[0].include?("teleport")
              @events[key].bitmap = RPG::Cache.picture("teleport")
            elsif event.list[i].parameters[0].include?("chest")
              @events[key].bitmap = RPG::Cache.picture("chest")
            elsif event.list[i].parameters[0].include?("npc")
              @events[key].bitmap = RPG::Cache.picture("npc")
            elsif event.list[i].parameters[0].include?("savepoint")
              @events[key].bitmap = RPG::Cache.picture("savepoint")
            end
          end
        end
      end
      #--------------------------------------------------------------------------
      # ● dispose
      #--------------------------------------------------------------------------
      def dispose
        @player.dispose
        for event in @events.values
          event.dispose
        end
        super
      end
      #--------------------------------------------------------------------------
      # ● update
      #--------------------------------------------------------------------------
      def update
        super
        @player.x = $game_player.real_x * 3 / 64 - 5
        @player.y = $game_player.real_y * 3 / 64 - 4
        @player.src_rect.x = ($game_player.direction / 2 - 1) * 15
        for key in @events.keys
          event = @events[key]
          mapevent = $game_map.events[key]
          event.x = mapevent.real_x * 3 / 64
          event.y = mapevent.real_y * 3 / 64
        end
      end
    end

    Ham eu estou usando o netplay V4.9.2 com resolução modificada
    MunĐator
    MunĐator
    Iniciante
    Iniciante


    Mensagens : 33
    Créditos : 2

    Minimapa pra Netplay 4.9.2 Empty Re: Minimapa pra Netplay 4.9.2

    Mensagem por MunĐator Sáb Jun 27, 2015 3:30 pm

    Muito bom, especialmente pelo formato que fica, só que não é compatível com o Crystal ;(

    Conteúdo patrocinado


    Minimapa pra Netplay 4.9.2 Empty Re: Minimapa pra Netplay 4.9.2

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Sex Nov 22, 2024 3:53 am