Rhapsody95 Posted February 2, 2015 Share Posted February 2, 2015 Bella ragassuoli! Allora vi lascio qui lo script che permette di inserire una Minimappa all' interno del gioco.Potete scegliere dove posizionare la mappa, quale skin utilizzare per essa e potete anche visualizzare l' intera mappa tramite il tasto Alt! Altre istruzioni sono all' interno dello Script!Bisogna mettere i file nella cartella Picture del vostro gioco! Questo Script era di un certo Squall. che l' ha postato in un FORUM inglese. Io l ho solamente preso e tradotto. Eventuali crediti vanno a lui non a me !!! Link Download: https://www.mediafire.com/?4xt1csye4hkj3kiScript: ###################################################################################### Autore Squall / tradotto da Rhapsody95 ################################################################################## Per settare la posizione dei PNG, nemici o teletrasporti e farli apparire# nella mappa, bisogna aggiungere agli eventi questi COMMENTI.# Dentro ai comandi degli eventi seleziona quindi: Comments# Scrivi event per gli eventi# Scrivi enemy per i nemici# Scrivi teleport per i teletrasporti# Scrivi savepoint per i punti di salvataggio# Scrivi chest per i bauli#################################################################class Game_Event < Game_Character#--------------------------------------------------------------------------# ? name#--------------------------------------------------------------------------def namereturn @event.nameendend#==============================================================================# ¦ Map_Base#------------------------------------------------------------------------------# La classe base della Minimappa## fatto da Squall#==============================================================================class Map_BaseMP_VERSION = 5#--------------------------------------------------------------------------# ? Initialize#--------------------------------------------------------------------------def initialize(corner, use_windowskin)@tileset_name = $game_map.tileset_name@bg = Window_Base.new(0, 0, 144, 112)@bg.z = 9000if no_display?@bg.windowskin = nilelseunless use_windowskin@bg.dispose@bg = Window_Base.new(0, 0, 160, 128)@bg.contents = Bitmap.new(128, 96)@bg.windowskin = nilbmp = RPG::Cache.picture("mapback")@bg.contents.blt(0, 0, bmp, Rect.new(0, 0, 128, 96))@bg.z = 9015endend@map = Sprite.new@map.bitmap = Bitmap.new(map_width, map_height)@map.z = 9005@event = Sprite.new@event.bitmap = Bitmap.new(map_width, map_height)@event.z = 9010self.back_opacity = 56self.opacity = 200case cornerwhen 1self.x = 16self.y = 16when 2self.x = 640 - width - 16self.y = 16when 3self.x = 16self.y = 480 - height - 16when 4self.x = 640 - width - 16self.y = 480 - height - 16elseself.x = 640 - width - 16self.y = 480 - height - 16endend#--------------------------------------------------------------------------# ? display_map?#--------------------------------------------------------------------------def no_map_display?for event in $game_map.events.valuesif event.name.include?("[no map]")return trueendendreturn falseend#--------------------------------------------------------------------------# ? display_map?#--------------------------------------------------------------------------def no_event_display?for event in $game_map.events.valuesif event.name.include?("[no event]")return trueendendreturn falseend#--------------------------------------------------------------------------# ? display_map?#--------------------------------------------------------------------------def no_display?for event in $game_map.events.valuesif event.name.include?("[no map]") and event.name.include?("[no event]")return trueendendreturn falseend#--------------------------------------------------------------------------# ? dispose#--------------------------------------------------------------------------def dispose@bg.dispose@map.bitmap.dispose@map.dispose@event.bitmap.dispose@event.disposeend#--------------------------------------------------------------------------# ? map#--------------------------------------------------------------------------def mapreturn @mapend#--------------------------------------------------------------------------# ? event#--------------------------------------------------------------------------def eventreturn @eventend#--------------------------------------------------------------------------# ? width#--------------------------------------------------------------------------def widthreturn 128end#--------------------------------------------------------------------------# ? opacity=#--------------------------------------------------------------------------def heightreturn 96end#--------------------------------------------------------------------------# ? opacity=#--------------------------------------------------------------------------def visible=(bool)@bg.visible = bool@event.visible = bool@map.visible = boolend#--------------------------------------------------------------------------# ? opacity#--------------------------------------------------------------------------def visiblereturn @bg.visibleend#--------------------------------------------------------------------------# ? opacity=#--------------------------------------------------------------------------def opacity=(opacity)@event.opacity = opacity@map.opacity = opacityend#--------------------------------------------------------------------------# ? opacity#--------------------------------------------------------------------------def opacityreturn @event.opacityend#--------------------------------------------------------------------------# ? back_opacity=#--------------------------------------------------------------------------def back_opacity=(opacity)@bg.opacity = opacity@bg.contents_opacity = opacity if @bg.contents != nilend#--------------------------------------------------------------------------# ? back_opacity#--------------------------------------------------------------------------def back_opacityreturn @bg.opacityend#--------------------------------------------------------------------------# ? x=#--------------------------------------------------------------------------def x=(x)@bg.x = x - (@bg.width - 128) / 2@event.x = x + 8@map.x = x + 8end#--------------------------------------------------------------------------# ? x#--------------------------------------------------------------------------def xreturn @bg.xend#--------------------------------------------------------------------------# ? y=#--------------------------------------------------------------------------def y=(y)@bg.y = y - (@bg.height - 96) / 2@event.y = y + 8@map.y = y + 8end#--------------------------------------------------------------------------# ? y#--------------------------------------------------------------------------def yreturn @bg.yend#--------------------------------------------------------------------------# ? map_width#--------------------------------------------------------------------------def map_widthreturn $game_map.width * 112/20end#--------------------------------------------------------------------------# ? map_height#--------------------------------------------------------------------------def map_heightreturn $game_map.height * 80/15end#--------------------------------------------------------------------------# ? display_x#--------------------------------------------------------------------------def display_xreturn $game_map.display_x / 128 * 112/20end#--------------------------------------------------------------------------# ? map_height#--------------------------------------------------------------------------def display_yreturn $game_map.display_y / 128 * 80/15endend#==============================================================================# ¦ Map_Mini#------------------------------------------------------------------------------# Classe base per le mini mappe## fatto da Squall#==============================================================================class Map_Mini < Map_Base#--------------------------------------------------------------------------# ? initialize#--------------------------------------------------------------------------def initialize(corner, use_windowskin)super(corner, use_windowskin)unless no_map_display?draw_mapendend#--------------------------------------------------------------------------# ? update#--------------------------------------------------------------------------def updatemap.src_rect.set(display_x, display_y, width - 16, height - 16)if @tileset_name != $game_map.tileset_name@tileset_name = $game_map.tileset_nameunless no_map_display?map.bitmap.cleardraw_mapendendend#--------------------------------------------------------------------------# ? draw_map#--------------------------------------------------------------------------def draw_mapbitmap = Bitmap.new($game_map.width * 32, $game_map.height * 32)for i in 0...($game_map.width * $game_map.height)x = i % $game_map.widthy = i / $game_map.widthfor level in 0...3tile_id = $game_map.data[x, y, level]if tile_id >= 384tileset_bitmap = RPG::Cache.tile($game_map.tileset_name, tile_id, 0)src_rect = Rect.new(0, 0, 32, 32)bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)endif tile_id >= 48 and tile_id < 384id = tile_id / 48 - 1tileset_bitmap = RPG::Cache.autotile($game_map.autotile_names[id])src_rect = Rect.new(32, 64, 32, 32)bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)endendendd_rect = Rect.new(0, 0, map_width, map_height)s_rect = Rect.new(0, 0, bitmap.width, bitmap.height)map.bitmap.stretch_blt(d_rect, bitmap, s_rect)bitmap.clearbitmap.disposeendend#==============================================================================# ¦ Map_Event#------------------------------------------------------------------------------# disegna la posizione degli eventi e dell' eroe#==============================================================================class Map_Event < Map_Mini#--------------------------------------------------------------------------# ? initialize#--------------------------------------------------------------------------def initialize(corner = 4, windowskin = true)super(corner, windowskin)@dots = []end#--------------------------------------------------------------------------# ? refresh_dots#--------------------------------------------------------------------------def refresh_event_dotsfor event in $game_map.events.valuesbitmap = nilx = event.x * map_width / $game_map.widthy = event.y * map_height / $game_map.heightnext if event.list == nilfor i in 0...event.list.sizeif event.list.parameters[0].is_a?(String)if event.list.parameters[0] == "event"bitmap = RPG::Cache.picture(event.list.parameters[0])breakelsif event.list.parameters[0] == "enemy"bitmap = RPG::Cache.picture(event.list.parameters[0])breakelsif event.list.parameters[0].include?("teleport")bitmap = RPG::Cache.picture("teleport")breakelsif event.list.parameters[0] == "chest"bitmap = RPG::Cache.picture(event.list.parameters[0])breakelsif event.list.parameters[0] == "npc"bitmap = RPG::Cache.picture(event.list.parameters[0])breakelsif event.list.parameters[0] == "savepoint"bitmap = RPG::Cache.picture(event.list.parameters[0])breakelsif event.list.parameters[0] == "yuhul"bitmap = RPG::Cache.picture(event.list.parameters[0])breakelsebitmap = nilendendend@dots.push([x, y, bitmap])endend#--------------------------------------------------------------------------# ? refresh_dots#--------------------------------------------------------------------------def refresh_player_dotx = $game_player.x * map_width / $game_map.widthy = $game_player.y * map_height / $game_map.heightbitmap = RPG::Cache.picture("hero")@dots.push([x, y, bitmap])end#--------------------------------------------------------------------------# ? update#--------------------------------------------------------------------------def updatesuper@dots.clearevent.bitmap.clearrefresh_event_dots unless no_event_display?refresh_player_dot unless no_display?for dot in @dotsunless dot[2] == nilevent.bitmap.blt(dot[0], dot[1], dot[2], Rect.new(0, 0, 4, 4))endendevent.src_rect.set(display_x, display_y, width - 16, height - 16)endend#==============================================================================# ¦ Map_Full#------------------------------------------------------------------------------# fatto da Squall#==============================================================================class Map_Full#--------------------------------------------------------------------------# ? Initialize#--------------------------------------------------------------------------def initialize@dots = []@teleport_sprites = []if $game_map.width > $game_map.height@map_width = 640@map_height = $game_map.height * @map_width / $game_map.widthif @map_height > 480@map_height = 480endelse@map_height = 480@map_width = $game_map.width * @map_height / $game_map.heightif @map_width > 640@map_width = 640endend@map = Sprite.new@event = Sprite.new@map.bitmap = Bitmap.new(width, height)@event.bitmap = Bitmap.new(width, height)@map.x = @event.x = 320 - width / 2@map.y = @event.y = 240 - height / 2draw_map unless no_map_display?draw_event_dots unless no_event_display?draw_player_dot unless no_display?if no_display?@message = Window_Base.new(0, 208, 640, 64)message = "the map is not available"@message.contents = Bitmap.new(608, 32)@message.contents.font.name = $fontface@message.contents.font.size = 32@message.contents.font.color.set(255, 255, 255, 100)@message.contents.draw_text(-1, -1, 608, 32, message, 1)@message.contents.draw_text(-1, 1, 608, 32, message, 1)@message.contents.draw_text(1, -1, 608, 32, message, 1)@message.contents.draw_text(1, 1, 608, 32, message, 1)@message.contents.font.color.set(255, 255, 255, 50)@message.contents.draw_text(-2, -2, 608, 32, message, 1)@message.contents.draw_text(-2, 2, 608, 32, message, 1)@message.contents.draw_text(2, -2, 608, 32, message, 1)@message.contents.draw_text(2, 2, 608, 32, message, 1)@message.contents.font.color.set(255, 255, 255)@message.contents.draw_text(0, 0, 608, 32, message, 1)@message.windowskin = nilendend#--------------------------------------------------------------------------# ? display_map?#--------------------------------------------------------------------------def no_map_display?for event in $game_map.events.valuesif event.name.include?("[full]")return falseendif event.name.include?("[no map]")return trueendendreturn falseend#--------------------------------------------------------------------------# ? display_map?#--------------------------------------------------------------------------def no_event_display?for event in $game_map.events.valuesif event.name.include?("[full]")return falseendif event.name.include?("[no event]")return trueendendreturn falseend#--------------------------------------------------------------------------# ? display_map?#--------------------------------------------------------------------------def no_display?for event in $game_map.events.valuesif event.name.include?("[full]")return falseendif event.name.include?("[no map]") and event.name.include?("[no event]")return trueendendreturn falseend#--------------------------------------------------------------------------# ? dispose#--------------------------------------------------------------------------def disposefor sprite in @teleport_spritessprite.disposeend@message.dispose if no_display?@map.bitmap.dispose@map.dispose@event.bitmap.dispose@event.disposeend#--------------------------------------------------------------------------# ? width#--------------------------------------------------------------------------def widthreturn @map_widthend#--------------------------------------------------------------------------# ? opacity=#--------------------------------------------------------------------------def heightreturn @map_heightend#--------------------------------------------------------------------------# ? draw_map#--------------------------------------------------------------------------def draw_mapbitmap = Bitmap.new($game_map.width * 32, $game_map.height * 32)for i in 0...($game_map.width * $game_map.height)x = i % $game_map.widthy = i / $game_map.widthfor level in 0...3tile_id = $game_map.data[x, y, level]if tile_id >= 384tileset_bitmap = RPG::Cache.tile($game_map.tileset_name, tile_id, 0)src_rect = Rect.new(0, 0, 32, 32)bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)endif tile_id >= 48 and tile_id < 384id = tile_id / 48 - 1tileset_bitmap = RPG::Cache.autotile($game_map.autotile_names[id])src_rect = Rect.new(32, 64, 32, 32)bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)endendendd_rect = Rect.new(0, 0, width, height)s_rect = Rect.new(0, 0, bitmap.width, bitmap.height)@map.bitmap.stretch_blt(d_rect, bitmap, s_rect)bitmap.clearbitmap.disposeend#--------------------------------------------------------------------------# ? refresh_dots#--------------------------------------------------------------------------def draw_event_dotsfor event in $game_map.events.valuesbitmap = nilx = event.x * width / $game_map.widthy = event.y * height / $game_map.heightnext if event.list == nilfor i in 0...event.list.sizeif event.list.parameters[0].is_a?(String)if event.list.parameters[0] == "event"bitmap = RPG::Cache.picture(event.list.parameters[0])breakelsif event.list.parameters[0] == "enemy"bitmap = RPG::Cache.picture(event.list.parameters[0])breakelsif event.list.parameters[0].include?("teleport")bitmap = RPG::Cache.picture("teleport")name = event.list.parameters[0].dupname.slice!("teleport, ")@teleport_sprites.push(new_name_sprite(name, x, y))breakelsif event.list.parameters[0] == "chest"bitmap = RPG::Cache.picture(event.list.parameters[0])breakelsif event.list.parameters[0] == "npc"bitmap = RPG::Cache.picture(event.list.parameters[0])breakelsif event.list.parameters[0] == "savepoint"bitmap = RPG::Cache.picture(event.list.parameters[0])breakelsif event.list.parameters[0] == "yuhul"bitmap = RPG::Cache.picture(event.list.parameters[0])breakelsebitmap = nilendendend@dots.push([x, y, bitmap])endfor dot in @dotsunless dot[2] == nil@event.bitmap.blt(dot[0], dot[1], dot[2], Rect.new(0, 0, 4, 4))endendend#--------------------------------------------------------------------------# ? new_name_sprite#--------------------------------------------------------------------------def new_name_sprite(name, x, y)sprite = Sprite.newsprite.y = y + 240 - height / 2x + 128 > 640 ? sprite.x = 512 : sprite.x = x + 320 - width / 2bitmap = Bitmap.new(128, 32)bitmap.font.name, bitmap.font.size = $fontface, 20bitmap.font.color.set(255, 255, 255)bitmap.draw_text(0, 0, 128, 32, name)sprite.bitmap = bitmapreturn spriteend#--------------------------------------------------------------------------# ? refresh_dots#--------------------------------------------------------------------------def draw_player_dotx = $game_player.x * width / $game_map.widthy = $game_player.y * height / $game_map.heightbitmap = RPG::Cache.picture("hero")@event.bitmap.blt(x, y, bitmap, Rect.new(0, 0, 4, 4))endend#==============================================================================# ¦ Scene_MiniMap#------------------------------------------------------------------------------# Disegna la mappa in full screen#==============================================================================class Scene_MiniMap#--------------------------------------------------------------------------# ? main#--------------------------------------------------------------------------def main@map = Map_Full.newGraphics.transitionloop doGraphics.updateInput.updateupdateif $scene != selfbreakendendGraphics.freeze@map.disposeend#--------------------------------------------------------------------------# ?#--------------------------------------------------------------------------def updateif Input.trigger?(Input::B) | Input.trigger?(Input::ALT)$game_system.se_play($data_system.cancel_se)$scene = Scene_Map.newreturnendendend#==============================================================================# ¦ Scene_Map#------------------------------------------------------------------------------# disegna le mioni mappe# @corner indica la posizione della minimappa.# 1 è in alto a sinistra, 2 alto a destra, 3 basso sx e 4 è in bassp a dx## @use_windowskin true se vuoi usare la Windowskin corrente dientro alla mappa.## o false se vuoi l immagine chiamata mapback nella cartella Picture.#==============================================================================class Scene_Mapalias main_minimap mainalias update_minimap updatealias transfer_minimap transfer_player#--------------------------------------------------------------------------# ? initialize#--------------------------------------------------------------------------def initialize@corner = 4# 1 or 2 or 3 or 4@use_windowskin = true # true or falseend#--------------------------------------------------------------------------# ? main#--------------------------------------------------------------------------def main@event_map = Map_Event.new(@corner, @use_windowskin)main_minimap@event_map.disposeend#--------------------------------------------------------------------------# ? update#--------------------------------------------------------------------------def update@event_map.updateif $game_system.map_interpreter.running?@event_map.visible = falseelse@event_map.visible = trueendif Input.trigger?(Input::ALT)$game_system.se_play($data_system.decision_se)$scene = Scene_MiniMap.newreturnendupdate_minimapend#--------------------------------------------------------------------------# ? transfer_player#--------------------------------------------------------------------------def transfer_playertransfer_minimap@event_map.dispose@event_map = Map_Event.new(@corner, @use_windowskin)endend Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now