glqgamemaster/Gentle-Love-Quest — Issue #22: Use MOG Location Name for displaying the names of location entered.
Author: gegerlan
Created: 2012-01-03 23:23:11+00:00
State: open

Rather than calling NMS, try the following script that creates a prettier and dynamic solution for presenting the player's location:

```Ruby
#_______________________________________________________________________________
# MOG_Location_Name_VX V1.1
#_______________________________________________________________________________
# By Moghunter
# http://www.atelier-rgss.com
#_______________________________________________________________________________
# Apresenta uma janela com o nome do mapa.
# É necessário ter uma imagem com o nome de MAPNAME
# dentro da pasta Graphics/System.
#_______________________________________________________________________________
module MOG
#Font Name.
MPFONT = "Georgia"
#Fade ON/OFF(True - False).
MPNMFD = true
#Fade Time.
MPNMTM = 10
#Window Position.
# 0 = Upper Left.
# 1 = Lower Left.
# 2 = Upper Right.
# 3 = Lower Right.
MPNMPS = 2
# Disable Switch(ID).
WM_SWITCH_VIS_DISABLE = 15
end

#==============================================================================
# Game_Temp
#==============================================================================
class Game_Temp
attr_accessor :fdtm
attr_accessor :fdtmax
attr_accessor :mpnm_x
attr_accessor :mpnm_y
#--------------------------------------------------------------------------
# * initialize
#--------------------------------------------------------------------------
alias mog_vx06_initialize initialize
def initialize
mog_vx06_initialize
@fdtm = 255 + 40 * MOG::MPNMTM
@fdtmax = @fdtm
if MOG::MPNMPS == 0
@mpnm_x = -300
@mpnm_y = 0
elsif MOG::MPNMPS == 1
@mpnm_x = -300
@mpnm_y = 320
elsif MOG::MPNMPS == 2
@mpnm_x = 640
@mpnm_y = 0
else
@mpnm_x = 640
@mpnm_y = 320
end
end
#--------------------------------------------------------------------------
# * fdtm
#--------------------------------------------------------------------------
def fdtm
return [[@fdtm, 0].max, @fdtmax].min
end
end

#==============================================================================
# Game_Map
#==============================================================================
class Game_Map
attr_reader :name
#--------------------------------------------------------------------------
# *setup
#--------------------------------------------------------------------------
alias mog_mapname_setup setup
def setup(map_id)
mog_mapname_setup(map_id)
data = load_data("Data/MapInfos.rvdata")
@name = data[@map_id].name
end
end

#==============================================================================
# Window_Base
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# * draw_mpname
#--------------------------------------------------------------------------
def draw_mpname(x,y)
mapic = Cache.system("Mpname")
cw = mapic.width
ch = mapic.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch + 65, mapic, src_rect)
self.contents.font.name = MOG::MPFONT
self.contents.font.size = 22
self.contents.font.bold = true
self.contents.font.shadow = true
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 76, y + 27, 110, 32, $game_map.name.to_s,1)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 75, y + 26, 110, 32, $game_map.name.to_s,1)
end
end

#==============================================================================
# Window_Base
#==============================================================================
class Mpname < Window_Base
#--------------------------------------------------------------------------
# * initialize
#--------------------------------------------------------------------------
def initialize(x , y)
super($game_temp.mpnm_x, $game_temp.mpnm_y, 250, WLH + 70)
self.opacity = 0
refresh
end
#--------------------------------------------------------------------------
# * refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
draw_mpname(10,0)
end
end

#==============================================================================
# Scene_Map
#==============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# * start
#--------------------------------------------------------------------------
alias mog_vx06_start start
def start
@mpnm = Mpname.new($game_temp.mpnm_x, $game_temp.mpnm_y)
@mpnm.contents_opacity = $game_temp.fdtm
if $game_switches[MOG::WM_SWITCH_VIS_DISABLE] == false
@mpnm.visible = true
else
@mpnm.visible = false
end
mog_vx06_start
end

#--------------------------------------------------------------------------
# * terminate
#--------------------------------------------------------------------------
alias mog_vx06_terminate terminate
def terminate
mog_vx06_terminate
@mpnm.dispose
end

#--------------------------------------------------------------------------
# * update
#--------------------------------------------------------------------------
alias mog_vx06_update update
def update
mog_vx06_update
refresh_name
end

#--------------------------------------------------------------------------
# * refresh_name
#--------------------------------------------------------------------------
def refresh_name
$game_temp.mpnm_x = @mpnm.x
$game_temp.mpnm_y = @mpnm.y
if $game_switches[MOG::WM_SWITCH_VIS_DISABLE] == true or $game_temp.fdtm <= 0
@mpnm.visible = false
else
@mpnm.visible = true
end
if MOG::MPNMPS == 0 or MOG::MPNMPS == 1
if @mpnm.x < 0
@mpnm.x += 5
elsif @mpnm.x >= 0
@mpnm.x = 0
end
else
if @mpnm.x > 300
@mpnm.x -= 5
elsif @mpnm.x <= 300
@mpnm.x = 300
end
end
@mpnm.contents_opacity = $game_temp.fdtm
if MOG::MPNMFD == true
$game_temp.fdtm -= 3
end
end

#--------------------------------------------------------------------------
# * update_transfer_player
#--------------------------------------------------------------------------
alias mog_vx06_update_transfer_player update_transfer_player
def update_transfer_player
return unless $game_player.transfer?
@mpnm.contents_opacity = 0
mog_vx06_update_transfer_player
if MOG::MPNMPS == 0
$game_temp.mpnm_x = -340
$game_temp.mpnm_y = 0
elsif MOG::MPNMPS == 1
$game_temp.mpnm_x = -340
$game_temp.mpnm_y = 320
elsif MOG::MPNMPS == 2
$game_temp.mpnm_x = 640
$game_temp.mpnm_y = 0
else
$game_temp.mpnm_x = 640
$game_temp.mpnm_y = 320
end
@mpnm.y = $game_temp.mpnm_y
@mpnm.x = $game_temp.mpnm_x
$game_temp.fdtm = $game_temp.fdtmax
@mpnm.refresh
end
end

$mog_rgssvx_location_name = true
```
http://www.atelier-rgss.com/RGSS/System/VX_SYS12.html