24-06-2011, 08:37 PM
(Questo messaggio è stato modificato l'ultima volta il: 04-01-2012, 10:57 PM da Johnny 97.)
dovete solo incollarlo sotto materials e logicamente creditare: Ramiro
#==============================================================================
# SHOW THE MAP NAME - REVOLUTION MODE -
#------------------------------------------------------------------------------
# Author Ramiro (Holy_wyvern, ramiazul)\\Traduzione di Lifaen
#------------------------------------------------------------------------------
# Version 1.0
#------------------------------------------------------------------------------
# Descrizione:
# Permette di visualizzare il nome dell'area, con un piacevole effetto grafico.
#------------------------------------------------------------------------------
# Compatibilità:
# RPG maker VX script.
# Non dovrebbe entrare il conflitto con niente (99.999 % sicuro)
#------------------------------------------------------------------------------
# Istruzioni:
# Inserite nella sezione "Materials"
#
# Per mostrare il nome dell'eroe sulla mappa oppure una variabile
# \\N[id dell'eroe nel database] (1 - 999)
# \\P[id della variabile] (1 - 999)
# \\PN[id della posizione dell'eroe nel party] (0 - 3)
# (Sì...proprio come nella finestra dei messaggi!)
#------------------------------------------------------------------------------
# BUGS:
# Nessuno trovato.
#------------------------------------------------------------------------------
# Note d'autore:
# Per giochi amatoriali, non-commerciali. I crediti non sono necessari...ma sarebbe carino
#===============================================================================
#===============================================================================
# Configurations
#===============================================================================
module MAPWINDOW
VIEWING_TIME = 160 # tempo di visualizzazione delle lettere
LETTER_ANIM = 170 # inizio tempo d'animazione
LETTER_END = 20 # tempo per nascondere il nome
INIT_X = 10 # coordinata X di partenza della prima lettera
INIT_Y = 10 # coordinata Y di partenza della prima lettera
START_ANGLE = -180 # angolo i partenza della prima lettera
RECT_COLOR = Color.new(255,255,255) # Colore della linea
RECT_X = 0 # correzione sull'asse X della linea
RECT_Y = -14 # correzione sull'asse Y della linea
FIRST_LETTER = Color.new(255,255,255) # colore della prima lettera
LETTER_COLOR = Color.new(255,255,255,200) # colore delle altre lettere
OPACITY = 200 # spessore delle lettere
RECT_OPACITY = 255 # spessore della linea
FONT_SIZE = 25 # dimensione del font
EX_START_X = 0 # coordinata X d'inizio movimento
RECT_HEIGHT = 1 # altezza della linea
NOT_SHOW_MAPS= [1,15,17,27,29,38,39,53] # mettete qui l'ID delle mappe di cui non volete venga visualizzato il nome. Es:
# [1,2,3]
end
#===============================================================================
# GAME MAP SETUP
#===============================================================================
class Game_Map
def name
map_infos = load_data("Data/MapInfos.rvdata")
name = map_infos[@map_id].name.clone
name.gsub!(/\\\\N\\[([0-9]+)\\]/i) { $game_actors[$1.to_i].name }
name.gsub!(/\\\\PN\\[([0-9]+)\\]/i) { $game_party.members[$1.to_i].name }
name.gsub!(/\\\\V\\[([0-9]+)\\]/i) { $game_variables[$1.to_i] }
return name
end
end
#===============================================================================
# The spritest of letters
#===============================================================================
class Spriteset_MapName
include MAPWINDOW
def initialize
@letters = []
@index = 0
@finish_count = @dispose_count = 0
end
def set_sprites
if !NOT_SHOW_MAPS.include?($game_map.map_id)
dispose_sprites
@letters = []
name = $game_map.name.scan(/./).clone
@l_count = (LETTER_ANIM / name.size) + 1
@index = 0
@finish = false
@finish_count = VIEWING_TIME
@dispose_count = LETTER_END
for i in 0...name.size
@letters[i] = Sprite.new
@letters[i].bitmap = Bitmap.new(FONT_SIZE,FONT_SIZE)
@letters[i].ox = 10
@letters[i].oy = 10
@letters[i].bitmap.font.size = FONT_SIZE
@letters[i].bitmap.font.color = i == 0 ? FIRST_LETTER : LETTER_COLOR
@letters[i].bitmap.draw_text(0,0,FONT_SIZE,FONT_SIZE,name[i],1)
@letters[i].x = i * (FONT_SIZE / 2) + EX_START_X + INIT_X
@letters[i].y = INIT_Y
@letters[i].z = 9999
@letters[i].opacity = 0
@letters[i].angle = START_ANGLE
end
@b_count = @letters.size * ((LETTER_ANIM / @letters.size) + 1)
@border = Sprite.new
@border.bitmap = Bitmap.new(@letters.size * (FONT_SIZE / 2) + (FONT_SIZE / 2), RECT_HEIGHT)
@border.bitmap.fill_rect(Rect.new(0,0,@letters.size * (FONT_SIZE / 2) + (FONT_SIZE / 2), RECT_HEIGHT),RECT_COLOR)
@border.x = - @border.width + INIT_X - (FONT_SIZE / 2) - RECT_X
@border.opacity = 0
@border.y = INIT_Y + (FONT_SIZE ) + RECT_Y
end
end
def update
if !@finish
if @letters[@index]
if @l_count > 0
@letters[@index].x = (@letters[@index].x * (@l_count - 1) + @index * (FONT_SIZE / 2) + INIT_X) / @l_count
@letters[@index].opacity = (@letters[@index].opacity * (@l_count - 1) + OPACITY) / @l_count
@letters[@index].angle = (@letters[@index].angle * (@l_count - 1)) / @l_count
@l_count -= 1
if @b_count > 0
@border.x = (@border.x * (@b_count - 1) + INIT_X - (FONT_SIZE / 2) + RECT_X) / @b_count
@border.opacity = (@border.opacity * (@b_count - 1) + RECT_OPACITY) / @b_count
@b_count -= 1
end
else
@index += 1
@l_count = ((LETTER_ANIM / @letters.size) + 1)
end
else
@finish = true
end
else
if @finish_count > 0
@finish_count -= 1
return
end
if @dispose_count > 0
for i in 0...@letters.size
@letters[i].x = (@letters[i].x * (@dispose_count - 1) + i * (FONT_SIZE / 2) + 24 + INIT_X) / @dispose_count
@letters[i].opacity = (@letters[i].opacity * (@dispose_count - 1)) / @dispose_count
end
@border.x = (@border.x * (@dispose_count - 1)+ INIT_X + RECT_X - (FONT_SIZE / 2) - @border.width ) / @dispose_count
@border.opacity = (@border.opacity * (@dispose_count - 1)) / @dispose_count
@dispose_count -= 1
end
end
end
def dispose
dispose_sprites
end
def dispose_sprites
for i in @letters
i.dispose
end
if @border
@border.bitmap.dispose if @border.bitmap
@border.dispose
end
end
end
#===============================================================================
# The map
#===============================================================================
class Scene_Map < Scene_Base
alias smsbstrt start
alias smsbupdbas update_transfer_player
alias smsbupdnorm update
alias smsbterm terminate
def start
@letters = Spriteset_MapName.new
smsbstrt
@letters.set_sprites
end
def update
@letters.update
smsbupdnorm
end
def update_transfer_player
teleported = true if $game_player.transfer?
smsbupdbas
@letters.set_sprites if teleported
end
def terminate
@letters.dispose
smsbterm
end
end
#==============================================================================
# SHOW THE MAP NAME - REVOLUTION MODE -
#------------------------------------------------------------------------------
# Author Ramiro (Holy_wyvern, ramiazul)\\Traduzione di Lifaen
#------------------------------------------------------------------------------
# Version 1.0
#------------------------------------------------------------------------------
# Descrizione:
# Permette di visualizzare il nome dell'area, con un piacevole effetto grafico.
#------------------------------------------------------------------------------
# Compatibilità:
# RPG maker VX script.
# Non dovrebbe entrare il conflitto con niente (99.999 % sicuro)
#------------------------------------------------------------------------------
# Istruzioni:
# Inserite nella sezione "Materials"
#
# Per mostrare il nome dell'eroe sulla mappa oppure una variabile
# \\N[id dell'eroe nel database] (1 - 999)
# \\P[id della variabile] (1 - 999)
# \\PN[id della posizione dell'eroe nel party] (0 - 3)
# (Sì...proprio come nella finestra dei messaggi!)
#------------------------------------------------------------------------------
# BUGS:
# Nessuno trovato.
#------------------------------------------------------------------------------
# Note d'autore:
# Per giochi amatoriali, non-commerciali. I crediti non sono necessari...ma sarebbe carino
#===============================================================================
#===============================================================================
# Configurations
#===============================================================================
module MAPWINDOW
VIEWING_TIME = 160 # tempo di visualizzazione delle lettere
LETTER_ANIM = 170 # inizio tempo d'animazione
LETTER_END = 20 # tempo per nascondere il nome
INIT_X = 10 # coordinata X di partenza della prima lettera
INIT_Y = 10 # coordinata Y di partenza della prima lettera
START_ANGLE = -180 # angolo i partenza della prima lettera
RECT_COLOR = Color.new(255,255,255) # Colore della linea
RECT_X = 0 # correzione sull'asse X della linea
RECT_Y = -14 # correzione sull'asse Y della linea
FIRST_LETTER = Color.new(255,255,255) # colore della prima lettera
LETTER_COLOR = Color.new(255,255,255,200) # colore delle altre lettere
OPACITY = 200 # spessore delle lettere
RECT_OPACITY = 255 # spessore della linea
FONT_SIZE = 25 # dimensione del font
EX_START_X = 0 # coordinata X d'inizio movimento
RECT_HEIGHT = 1 # altezza della linea
NOT_SHOW_MAPS= [1,15,17,27,29,38,39,53] # mettete qui l'ID delle mappe di cui non volete venga visualizzato il nome. Es:
# [1,2,3]
end
#===============================================================================
# GAME MAP SETUP
#===============================================================================
class Game_Map
def name
map_infos = load_data("Data/MapInfos.rvdata")
name = map_infos[@map_id].name.clone
name.gsub!(/\\\\N\\[([0-9]+)\\]/i) { $game_actors[$1.to_i].name }
name.gsub!(/\\\\PN\\[([0-9]+)\\]/i) { $game_party.members[$1.to_i].name }
name.gsub!(/\\\\V\\[([0-9]+)\\]/i) { $game_variables[$1.to_i] }
return name
end
end
#===============================================================================
# The spritest of letters
#===============================================================================
class Spriteset_MapName
include MAPWINDOW
def initialize
@letters = []
@index = 0
@finish_count = @dispose_count = 0
end
def set_sprites
if !NOT_SHOW_MAPS.include?($game_map.map_id)
dispose_sprites
@letters = []
name = $game_map.name.scan(/./).clone
@l_count = (LETTER_ANIM / name.size) + 1
@index = 0
@finish = false
@finish_count = VIEWING_TIME
@dispose_count = LETTER_END
for i in 0...name.size
@letters[i] = Sprite.new
@letters[i].bitmap = Bitmap.new(FONT_SIZE,FONT_SIZE)
@letters[i].ox = 10
@letters[i].oy = 10
@letters[i].bitmap.font.size = FONT_SIZE
@letters[i].bitmap.font.color = i == 0 ? FIRST_LETTER : LETTER_COLOR
@letters[i].bitmap.draw_text(0,0,FONT_SIZE,FONT_SIZE,name[i],1)
@letters[i].x = i * (FONT_SIZE / 2) + EX_START_X + INIT_X
@letters[i].y = INIT_Y
@letters[i].z = 9999
@letters[i].opacity = 0
@letters[i].angle = START_ANGLE
end
@b_count = @letters.size * ((LETTER_ANIM / @letters.size) + 1)
@border = Sprite.new
@border.bitmap = Bitmap.new(@letters.size * (FONT_SIZE / 2) + (FONT_SIZE / 2), RECT_HEIGHT)
@border.bitmap.fill_rect(Rect.new(0,0,@letters.size * (FONT_SIZE / 2) + (FONT_SIZE / 2), RECT_HEIGHT),RECT_COLOR)
@border.x = - @border.width + INIT_X - (FONT_SIZE / 2) - RECT_X
@border.opacity = 0
@border.y = INIT_Y + (FONT_SIZE ) + RECT_Y
end
end
def update
if !@finish
if @letters[@index]
if @l_count > 0
@letters[@index].x = (@letters[@index].x * (@l_count - 1) + @index * (FONT_SIZE / 2) + INIT_X) / @l_count
@letters[@index].opacity = (@letters[@index].opacity * (@l_count - 1) + OPACITY) / @l_count
@letters[@index].angle = (@letters[@index].angle * (@l_count - 1)) / @l_count
@l_count -= 1
if @b_count > 0
@border.x = (@border.x * (@b_count - 1) + INIT_X - (FONT_SIZE / 2) + RECT_X) / @b_count
@border.opacity = (@border.opacity * (@b_count - 1) + RECT_OPACITY) / @b_count
@b_count -= 1
end
else
@index += 1
@l_count = ((LETTER_ANIM / @letters.size) + 1)
end
else
@finish = true
end
else
if @finish_count > 0
@finish_count -= 1
return
end
if @dispose_count > 0
for i in 0...@letters.size
@letters[i].x = (@letters[i].x * (@dispose_count - 1) + i * (FONT_SIZE / 2) + 24 + INIT_X) / @dispose_count
@letters[i].opacity = (@letters[i].opacity * (@dispose_count - 1)) / @dispose_count
end
@border.x = (@border.x * (@dispose_count - 1)+ INIT_X + RECT_X - (FONT_SIZE / 2) - @border.width ) / @dispose_count
@border.opacity = (@border.opacity * (@dispose_count - 1)) / @dispose_count
@dispose_count -= 1
end
end
end
def dispose
dispose_sprites
end
def dispose_sprites
for i in @letters
i.dispose
end
if @border
@border.bitmap.dispose if @border.bitmap
@border.dispose
end
end
end
#===============================================================================
# The map
#===============================================================================
class Scene_Map < Scene_Base
alias smsbstrt start
alias smsbupdbas update_transfer_player
alias smsbupdnorm update
alias smsbterm terminate
def start
@letters = Spriteset_MapName.new
smsbstrt
@letters.set_sprites
end
def update
@letters.update
smsbupdnorm
end
def update_transfer_player
teleported = true if $game_player.transfer?
smsbupdbas
@letters.set_sprites if teleported
end
def terminate
@letters.dispose
smsbterm
end
end