O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

MINI MAPA NOVAS FUNÇÕES

Iniciado por 357, 20/12/2016 às 09:14

http://centrorpg.com/index.php?topic=2457.0
#==============================================================================#
#                          **Azraven Minimap**                                 #
#------------------------------------------------------------------------------#
#  ** Autor: Azraven                                                           #
#  ** Versão: 1.5b                                                             #
#  ** Data: 24/12/2012                                                         #
#------------------------------------------------------------------------------#   
#  - Descrição:                                                                #
#     Este script adiciona um mini mapa circular no jogo.                      #
#  - Utilização:                                                               #
#     Cole este script na seção "Scripts Adicionais".                          #
#==============================================================================#
#  - Histórico                                                                 #
#    24/12/2012 - Início e término da versão 1.0b                              #
#    04/03/2013 - Versão 1.5b Correção de bugs e adição de novas funções.      #
#               * Correção de um bug em que não verificava corretamente o      #
#                 de determinados tiles.                                       #
#               * Correção de um bug em que tiles de grama (bush) eram         #
#                 apresentados como bloqueio.                                  #
#               * Correção de um bug em que tiles de bloqueio posicionados     #
#                 sobre tiles de grama era mrepresentados como passáveis.      #
#               * Código melhorado.                                            #
#               + Adicionado a função de mostrar os veiculos.                  #
#               + Adicionado a função de mostrar os seguidores.                #
#               + Adicionado a função para utilizar IDs de Região para         #
#                 ocultar áreas passáveis.                                     #
#    14/06/2014 * Bug relacionado ao comando "Apagar Evento Temporário"        #
#                 corrigido.                                                   #
#               * Limpeza no código.                                           #
#------------------------------------------------------------------------------#
module Azraven
  module MiniMap
    #--------------------------------------------------------------------------#
    # CONFIGURAÇÂO                                                             #
    #--------------------------------------------------------------------------#
    #Tamanho do tile do mini mapa, recomendável não usar valores menores que 3.
    TileSize = 8#        ESSA LINHA AQUI xxxxxxxxxx
    #--------------------------------------------------------------------------#
    #Ajuste do centralizamento do mini mapa, depende do tamanho do tile.
    MapOffset = -4
    #--------------------------------------------------------------------------#
    #Define a cor do jogador no mapa. 
    PlayerColor = Color.new(255,0,0)
    #--------------------------------------------------------------------------#
    #Mostra os seguidores.
    ShowFollowers = true
    #--------------------------------------------------------------------------#
    #Define a cor dos seguidores no mapa.
    FollowerColor = Color.new(0,128,255)
    #--------------------------------------------------------------------------#
    #Define se irá mostrar os veiculos no map.
    ShowVehicles = true
    #--------------------------------------------------------------------------#
    #Define a cor do barco.
    BoatColor = Color.new(255,0,255)
    #--------------------------------------------------------------------------#
    #Define a cor do navio.
    ShipColor = Color.new(255,0,255)
    #--------------------------------------------------------------------------#
    #Define a cor do aeronave.
    AirshipColor = Color.new(255,0,255)
    #--------------------------------------------------------------------------#
    #Define a cor dos objetos mostrados no mapa.
    #Objetos são NPCs, portas, teleportes, baús e o que mais o usuário puder
    #imaginar.
    #Para adicionar um novo objeto use a seguinte sintaxe dentro das {}:
    #     "tag" => Color.new(R,G,B,A)
    #Onde tag é o comentário que será adiocinado a tal evento.
    #Separe cada objeto por "," sem as aspas.
    ObjectColor = {"npc" => Color.new(0,255,0),
                  "teleport" => Color.new(150,50,50),
                  "chest" => Color.new(100,100,100)}
    #--------------------------------------------------------------------------#
    #Define a cor de contorno dos objetos e do jogador.
    BorderColor = Color.new(0,0,0)
    #--------------------------------------------------------------------------#
    #Opacidade dos objetos mostrados no mapa.
    ObjectLayerOpacity = 255
    #--------------------------------------------------------------------------#
    #Posição do mapa na tela. 
    #1 = Canto superior esquerdo.
    #2 = Canto superior direito.
    #3 = Canto inferior esquerdo.
    #4 = Canto superior direito.
    MiniMapCorner = 2
    #--------------------------------------------------------------------------#
    #Define se determinada região mostrará como bloqueada no mini mapa.
    #Util pra não revelar "passagens secretas".
    UseHideRegion = true
    #--------------------------------------------------------------------------#
    #Id da região caso UseHideRegion for true.
    HideRegionId = 1
    #--------------------------------------------------------------------------#
    #Cor do da área impassável do mapa.
    MapColor = Color.new(200,150,150)
    #--------------------------------------------------------------------------#
    #Cor do contorno da área impassável do mapa.
    MapBorderColor = Color.new(50,50,50)
    #--------------------------------------------------------------------------#
    #Nome do arquivo de imagem da borda do mini mapa na pasta Graphics/System.
    BorderName = "Border" 
    #--------------------------------------------------------------------------#
    #Define se irá utilizar uam textura ao fundo.
    UseBGTexture = true
    #--------------------------------------------------------------------------#
    #Nome do arquivo de imagem da textura usada ao 
    #fundo do mini mapa na pasta Graphics/System.
    #Obs.: A imagem deve estar com as cores invertidas.
    BackTextureName = "OldPaper"
    #--------------------------------------------------------------------------#
    #Cor de preenchimento do fundo caso nã oseja utilizado uma textura.
    BGColor = Color.new( 100, 100, 100)
    #--------------------------------------------------------------------------#
    #Opção de preencher com uma cor a área externa do mapa.
    ClearOutsideArea = true
    #--------------------------------------------------------------------------#
    #Cor utilizada para preencher a área externa do mapa.
    ClearOutsideColor = Color.new(0,0,0)
    #--------------------------------------------------------------------------#
    #Opção de dermarcar os limites do mapa.
    OutlineMapArea = true
    #--------------------------------------------------------------------------#
    #Cor da demarcação dos limites do mapa.
    OutlineMapColor = Color.new(0,0,0)
    #--------------------------------------------------------------------------#
    #Id do switch que habilita/desabilita o mini mapa.
    EnableSwitchId = 1
    #--------------------------------------------------------------------------#
    # FIM DA CONFIGURAÇÂO.                                                     #
    #--------------------------------------------------------------------------#
    MiniMapCoords = {1 => [0,0,112,112],
                     2 => [Graphics.width - 112,0,112,112],
                     3 => [0,Graphics.height - 112,112,112],
                     4 => [Graphics.width - 112,Graphics.height - 112,112,112]}
                     
  end
end
#==============================================================================#
# ** Classe Color
#==============================================================================#
class Color
  #-----------------------------------------------------------------------------
  # * Inverte o valor das cores
  #-----------------------------------------------------------------------------
  def invert
    r = 255 - self.red
    g = 255 - self.green
    b = 255 - self.blue
    a = self.alpha
    self.set(r, g, b, a)
  end
end


#==============================================================================#
# ** Classe Mini Map
#==============================================================================#
class MiniMap
  
  include Azraven::MiniMap
  
  def initialize(viewport)
    @viewport = viewport
    @playercolor = PlayerColor.dup.invert
    @followercolor = FollowerColor.dup.invert
    @boatcolor = BoatColor.dup.invert
    @shipcolor = ShipColor.dup.invert
    @airshipcolor = AirshipColor.dup.invert
    @objectcolor = ObjectColor.dup
    @objectcolor.each_pair do |key, value|
      @objectcolor[key] = value.dup.invert
    end
    @bordercolor = BorderColor.dup.invert
    @mapcolor = MapColor.dup.invert
    @mapbordercolor = MapBorderColor.dup.invert
    @clearoutsidecolor = ClearOutsideColor.dup.invert
    @outlinemapcolor = OutlineMapColor.dup.invert
    refresh
  end
  
  def refresh
    @map_id = $game_map.map_id
    @backmask = Sprite.new(@viewport)
    @backmask.bitmap = Cache::system("Back_96")
    @backmask.x = @backmask.y = 8 
    @backtile = Sprite.new(@viewport)
    @backtile.blend_type = 2
    @backtile.z = 1
    @backtile.x = @backtile.y = -100
    @map = Sprite.new(@viewport)
    @map.z = 2
    @map.blend_type = 2
    @object_layer = Sprite.new(@viewport)
    @object_layer.z = 3
    @object_layer.blend_type = 2
    @object_layer.bitmap = Bitmap.new($game_map.width*TileSize + 112, 
                                     $game_map.height*TileSize + 112)
    @object_layer.opacity = ObjectLayerOpacity
    @border = Sprite.new(@viewport)
    @border.bitmap = Cache::system(BorderName)
    @border.z = 4
    @border.opacity = 255
    @mask = Cache::system("Mask")
    draw_back
    draw_map
  end
  
  def visible?
    $game_switches[EnableSwitchId]
  end
  
  def draw_map
    
    front = make_map_bitmap(@mapcolor)
    border = make_map_bitmap(@mapbordercolor)
    
    result = Bitmap.new($game_map.width*TileSize + 112, 
                        $game_map.height*TileSize+ 112)
                        
    result.blt(-1, 0, border, border.rect)
    result.blt(1, 0, border, border.rect)
    result.blt(0, -1, border, border.rect)
    result.blt(0, 1, border, border.rect)
    result.blt(0, 0, front, front.rect)
    
    @mapbitmap = result
  end
  
  def draw_back
    bitmap = Bitmap.new($game_map.width*TileSize+112, 
                       $game_map.height*TileSize+112)
    if UseBGTexture
      bit = Cache::system(BackTextureName)
      bitmap.stretch_blt(bitmap.rect, bit, bit.rect)
    else
      bitmap.fill_rect(bitmap.rect, BGColor)
    end
    if ClearOutsideArea
      bitmap.fill_rect(0,0,bitmap.width, 56, @clearoutsidecolor)
      bitmap.fill_rect(0,0,56, bitmap.height, @clearoutsidecolor)
      bitmap.fill_rect(0,bitmap.height-56,bitmap.width, 56, @clearoutsidecolor)
      bitmap.fill_rect(bitmap.width-56,0,56, bitmap.height, @clearoutsidecolor)
    elsif OutlineMapArea
      bitmap.fill_rect(56,55,bitmap.width-112,1,@outlinemapcolor)
      bitmap.fill_rect(55,56,1,bitmap.height-112,@outlinemapcolor)
      bitmap.fill_rect(bitmap.width-56,55,1,bitmap.height-112,@outlinemapcolor)
      bitmap.fill_rect(56,bitmap.height-56,bitmap.width-112,1,@outlinemapcolor)
    end
    @backtilebitmap = bitmap
  end
  
  def draw_object_layer
    for event in $game_map.events.values
      unless event.list.nil?
        for item in event.list
          if item.code == 108 or item.code == 408
            if @objectcolor.has_key?(item.parameters[0])
              draw_object(event.real_x*TileSize+56, 
              event.real_y*TileSize+56, 
              @objectcolor[item.parameters[0]])
            end
          end
        end
      end
    end
    if ShowFollowers
      unless $game_player.vehicle
        $game_player.followers.each do |follower|
          draw_object(follower.real_x*TileSize+56, 
                      follower.real_y*TileSize+56, 
                      @followercolor) if follower.visible?
        end
      end
    end
    if ShowVehicles
      unless $game_map.airship.transparent
        draw_object($game_map.airship.real_x*TileSize+56,
                $game_map.airship.real_y*TileSize+56, 
                @airshipcolor)
      end
      unless $game_map.ship.transparent
        draw_object($game_map.ship.real_x*TileSize+56,
                $game_map.ship.real_y*TileSize+56, 
                @shipcolor)
      end
      unless $game_map.boat.transparent
        draw_object($game_map.boat.real_x*TileSize+56,
                $game_map.boat.real_y*TileSize+56, 
                @boatcolor)
      end        
    end
    draw_object($game_player.real_x*TileSize+56,
                $game_player.real_y*TileSize+56, 
                @playercolor)
  end
  
  def draw_object(x, y, color)
    @object_layer.bitmap.fill_rect(x, y, TileSize, TileSize, @bordercolor)
    @object_layer.bitmap.fill_rect(x+1, y+1, TileSize-2, TileSize-2, color)
    @object_layer.bitmap.clear_rect(x,y,1,1)
    @object_layer.bitmap.clear_rect(x,y+TileSize-1,1,1)
    @object_layer.bitmap.clear_rect(x+TileSize-1,y,1,1)
    @object_layer.bitmap.clear_rect(x+TileSize-1,y+TileSize-1,1,1)
  end
          
  def make_map_bitmap(color)
    bitmap = Bitmap.new($game_map.width*TileSize + 112, 
                       $game_map.height*TileSize + 112)
    for x in 0..$game_map.width - 1
      for y in 0..$game_map.height - 1
        if $game_map.airship_land_ok?(x, y) || $game_map.bush?(x, y)
          if UseHideRegion
            bitmap.fill_rect(x*TileSize+56, 
                             y*TileSize+56,
                             TileSize, TileSize, 
                             color) if $game_map.region_id(x, y) == HideRegionId
          else
             next                  
          end
          if $game_map.bush?(x, y) 
            unless $game_map.passable?(x, y, 4)
               bitmap.fill_rect(x*TileSize+56, y*TileSize+56, TileSize, TileSize, color)
            end
          end
          next
        end
        bitmap.fill_rect(x*TileSize+56, y*TileSize+56, TileSize, TileSize, color)
      end
    end
    bitmap
  end
  
  def update_object_layer
   @object_layer.bitmap.clear
   draw_object_layer
  end
 
  def dispose
    @backmask.dispose
    @backtile.dispose
    @map.dispose
    @object_layer.dispose
    @border.dispose
  end
  
  def update
    if @map_id != $game_map.map_id
      dispose
      @map_id = $game_map.map_id
      refresh
    end
    @backmask.visible = visible? 
    @backtile.visible = visible?
    @map.visible = visible?
    @object_layer.visible = visible?
    @border.visible = visible?
    if visible?
      @map.bitmap = @mapbitmap.dup
      @backtile.bitmap = @backtilebitmap.dup
      sx = $game_player.real_x * (TileSize * -1) + MapOffset
      sy = $game_player.real_y * (TileSize * -1) + MapOffset
      update_object_layer
      @map.x = @backtile.x = @object_layer.x = sx
      @map.y = @backtile.y = @object_layer.y = sy
      @backtile.bitmap.blt(sx*-1, sy*-1,@mask,@mask.rect) 
      @map.bitmap.blt(sx*-1, sy*-1,@mask,@mask.rect)
      @object_layer.bitmap.blt(sx*-1, sy*-1,@mask,@mask.rect)
    end
  end
end
#==============================================================================#
# ** Classe Spriteset_Map
#==============================================================================#
class Spriteset_Map
  
  alias azraven_mini_map_init initialize
  alias azraven_mini_map_updt update
  alias azraven_mini_map_disp dispose
  
  include Azraven::MiniMap
  
  def initialize
    create_minimap
    azraven_mini_map_init
  end
  
  def create_minimap
    viewport = Viewport.new(Graphics.width - 112,0,112,112)
    viewport.rect.set(MiniMapCoords[MiniMapCorner][0],
                      MiniMapCoords[MiniMapCorner][1],
                      MiniMapCoords[MiniMapCorner][2],
                      MiniMapCoords[MiniMapCorner][3])
    viewport.z = 500
    @minimapa = MiniMap.new(viewport)
  end
  
  def dispose
    azraven_mini_map_disp
    @minimapa.dispose
  end
  
  def update
    azraven_mini_map_updt
    @minimapa.update
  end
end
#==============================================================================#
# ** Fim do Script
#==============================================================================#


alquém ai sabe como modificar o tamanho desse mapa pelo chamar scripts
o que eu quero modificar esta na linha 37

querbra essa que ta quebrando minha cabeça  :grr: :x--x:
vlw ajuda desde já :clap:
Buscando Equilibrio Entre Luz e Escuridão