RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
ReinoRPG Mini-Map (small modification)

0 Members and 1 Guest are viewing this topic.

***
Rep:
Level 81
Monster Hunter
Hi I'm using The ReinoRPG Mini-Map script  in my project and i would like to change a little something, because enemies show on the map but once they die they still show up on the map, even when the event is erased or changes event page to an empty page, i even tried scripting an empty image in the script which works but the script takes the last found Comment it finds in events so the enemy doesn't even show on the map in the first place O.o .
i would really like some help , so it doesn't show the enemy when needed and shows it when needed using the Nothing Comment i inserted.

Code: [Select]
#==============================================================================
# ReinoRPG Mini-Mapa (RPG Maker VX)
#------------------------------------------------------------------------------
# Bennamy (Amy Productions) & RTH (PRCoders)
# Version 1.0
# 09/10/2008
#------------------------------------------------------------------------------
# Descrição:
#
#   Este script exibe um mini-mapa em um canto da tela onde nele são mostrados
#   os tiles passáveis e os tiles não passáveis (onde o personagem pode caminhar
#   e onde ele não pode caminhar). No mini-mapa podem ser mostradas posições de
#   certos eventos, basta colocar comentários específicos para cada evento.
#   Todos os gráficos exigidos neste mini-mapa podem ser totalmente alterados.
#------------------------------------------------------------------------------
# Instruções:
#
#   Coloque este script entre "Scripts Adicionais" e "Principal".
#
#   Copie todas as imagens necessárias para a pasta "Pictures" do seu projeto.
#
#   Para exibir determinado evento no mini-mapa você precisa adicionar um
#   comentário na página de comandos deste evento. Os comentários podem ser:
#    - npc = Para NPCs
#    - passagem = Para TELETRANSPORTES/PASSAGENS
#    - pousada = Para POUSADAS/PONTOS PARA SALVAR O JOGO
#    - bau = Para BAÚS/TESOUROS
#    - inimigo = Para INIMIGOS
#    - outro = Para SHOPS/COMPANHEIROS/ITENS INTERATIVOS DO MAPA
#
#   OBS.: Os comentários nos eventos do mini-mapa podem ser alterados em:
#         CONFIGURAÇÕES DE EXIBIÇÃO DOS EVENTOS NO MINI-MAPA.
#
#------------------------------------------------------------------------------
# Customização:
#
#   Para modificar a Switch que ATIVA/DESATIVA o mini-mapa, basta procurar onde
#   começa a CONFIGURAÇÃO do script e alterar o valor de MM_ACTIVATED_ID.
#   
#   Para alterar o local onde o mini-mapa será exibido, primeiro você deve
#   escolher que variável definirá o local do mini-mapa, isso pode ser feito
#   alterando o valor de MM_CORNER_VAR. Depois é necessário alterar também o
#   valor da variável indicada logo acima, os valores podem ser:
#    1 = Para exibir o mini-mapa no Canto SUPERIOR ESQUERDO da tela
#    2 = Para exibir o mini-mapa no Canto SUPERIOR DIREITO da tela
#    3 = Para exibir o mini-mapa no Canto INFERIOR ESQUERDO da tela
#    4 = Para exibir o mini-mapa no Canto INFERIOR DIREITO da tela
#
#   OBS.: Alterações podem ser efetuadas na parte de CONFIGURAÇÕES do script.
#
#------------------------------------------------------------------------------
# Créditos e Agradecimentos:
#
#   Bennamy (Amy Productions) & RTH (PRCoders) - Pela criação deste script
#   Selwyn (squall) - Por ter criado o script para RMXP que foi usado como base.
#   Fanha Giang (aka fanha99) - Pelo método de exibir autotiles.
#
#------------------------------------------------------------------------------
# Termos de Uso e Disponibilização:
#
#   Você deve inserir um link para este tópico na ReinoRPG.
#   Você deve inserir um link para www.rmzine.reinorpg.com
#   Você deve creditar os autores e demais envolvidos na produção do material
#   Mesmo que editar este conteúdo, estas regras devem valer.
#
#==============================================================================

  #--------------------------------------------------------------------------
  # CONFIGURAÇÕES
  #--------------------------------------------------------------------------
module CONFIG
  # CONFIGURAÇÕES DE CONTROLE DAS FUNÇÕES MINI-MAPA:
  MM_ACTIVATED_ID = 1           # ID da Switch que Ativa/Desativa o MM
  MM_CORNER_VAR = 4             # Variável que indica a posição do MM na tela
  MM_OPACITY = 180              # Transparência do MM
 
  # CONFIGURAÇÕES DAS IMAGENS EXIBIDAS NO MINI-MAPA:
  MM_MAP_BACK = "bg_map"        # Imagem que representa o Fundo no MM
  MM_TILES = "tile_map"         # Imagem que representa o Autotile no MM
  MM_CURSOR = "heroi_cursor"    # Imagem que representa o Personagem no MM
  MM_OTHER = "outro"            # Imagem que representa os Outros Eventos no MM
  MM_ENEMY = "inimigo"          # Imagem que representa os Inimigos no MM
  MM_TELEPORT = "passagem"      # Imagem que representa as Passagens no MM
  MM_CHEST = "bau"              # Imagem que representa os Baús e Tesouros no MM
  MM_NPC = "npc"                # Imagem que representa os Npcs no MM
  MM_SAVEPOINT = "pousada"      # Imagem que representa as Pousadas no MM
  MM_NOTHING = "nothing"        # Image that shows when Nothing tag is used
 
  # CONFIGURAÇÕES DE EXIBIÇÃO DOS EVENTOS NO MINI-MAPA:
  MM_EVENT_OTHER = "other"        # Comentário para exibir o evento "OUTRO"
  MM_EVENT_ENEMY = "enemy"      # Comentário para exibir o evento "INIMIGO"
  MM_EVENT_TELEPORT = "teleport"  # Comentário para exibir o evento "PASSAGEM."
  MM_EVENT_CHEST = "chest"          # Comentário para exibir o evento "BAÚ"
  MM_EVENT_NPC = "npc"            # Comentário para exibir o evento "NPC"
  MM_EVENT_SAVEPOINT = "savepoint"  # Comentário para exibir o evento "POUSADA"
  MM_EVENT_NOTHING = "nothing"
end
  #--------------------------------------------------------------------------
  # FIM DAS CONFIGURAÇÕES
  #--------------------------------------------------------------------------
 
#==============================================================================
# Scene_Map
#------------------------------------------------------------------------------
# Classe das operações nos mapas.
#==============================================================================

class Scene_Map
  include CONFIG
  #--------------------------------------------------------------------------
  # Lista de métodos aliasados
  #--------------------------------------------------------------------------
  @@pre_terminate_aliased = false
  unless method_defined?(:amy_mm_main)
    alias amy_mm_main main
    alias amy_mm_update update
    alias amy_mm_perform_battle_transition perform_battle_transition
    if method_defined?(:pre_terminate)
      alias amy_mm_pre_terminate pre_terminate
      @@pre_terminate_aliased = true
    end
  end
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize
    @corner = $game_variables[MM_CORNER_VAR]
  end
  #--------------------------------------------------------------------------
  # Principal
  #--------------------------------------------------------------------------
  def main
    @mini_map = Map_Event.new(@corner)
    amy_mm_main
    @mini_map.dispose
  end
  #--------------------------------------------------------------------------
  # Atualização da tela
  #--------------------------------------------------------------------------
  def update
    if $game_variables[MM_CORNER_VAR] != @corner
      @corner = $game_variables[MM_CORNER_VAR]
      @mini_map.corner = @corner
    end
    @mini_map.update
    if $game_map.interpreter.running?
      @mini_map.visible = false
    elsif @mini_map.on?
      @mini_map.visible = true
    end
    amy_mm_update
  end
  #--------------------------------------------------------------------------
  # Transição
  #--------------------------------------------------------------------------
  def minimap_transfer
    @mini_map.dispose
    @mini_map = Map_Event.new(@corner)
  end
  #--------------------------------------------------------------------------
  # Execução da transição de batalha
  #--------------------------------------------------------------------------
  def perform_battle_transition
    @mini_map.visible = false
    amy_mm_perform_battle_transition
  end
  #--------------------------------------------------------------------------
  # Fim do processo
  #-------------------------------------------------------------------------- 
  def pre_terminate
    @mini_map.visible = true
    amy_mm_pre_terminate if @@pre_terminate_aliased
  end
   
end

#==============================================================================
# Game_Player
#------------------------------------------------------------------------------
# Esta classe controla as informações do jogador. Entre elas: os veículos,
# os eventos (quando iniciá-los), o loop do mapa... etc.
# Pode ser acessada utilizando $game_player.
#==============================================================================

class Game_Player < Game_Character
  unless method_defined?(:amy_mm_perform_transfer)
    alias amy_mm_perform_transfer perform_transfer
  end
  #--------------------------------------------------------------------------
  # Teletransportar
  #--------------------------------------------------------------------------
  def perform_transfer
    amy_mm_perform_transfer
    $scene.minimap_transfer
  end
end

#==============================================================================
# Map_Base
#------------------------------------------------------------------------------
# Uma classe Base para mini mapas
#==============================================================================

class Map_Base < Sprite
  include CONFIG
  #--------------------------------------------------------------------------
  # Constantes e Instâncias
  #--------------------------------------------------------------------------
  PMP_VERSION  = 7
  attr_reader :event
  attr_reader :corner
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #--------------------------------------------------------------------------
  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 = Cache.picture(MM_MAP_BACK)
    self.visible = on?
    self.opacity = MM_OPACITY
    @corner = -1
    self.corner = corner
    self.visible = on?
  end
  #--------------------------------------------------------------------------
  # Corner
  #--------------------------------------------------------------------------
  def corner=(valor)
    return if @corner == valor
    @corner = valor.to_i
    case @corner
    when 2
      self.x = 544 - width - 16
      self.y = 16
    when 3
      self.x = 16
      self.y = 416 - height - 16
    when 4
      self.x = 544 - width - 16
      self.y = 416 - height - 16
    else
      self.x = 16
      self.y = 16
    end
  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[MM_ACTIVATED_ID]
  end
  #--------------------------------------------------------------------------
  # Atualização da tela
  #--------------------------------------------------------------------------
  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
  #--------------------------------------------------------------------------
  # largura
  #--------------------------------------------------------------------------
  def width
    return 102
  end
  #--------------------------------------------------------------------------
  # altura
  #--------------------------------------------------------------------------
  def height
    return 78
  end
  #--------------------------------------------------------------------------
  # display_x
  #--------------------------------------------------------------------------
  def display_x
    return $game_map.display_x * 3 / 128
  end
  #--------------------------------------------------------------------------
  # display_y
  #--------------------------------------------------------------------------
  def display_y
    return $game_map.display_y * 3 / 128
  end
end

#==============================================================================
# Map_Passability
#------------------------------------------------------------------------------
# Exibe o Mini-mapa
# Agradecimentos para Fanha Giang (aka fanha99) pelo método de exibir autotiles
#==============================================================================

class Map_Passability < Map_Base
  include CONFIG
  #--------------------------------------------------------------------------
  # Constantes
  #--------------------------------------------------------------------------
  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]
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize(corner)
    super(corner)
    @autotile = Cache.picture(MM_TILES)
    setup()
  end
  #--------------------------------------------------------------------------
  # setup
  #--------------------------------------------------------------------------
  def setup()
    @map = load_data(sprintf("Data/Map%03d.rvdata", $game_map.map_id))
    @passages = $data_system.passages
    redefine_tiles
    refresh
  end
  #--------------------------------------------------------------------------
  # pass
  #--------------------------------------------------------------------------
  def pass(tile_id)
    return 0xf if tile_id == nil
    return @passages[tile_id] != nil ? @passages[tile_id] & 0xf : 15
  end
  #--------------------------------------------------------------------------
  # passable
  #--------------------------------------------------------------------------
  def passable(tile_id, flag = 0x01)
    pass = pass(tile_id)
    return true if pass & flag == 0x00   
    return false if pass & flag == flag   
    return false
  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
            @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) > 0
            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
  #--------------------------------------------------------------------------
  # Atualização
  #--------------------------------------------------------------------------
  def refresh
    self.visible = false
    self.bitmap = Bitmap.new(@map.width * 6, @map.height * 6)
    bitmap = Bitmap.new(@map.width * 6, @map.height * 6)
    rect1 = Rect.new(6, 0, 6, 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 * 6)
    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
#------------------------------------------------------------------------------
#  Exibe a posição do Héroi e dos Eventos no Mini-mapa
#==============================================================================

class Map_Event < Map_Passability
  include CONFIG
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #--------------------------------------------------------------------------
  def initialize(corner = 4)
    super(corner)
    @dots = []
    @player = Sprite.new(self.viewport)
    @player.bitmap = Cache.picture(MM_CURSOR)
    @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
        param = event.list[i].parameters[0].downcase
        if param.include?(MM_EVENT_OTHER)
          @events[key].bitmap = Cache.picture(MM_OTHER)
        elsif param.include?(MM_EVENT_ENEMY)
          @events[key].bitmap = Cache.picture(MM_ENEMY)
        elsif param.include?(MM_EVENT_TELEPORT)
          @events[key].bitmap = Cache.picture(MM_TELEPORT)
        elsif param.include?(MM_EVENT_CHEST)
          @events[key].bitmap = Cache.picture(MM_CHEST)
        elsif param.include?(MM_EVENT_NPC)
          @events[key].bitmap = Cache.picture(MM_NPC)
        elsif param.include?(MM_EVENT_SAVEPOINT)
          @events[key].bitmap = Cache.picture(MM_SAVEPOINT)
        elsif param.include?(MM_EVENT_NOTHING) 
          @events[key].bitmap = Cache.picture(MM_NOTHING)
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # dispose
  #--------------------------------------------------------------------------
  def dispose
    @player.dispose
    for event in @events.values
      event.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # Atualização da tela
  #--------------------------------------------------------------------------
  def update
    super
    @player.x = $game_player.real_x * 3 / 128 - 5
    @player.y = $game_player.real_y * 3 / 128 - 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 / 128
      event.y = mapevent.real_y * 3 / 128
      next if mapevent.list == nil
      for list in mapevent.list
        next if list.code != 108
        param = list.parameters[0].downcase
        if param.include?(MM_EVENT_OTHER)
          event.bitmap = Cache.picture(MM_OTHER)
          event.visible = true
          break
        elsif param.include?(MM_EVENT_ENEMY)
          event.bitmap = Cache.picture(MM_ENEMY)
          event.visible = true
          break
        elsif param.include?(MM_EVENT_TELEPORT)
          event.bitmap = Cache.picture(MM_TELEPORT)
          event.visible = true
          break
        elsif param.include?(MM_EVENT_CHEST)
          event.bitmap = Cache.picture(MM_CHEST)
          event.visible = true
          break
        elsif param.include?(MM_EVENT_NPC)
          event.bitmap = Cache.picture(MM_NPC)
          event.visible = true
          break
        elsif param.include?(MM_EVENT_SAVEPOINT)
          event.bitmap = Cache.picture(MM_SAVEPOINT)
          event.visible = true
          break
        elsif param.include?(MM_EVENT_NOTHING)
          event.bitmap = Cache.picture(MM_NOTHING)
          event.visible = true
          break 
        else
          event.visible = false
        end
      end
    end
  end
end
#==============================================================================