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


Fórum que fala sobre qualquer jogo, com o foco em criação de jogos!
 
InícioPortalÚltimas imagensProcurarRegistarEntrar
Entrar
Nome de usuário:
Senha:
Entrar automaticamente: 
:: Esqueci-me da senha
Navegação
 Portal
 Índice
 Membros
 Perfil
 FAQ
 Buscar
Últimos assuntos
» SCRIPT: Sistema de Luz v1.1
Script de Mini-mapa EmptySáb Fev 01, 2014 3:20 pm por lotis1250

» travando menos...
Script de Mini-mapa EmptySex Mar 22, 2013 9:04 am por lordchaos157

» prisiso de chars do ash de pokemon pro rmvx
Script de Mini-mapa EmptyDom Dez 23, 2012 5:01 pm por guiniderle

» Preciso de gente dedicada para me ajudar a criar todas as edições de conan o barbaro
Script de Mini-mapa EmptyDom Dez 23, 2012 4:32 pm por guiniderle

» Adaptamento de Tilesets de xp para vx...
Script de Mini-mapa EmptyDom Jan 15, 2012 10:42 am por luansan14

» como eu coloco fotos aqui no meu perfil?
Script de Mini-mapa EmptySáb Jan 14, 2012 7:34 pm por luansan14

» Posso criar um char?
Script de Mini-mapa EmptySáb Jan 14, 2012 7:32 pm por luansan14

» Pacote de Scripts
Script de Mini-mapa EmptyTer Fev 01, 2011 8:25 am por Aluno

» stage de estrada
Script de Mini-mapa EmptyQui Jan 13, 2011 10:38 am por traver

Parceiros
Script de Mini-mapa Bannerdjj
Anime Chaos


 

 Script de Mini-mapa

Ir para baixo 
3 participantes
AutorMensagem
AND_RYO
Moderador
Moderador
AND_RYO


Mensagens : 177
Créditos : 19
Idade : 31
Localização : RS
Frase Pessoal : O Conselheiro dos Makers...

Script de Mini-mapa Empty
MensagemAssunto: Script de Mini-mapa   Script de Mini-mapa EmptySex Jan 29, 2010 6:51 pm

Agora eu vou postar algo util para os games do rpg maker vx...
se trata de um sistema de mini-mapa...
ele não usa imagens...
créditos no script...

Código:
#===============================================================
# ? [VX] ? MiniMap ? ?
# * Plug N Play Minimap (Não precisa de imagem) *
#--------------------------------------------------------------
# ? Por Woratana [woratana@hotmail.com]
# ? Thaiware RPG Maker Community
# ? Lançado em: 09/06/2008
# ? Versão: 1.0
#--------------------------------------------------------------
# ? Creditos: KGC pelo XP MiniMap Script,
# Este Script não poderia ser feito sem ele.
#--------------------------------------------------------------
#--------------------------------------------------------------
# Tradução: RFTD
#--------------------------------------------------------------

module MiniMap
  #===========================================================================
  # [Inicio] OPÇÔES DO MINIMAP SCRIPT
  #---------------------------------------------------------------------------
  SWITCH_NO_MINIMAP = 10 # Switch para desligar/ligar o MiniMap (O Minimap vem ligado por padrão)
 
  MAP_RECT = [410, 20, 100, 100] # Tamanho e posição do Minimap
  # [X, Y, Width, Height]
  # Você pode mudar isso no jogo, chamando o script por eventos:
  # $game_system.minimap = [X, Y, Width, Height]

  MAP_Z = 0 # Minimap's Z-coordinate
  # Aumente este numero caso tenha problema do Minimap ficar embaixo de algum item da tela

  GRID_SIZE = 5 # Tamanho do grid do Minimap. Recomendado mais que 3.
 
  MINIMAP_BORDER_COLOR = Color.new(0, 0, 255, 160) # Cor da borda do Minimap
  # Color.new(Vermelho, Verde, Azul, Opacidade)
  MINIMAP_BORDER_SIZE = 2 # Tamanho da borda do Minimap
 
  FOREGROUND_COLOR = Color.new(224, 224, 255, 160) # Cor do tile passavel
  BACKGROUND_COLOR = Color.new(0, 0, 0, 160) # Cor do tile não-passavel

  USE_OUTLINE_PLAYER = true # Mostra sombra em torno do jogador?
  PLAYER_OUTLINE_COLOR = Color.new(0, 0, 0, 192) # Cor da sombra em torno do jogador
  USE_OUTLINE_EVENT = true # Mostra sombra em torno dos eventos no MiniMap?
  EVENT_OUTLINE_COLOR = Color.new(255, 255, 255, 192) # Cor da sombra em torno dos eventos
 
  PLAYER_COLOR = Color.new(255, 0, 0, 192) # Cor do jogador
  #---------------------------------------------------------------------------

  OBJECT_COLOR = {} # Não mude ou apague esta linha!
  #===============================================================
  # * Opção de Eventos Palavras-Chaves & Cores
  #---------------------------------------------------------------
  # * Template:
  # OBJECT_COLOR['Palavras-Chave'] = Color.new(Red, Green, Blue, Opacity)
  #-------------------------------------------------------------
  # * 'Palavras-Chave': Palavra que você coloca no comentario do evento para mostara a cor
  # * Nota: 'Palavras-Chave' é CASE SENSITIVE!
  # * Color.new(...): Cor que você quer
  # Você pode colocar entre 0 - 255 em cada argumento (Vermelho, Verde, Azul, Opacidade)
  #-------------------------------------------------------------
  OBJECT_COLOR['npc'] = Color.new(30,144,255,160)
  OBJECT_COLOR['treasure'] = Color.new(0,255,255,160)
  OBJECT_COLOR['enemy'] = Color.new(139,35,35,160)
  OBJECT_COLOR['merchant'] = Color.new(255,255,0,160)
 
  #===========================================================================
  # * [OPCIONAL] TAGS:
  #---------------------------------------------------------------------------
  # Trocar Palavra-Chave para desativar MiniMap & e Palavra-Chave para mostrar evento~
  #-----------------------------------------------------------------------
  TAG_NO_MINIMAP = '[NOMAP]' # Tag para deshabilita MiniMap
  TAG_EVENT = 'MMEV' # Tag para mostrar evento no MiniMap
  #---------------------------------------------------------------------------

  #---------------------------------------------------------------------------
  # [Fim] OPÇÔES DO MINIMAP SCRIPT
  #===========================================================================
 
  def self.refresh
    if $scene.is_a?(Scene_Map)
      $scene.spriteset.minimap.refresh
    end
  end
 
  def self.update_object
    if $scene.is_a?(Scene_Map)
      $scene.spriteset.minimap.update_object_list
    end
  end
end

#==============================================================================
# ¦ RPG::MapInfo
#==============================================================================
class RPG::MapInfo
  def name
    return @name.gsub(/\[.*\]/) { }
  end

  def original_name
    return @name
  end

  def show_minimap?
    return !@name.include?(MiniMap::TAG_NO_MINIMAP)
  end
end
#==============================================================================
# ¦ Game_System
#==============================================================================
class Game_System
  attr_accessor :minimap
  alias wora_minimap_gamsys_ini initialize
 
  def initialize
    wora_minimap_gamsys_ini
    @minimap = MiniMap::MAP_RECT
  end
 
  def show_minimap
    return !$game_switches[MiniMapSWITCH_NO_MINIMAP]
  end
end
#==============================================================================
# ¦ Game_Map
#==============================================================================
class Game_Map
  alias wora_minimap_gammap_setup setup
  def setup(map_id)
    wora_minimap_gammap_setup(map_id)
    @db_info = load_data('Data/MapInfos.rvdata') if @db_info.nil?
    @map_info = @db_info[map_id]
  end
 
  def show_minimap?
    return @map_info.show_minimap?
  end
end
#==============================================================================
# ¦ Game_Event
#==============================================================================
class Game_Event < Game_Character
  def mm_comment?(comment, return_comment = false )
    if !@list.nil?
      for i in 0...@list.size - 1
        next if @list.code != 108
        if @list.parameters[0].include?(comment)
          return @list.parameters[0] if return_comment
          return true
        end
      end
    end
    return '' if return_comment
    return false
  end
end
#==============================================================================
# ¦ Game_MiniMap
#------------------------------------------------------------------------------
class Game_MiniMap
  def initialize(tilemap)
    @tilemap = tilemap
    refresh
  end

  def dispose
    @border.bitmap.dispose
    @border.dispose
    @map_sprite.bitmap.dispose
    @map_sprite.dispose
    @object_sprite.bitmap.dispose
    @object_sprite.dispose
    @position_sprite.bitmap.dispose
    @position_sprite.dispose
  end

  def visible
    return @map_sprite.visible
  end

  def visible=(value)
    @map_sprite.visible = value
    @object_sprite.visible = value
    @position_sprite.visible = value
    @border.visible = value
  end

  def refresh
    @mmr = $game_system.minimap
    map_rect = Rect.new(@mmr[0], @mmr[1], @mmr[2], @mmr[3])
    grid_size = [MiniMapGRID_SIZE, 1].max

    @x = 0
    @y = 0
    @size = [map_rect.width / grid_size, map_rect.height / grid_size]

    @border = Sprite.new
    @border.x = map_rect.x - MiniMap::MINIMAP_BORDER_SIZE
    @border.y = map_rect.y - MiniMap::MINIMAP_BORDER_SIZE
    b_width = map_rect.width + (MiniMap::MINIMAP_BORDER_SIZE * 2)
    b_height = map_rect.height + (MiniMap::MINIMAP_BORDER_SIZE * 2)
    @border.bitmap = Bitmap.new(b_width, b_height)
    @border.bitmap.fill_rect(@border.bitmap.rect, MiniMap::MINIMAP_BORDER_COLOR)
    @border.bitmap.clear_rect(MiniMap::MINIMAP_BORDER_SIZE, MiniMap::MINIMAP_BORDER_SIZE,
    @border.bitmap.width - (MiniMap::MINIMAP_BORDER_SIZE * 2),
    @border.bitmap.height - (MiniMap::MINIMAP_BORDER_SIZE * 2))
 
    @map_sprite = Sprite.new
    @map_sprite.x = map_rect.x
    @map_sprite.y = map_rect.y
    @map_sprite.z = MiniMap::MAP_Z
    bitmap_width = $game_map.width * grid_size + map_rect.width
    bitmap_height = $game_map.height * grid_size + map_rect.height
    @map_sprite.bitmap = Bitmap.new(bitmap_width, bitmap_height)
    @map_sprite.src_rect = map_rect

    @object_sprite = Sprite.new
    @object_sprite.x = map_rect.x
    @object_sprite.y = map_rect.y
    @object_sprite.z = MiniMap::MAP_Z + 1
    @object_sprite.bitmap = Bitmap.new(bitmap_width, bitmap_height)
    @object_sprite.src_rect = map_rect

    @position_sprite = Sprite_Base.new
    @position_sprite.x = map_rect.x + @size[0] / 2 * grid_size
    @position_sprite.y = map_rect.y + @size[1] / 2 * grid_size
    @position_sprite.z = MiniMap::MAP_Z + 2
 
    bitmap = Bitmap.new(grid_size, grid_size)
    # Player's Outline
    if MiniMap::USE_OUTLINE_PLAYER and MiniMap::GRID_SIZE >= 3
      bitmap.fill_rect(bitmap.rect, MiniMap::PLAYER_OUTLINE_COLOR)
      brect = Rect.new(bitmap.rect.x + 1, bitmap.rect.y + 1, bitmap.rect.width - 2,
        bitmap.rect.height - 2)
      bitmap.clear_rect(brect)
    else
      brect = bitmap.rect
    end
 
    bitmap.fill_rect(brect, MiniMap::PLAYER_COLOR)
    @position_sprite.bitmap = bitmap

    draw_map
    update_object_list
    draw_object
    update_position
  end

  def draw_map
    bitmap = @map_sprite.bitmap
    bitmap.fill_rect(bitmap.rect, MiniMap::BACKGROUND_COLOR)
    map_rect = Rect.new(@mmr[0], @mmr[1], @mmr[2], @mmr[3])
    grid_size = [MiniMapGRID_SIZE, 1].max
 
    $game_map.width.times do |i|
      $game_map.height.times do |j|
        if !$game_map.passable?(i, j)
          next
        end
        rect = Rect.new(map_rect.width / 2 + grid_size * i,
          map_rect.height / 2 + grid_size * j,
          grid_size, grid_size)
        if grid_size >= 3
          if !$game_map.passable?(i, j)
            rect.height -= 1
            rect.x += 1
            rect.width -= 1
            rect.width -= 1
            rect.y += 1
            rect.height -= 1
          end
        end
        bitmap.fill_rect(rect, MiniMap::FOREGROUND_COLOR)
      end
    end
  end

  def update_object_list
    @object_list = {}
    $game_map.events.values.each do |e|
      comment = e.mm_comment?(MiniMap::TAG_EVENT, true)
      if comment != ''
        type = comment.gsub(/#{MiniMap::TAG_EVENT}/){}.gsub(/\s+/){}
        @object_list[type] = [] if @object_list[type].nil?
        @object_list[type] << e
      end
    end
  end

  def draw_object
    bitmap = @object_sprite.bitmap
    bitmap.clear
    map_rect = Rect.new(@mmr[0], @mmr[1], @mmr[2], @mmr[3])
    grid_size = [MiniMapGRID_SIZE, 1].max
    rect = Rect.new(0, 0, grid_size, grid_size)
    mw = map_rect.width / 2
    mh = map_rect.height / 2

    @object_list.each do |key, events|
      color = MiniMap::OBJECT_COLOR[key]
      next if events.nil? or color.nil?
      events.each do |obj|
        if !obj.character_name.empty?
          rect.x = mw + obj.real_x * grid_size / 256
          rect.y = mh + obj.real_y * grid_size / 256
          # Event's Outline
          if MiniMap::USE_OUTLINE_EVENT and MiniMap::GRID_SIZE >= 3
            bitmap.fill_rect(rect, MiniMap::EVENT_OUTLINE_COLOR)
            brect = Rect.new(rect.x + 1, rect.y + 1, rect.width - 2,
            rect.height - 2)
            bitmap.clear_rect(brect)
          else
            brect = bitmap.rect
          end
          bitmap.fill_rect(brect, color)
        end
      end
    end
  end

  def update
    if @mmr != $game_system.minimap
      dispose
      refresh
    end
    draw_object
    update_position
    if @map_sprite.visible
      @map_sprite.update
      @object_sprite.update
      @position_sprite.update
    end
  end

  def update_position
    map_rect = Rect.new(@mmr[0], @mmr[1], @mmr[2], @mmr[3])
    grid_size = [MiniMapGRID_SIZE, 1].max
    sx = $game_player.real_x * grid_size / 256
    sy = $game_player.real_y * grid_size / 256
    @map_sprite.src_rect.x = sx
    @map_sprite.src_rect.y = sy
    @object_sprite.src_rect.x = sx
    @object_sprite.src_rect.y = sy
  end
end
#==============================================================================
# ¦ Spriteset_Map
#------------------------------------------------------------------------------
class Spriteset_Map
  attr_reader :minimap
  alias wora_minimap_sprsetmap_ini initialize
  alias wora_minimap_sprsetmap_dis dispose
  alias wora_minimap_sprsetmap_upd update
 
  def initialize
    wora_minimap_sprsetmap_ini
    if $game_map.show_minimap?
      @minimap = Game_MiniMap.new(@tilemap)
      $game_system.show_minimap = true if $game_system.show_minimap.nil?
      @minimap.visible = $game_system.show_minimap
    end
  end
 
  def dispose
    @minimap.dispose if !@minimap.nil?
    wora_minimap_sprsetmap_dis
  end

  def update
    if !@minimap.nil?
      if $game_system.show_minimap
        @minimap.visible = true
        @minimap.update
      else
        @minimap.visible = false
      end
    end
    wora_minimap_sprsetmap_upd
  end
end
#==============================================================================
# ¦ Scene_Map
#------------------------------------------------------------------------------
class Scene_Map < Scene_Base
  attr_reader :spriteset
end


Última edição por AND_RYO em Sex Jan 29, 2010 7:20 pm, editado 1 vez(es)
Ir para o topo Ir para baixo
Toyota
Membro
Membro
Toyota


Mensagens : 54
Créditos : 13
Idade : 27
Localização : Rio de Janeiro - RJ
Frase Pessoal : " Scripter dos Makers "

Script de Mini-mapa Empty
MensagemAssunto: Re: Script de Mini-mapa   Script de Mini-mapa EmptySex Jan 29, 2010 7:01 pm

isso aí man!
hueheuh...
Só um mínimo problema....
Com Spoiler não da pra copiar! Exclamation
bom, tem que tirar do spoiler e botar Code...
mas valeu a intenção... vlw véio +1 cred!
Ir para o topo Ir para baixo
AND_RYO
Moderador
Moderador
AND_RYO


Mensagens : 177
Créditos : 19
Idade : 31
Localização : RS
Frase Pessoal : O Conselheiro dos Makers...

Script de Mini-mapa Empty
MensagemAssunto: Re: Script de Mini-mapa   Script de Mini-mapa EmptySex Jan 29, 2010 7:21 pm

Tópico editado...
Espero que usem em seus games ai povo!^^
Ir para o topo Ir para baixo
Toyota
Membro
Membro
Toyota


Mensagens : 54
Créditos : 13
Idade : 27
Localização : Rio de Janeiro - RJ
Frase Pessoal : " Scripter dos Makers "

Script de Mini-mapa Empty
MensagemAssunto: Re: Script de Mini-mapa   Script de Mini-mapa EmptySex Jan 29, 2010 7:54 pm

isso aí cara... com certeza vou usar ^^ Vo modificar para que não seja ativo em labirintos. ^^ cyclops
Ir para o topo Ir para baixo
AND_RYO
Moderador
Moderador
AND_RYO


Mensagens : 177
Créditos : 19
Idade : 31
Localização : RS
Frase Pessoal : O Conselheiro dos Makers...

Script de Mini-mapa Empty
MensagemAssunto: Re: Script de Mini-mapa   Script de Mini-mapa EmptySex Jan 29, 2010 8:11 pm

Obrigado Toyota!
é precisso mesmo de aperfeiçoamentos para essas ocasioes...
obrigado por contribuir!
Ir para o topo Ir para baixo
Bob
Admin
Admin
Bob


Mensagens : 108
Créditos : 30
Idade : 32
Localização : Goiás
Frase Pessoal : "I'm god of events!"

Script de Mini-mapa Empty
MensagemAssunto: Re: Script de Mini-mapa   Script de Mini-mapa EmptySáb Jan 30, 2010 5:33 am

Realmente é um script muito útil AND_RYO!!!! Very Happy
+1 créd.! Wink
Ir para o topo Ir para baixo
https://dejogador.forumeiros.com
Conteúdo patrocinado





Script de Mini-mapa Empty
MensagemAssunto: Re: Script de Mini-mapa   Script de Mini-mapa Empty

Ir para o topo Ir para baixo
 
Script de Mini-mapa
Ir para o topo 
Página 1 de 1
 Tópicos semelhantes
-
» SCRIPT: Re-Battle
» SCRIPT: Sistema de Luz v1.1
» Script Anti-Lag
» SCRIPT: Level Up Regenerador
» Script para 2 jogadores

Permissões neste sub-fórumNão podes responder a tópicos
De Jogador para jogador :: Rpg maker VX :: Scripts-
Ir para: