Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Pokémon Genesis Online! (PGO)
Qua 05 Jul 2017, 17:08 por Lexar

» Tileset Converter to MV
Sex 12 Maio 2017, 13:07 por Douggi

» [Dúvida] Como tirar a porcentagem de esquiva
Ter 09 Maio 2017, 22:15 por Neil Flame Runner

» Pack Resources, Sprites e etc
Qua 23 Dez 2015, 09:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Ter 22 Dez 2015, 08:14 por ::KimMax::

» Fantasy Art Online
Dom 18 Out 2015, 16:42 por daviih123

» Você vai ter medo do Nerve gear?
Sab 25 Jul 2015, 16:02 por Kirito-kun

» O Barato é louco
Sab 27 Jun 2015, 15:26 por Halt

» Download RPG Maker 2000 + RTP em português
Qui 21 Maio 2015, 19:28 por Wismael

» Divulgando meu grupo e página do Facebook
Ter 19 Maio 2015, 13:06 por Halt


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1Script SheolShade MiniMap em Sab 05 Jan 2013, 11:26

~Razor

avatar
Membro de Honra
Membro de Honra
SheolShade MiniMap
por SheolShade

Introdução

Este script adiciona um mini mapa circular ao jogo.

Características

•Mini mapa circular.
•Fácil customização.


Screenshots



Como usar

Cole na seção "Scripts Adicionais".
Imagens necessárias inclusas na demo.
Maiores instruções no script.

Script

Código:
#==============================================================================#
#                          **SheolShade Minimap**                              #
#------------------------------------------------------------------------------#
#  ** Autor: SheolShade                                                        #
#  ** Versão: 1.0b                                                            #
#  ** 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".                          #
#==============================================================================#
#==============================================================================#
#  ** Configuração                                                            #
#------------------------------------------------------------------------------#
#  TileSize -> linha: 99
#          Define o tamanho do tile utilizado no minimapa.
#
#  MapOffset -> linha: 100
#          Dependendo do tamanho do tile utilizado será necessário ajustar a
#          posição do minimapa.
#
#  PlayerColor -> linha: 101
#          Define a cor do jogador mostrada no mapa.
#
#  ObjectColor -> linha: 102
#          Permite definir uma cor pra cada tipo de objeto no mapa, como
#          NPCS, teletranportes, baús e etc, usando comenta´rios nos eventos.
#          Use a seguinte sintaxe dentro do {}, separado por vírgulas:
#
#            "comentário" => Color.new(R, G, B).invert
#          R = valor RGB para vermelho;
#          G = valor RGB para verde;
#          B = valor RGB para azul;
#
#  BorderColor  -> linha: 104
#          Define a cor do contorno dos eventos e jogador.
#
#  ObjectLayerOpacity -> linha: 105
#          Define a transparencia da camada de eventos.
#
#  MiniMapCorner -> linha: 106
#          Define a posção do mini mapa.
#            1 = Canto superior esquerdo;
#            2 = Canto superior direito;
#            3 = Canto inferior esquerdo;
#            4 = Canto inferior direito;
#
#  MapColor -> linha: 107
#          Define a cor da parte não passável do mapa.
#
#  MapBorderColor -> linha: 108
#          Define a cor do contorno das areas não passávies.
#
#  BorderName -> linha: 109
#          Nome do arquivo de imagem para a borda do mini mapa. Na pasta System.
#
#  BackTextureName -> linha: 110
#          Nome do arquivo de imagem para a textura de fundo. Na pasta System.
#
#  ClearOutsideArea -> linha: 111
#          Permite preeencher com uma cor as area fora do mapa ao invez de usar
#          a textura. true ou false
#
#  ClearOutsideColor -> linha: 112
#          Se ClearoutsideArea for true, utilizará a cor definida aqui para
#          preencher a area externa.
#
#  OutlineMapArea -> linha: 113
#          Permite definir um contorno demarcando o limite do mapa. true ou false
#
#  OutlineMapColor -> linha: 114
#          Se OutlineMapArea for true, utilizará a cor definida aqui para
#          o contorno.
#
#  EnableSwitchID
#          Define a id do switch usado para ligar ou desligar o mini mapa.
#==============================================================================#
#==============================================================================#
# ** 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
#==============================================================================#
# ** Modulo SheolShade
#==============================================================================#
module SheolShade
  module MiniMap
   
    #Inicio da configuração#
   
    TileSize = 8
    MapOffset = -4
    PlayerColor = Color.new(255,0,0).invert
    ObjectColor = {"npc" => Color.new(0,255,0).invert,
                  "door" => Color.new(0,0,255).invert,
                  "chest" => Color.new(100,100,100).invert}
    BorderColor = Color.new(0,0,0).invert
    ObjectLayerOpacity = 255
    MiniMapCorner = 2
    MapColor = Color.new(200,150,150).invert
    MapBorderColor = Color.new(50,50,50).invert
    BorderName = "Border"
    BackTextureName = "OldPaper"
    ClearOutsideArea = false
    ClearOutsideColor = Color.new(0,0,0).invert
    OutlineMapArea = true
    OutlineMapColor = Color.new(0,0,0).invert
    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 Mini Map
#==============================================================================#
class MiniMap
 
  include SheolShade::MiniMap
 
  def initialize(viewport)
    @viewport = viewport
    refresh
  end
 
  def refresh
    @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)
    bit = Cache::system(BackTextureName)
    bitmap.stretch_blt(bitmap.rect, bit, bit.rect)
    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.keys
      if $game_map.events[event].list.size >= 0
        for item in $game_map.events[event].list
          if item.code == 108 or item.code == 408
            if ObjectColor.has_key?(item.parameters[0])
              draw_object($game_map.events[event].real_x*TileSize+56,
              $game_map.events[event].real_y*TileSize+56,
              ObjectColor[item.parameters[0]])
              p ObjectColor[item.parameters[0]]
            end
          end
        end
      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.passable?(x, y, 4)
          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
    @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 old_init initialize
  alias old_updt update
  alias old_disp dispose
 
  include SheolShade::MiniMap
 
  def initialize
    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)
    old_init
  end
 
  def dispose
    old_disp
    @minimapa.dispose
  end
 
  def update
    old_updt
    @minimapa.update
  end
end
#==============================================================================#
# ** Fim do Script
#==============================================================================#

Demo

http://www.mediafire.com/?q35liryb35rgll1

Créditos e Agradecimentos

•Feito por SheolShade


__________________________________________


Principal Engine :Game Maker
Especialidade : Roteirista
Jogos: The old mine (Game Maker)
Site(Fórum): Lost Makers
Ver perfil do usuário http://lostmakers.web-rpg.com/

2Script Re: SheolShade MiniMap em Sab 05 Jan 2013, 17:16

Darkmel

avatar
Membro - Novato
Membro - Novato
Gostei do estilo do minimap :D
Como queria um desse pra xp.


__________________________________________
Ver perfil do usuário http://saommorpg.uni.me

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Tópicos similares

-

» [Extensao]Hyper MiniMap

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum