- Code : Tout sélectionner
#==============================================================================
# ?¡ Window_Map_Name
#------------------------------------------------------------------------------
class Window_Map_Name < Window_Base
attr_accessor :text
#--------------------------------------------------------------------------
# ?œ ƒIƒuƒWƒFƒNƒg?‰Šú
#--------------------------------------------------------------------------
def initialize
super(8, -8, 640, 64)
self.contents = Bitmap.new(self.width - 32, self.height - 32)
self.contents.font.name = "Arial"
@align = 1
@showing_time = -1
@text_color = Color.new(255, 255, 0, 255)
end
#--------------------------------------------------------------------------
#
#--------------------------------------------------------------------------
def set_text(text, align = 2)
if text != @text or align != @align
@text = text
@align = align
if text.empty? or text =~ /^\./
@showing_time = -1
self.contents_opacity = 0
self.visible = false
else
@showing_time = 100
self.contents_opacity = 255
self.visible = true
self.contents.clear
x = 4
y = 0
width = self.contents.width - 8
str = "- "+@text+" -"
self.contents.font.color = Color.new( 0, 0, 0, 192)
self.contents.draw_text(x+2, y+2, width, 32, str, @align)
self.contents.font.color = Color.new( 64, 64, 64, 192)
self.contents.draw_text(x-1, y-1, width, 32, str, @align)
self.contents.draw_text(x+1, y-1, width, 32, str, @align)
self.contents.draw_text(x-1, y+1, width, 32, str, @align)
self.contents.draw_text(x+1, y+1, width, 32, str, @align)
self.contents.font.color = @text_color
self.contents.draw_text(x, y, width, 32, str, @align)
end
end
end
#--------------------------------------------------------------------------
# ?œ ?Ä•`‰æ
#--------------------------------------------------------------------------
def update
return if @showing_time < 0
@showing_time -= 1
if @showing_time < 16
self.contents_opacity = @showing_time * 16
if @showing_time == 0
self.visible = false
self.contents.clear
return
end
end
end
end
#==============================================================================
# ?¡ Scene_Map
#==============================================================================
class Scene_Map
def initialize_map_name_window(text = nil)
if @map_name_window.nil?
@map_name_window = Window_Map_Name.new
@map_name_window.opacity = 0
@map_name_window.text = text if not text.nil?
end
end
#--------------------------------------------------------------------------
# ?œ ƒ?ƒCƒ“?ˆ—?
#--------------------------------------------------------------------------
alias xrxs20_main main
def main
initialize_map_name_window
xrxs20_main
@map_name_window.dispose
end
#--------------------------------------------------------------------------
# ?œ ƒtƒŒ?[ƒ€?X?V
#--------------------------------------------------------------------------
alias xrxs20_update update
def update
@map_name_window.set_text($game_map.name)
@map_name_window.update
xrxs20_update
end
end
#==============================================================================
# ?¡ Scene_Title
#==============================================================================
class Scene_Title
alias xrxs20_main main
def main
$map_infos = load_data("Data/MapInfos.rxdata")
for key in $map_infos.keys
$map_infos[key] = $map_infos[key].name
end
xrxs20_main
end
end
#==============================================================================
# ?¡ Game_Map
#==============================================================================
class Game_Map
def name
$map_infos[@map_id]
end
end
#==============================================================================
# ?¡ Scene_Battle
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ?œ ƒ?ƒCƒ“?ˆ—?
#--------------------------------------------------------------------------
alias xrxs20_main main
def main
xrxs20_main
if $scene.is_a?(Scene_Map) and (not XRXS20_Config::SCENE_BATTLE_TO_SCENE_MAP)
$scene.initialize_map_name_window($game_map.name)
end
end
end
et il marche trres bien dans tout les cas sauf dans le cas d'une defaite ou d'une victoire dans un combat crer avec un evenement :
Si je perd ou gagne dans ce style de combat il m'affiche:
- Code : Tout sélectionner
Scrip Window_map_name nr fonctionne pas en 127 a la ligne "name error"
uninitialized constant scene_Battle::XRXS20_config
Esque quelqun pourai resoudre ce problème ?
Merci d'avance