Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

[VX] Map Name Popup

Map Name Popup
by Dargor
Version 1.5


Introduction

This script creates a window on the map that displays the map name when the player is transfered.
It's possible to edit which maps will have this window by editing the Exclude_Maps array in the Map_Name_Popup module.
Additionally,  you can use the \N[id] code in the map name to display an actor's name, ID being the actor's ID.
Version 1.1 now works with areas too!

Hope you like it!

Script

Code:
#==============================================================================

# ** Map Name Popup

#------------------------------------------------------------------------------

#  © Dargor, 2008

#  11/05/08

#  Version 1.5

#------------------------------------------------------------------------------

#  VERSION HISTORY:

#   - 1.0 (06/03/08), Initial release

#   - 1.1 (19/03/08), Added support for areas

#   - 1.2 (26/04/08), Added revert exclusion option

#   - 1.3 (11/05/08), Script restructuration

#   - 1.4 (11/05/08), Added support for enabling/disabling popups

#   - 1.5 (11/05/08), Added 'show' functions

#------------------------------------------------------------------------------

#  INSTRUCTIONS:

#   - Paste this above main

#   - Edit the Exclude_Maps array in the Map_Name_Popup module

#   - Edit the Exclude_Areas array in the Map_Name_Popup module

#==============================================================================

 

#==============================================================================

#  ** Map Name Popup Configuration

#==============================================================================

 

module Map_Name_Popup

  # These maps will not popup the name window

  Exclude_Maps = []

  # These areas will not popup the name window

  Exclude_Areas = []

  # Revert exclusion

  Revert_Exclusion = false

end

 

#==============================================================================

# ** RPG::Area

#------------------------------------------------------------------------------

#  Data class for areas.

#==============================================================================

 

class RPG::Area

  #--------------------------------------------------------------------------

  # * Public Instance Variables

  #--------------------------------------------------------------------------

  attr_accessor :show_name

  #--------------------------------------------------------------------------

  # * Alias Listing

  #--------------------------------------------------------------------------

  alias dargor_vx_area_initialize initialize

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize

    dargor_vx_area_initialize

    @show_name = false

  end

end

 

#==============================================================================

# ** Game_System

#------------------------------------------------------------------------------

#  This class handles system-related data. Also manages vehicles and BGM, etc.

# The instance of this class is referenced by $game_system.

#==============================================================================

 

class Game_System

  #--------------------------------------------------------------------------

  # * Public Instance Variables

  #--------------------------------------------------------------------------

  attr_accessor :map_name_disabled

  attr_accessor :area_name_disabled

  #--------------------------------------------------------------------------

  # * Alias Listing

  #--------------------------------------------------------------------------

  alias dargor_vx_map_name_initialize initialize

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize

    dargor_vx_map_name_initialize

    @map_name_disabled = false

    @area_name_disabled = false

  end

end

 

#==============================================================================

# ** Game_Player

#------------------------------------------------------------------------------

#  This class handles maps. It includes event starting determinants and map

# scrolling functions. The instance of this class is referenced by $game_map.

#==============================================================================

 

class Game_Player < Game_Character

  #--------------------------------------------------------------------------

  # * Area ID

  #--------------------------------------------------------------------------

  def area_id

    for area in $data_areas.values

      return area.id if in_area?(area)

    end

  end

end

 

#==============================================================================

# ** Game_Map

#------------------------------------------------------------------------------

#  This class handles maps. It includes scrolling and passage determination

# functions. The instance of this class is referenced by $game_map.

#==============================================================================

 

class Game_Map

  #--------------------------------------------------------------------------

  # * Public Instance Variables

  #--------------------------------------------------------------------------

  attr_accessor :show_name

  #--------------------------------------------------------------------------

  # Alias Listing

  #--------------------------------------------------------------------------

  alias dargor_map_name_window_setup setup

  #--------------------------------------------------------------------------

  # * Setup

  #     map_id : map ID

  #--------------------------------------------------------------------------

  def setup(map_id)

    dargor_map_name_window_setup(map_id)

    @show_name = true

  end

  #--------------------------------------------------------------------------

  # * Get Map ID

  #--------------------------------------------------------------------------

  def name

    map_infos = load_data("Data/MapInfos.rvdata")

    name = map_infos[@map_id].name

    name.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }

    return name

  end

end

 

class Scene_Map < Scene_Base

  def show_map_name(forced=false)

    $game_map.show_name = true

    @spriteset.show_map_name(forced=false)

  end

  def show_area_name(forced=false)

    @spriteset.show_area_name(forced=false)

  end

end

 

#==============================================================================

# ** Spriteset_Map

#------------------------------------------------------------------------------

#  This class brings together map screen sprites, tilemaps, etc. It's used

# within the Scene_Map class.

#==============================================================================

 

class Spriteset_Map

  #--------------------------------------------------------------------------

  # Alias Listing

  #--------------------------------------------------------------------------

  alias dargor_spriteset_name_window_initialize initialize

  alias dargor_spriteset_name_window_update update

  alias dargor_spriteset_name_window_dispose dispose

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize

    create_windows

    dargor_spriteset_name_window_initialize

    update

  end

  #--------------------------------------------------------------------------

  # * Create Windows

  #--------------------------------------------------------------------------

  def create_windows

    @map_name_window = Window_MapName.new

    @area_name_window = Window_MapName.new

  end

  #--------------------------------------------------------------------------

  # * Show Map Name

  #--------------------------------------------------------------------------

  def show_map_name(forced=false)

    unless forced

      return if $game_system.map_name_disabled

    end

    if $game_map.show_name

      @map_name_window.show_name($game_map.name, 128)

    end

  end

  #--------------------------------------------------------------------------

  # * Show Area Name

  #--------------------------------------------------------------------------

  def show_area_name(forced=false)

    unless forced

      return if $game_system.area_name_disabled

    end

    for area in $data_areas.values

      if $game_player.in_area?(area) and area.show_name

        if Map_Name_Popup::Revert_Exclusion

          return unless Map_Name_Popup::Exclude_Areas.include?(area.id)

        else

          return if Map_Name_Popup::Exclude_Areas.include?(area.id)

        end

        @area_name_window.show_name(area.name, 128, true)

        area.show_name = false

      else

        area.show_name = true unless $game_player.in_area?(area)

      end

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    dargor_spriteset_name_window_update

    show_map_name

    show_area_name

    @map_name_window.update

    @area_name_window.update

  end

  #--------------------------------------------------------------------------

  # * Dispose

  #--------------------------------------------------------------------------

  def dispose

    dargor_spriteset_name_window_dispose

    @map_name_window.dispose

    @area_name_window.dispose

  end

end

 

#==============================================================================

# ** Window_MapName

#------------------------------------------------------------------------------

#  This window shows the map name when the player is transfered.

#==============================================================================

 

class Window_MapName < Window_Base

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize(name="", count=128)

    super(0, 0, 544, 64)

    self.visible = false

    self.openness = 0

    @name = name

    @count = count

    @in_area = false

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    #return unless $game_map.display_name

    self.visible = true

    self.contents.clear

    self.contents.font.color = normal_color

    align = @in_area ? 0 : 1

    self.contents.draw_text(0,0,504,32,@name,align)

    gw = contents.text_size(@name).width

    gc1 = Color.new(255,255,255)

    gc2 = Color.new(0,0,0,0)

    self.contents.gradient_fill_rect(0, WLH, gw, 2, gc1, gc2) if @in_area

    $game_map.show_name = false

  end

  #--------------------------------------------------------------------------

  # * Show Name

  #--------------------------------------------------------------------------

  def show_name(name=@name, count=@count, in_area=false)

    unless in_area

      return if $game_map.show_name == false

    end

    if Map_Name_Popup::Revert_Exclusion

      return unless Map_Name_Popup::Exclude_Maps.include?($game_map.map_id)

    else

      return if Map_Name_Popup::Exclude_Maps.include?($game_map.map_id)

    end

    @name = name

    @count = count

    @in_area = in_area

    if @in_area

      self.openness = 255

      self.opacity = 0

      self.contents_opacity = 0

      self.y = 352

    else

      self.openness = 0

      self.opacity = 255

      self.contents_opacity = 255

      self.y = 0

    end

    refresh

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    super

    unless $scene.is_a?(Scene_Map) 

      self.visible = false

      return

    end

    if self.visible

      if @count == 0

        if @in_area

          self.contents_opacity -= 24

          self.visible = false if self.contents_opacity == 0

          return

        else

          self.openness -= 24

          self.visible = false if self.openness == 0

          return

        end

      end

      if @in_area

        self.contents_opacity += 24

      else

        self.openness += 24

      end

      @count -= 1

    end

  end

end

Notes

I'd like to thank Hero for his idea of adding the \N[id] code.
Don't forget to give me credit!

-Dargor
 
It's ironic because I was just about to post a request for this.  Thanks for creating it!  I've wanted it ever since I saw it in an RPG Maker XP demo.
 
Infinite_Rhapsody":1urywkwi said:
This is nice, but it would be cool if you could make an update that allows a fly by transition and bottom screen positioning.

What do you mean by fly by transition?
For the bottom screen positioning, simply adjust the y position of the window.
 
This is a quick question: Do the map and area numbers correspond to the combined total or the individual total?

EX:
I have this:
Map 1
Area 1
Map 2

If I want to exclude Area 1, would it be 2 or 1?
 
Is there a way to show the map name ONLY in a few maps? I have around 50+maps and most of them don't need to show their names, so If I exclude them all, it'll be a long long list, it could be easier to make the script to show the map name ONLY in certain maps (instead of using the exclude maps optio, using a include maps option.
Just an idea though...
 
Hey,

I just registered here because it seems like a pretty nice and helpful site. I'm pretty much a noob when it comes to this as I just started and my questions is how do I get this? Do I have to download and put it into a folder? Or just download it?

Thanks.
 
Just copy the script, create a new section either above Main (XP) or above (Insert here) (VX) in the script editor, name the new section, and paste the script in the large white box to the right.
 
For some reason it only shows up  on one map and that is the map with player starting position. How did I resolve this? thnx in advance.
 
Vathic":if1qx1m7 said:
For some reason it only shows up  on one map and that is the map with player starting position. How did I resolve this? thnx in advance.
Find these lines in the script (they're at the top):

Code:
  # Revert exclusion
  Revert_Exclusion = true

Assuming I'm correct, you need to change the second line so it will look like this:

Code:
  # Revert exclusion
  Revert_Exclusion = false

This will turn off the revert option.  What was happening was that the only map that was being displayed was the only one you didn't want to be displayed, I believe.
 
Hey Dargor, great script.
I've put the script into the blank place in RMVX.
I've customized all the Excluse_Maps stuff.
Now what?
When I test the game, nothing happens.
Can you help?
Thanks in advance,
    ~AdamationStudios
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top