Jump to content
Rpg²S Forum
  • 0

Aiuto con MiniMappa!!!


PrinceEndymion88
 Share

Question

Ho trovato questo script

###################################################################################### Autor Squall ################################################################################################ Para que a posição dos seus NPCs, inimigos ou teleportes apareça# no mapa você deve adicionar comentários neste eventos,# Entre no comando de eventos e selecione o comando comentário.# Digite event para eventos# Digite enemy para inimigos# Digite teleport para teletransportes################################################################# class Game_Event < Game_Character#--------------------------------------------------------------------------# ● name#--------------------------------------------------------------------------def namereturn @event.nameendend #==============================================================================# ■ Map_Base#------------------------------------------------------------------------------#  Base class for mini maps## made by squall // squall@loeher.zzn.com#============================================================================== 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 = 180self.opacity = 180case 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 = 16self.y = 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#------------------------------------------------------------------------------#  Base class for mini maps## made by squall // squall@loeher.zzn.com#============================================================================== 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#------------------------------------------------------------------------------#  draw the events and hero position#============================================================================== 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[i].parameters[0].is_a?(String)if event.list[i].parameters[0] == "event"bitmap = RPG::Cache.picture(event.list[i].parameters[0])breakelsif event.list[i].parameters[0] == "enemy"bitmap = RPG::Cache.picture(event.list[i].parameters[0])breakelsif event.list[i].parameters[0].include?("teleport")bitmap = RPG::Cache.picture("teleport")breakelsif event.list[i].parameters[0] == "chest"bitmap = RPG::Cache.picture(event.list[i].parameters[0])breakelsif event.list[i].parameters[0] == "npc"bitmap = RPG::Cache.picture(event.list[i].parameters[0])breakelsif event.list[i].parameters[0] == "savepoint"bitmap = RPG::Cache.picture(event.list[i].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#------------------------------------------------------------------------------# made by squall // squall@loeher.zzn.com#============================================================================== 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[i].parameters[0].is_a?(String)if event.list[i].parameters[0] == "event"bitmap = RPG::Cache.picture(event.list[i].parameters[0])breakelsif event.list[i].parameters[0] == "enemy"bitmap = RPG::Cache.picture(event.list[i].parameters[0])breakelsif event.list[i].parameters[0].include?("teleport")bitmap = RPG::Cache.picture("teleport")name = event.list[i].parameters[0].dupname.slice!("teleport, ")@teleport_sprites.push(new_name_sprite(name, x, y))breakelsif event.list[i].parameters[0] == "chest"bitmap = RPG::Cache.picture(event.list[i].parameters[0])breakelsif event.list[i].parameters[0] == "npc"bitmap = RPG::Cache.picture(event.list[i].parameters[0])breakelsif event.list[i].parameters[0] == "savepoint"bitmap = RPG::Cache.picture(event.list[i].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#------------------------------------------------------------------------------#  draw the map full screen#============================================================================== class Scene_MiniMap#--------------------------------------------------------------------------# ● main#--------------------------------------------------------------------------def main@map = Map_Full.newGraphics.transitionloop doGraphics.updateInput.updateupdateif $scene != selfbreakendendGraphics.freeze@map.disposeend#--------------------------------------------------------------------------# ● Update the contents of all five windows on the main menu#--------------------------------------------------------------------------def updateif Input.trigger?(Input::B) | Input.trigger?(Input::ALT)$game_system.se_play($data_system.cancel_se)$scene = Scene_Map.newreturnendendend #==============================================================================# ■ Scene_Map#------------------------------------------------------------------------------#  draw the mini map# @corner is the corner you want the mini map to be displayed in.# 1 is upper left, 2 is upper right, 3 is bottom left and 4 is bottom right## @use_windowskin is whether true or false. true if you want to use the# the current windowskin for the minimap background.# or false if you want to use the picture named mapback in your picture folder.#============================================================================== 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 = false # 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

 

crea una minimappa come potete vedere nell'immagine:

http://www.rpgmakerbrasil.com/forum/attachments/f43/16143d1231703333-mini-mapa-screen_mini_mapa.png

però a me servirebbe una piccola modifica ovvero vorrei che la mappa possa essere attivata o disattivata tramite switch... ovvero se io attivo lo switch 50 la mappa si attiva se lo disattivo questa scompare! E' possibile farlo?

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Veramente una versione dello script con una switch per attivarla e disattivarla c'è già . . .

 

In questo forum ne aveva fatto una traduzione Sylaer, con tanto di demo, e non dovresti avere problemi a rintracciarla . . .

 


SCRIPT RGSS (RPG Maker XP) VINTAGE LIBRARY [2018+]


Breaking (in ogni senso) News: "Treno deraglia per via del seno di Sakurai Aoi . . ." - Info nello spoiler !!

 


http://afantasymachine.altervista.org/_altervista_ht/NOOOOOOOOOilMIOtreninooooo_500.gif


Non riesco a smettere di essere affascinato da immagini come questa . . .

http://anime.vl-vostok.ru/art/photos2011/17/78049800/wall_VladAnime_WWA_1885-1680x1050.jpg


Alcuni wallpapers che faccio ruotare sul mio vecchio PC . . .


http://afantasymachine.altervista.org/_altervista_ht/gits_window.jpg

http://afantasymachine.altervista.org/_altervista_ht/madoka_group01.jpg
http://afantasymachine.altervista.org/_altervista_ht/arisu_picipici_01.jpg
http://afantasymachine.altervista.org/_altervista_ht/phantom_wp01_einzwei.jpg


La parte più spassosa della mia vita è quando gli altri cercano di spiegarmi i miei pensieri . . .


BBCode Testing


Typeface & Size



Link to comment
Share on other sites

  • 0

Non mi sono messo a leggere tutto lo script ma di solito basta mettere sopra ogni def:

if $game_switches[IDSWITCH] == true

e alla fine un end in più

Per qualsiasi motivo non aprite questo spoiler.

 

 

Ho detto di non aprirlo !

 

 

Se lo apri ancora esplode il mondo.

 

 

Aaaaaa è un vizio.

 

 

Contento? Il mondo è esploso, sono tutti morti

per colpa della tua curiosità .

 

 

Vuoi che ti venga anche il morbillo, la varicella e l'AIDS???

 

 

O bravo ora sei un malato terminale e nessuno

ti puo curare, sono tutti morti !

 

 

Se clicchi ancora una volta il PC esplode.

 

 

E dai smettila !!

 

Uff!! Hai cliccato tante volte che ho dovuto sostituirlo con un codebox.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

http://s8.postimg.org/yntv9nxld/Banner.png

http://img204.imageshack.us/img204/8039/sccontest3octpl3.gif

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...