|
|
Auteur | Message |
---|
Va-nu-pieds Lv.4
Age : 29 Inscrit le : 14/10/2009 Messages : 50
| Sujet: [VX] Mini-Map Lun 21 Juin 2010 - 22:12 | |
| Bonjour, j'ai trouvé ce script sur RPG Revolution. Ce script est une version amelioré de l'autre version. Comparatif: Version 1.0 Ancienne version: Le script - Spoiler:
#=============================================================== # ● [VX] ◦ MiniMap ◦ □ # * Plug N Play Minimap (Don't need image~) * #-------------------------------------------------------------- # ◦ by Woratana [woratana@hotmail.com] # ◦ Thaiware RPG Maker Community # ◦ Released on: 09/06/2008 # ◦ Version: 1.0 #-------------------------------------------------------------- # ◦ Credit: KGC for XP MiniMap script, # this script can't be done without his MiniMap. #--------------------------------------------------------------
module MiniMap #=========================================================================== # [START] MINIMAP script SETUP PART #--------------------------------------------------------------------------- SWITCH_NO_MINIMAP = 10 # Turn ON this switch to NOT SHOW minimap MAP_RECT = [410, 20, 100, 100] # Minimap size and position # [X, Y, Width, Height] # You can change it in game, by call script: # $game_system.minimap = [X, Y, Width, Height]
MAP_Z = 0 # Minimap's Z-coordinate # Increase this number if there is problem that minimap show below some objects.
GRID_SIZE = 5 # Minimap's grid size. Recommend to use more than 3. MINIMAP_BORDER_COLOR = Color.new(0, 0, 255, 160) # Minimap's border color # Color.new(Red, Green, Blue, Opacity) MINIMAP_BORDER_SIZE = 2 # Minimap's border size FOREGROUND_COLOR = Color.new(224, 224, 255, 160) # Passable tile color BACKGROUND_COLOR = Color.new(0, 0, 0, 160) # Unpassable tile color
USE_OUTLINE_PLAYER = true # Draw outline around player in minimap? PLAYER_OUTLINE_COLOR = Color.new(0, 0, 0, 192) # Player Outline color USE_OUTLINE_EVENT = true # Draw outline around events in minimap? EVENT_OUTLINE_COLOR = Color.new(255, 255, 255, 192) # Player Outline color PLAYER_COLOR = Color.new(255, 0, 0, 192) # Player color #---------------------------------------------------------------------------
OBJECT_COLOR = {} # Don't change or delete this line! #=============================================================== # * SETUP EVENT KEYWORD & COLOR #--------------------------------------------------------------- # ** Template: # OBJECT_COLOR['keyword'] = Color.new(Red, Green, Blue, Opacity) #------------------------------------------------------------- # * 'keyword': Word you want to put in event's comment to show this color # ** Note: 'keyword' is CASE SENSITIVE! # * Color.new(...): Color you want # You can put between 0 - 255 in each argument (Red, Green, Blue, Opacity) #------------------------------------------------------------- OBJECT_COLOR['npc'] = Color.new(30,144,255,160) OBJECT_COLOR['treasure'] = Color.new(0,255,255,160) OBJECT_COLOR['enemy'] = Color.new(139,35,35,160) OBJECT_COLOR['merchant'] = Color.new(255,255,0,160) #=========================================================================== # * [OPTIONAL] TAGS: #--------------------------------------------------------------------------- # Change keyword for disable minimap & keyword for show event on minimap~ #----------------------------------------------------------------------- TAG_NO_MINIMAP = '[NOMAP]' # Tag for disable minimap TAG_EVENT = 'MMEV' # Tag for show event on minimap #---------------------------------------------------------------------------
#--------------------------------------------------------------------------- # [END] MINIMAP script SETUP PART #=========================================================================== def self.refresh if $scene.is_a?(Scene_Map) $scene.spriteset.minimap.refresh end end def self.update_object if $scene.is_a?(Scene_Map) $scene.spriteset.minimap.update_object_list end end end
#============================================================================== # ■ RPG::MapInfo #============================================================================== class RPG::MapInfo def name return @name.gsub(/\[.*\]/) { } end
def original_name return @name end
def show_minimap? return !@name.include?(MiniMap::TAG_NO_MINIMAP) end end #============================================================================== # ■ Game_System #============================================================================== class Game_System attr_accessor :minimap alias wora_minimap_gamsys_ini initialize def initialize wora_minimap_gamsys_ini @minimap = MiniMap::MAP_RECT end def show_minimap return !$game_switches[MiniMapSWITCH_NO_MINIMAP] end end #============================================================================== # ■ Game_Map #============================================================================== class Game_Map alias wora_minimap_gammap_setup setup def setup(map_id) wora_minimap_gammap_setup(map_id) @db_info = load_data('Data/MapInfos.rvdata') if @db_info.nil? @map_info = @db_info[map_id] end def show_minimap? return @map_info.show_minimap? end end #============================================================================== # ■ Game_Event #============================================================================== class Game_Event < Game_Character def mm_comment?(comment, return_comment = false ) if !@list.nil? for i in 0...@list.size - 1 next if @list[i].code != 108 if @list[i].parameters[0].include?(comment) return @list[i].parameters[0] if return_comment return true end end end return '' if return_comment return false end end #============================================================================== # ■ Game_MiniMap #------------------------------------------------------------------------------ class Game_MiniMap def initialize(tilemap) @tilemap = tilemap refresh end
def dispose @border.bitmap.dispose @border.dispose @map_sprite.bitmap.dispose @map_sprite.dispose @object_sprite.bitmap.dispose @object_sprite.dispose @position_sprite.bitmap.dispose @position_sprite.dispose end
def visible return @map_sprite.visible end
def visible=(value) @map_sprite.visible = value @object_sprite.visible = value @position_sprite.visible = value @border.visible = value end
def refresh @mmr = $game_system.minimap map_rect = Rect.new(@mmr[0], @mmr[1], @mmr[2], @mmr[3]) grid_size = [MiniMapGRID_SIZE, 1].max
@x = 0 @y = 0 @size = [map_rect.width / grid_size, map_rect.height / grid_size]
@border = Sprite.new @border.x = map_rect.x - MiniMap::MINIMAP_BORDER_SIZE @border.y = map_rect.y - MiniMap::MINIMAP_BORDER_SIZE b_width = map_rect.width + (MiniMap::MINIMAP_BORDER_SIZE * 2) b_height = map_rect.height + (MiniMap::MINIMAP_BORDER_SIZE * 2) @border.bitmap = Bitmap.new(b_width, b_height) @border.bitmap.fill_rect(@border.bitmap.rect, MiniMap::MINIMAP_BORDER_COLOR) @border.bitmap.clear_rect(MiniMap::MINIMAP_BORDER_SIZE, MiniMap::MINIMAP_BORDER_SIZE, @border.bitmap.width - (MiniMap::MINIMAP_BORDER_SIZE * 2), @border.bitmap.height - (MiniMap::MINIMAP_BORDER_SIZE * 2)) @map_sprite = Sprite.new @map_sprite.x = map_rect.x @map_sprite.y = map_rect.y @map_sprite.z = MiniMap::MAP_Z bitmap_width = $game_map.width * grid_size + map_rect.width bitmap_height = $game_map.height * grid_size + map_rect.height @map_sprite.bitmap = Bitmap.new(bitmap_width, bitmap_height) @map_sprite.src_rect = map_rect
@object_sprite = Sprite.new @object_sprite.x = map_rect.x @object_sprite.y = map_rect.y @object_sprite.z = MiniMap::MAP_Z + 1 @object_sprite.bitmap = Bitmap.new(bitmap_width, bitmap_height) @object_sprite.src_rect = map_rect
@position_sprite = Sprite_Base.new @position_sprite.x = map_rect.x + @size[0] / 2 * grid_size @position_sprite.y = map_rect.y + @size[1] / 2 * grid_size @position_sprite.z = MiniMap::MAP_Z + 2 bitmap = Bitmap.new(grid_size, grid_size) # Player's Outline if MiniMap::USE_OUTLINE_PLAYER and MiniMap::GRID_SIZE >= 3 bitmap.fill_rect(bitmap.rect, MiniMap::PLAYER_OUTLINE_COLOR) brect = Rect.new(bitmap.rect.x + 1, bitmap.rect.y + 1, bitmap.rect.width - 2, bitmap.rect.height - 2) bitmap.clear_rect(brect) else brect = bitmap.rect end bitmap.fill_rect(brect, MiniMap::PLAYER_COLOR) @position_sprite.bitmap = bitmap
draw_map update_object_list draw_object update_position end
def draw_map bitmap = @map_sprite.bitmap bitmap.fill_rect(bitmap.rect, MiniMap::BACKGROUND_COLOR) map_rect = Rect.new(@mmr[0], @mmr[1], @mmr[2], @mmr[3]) grid_size = [MiniMapGRID_SIZE, 1].max $game_map.width.times do |i| $game_map.height.times do |j| if !$game_map.passable?(i, j) next end rect = Rect.new(map_rect.width / 2 + grid_size * i, map_rect.height / 2 + grid_size * j, grid_size, grid_size) if grid_size >= 3 if !$game_map.passable?(i, j) rect.height -= 1 rect.x += 1 rect.width -= 1 rect.width -= 1 rect.y += 1 rect.height -= 1 end end bitmap.fill_rect(rect, MiniMap::FOREGROUND_COLOR) end end end
def update_object_list @object_list = {} $game_map.events.values.each do |e| comment = e.mm_comment?(MiniMap::TAG_EVENT, true) if comment != '' type = comment.gsub(/#{MiniMap::TAG_EVENT}/){}.gsub(/\s+/){} @object_list[type] = [] if @object_list[type].nil? @object_list[type] << e end end end
def draw_object bitmap = @object_sprite.bitmap bitmap.clear map_rect = Rect.new(@mmr[0], @mmr[1], @mmr[2], @mmr[3]) grid_size = [MiniMapGRID_SIZE, 1].max rect = Rect.new(0, 0, grid_size, grid_size) mw = map_rect.width / 2 mh = map_rect.height / 2
@object_list.each do |key, events| color = MiniMap::OBJECT_COLOR[key] next if events.nil? or color.nil? events.each do |obj| if !obj.character_name.empty? rect.x = mw + obj.real_x * grid_size / 256 rect.y = mh + obj.real_y * grid_size / 256 # Event's Outline if MiniMap::USE_OUTLINE_EVENT and MiniMap::GRID_SIZE >= 3 bitmap.fill_rect(rect, MiniMap::EVENT_OUTLINE_COLOR) brect = Rect.new(rect.x + 1, rect.y + 1, rect.width - 2, rect.height - 2) bitmap.clear_rect(brect) else brect = bitmap.rect end bitmap.fill_rect(brect, color) end end end end
def update if @mmr != $game_system.minimap dispose refresh end draw_object update_position if @map_sprite.visible @map_sprite.update @object_sprite.update @position_sprite.update end end
def update_position map_rect = Rect.new(@mmr[0], @mmr[1], @mmr[2], @mmr[3]) grid_size = [MiniMapGRID_SIZE, 1].max sx = $game_player.real_x * grid_size / 256 sy = $game_player.real_y * grid_size / 256 @map_sprite.src_rect.x = sx @map_sprite.src_rect.y = sy @object_sprite.src_rect.x = sx @object_sprite.src_rect.y = sy end end #============================================================================== # ■ Spriteset_Map #------------------------------------------------------------------------------ class Spriteset_Map attr_reader :minimap alias wora_minimap_sprsetmap_ini initialize alias wora_minimap_sprsetmap_dis dispose alias wora_minimap_sprsetmap_upd update def initialize wora_minimap_sprsetmap_ini if $game_map.show_minimap? @minimap = Game_MiniMap.new(@tilemap) $game_system.show_minimap = true if $game_system.show_minimap.nil? @minimap.visible = $game_system.show_minimap end end def dispose @minimap.dispose if !@minimap.nil? wora_minimap_sprsetmap_dis end
def update if !@minimap.nil? if $game_system.show_minimap @minimap.visible = true @minimap.update else @minimap.visible = false end end wora_minimap_sprsetmap_upd end end #============================================================================== # ■ Scene_Map #------------------------------------------------------------------------------ class Scene_Map < Scene_Base attr_reader :spriteset end
|
|
| |
Va-nu-pieds Lv.4
Age : 29 Inscrit le : 14/10/2009 Messages : 50
| Sujet: Re: [VX] Mini-Map Lun 21 Juin 2010 - 22:40 | |
| Desoler pour le double post mais plus de place. Fonctionnement: -Pour afficher la Mini Map faite "Modifier un interupteur" est vous metter Interupteur 10 et cochez Disactiver. -Pour l'enlever faite Activer. -Pour afficher des event sur la carte faite sur un avent: Et ensuite notez soit MMEV npc, MMEV treasure, MMEV enemy, MMEV merchant. Exemple: -Pour les changer de couleur ces à la ligne 57: - Code:
-
#=============================================================== # * SETUP EVENT KEYWORD & COLOR #--------------------------------------------------------------- # ** Template: # OBJECT_COLOR['keyword'] = Color.new(Red, Green, Blue, Opacity) #------------------------------------------------------------- # * 'keyword': Word you want to put in event's comment to show this color # ** Note: 'keyword' is CASE SENSITIVE! # * Color.new(...): Color you want # You can put between 0 - 255 in each argument (Red, Green, Blue, Opacity) #------------------------------------------------------------- OBJECT_COLOR['npc'] = Color.new(30,144,255,160) OBJECT_COLOR['treasure'] = Color.new(0,255,255,160) OBJECT_COLOR['enemy'] = Color.new(139,35,35,160) OBJECT_COLOR['merchant'] = Color.new(255,255,0,160) Voila, j'espere que ce sript vous servira
Dernière édition par kenmak le Mar 22 Juin 2010 - 13:51, édité 1 fois |
|
| |
Maire Lv.9
Age : 28 Avertissements : 1 Inscrit le : 18/04/2010 Messages : 332
| Sujet: Re: [VX] Mini-Map Mar 22 Juin 2010 - 12:03 | |
| C'est 100 fois mieux que l'ancienne version merci. Ce qui est bien c'est qu'il affiche les events mais seulement ceux que l'on veux. |
|
| |
Mage Lv.11
Age : 27 Inscrit le : 02/03/2009 Messages : 513
| Sujet: Re: [VX] Mini-Map Mar 22 Juin 2010 - 17:17 | |
|
Dernière édition par Sylfurion le Mar 22 Juin 2010 - 17:23, édité 1 fois |
|
| |
Mage Lv.11
Age : 29 Inscrit le : 21/03/2009 Messages : 508
| Sujet: Re: [VX] Mini-Map Mar 22 Juin 2010 - 17:19 | |
| Mouais c'est pas mal du tout ! Merci pour le partage ! C'est ce qu'il me fallait |
|
| |
Vache Folle
Age : 29 Inscrit le : 22/05/2010 Messages : 3005
| Sujet: Re: [VX] Mini-Map Mar 22 Juin 2010 - 19:46 | |
| Super script, merci du partage! |
|
| |
Poulet Lv.1
Age : 43 Inscrit le : 09/06/2010 Messages : 2
| Sujet: Re: [VX] Mini-Map Mar 22 Juin 2010 - 20:06 | |
| Génial, je l'intègre de suite dans mon projet! On peut l'activer/désactiver avec une touche du clavier? |
|
| |
Voyageur Lv.10
Age : 27 Inscrit le : 08/05/2010 Messages : 383
| Sujet: Re: [VX] Mini-Map Mar 22 Juin 2010 - 21:08 | |
| J'avais déjà ce script mais je connaissait pas les commentaires à mettre ^^ Rens_LG => Pas avec une touche du clavier mais avec un interrupteur, sinon tu peux toujours le faire en evenement commun ^^ |
|
| |
Habitant Lv.6
Avertissements : Banni ! Inscrit le : 02/04/2010 Messages : 107
| Sujet: Re: [VX] Mini-Map Mer 23 Juin 2010 - 12:45 | |
| Oui tu peux le faire avec une condition ou encore en objet |
|
| |
Poulet carnivore Lv.2
Age : 28 Inscrit le : 01/08/2010 Messages : 16
| Sujet: Re: [VX] Mini-Map Mar 3 Aoû 2010 - 14:49 | |
| Bonjour! Lorsque je fait une nouvelle partie ca marche mais si je sauvegarde, lorsque je load ma sauvegarde ya une erreur Le script ligne 187 c ca |
|
| |
Aventurier Lv.16
Age : 40 Inscrit le : 03/09/2009 Messages : 1503
| Sujet: Re: [VX] Mini-Map Mar 3 Aoû 2010 - 18:31 | |
| Tu utilises un système de sauvegarde améliorer ou tu utilises celui de base ? |
|
| |
Poulet carnivore Lv.2
Age : 28 Inscrit le : 01/08/2010 Messages : 16
| Sujet: Re: [VX] Mini-Map Mar 3 Aoû 2010 - 21:23 | |
| améliorer mais maintenant il fonctionne je crois!
merci quand même! |
|
| |
Voyageur Lv.10
Age : 44 Inscrit le : 14/04/2010 Messages : 455
| Sujet: Re: [VX] Mini-Map Mer 11 Aoû 2010 - 9:45 | |
| Moi j'ai un probleme quand j'ai fait apparaitre un émoticone ma minimap a disparu !! Voila ma page d'event: [img] [/img] Sinon merci du partage (je trouvait sa bien avant que sa bug xD) |
|
| |
Age : 33 Inscrit le : 27/06/2008 Messages : 10881
| Sujet: Re: [VX] Mini-Map Mer 11 Aoû 2010 - 10:00 | |
| - Citation :
- -Pour afficher la Mini Map faite "Modifier un interupteur" est vous metter Interupteur 10 et cochez Disactiver.
Devine ce qui se passe si tu l'actives ~ la minimap est ... allez, tu peux le faire ... elle est ... dé... désac... Lis les commentaires du script, ainsi que ceux du post initial, avant de poster pour rien. |
|
| |
Voyageur Lv.10
Age : 44 Inscrit le : 14/04/2010 Messages : 455
| Sujet: Re: [VX] Mini-Map Mer 11 Aoû 2010 - 15:28 | |
| |
|
| |
Va-nu-pieds Lv.4
Age : 26 Inscrit le : 05/10/2010 Messages : 72
| Sujet: Re: [VX] Mini-Map Mar 26 Oct 2010 - 12:32 | |
| Comment fait-on pour ne PAS l'activer au lancement du jeu ? |
|
| |
Mage Lv.11
Age : 28 Inscrit le : 28/07/2010 Messages : 520
| Sujet: Re: [VX] Mini-Map Mar 26 Oct 2010 - 12:52 | |
| C'est bien de lire, des fois.
- Matsuo Kaito a écrit:
- Citation:
-Pour afficher la Mini Map faite "Modifier un interupteur" est vous metter Interupteur 10 et cochez Disactiver.
Devine ce qui se passe si tu l'actives ~ la minimap est ... allez, tu peux le faire ... elle est ... dé... désac...
Lis les commentaires du script, ainsi que ceux du post initial, avant de poster pour rien. --> Active l'interrupteur dès le début... |
|
| |
Va-nu-pieds Lv.4
Age : 26 Inscrit le : 05/10/2010 Messages : 72
| Sujet: Re: [VX] Mini-Map Mar 26 Oct 2010 - 13:28 | |
| Je ne veux pas parler de ça mais lorsque on le lance , directement la carte s'affiche, et la je voudrais savoir si on peut ne pas afficher la carte dès que l'on commence le jeu (pour pas faire un faux raccord) |
|
| |
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: [VX] Mini-Map Mar 26 Oct 2010 - 14:33 | |
| SWITCH_NO_MINIMAP = 10 # Turn ON this switch to NOT SHOW minimap
C'est marqué dans le script, un peu de lecture ne tue pas pourtant =( |
|
| |
Va-nu-pieds Lv.4
Age : 26 Inscrit le : 05/10/2010 Messages : 72
| Sujet: Re: [VX] Mini-Map Mar 26 Oct 2010 - 14:34 | |
| oui je sais mais la carte est activé dès que tu commence ton jeu et je souhaiterai savoir comment on ne la vois pas dès le début du jeu |
|
| |
Poulet Lv.1
Age : 29 Inscrit le : 09/01/2011 Messages : 5
| Sujet: Re: [VX] Mini-Map Mer 12 Jan 2011 - 13:33 | |
| bizarrement il met met erreur a la ligne 72
j'ai donc supprimer le end de la ligne 72
il me met une erreur a la ligne 98 et le je ne sait pas quoi faire
|
|
| |
Poulet carnivore Lv.2
Age : 32 Inscrit le : 11/02/2010 Messages : 13
| Sujet: Re: [VX] Mini-Map Mer 12 Jan 2011 - 17:32 | |
| La ligne 72 est un commentaire, normalement. Il n'a aucune impact sur le script... Tu es sûr de l'avoir copié dans son intégralité ? |
|
| |
Poulet Lv.1
Inscrit le : 20/02/2011 Messages : 1
| Sujet: Re: [VX] Mini-Map Lun 21 Fév 2011 - 18:38 | |
| Moi je dit: Bravo! Le joueur sera super content et mon action rpg deviendra un peu moins style bourrin si on voit les monstres arriver sur la mini map! Même si à la base je pense que le script a été conçu pour éviter que le joueur se perde durant des heures dans un donjon. |
|
| |
Citadin Lv.7
Age : 123 Inscrit le : 08/04/2010 Messages : 218
| Sujet: Re: [VX] Mini-Map Sam 9 Avr 2011 - 21:02 | |
| Bonjour,
Merci de ton script, mais j'ai un problème !
J'ai crée un commentaire pour chaque "code" (MMEV npc, MMEV treasure...) dans un event, en dessous de la désactivation de l'interrupteur pour que la Mini Map s'affiche.
Le problème, c'est que la Mini Map s'affiche, mais pas les events !
Une solution ? Merci d'avance.
P.S.: Désoler du necropost... |
|
| |
Poulet Lv.1
Inscrit le : 11/01/2011 Messages : 6
| Sujet: Re: [VX] Mini-Map Jeu 14 Avr 2011 - 6:18 | |
| Juste une question qui vous paraitra peut être bête: Où faut-il coller le script???? |
|
| |
| Sujet: Re: [VX] Mini-Map | |
| |
|
| |
|