RPG Fusion
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



 
AccueilPortailRechercherDernières imagesS'enregistrerConnexion
Le Deal du moment : -55%
Coffret d’outils – STANLEY – ...
Voir le deal
21.99 €

 

 Afficher une Minimap sur la Map

Aller en bas 
5 participants
AuteurMessage
deadcell
Trouvère Follet
Trouvère Follet
deadcell


Masculin
Nombre de messages : 625
Age : 35
Niveau Rpg Maker : Excellent Niveau
Jeux Préférés : Final Fantasy, Resident evil...
Date d'inscription : 21/03/2007

Afficher une Minimap sur la Map Empty
MessageSujet: Afficher une Minimap sur la Map   Afficher une Minimap sur la Map EmptyDim 29 Juil 2007, 10:33

Auteur: Squall

Fonction: Permet de mettre
une mini carte avec la direction du héros et les
évènements différents (par la couleur) selon
leurs types en bas à droite de la carte.

Ressources: (A mettre
dans le dossier "Pictures")

Afficher une Minimap sur la Map Chest10 Afficher une Minimap sur la Map Enemy10 Afficher une Minimap sur la Map Event10 Afficher une Minimap sur la Map Mapbac10 Afficher une Minimap sur la Map Minima10 Afficher une Minimap sur la Map Mm_cur10 Afficher une Minimap sur la Map Npc10 Afficher une Minimap sur la Map Savepo10 Afficher une Minimap sur la Map Telepo10

Screen:

Afficher une Minimap sur la Map Screen13


Ouvrez l'éditeur
de scripts (F11) et créez un nouveau script au
dessus de "Main"
et nommez le "Passability_Mini_Map"
et collez le code ci-dessous:


Code:
#==============================================================================
# â–  Passability Mini Map
#------------------------------------------------------------------------------
# made by squall // squall@rmxp.ch
# released the 30th of May 2006
#==============================================================================

#==============================================================================
# â–  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
#==============================================================================

class Scene_Map
  alias main_passminimap main
  alias update_passminimap update
  alias transfer_passminimap transfer_player
  #--------------------------------------------------------------------------
  # â— initialize
  #--------------------------------------------------------------------------
  def initialize
    @corner = 4 # 1 or 2 or 3 or 4
  end
  #--------------------------------------------------------------------------
  # â— main
  #--------------------------------------------------------------------------
  def main
    @mini_map = Map_Event.new(@corner)
    main_passminimap
    @mini_map.dispose
  end
  #--------------------------------------------------------------------------
  # â— update
  #--------------------------------------------------------------------------
  def update
    @mini_map.update
    if $game_system.map_interpreter.running?
      @mini_map.visible = false
    elsif not $game_system.map_interpreter.running? and @mini_map.on?
      @mini_map.visible = true
    end
    update_passminimap
  end
  #--------------------------------------------------------------------------
  # â— transfer_player
  #--------------------------------------------------------------------------
  def transfer_player
    transfer_passminimap
    @mini_map.dispose
    @mini_map = Map_Event.new(@corner)
  end
end

#==============================================================================
# â–  Map_Base
#------------------------------------------------------------------------------
#  Base class for mini maps
#==============================================================================

class Map_Base < Sprite
  #--------------------------------------------------------------------------
  # â— constants and instances
  #--------------------------------------------------------------------------
  PMP_VERSION  = 6
  ACTIVATED_ID = 142 # set the switch id for the minimap display (on/off)
  attr_reader :event
  #--------------------------------------------------------------------------
  # â— initialize
  #--------------------------------------------------------------------------
  def initialize(corner)
    super(Viewport.new(16, 16, width, height))
    viewport.z = 8000
    @border = Sprite.new
    @border.x = viewport.rect.x - 6
    @border.y = viewport.rect.y - 6
    @border.z = viewport.z - 1
    @border.bitmap = RPG::Cache.picture("mapback")
    self.visible = on?
    self.opacity = 180
    case corner
    when 1
      self.x = 16
      self.y = 16
    when 2
      self.x = 640 - width - 16
      self.y = 16
    when 3
      self.x = 16
      self.y = 480 - height - 16
    when 4
      self.x = 640 - width - 16
      self.y = 480 - height - 16
    else
      self.x = 16
      self.y = 16
    end
    self.visible = on?
  end
  #--------------------------------------------------------------------------
  # â— dispose
  #--------------------------------------------------------------------------
  def dispose
    @border.dispose
    super
  end
  #--------------------------------------------------------------------------
  # â— x=
  #--------------------------------------------------------------------------
  def x=(x)
    self.viewport.rect.x = x
    @border.x = x - 6
  end
  #--------------------------------------------------------------------------
  # â— y=
  #--------------------------------------------------------------------------
  def y=(y)
    self.viewport.rect.y = y
    @border.y = y - 6
  end
  #--------------------------------------------------------------------------
  # â— visible=
  #--------------------------------------------------------------------------
  def visible=(bool)
    super
    self.viewport.visible = bool
    @border.visible = bool
  end
  #--------------------------------------------------------------------------
  # â— minimap_on?
  #--------------------------------------------------------------------------
  def on?
    return $game_switches[ACTIVATED_ID]
  end
  #--------------------------------------------------------------------------
  # â— update
  #--------------------------------------------------------------------------
  def update
    super
    self.visible = on?
   
    if viewport.ox < display_x
      viewport.ox += 1
    elsif viewport.ox > display_x
      viewport.ox -= 1
    end
    if viewport.oy < display_y
      viewport.oy += 1
    elsif viewport.oy > display_y
      viewport.oy -= 1
    end
  end
  #--------------------------------------------------------------------------
  # â— width
  #--------------------------------------------------------------------------
  def width
    return 120
  end
  #--------------------------------------------------------------------------
  # â— height
  #--------------------------------------------------------------------------
  def height
    return 90
  end
  #--------------------------------------------------------------------------
  # â— display_x
  #--------------------------------------------------------------------------
  def display_x
    return $game_map.display_x * 3 / 64
  end
  #--------------------------------------------------------------------------
  # â— display_y
  #--------------------------------------------------------------------------
  def display_y
    return $game_map.display_y * 3 / 64
  end
end

#==============================================================================
# â–  Map_Passability
#------------------------------------------------------------------------------
#  draws the mini map
#
#  thanks to Fanha Giang (aka fanha99) for the autotile drawing method
#==============================================================================

class Map_Passability < Map_Base
  #--------------------------------------------------------------------------
  # â— constants
  #--------------------------------------------------------------------------
  INDEX  =
  [
  26, 27, 32, 33,    4, 27, 32, 33,  26,  5, 32, 33,    4,  5, 32, 33,   
  26, 27, 32, 11,    4, 27, 32, 11,  26,  5, 32, 11,    4,  5, 32, 11,   
  26, 27, 10, 33,    4, 27, 10, 33,  26,  5, 10, 33,    4,  5, 10, 33,
  26, 27, 10, 11,    4, 27, 10, 11,  26,  5, 10, 11,    4,  5, 10, 11, 
  24, 25, 30, 31,  24,  5, 30, 31,  24, 25, 30, 11,  24,  5, 30, 11, 
  14, 15, 20, 21,  14, 15, 20, 11,  14, 15, 10, 21,  14, 15, 10, 11,
  28, 29, 34, 35,  28, 29, 10, 35,    4, 29, 34, 35,    4, 29, 10, 35,
  38, 39, 44, 45,    4, 39, 44, 45,  38,  5, 44, 45,    4,  5, 44, 45,
  24, 29, 30, 35,  14, 15, 44, 45,  12, 13, 18, 19,  12, 13, 18, 11,
  16, 17, 22, 23,  16, 17, 10, 23,  40, 41, 46, 47,    4, 41, 46, 47,
  36, 37, 42, 43,  36,  5, 42, 43,  12, 17, 18, 23,  12, 13, 42, 43,
  36, 41, 42, 47,  16, 17, 46, 47,  12, 17, 42, 47,    0,  1,  6,  7
  ]
  X = [0, 1, 0, 1]
  Y = [0, 0, 1, 1]
  #--------------------------------------------------------------------------
  # â— initialize
  #--------------------------------------------------------------------------
  def initialize(corner)
    super(corner)
    @autotile = RPG::Cache.picture("minimap_tiles")
    setup()
  end
  #--------------------------------------------------------------------------
  # â— setup
  #--------------------------------------------------------------------------
  def setup()
    @map = load_data(sprintf("Data/Map%03d.rxdata", $game_map.map_id))
    tileset = $data_tilesets[@map.tileset_id]
    @passages = tileset.passages
    @priorities = tileset.priorities
    redefine_tiles
    refresh
  end
  #--------------------------------------------------------------------------
  # â— pass
  #--------------------------------------------------------------------------
  def pass(tile_id)
    return 15 if tile_id == nil
    return @passages[tile_id] != nil ? @passages[tile_id] : 15
  end
  #--------------------------------------------------------------------------
  # â— passable
  #--------------------------------------------------------------------------
  def passable(tile_id)
    return pass(tile_id) < 15
  end
  #--------------------------------------------------------------------------
  # â— redefine_tile
  #--------------------------------------------------------------------------
  def redefine_tiles
    width = @map.width
    height = @map.height
    map = RPG::Map.new(width, height)
    map.data = @map.data.dup
    for x in 0...width
      for y in 0...height
        for level in [1, 2]
          id = @map.data[x, y, level]
          if id != 0 and @priorities[id] == 0
            @map.data[x, y, 0] = id
            @passages[@map.data[x, y, 0]] = @passages[id]
          end
        end
      end
    end
Revenir en haut Aller en bas
deadcell
Trouvère Follet
Trouvère Follet
deadcell


Masculin
Nombre de messages : 625
Age : 35
Niveau Rpg Maker : Excellent Niveau
Jeux Préférés : Final Fantasy, Resident evil...
Date d'inscription : 21/03/2007

Afficher une Minimap sur la Map Empty
MessageSujet: Re: Afficher une Minimap sur la Map   Afficher une Minimap sur la Map EmptyDim 29 Juil 2007, 10:33

Code:
for x in 0...width
      for y in 0...height
        for level in [0]
        tile = @map.data[x, y, level]
        u = @map.data[x,  y-1, level]
        l = @map.data[x-1, y,  level]
        r = @map.data[x+1, y,  level]
        d = @map.data[x,  y+1, level]
        if !passable(tile)
          map.data[x, y] = 0
        else
          if tile == 0
            map.data[x, y, level] = 0
            next
          end
          if pass(tile) < 15
            if !passable(u) and !passable(l) and !passable(r) and !passable(d)
              map.data[x, y, level] = 0
            elsif !passable(u) and !passable(l) and !passable(r) and passable(d)
              map.data[x, y, level] = 90
            elsif !passable(u) and !passable(l) and !passable(d) and passable(r)
              map.data[x, y, level] = 91
            elsif !passable(u) and !passable(r) and !passable(d) and passable(l)
              map.data[x, y, level] = 93
            elsif !passable(l) and !passable(r) and !passable(d) and passable(u)
              map.data[x, y, level] = 92
            elsif !passable(u) and !passable(d) and passable(r) and passable(l)
              map.data[x, y, level] = 81
            elsif !passable(u) and !passable(r) and passable(d) and passable(l)
              map.data[x, y, level] = 84
            elsif !passable(u) and !passable(l) and passable(d) and passable(r)
              map.data[x, y, level] = 82
            elsif !passable(d) and !passable(r) and passable(l) and passable(u)
              map.data[x, y, level] = 86
            elsif !passable(d) and !passable(l) and passable(r) and passable(u)
              map.data[x, y, level] = 88
            elsif !passable(r) and !passable(l) and passable(d) and passable(u)
              map.data[x, y, level] = 80
            elsif !passable(u) and passable(d) and passable(r) and passable(l)
              map.data[x, y, level] = 68
            elsif !passable(d) and passable(u) and passable(r) and passable(l)
              map.data[x, y, level] = 76
            elsif !passable(r) and passable(d) and passable(u) and passable(l)
              map.data[x, y, level] = 72
            elsif !passable(l) and passable(d) and passable(u) and passable(r)
              map.data[x, y, level] = 64
            else
              map.data[x, y, level] = 48
            end
          else
            map.data[x, y, level] = 0
          end
        end
        end
      end
    end
    @map = map.dup
    map = nil
  end
  #--------------------------------------------------------------------------
  # â— refresh
  #--------------------------------------------------------------------------
  def refresh
    self.visible = false
    self.bitmap = Bitmap.new(@map.width * 6, @map.height * 6)
    bitmap = Bitmap.new(@map.width * 6, @map.height * 6)
    rect1 = Rect.new(6, 0, 6, 6)
    for y in 0...@map.height
      for x in 0...@map.width
        for level in [0]
          tile_id = @map.data[x, y, level]
          next if tile_id == 0
          id = tile_id / 48 - 1
          tile_id %= 48
          for g in 0..3
            h = 4 * tile_id + g
            y1 = INDEX[h] / 6
            x1 = INDEX[h] % 6
            rect2 = Rect.new(x1 * 3, y1 * 3, 3, 3)
            bitmap.blt(x * 6 + X[g] *  3, y * 6 + Y[g] * 3, @autotile, rect2)
          end
        end
      end
    end
    d_rect = Rect.new(0, 0, @map.width * 6, @map.height * 6)
    s_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
    self.bitmap.stretch_blt(d_rect, bitmap, s_rect)
    self.viewport.ox = display_x
    self.viewport.oy = display_y
    bitmap.clear
    bitmap.dispose
  end
end

#==============================================================================
# â–  Map_Event
#------------------------------------------------------------------------------
#  draw the events and hero position
#==============================================================================

class Map_Event < Map_Passability
  #--------------------------------------------------------------------------
  # â— initialize
  #--------------------------------------------------------------------------
  def initialize(corner = 4)
    super(corner)
    @dots = []
    @player = Sprite.new(self.viewport)
    @player.bitmap = RPG::Cache.picture("mm cursors")
    @player.src_rect = Rect.new(0, 0, 15, 15)
    @player.z = self.z + 3
    @events = {}
   
    for key in $game_map.events.keys
      event = $game_map.events[key]
      next if event.list == nil
      for i in 0...event.list.size
        next if event.list[i].code != 108
        @events[key] = Sprite.new(self.viewport)
        @events[key].z = self.z + 2
        if event.list[i].parameters[0].include?("event")
          @events[key].bitmap = RPG::Cache.picture("event")
        elsif event.list[i].parameters[0].include?("enemy")
          @events[key].bitmap = RPG::Cache.picture("enemy")
        elsif event.list[i].parameters[0].include?("teleport")
          @events[key].bitmap = RPG::Cache.picture("teleport")
        elsif event.list[i].parameters[0].include?("chest")
          @events[key].bitmap = RPG::Cache.picture("chest")
        elsif event.list[i].parameters[0].include?("npc")
          @events[key].bitmap = RPG::Cache.picture("npc")
        elsif event.list[i].parameters[0].include?("savepoint")
          @events[key].bitmap = RPG::Cache.picture("savepoint")
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # â— dispose
  #--------------------------------------------------------------------------
  def dispose
    @player.dispose
    for event in @events.values
      event.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # â— update
  #--------------------------------------------------------------------------
  def update
    super
    @player.x = $game_player.real_x * 3 / 64 - 5
    @player.y = $game_player.real_y * 3 / 64 - 4
    @player.src_rect.x = ($game_player.direction / 2 - 1) * 15
    for key in @events.keys
      event = @events[key]
      mapevent = $game_map.events[key]
      event.x = mapevent.real_x * 3 / 64
      event.y = mapevent.real_y * 3 / 64
    end
  end
end



Revenir en haut Aller en bas
deadcell
Trouvère Follet
Trouvère Follet
deadcell


Masculin
Nombre de messages : 625
Age : 35
Niveau Rpg Maker : Excellent Niveau
Jeux Préférés : Final Fantasy, Resident evil...
Date d'inscription : 21/03/2007

Afficher une Minimap sur la Map Empty
MessageSujet: Re: Afficher une Minimap sur la Map   Afficher une Minimap sur la Map EmptyDim 29 Juil 2007, 10:35

Utilisation :




- Pour activer la mini carte,
faites un évènement et activez l'interrupteur [0142].



- Pour désactiver la mini carte, désactivez
l'interrupteur [0142].



- Pour changer l'ID (numéro) de
l'interrupteur, allez à la ligne 67 de ce script
:



ACTIVATED_ID =
142



et changez "142" par l'ID
souhaité.



- Pour mettre le type d'image de
l'évènement sur la mini carte, faites un
commentaire dans votre évènement et mettez ceci
:






A
mettre dans le commentaire

Type
d'évènement



[event]
Evenement
simple


[enemy]
Un ennemi


[teleport]
Un point de
téléportation


[chest]
Un coffre


[npc]
Un personnage
non joueur


[savepoint]
Un point de
sauvegarde
Revenir en haut Aller en bas
Nucelis
Rôdeur
Rôdeur
Nucelis


Masculin
Nombre de messages : 33
Age : 33
Projet(s) en cours : Not IMAGINATION
Niveau Rpg Maker : confirmé ( sauf pour les scripts désolé )
Date d'inscription : 19/07/2007

Afficher une Minimap sur la Map Empty
MessageSujet: Re: Afficher une Minimap sur la Map   Afficher une Minimap sur la Map EmptyDim 29 Juil 2007, 14:08

C'est genial comme script mais j'ai une question: il faut mettre un commentaire au debut de tout les events qu'on veut voir sur la minimap c'est cela ?
Revenir en haut Aller en bas
Pseudo
Fou du Roi
Fou du Roi
Pseudo


Masculin
Nombre de messages : 935
Date d'inscription : 26/02/2007

Afficher une Minimap sur la Map Empty
MessageSujet: Re: Afficher une Minimap sur la Map   Afficher une Minimap sur la Map EmptyDim 29 Juil 2007, 14:13

Super script, tu empoches encore 2 PA. ^^

Nucelis a écrit:
il faut mettre un commentaire au debut de tout les events qu'on veut voir sur la minimap c'est cela ?
Effectivement, il faut utiliser à chaque fois un commentaire, c'est peut-être long mais le résultat est là. [Don hypocrite]
Revenir en haut Aller en bas
Invité
Invité
Anonymous



Afficher une Minimap sur la Map Empty
MessageSujet: Re: Afficher une Minimap sur la Map   Afficher une Minimap sur la Map EmptyLun 06 Aoû 2007, 21:11

Bonjours a vous moi jai un bug quand j'essaye se script qui me dit quand je lance le jeux : "le fichier no sush file or directory - Grafics/pictures/mapback na pas ete trouver" pourquoi sa ?
Merci de repondre et a+
Revenir en haut Aller en bas
Patchwork
Auguste Polichinelle
Auguste Polichinelle
Patchwork


Masculin
Nombre de messages : 1382
Age : 43
Niveau Rpg Maker : se débrouille.
Jeux Préférés : FF, Suikoden, Mario kart, ...
Date d'inscription : 07/06/2007

Afficher une Minimap sur la Map Empty
MessageSujet: Re: Afficher une Minimap sur la Map   Afficher une Minimap sur la Map EmptyLun 06 Aoû 2007, 22:06

Tu as mis les ressources comme c'est dit au tout début du topic ?
Revenir en haut Aller en bas
http://patchworkrmxp.canalblog.com/
Joey
Acrobate
Acrobate
Joey


Masculin
Nombre de messages : 154
Age : 33
Projet(s) en cours : Rise
Niveau Rpg Maker : Passable
Jeux Préférés : Donjons et Dragons , NWN ...
Date d'inscription : 22/07/2007

Afficher une Minimap sur la Map Empty
MessageSujet: Re: Afficher une Minimap sur la Map   Afficher une Minimap sur la Map EmptyMar 07 Aoû 2007, 01:14

il faut renommé les fichier que ta mis dans le dossier Pictures
Revenir en haut Aller en bas
Invité
Invité
Anonymous



Afficher une Minimap sur la Map Empty
MessageSujet: Re: Afficher une Minimap sur la Map   Afficher une Minimap sur la Map EmptyMar 07 Aoû 2007, 16:46

Ok merci bien mai ma mini carte ne saffiche pas snif donc je v laisser tomber se n'etait pas obligatoire merci ++
Revenir en haut Aller en bas
Contenu sponsorisé





Afficher une Minimap sur la Map Empty
MessageSujet: Re: Afficher une Minimap sur la Map   Afficher une Minimap sur la Map Empty

Revenir en haut Aller en bas
 
Afficher une Minimap sur la Map
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Afficher les Mp, Hp sur la Map
» Afficher l'argent sur la map
» Afficher les PV/PM sur les maps v.2
» Afficher une barre de vie interactive.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Fusion :: BANQUE DU CODE :: Antre des Scripts :: Map-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser