UltimaForum

Skrypty [VX] - Minimapa obrazkowa

Angius - Sro 13 Kwi, 2011 15:57
Temat postu: Minimapa obrazkowa

bartek2940 - Czw 14 Kwi, 2011 14:25

Fajne, podoba mi się.
Jest łatwa w obsłudze i wogule git.
A jakby ktoś chciał z jeszcze troche większym tłumaczeniem to proszę bardzo:
Spoiler:

Kod:
#==============================================================================
# ReinoRPG Mini-Mapa (RPG Maker VX)
#------------------------------------------------------------------------------
# Bennamy (Amy Productions) & RTH (PRCoders)
# Version 1.0
# 09/10/2008
#------------------------------------------------------------------------------
#                                           ~~POLSKI~~
#------------------------------------------------------------------------------
# Nie znam hiszpańskiego, ale mniej więcej objaśnię jak toto działa.
# Każdemu eventowi opisanemu określonym tagiem nadaje na mapie dany obrazek.
# Mapa składa się z kafelek - jak normalne, ale mniejsze. Typ jest tylko jeden.
# Praktycznie wszystko jest konfigurowalne.
# Nie ma ograniczeń wielkości mapy! To ważne jak dla mnie!
# Tagi dodajemy w komentarzach w zdarzeniu.
#------------------------------------------------------------------------------
# Descrição: - tu jest opis skryptu (coś na wzór zamieszczonego przez kolegę poprzednika wstępu)
#
#   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.
#------------------------------------------------------------------------------
# INSTRUKCJA
# Obrazki trzeba dać do pictures (wiecie o co chodzi)
#
# Aby wywołać pokazywanie się na mapie należy włączyć przełącznik, który ustawiamy niżej, w konfiguracjii.
#
# Położenie minimapy ustawiamy za pomocą ustawionej zmiennej (jw.)
#
#    1 - lewy górny róg
#    2 - prawy górny
#    3 - lewy dolny*
#    4 - prawy dolny*
#
# *mogłem pomylić 3 z 4 i naodwrót, ale jestem prawie pewien
#
# Aby coś pojawiło się na mapie musimy podać mu w komentażu (ustawioną niżej w konfiguracjii) nazwę.
#------------------------------------------------------------------------------
# Créditos e Agradecimentos: - Nie wiem o co kaman tutaj w tej części, ale chyba są podanie twórcy
#
#   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.
#
#==============================================================================

  #--------------------------------------------------------------------------
  # KONFIGURACJA tu wszystko zmieniacie
  #--------------------------------------------------------------------------
module CONFIG
  # Konfiguracja kontroli mapy:
  MM_ACTIVATED_ID = 1           # Switch aktywujący minimapę
  MM_CORNER_VAR = 1             # Zmienna przechowująca położenie
  MM_OPACITY = 180              # przeźroczystość
 
  #Konfiguracja obrazków minimapy (nazwy zaimportowanych obrazków):
  MM_MAP_BACK = "bgmap"        # Obrazek tła
  MM_TILES = "tilemap"         # Obrazek tile mapy
  MM_CURSOR = "heroicursor"    # Obrazek bohatera
  MM_OTHER = "outro"            # Zdarzenia
  MM_ENEMY = "inimigo"          # Wroga
  MM_TELEPORT = "passagem"      # Przejścia
  MM_CHEST = "bau"              # Skrzyni
  MM_NPC = "npc"                # NPCa
  MM_SAVEPOINT = "pousada"      # Savepointu
 
  # Konfiguracja tagów eventów: (to wpisujecie w komentarzach)
  MM_EVENT_OTHER = "other"        # Tag dla innych eventów
  MM_EVENT_ENEMY = "enemy"      # Dla wrogów
  MM_EVENT_TELEPORT = "tp"  # Dla przejścia
  MM_EVENT_CHEST = "chest"          # Dla skrzyni
  MM_EVENT_NPC = "npc"            # Dla NPCa
  MM_EVENT_SAVEPOINT = "pousada"  # Dla savepointu
end
  #--------------------------------------------------------------------------
  # FIM DAS CONFIGURAÇÕES
  #--------------------------------------------------------------------------
#TEGO NIŻEJ NIE TYKAĆ!!! 
#==============================================================================
# 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ç&#227;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ç&#227;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ç&#227;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ç&#227;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ç&#227;o do Héroi e dos Eventos no Mini-mapa
#==============================================================================

class Map_Event < Map_Passability
  include CONFIG
  #--------------------------------------------------------------------------
  # Inicializaç&#227;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)
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # dispose
  #--------------------------------------------------------------------------
  def dispose
    @player.dispose
    for event in @events.values
      event.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # Atualizaç&#227;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
        else
          event.visible = false
        end
      end
    end
  end
end
#=============================================================================


Polecam ten skrypt, jest naprawdę fajny.

Angius - Czw 14 Kwi, 2011 18:31

Hmm... Ikonki są standardowo 8x8, jednak ja spróbowałem dać 12x12 i... Działa :)
Tylko jeden błąd - gdy przechodzi się obok, to z jednej strony można całkowicie najść na ową ikonę, mimo, że na mapie jest to event z ustawioną blokadą - obrazek taki jest centrowany do rogu, nie do środka. Byłbym wdzięczny za pomoc, co zmienić w skrypcie, by większe grafiki działały bezbłędnie.

onimush3 - Pon 18 Kwi, 2011 14:03

ciekawa mapka bardzo ciekawa, podobna do minimapki tyle że znacznie ciekawsza.
Poster27 - Czw 21 Kwi, 2011 18:52

Miałem go, tylko nie wiedziałem jak mapę umieścić w grze.Mam polskiego VX'a. Nie chcę mi się próbować bo jestem leniwy i nie robię nic w RPG Makerze
Angius - Czw 21 Kwi, 2011 18:54

Wrzucasz oba skrypty nad MAIN, grafiki do graphics/pictures i aktywujesz na początku gry zdefiniowany switch:
Kod:
MM_ACTIVATED_ID = 1           # Switch aktywujący minimapę

Christo - Nie 24 Kwi, 2011 16:38

Tutaj dodaje moje przeróbki dla obramowania mapki ;-) :


filipek32 - Sro 27 Kwi, 2011 19:32

Siema, mam taki problem, bo gdy wlaczam gre to nie ma minimapy a gdy naciskam Esc. To sie na 2sek pokazuje i znika;/ Czemu?;d
Angius - Sro 27 Kwi, 2011 19:35

Włączyłeś przełącznik aktywujący minimapę?
kobor - Sro 27 Kwi, 2011 21:52

Angius napisał/a:
Włączyłeś przełącznik aktywujący minimapę?


Ale jak go włączyć? :roll:

Angius - Sro 27 Kwi, 2011 22:21

Od tego masz konfigurację...
Spoiler:

Kod:

#--------------------------------------------------------------------------
  # KONFIGURACJA
  #--------------------------------------------------------------------------
module CONFIG
  # Konfiguracja kontroli mapy:
  MM_ACTIVATED_ID = 1           # Switch aktywujący minimapę
  MM_CORNER_VAR = 1             # Zmienna przechowująca położenie
  MM_OPACITY = 180              # przeźroczystość
 
  #Konfiguracja obrazków minimapy:
  MM_MAP_BACK = "bg_map"        # Obrazek tła
  MM_TILES = "tile_map"         # Obrazek tile mapy
  MM_CURSOR = "heroi_cursor"    # Obrazek bohatera
  MM_OTHER = "outro"            # Zdarzenia
  MM_ENEMY = "inimigo"          # Wroga
  MM_TELEPORT = "passagem"      # Przejścia
  MM_CHEST = "bau"              # Skrzyni
  MM_NPC = "npc"                # NPCa
  MM_SAVEPOINT = "pousada"      # Savepointu
 
  # Konfiguracja tagów eventów:
  MM_EVENT_OTHER = "other"        # Tag dla innych eventów
  MM_EVENT_ENEMY = "enemy"      # Dla wrogów
  MM_EVENT_TELEPORT = "tp"  # Dla przejścia
  MM_EVENT_CHEST = "chest"          # Dla skrzyni
  MM_EVENT_NPC = "npc"            # Dla NPCa
  MM_EVENT_SAVEPOINT = "save"  # Dla savepointu
end


Kod:
MM_ACTIVATED_ID = 1           # Switch aktywujący minimapę

Ta linijka to numer switcha aktywującego. Włącz go w zdarzeniu po prostu :)

kobor - Czw 28 Kwi, 2011 21:17

Angius napisał/a:
Od tego masz konfigurację...
Spoiler:

Kod:

#--------------------------------------------------------------------------
  # KONFIGURACJA
  #--------------------------------------------------------------------------
module CONFIG
  # Konfiguracja kontroli mapy:
  MM_ACTIVATED_ID = 1           # Switch aktywujący minimapę
  MM_CORNER_VAR = 1             # Zmienna przechowująca położenie
  MM_OPACITY = 180              # przeźroczystość
 
  #Konfiguracja obrazków minimapy:
  MM_MAP_BACK = "bg_map"        # Obrazek tła
  MM_TILES = "tile_map"         # Obrazek tile mapy
  MM_CURSOR = "heroi_cursor"    # Obrazek bohatera
  MM_OTHER = "outro"            # Zdarzenia
  MM_ENEMY = "inimigo"          # Wroga
  MM_TELEPORT = "passagem"      # Przejścia
  MM_CHEST = "bau"              # Skrzyni
  MM_NPC = "npc"                # NPCa
  MM_SAVEPOINT = "pousada"      # Savepointu
 
  # Konfiguracja tagów eventów:
  MM_EVENT_OTHER = "other"        # Tag dla innych eventów
  MM_EVENT_ENEMY = "enemy"      # Dla wrogów
  MM_EVENT_TELEPORT = "tp"  # Dla przejścia
  MM_EVENT_CHEST = "chest"          # Dla skrzyni
  MM_EVENT_NPC = "npc"            # Dla NPCa
  MM_EVENT_SAVEPOINT = "save"  # Dla savepointu
end


Kod:
MM_ACTIVATED_ID = 1           # Switch aktywujący minimapę

Ta linijka to numer switcha aktywującego. Włącz go w zdarzeniu po prostu :)




nie umiem !!! :cry:
Jestem zielony w tych sprawach ;-(

Angius - Czw 28 Kwi, 2011 21:58

Ekhh... Wiesz jak ustawić zdarzenie? Bo bez podstaw obsługi niewiele zdziałamy...
W zdarzeniu, w polu po prawej (duże, białe) klikasz dwa razy i wybierasz spośród komend "przełącznik" vel. "switch", zależnie od wersji językowej. Następnie wybierasz przełącznik nr. 1 na ON. Klikasz ok.
Dalej w oknie zdarzenia masz wybór uruchomienia go - na wciśnięcie przycisku, etc. Wybierasz równoległe/paralell. Klikasz ok. Gotowe!

Polecam najpierw zaznajomić się z:
http://www.ultimateam.pl/viewtopic.php?t=2833 - Olbrzymie FAQ
http://www.ultimateam.pl/viewtopic.php?t=1896 - Jak dodawać skrypty
http://www.ultimateam.pl/viewtopic.php?t=3924 - lista innych poradników
http://www.ultimateam.pl/viewtopic.php?t=2583 - Jak otworzyć projekt z innej wersji VX
To ostatnie przydatne przy demach, które masz zresztą załączone. Gdybyś je pobrał i otworzył - nie trzeba byłoby nic tłumaczyć :)

kobor - Nie 01 Maj, 2011 17:03

napisz dokładnie gdzie wejśc co zmienić by minimapa włączała się na m
Angius - Nie 01 Maj, 2011 17:06

Ach... Chcesz włączać ją przyciskiem!
Musisz zastosować skrypt rozszerzający klawiaturę, a potem ustawić w typowym zdarzeniu warunek, jeśli naciśnięte jest "m" włącz przełącznik minimapy, jeśli jest włączony i naciśnięte jest "m" wyłącz przełącznik minimapy.

filipek32 - Nie 08 Maj, 2011 18:39

Czemuna mapie mi nie pokazuje NPC ani Potworów?? ;?
Angius - Nie 08 Maj, 2011 18:42

Niech zgadnę...
Ach tak! Bo przecież...
Trzeba ustawić w zdarzeniach odpowiedni komentarz!
Czyż to nie banalne..?

filipek32 - Czw 12 Maj, 2011 17:51

Taaa, mam np. u potwora włączone MM_ENEMY = "inimigo" i ok na mapie się wyświetla tylko ze jak go "zabije" to dalej jest czerwona kulka -,- WHyy?:D
Angius - Czw 12 Maj, 2011 18:12

Wtedy włączasz nową kartę i w nowej karcie dajesz pusty komentarz. Powinno pomóc.
Gordon - Pon 24 Paź, 2011 20:24

Help! Mi się po włączeniu testowej gry pojawia wiadomość że nie może znaleźć pliku bgmap, więc zmieniam w folderze nazwę obrazka z bg_map na bgmap, włączam testówkę ponownie i jest czarny ekran. Po chwili pojawia się że ten skrypt "failed to create bit map" oraz że
"Error on line 480" O co kaman? Nie kapuje tego... prawdziłem tą linijkę, wygląda tak:

Spoiler:

self.bit_map = Bitmap.new(@map.width * 6, @map.height * 6)


Oczywiście używam skryptu HUDa.

I jeszcze jedno. W którym roku pojawia się minimapka?

Proszę o pomoc, w miarę szybką.

Vrona - Sro 26 Paź, 2011 11:14

Cytat:
roku

W tym,w którym ją zamieścisz.Np.:jak zamieścisz dzisiaj,to w 2011.
Ach...Chodzi ci o RÓG?
bartek2940 zamieścił tam bardziej przetłumaczony skrypt.Jest tam konfiguracja położenia.

szogun1223 - Pią 06 Sty, 2012 17:35

Ja mam pytanie , da się tak ustawic aby mapa była po prawej stronie ekranu?
Dzieki z góry

Angius - Pią 06 Sty, 2012 17:37

Kod:
MM_CORNER_VAR = 1             # Zmienna przechowująca położenie

Innymi słowy pozmieniaj tę zmienną.

szczaw11 - Sob 31 Mar, 2012 18:07

Wszystko co edytuję w tym skrypcie zapisuje się w edytorze, ale w grze nie ma to wpływu.

Zmieniałem przycisk do włączania mapy oraz położenie mapy i nic :(

Proszę o pomoc, mam HUDA, więc chciałbym aby ta mapka wyświetlała się na "m", w prawym górnym rogu.

Ayene - Pon 02 Kwi, 2012 10:43

szczaw11, upewnij się, że dobrze wkleiłeś skrypt. Oprócz tego masz jeszcze inne skrypty, które coś wyświetlają na mapie? Możliwe, że któryś nadpisuje HUD Mapy. Spróbuj przesunąć ten skrypt najbliżej Main, aby był bezpośrednio nad Main pod resztą dodatkowych.
Pawelsar1 - Pon 02 Kwi, 2012 23:25
Temat postu: Mam problem z położeniem.
Linijka:
Kod:
MM_CORNER_VAR = 13  # Zmienna przechowująca położenie


Numer to id zmiennej, prawda? Żeby mini-mapa była w górnym prawym rogu powinienem ustawić wartość zmiennej na 2. Tylko wtedy mini-mapa nie pojawia się.
Jeżeli źle to rozumiem, piszcie!
______________________________________________


ZAGŁOSUJ

Jaro - Sob 14 Kwi, 2012 15:08

No więc, ja także mam problem z zmienieniem pozycji minimapy na prawą stronę, próbowałem pare kombinacji, nawet usunąłem resztę skryptów dla testu, i nic. Proszę o pomoc ;-)
Ayene - Sob 14 Kwi, 2012 15:20

Jaro, linijka w konfiguracji:
Kod:
MM_CORNER_VAR = 1             # Variável que indica a posiç&#227;o do MM na tela

odpowiada za zmienną kontrolującą narożnik, w którym ma się wyświetlać mapa. Jeśli chcesz, aby był to górny prawy narożnik, przyporządkuj zadeklarowanej powyżej zmiennej (czyli 1) wartość 2.

Jaro - Sob 14 Kwi, 2012 15:54

Ayene, i tak zrobiłem, jednak nic się nie zmieniło.
Ayene - Sob 14 Kwi, 2012 16:10

No mi działa. Może musisz odświeżyć mapę. Spróbuj wejść do menu i wyjść. Upewnij się, że użyłeś poprawnej zmiennej i czy nie używasz jej gdzieś indziej (może ją przypadkowo zmieniasz).
Jaro - Sob 14 Kwi, 2012 17:16

Zrobiłem tak jak kazałaś, i nic :p Zrobię to po prostu inaczej. Możliwe że to wina polskiego makera. Dzięki za próbę pomocy ;)
kolkav5 - Czw 21 Cze, 2012 12:22

Dla nie wiedzących.
Ja mam polskiego makera i mi działa.
kopiujecie 9 obrazków.
wklejacie je w (tam gdzie macie projekt) graphics/pictures.
Wklejacie skrypt NAD "Main"
Wchodzicie w linijkę 62 i zmieniacie "MM_ACTIVATED_ID = 1" na "MM_ACTIVATED_ID = 98"
Robimy nowe zdarzenie.
Klikamy nowe zdarzenie/przełącznik 98 ON.
Odpalamy grę.
Przychodzimy do zdarzenia i na nie klikamy.
I Gotowe!


Powered by phpBB modified by Przemo © 2003 phpBB Group