Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / News: Quoi de neuf sur Oniromancie (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

535 connectés actuellement

29383777 visiteurs
depuis l'ouverture

5 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Le Temple de Valor

Lunae - le bazar d'Emz0

New RPG Maker

Kingdom Ultimate

Tous nos partenaires

Devenir
partenaire



Passability Mini Map

Affiche une version réduite de la carte sur l'écran, avec visualisation de la passabilité et possibilité de voir certains événements par type.

Script pour RPG Maker XP
Ecrit par squall
Publié par malfrax (lui envoyer un message privé)
Signaler un script cassé

❤ 0

Auteur : squall
Logiciel : RPG Maker XP
Nombre de scripts : 1
Source : http://rpgcreative.net/Site/RPG%20Maker/pages/Script/script_minimap.htm (ancienne version) et https://rpgcreative.net/rpgmaker/scripts-87-minimap.html (version la plus récente)

Fonctionnalités
- Permet d'afficher une version réduite de la carte sur un coin de l'écran
- Activable/Désactivable
- Possibilité de choisir l'emplacement

Installation
A placer au-dessus de Main.
Il faut placer 9 images avec les noms suivants dans le dossier Graphics/Pctures :
- "mapback"
- "mm cursors"
- "minimap_tiles"
- "event"
- "enemy"
- "teleport"
- "chest"
- "npc"
- "savepoint"

Utilisation
Dans le script, vous pouvez choisir parmi les quatre positions où la mini map sera affichée :

Portion de code : Tout sélectionner

1
    @corner = 4 # 1 or 2 or 3 or 4


1 : en haut à gauche
2 : en haut à droite
3 : en bas à gauche
4 : en bas à droite

Vous pouvez modifier l'id de l'interrupteur pour activer/désactiver l'affichage de la mini map :

Portion de code : Tout sélectionner

1
  ACTIVATED_ID = 1 # set the switch id for the minimap display (on/off)



Pour mettre le type d'image de l'évènement sur la mini carte, faites un commentaire dans votre événement et adaptez ceci selon le type de votre événement :
- [event] : Evénement simple
- [enemy] : Un ennemi
- [teleport] : Un point de téléportation
- [chest] : Un coffre
- [npc] : Un personnage non joueur
- [savepoint] : Un point de sauvegarde

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
#==============================================================================
# â–  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 = 1 # 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
    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




Mis à jour le 18 novembre 2020.(/right]




guimove31 - posté le 25/08/2008 à 10:41:47 (9 messages postés)

❤ 0

c'est lequel le script "mm" ?? parce que je l'est pas trouver
dans les scripts du jeu

Faire de son mieux ne suffit pas.


k-rtoon (visiteur non enregistré) - posté le 08/10/2008 à 21:58:37

❤ 0

[size=24][/size] svp g rien compri a partir de "il faut placer ensuite ces image dans le dossier picture " ya mm pa d'images et je trouve pa le script "mm" svp édé moi ^^ :'(


jafty - posté le 25/01/2009 à 21:20:53 (13 messages postés)

❤ 0

Il n'y a pas d'images, il faudrait les renvoyer!


Blitz - posté le 29/01/2009 à 19:18:01 (4 messages postés)

❤ 0

Au faite, les images que tu as mis en lien ne montre qu'un site, je ne voit pas d'image, pourquoi ? Est-ce qu'on peut mettre nos images à nous ? Sinon faut-il des images spéciaux pour ce script ?


squall564 - posté le 29/04/2009 à 17:26:54 (27 messages postés)

❤ 0

C'est "normal" que l'on ne voit pas les images ?
"the computer has too smoking ? :joint "
(je sais je suis pas trés fort en anglais ^^:grossourire)
en atendant les images y sert a rien le script ...

Squall564


sin-c - posté le 05/05/2009 à 19:07:23 (27 messages postés)

❤ 0

ca fait longtemps que j'ai pas touché a RM...

bon bah je vais pas re-re-re-re-re-re-re-répeyter ce quils disent et puis c'est quoi les "" qui apparaissent dans le script?

areuh!


Baffy - posté le 15/05/2009 à 21:58:11 (91 messages postés)

❤ 0

J'ai utilisé ce script dans mon jeu,
il est vraiment bien pensé !

Voir ma galerie


jonamigh - posté le 27/06/2009 à 02:22:11 (66 messages postés)

❤ 0

si j'ai bien compris par exemple on met un coffre et on doit mettre le comentaire [chest] Un coffre
mais pour tous les evenement on doit faire sa
il n'y a pas d'autre solution

je passe des heure sur rpgmaker xp j'adore ca !!!!


Dadan - posté le 08/11/2009 à 17:01:03 (1 messages postés)

❤ 0

J'ai trouvé les images(:ange):
image fond
image Point de téléportation
image point de sauvegarde
image Personnage non joueur
image héros
image ennemi
image coffre
image événement
Je les ai trouvées par hasard en surfant sur un site de maker(http://powerrpgmakerxp.xooit.fr/t130-mini-map-radar.htm).
Il n'y a que l'image des events qui est morte alors du coup, je l'ai crée à partir de l'image "teleportfp7.png"
Bon making!!:D
Sinon bon script, mise à part que c'est ch**** que on doive mettre des commentaires à chaque fois.


obiwandu77 - posté le 15/02/2010 à 18:21:46 (18 messages postés)

❤ 0

En train de craber

Ce script est vraimen très bien Domage qu'il est pas sur VX
je vais éssaiyer de le mettre dans VX mais je pence pas que sa va marcher


Ranger Maker - posté le 15/01/2011 à 09:00:55 (17 messages postés)

❤ 0

en train de maker

Fichier minimap.tiles non trouvé ?!?!?
svp ce script a l'air super ets-ce que qqn peut m'aider ?

Bordel pourquoi tout le monde a photoshop alors que ce sont des RPG AMATEURS !


polochons - posté le 08/06/2011 à 13:33:32 (6 messages postés)

❤ 0

Les liens des images nésséssaire sont mort :'(


mario5102 - posté le 30/05/2012 à 12:40:34 (14 messages postés)

❤ 0

Le script fait bugué maintenant (il bug ligne 377 ) enfin j'ai un script ici

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
#==============================================================================
# â–  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
    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
 


Pour les image a mettre dans le dossier c'est celle ci :
image pour les coffre
image ennemy
image event
image le fond de la map
image l'autotitles de la minimap (il se place seul en jeu )
image le curseur (c'est le héros il me semble )
image npc
image point de sauvegarde
image teleport
et ca donne ca :
image
RPGcreative ayant changé le script l'ancien n'est plus vraiment valable : http://rpgcreative.net/rpgmaker/scripts-87-minimap.html


Zadé - posté le 02/06/2014 à 00:51:50 (16 messages postés)

❤ 0

merci à toi mario5102


Gameur974 - posté le 05/06/2014 à 19:49:05 (3 messages postés)

❤ 0

Bonjour, je suis un nouveau dans la création de jeu je comme a manier RPG maker vx ace mais quand je prend des script de se cite il me mette souvent des erreur a tel ligne et tout j'aimerai savoir c quoi le probléme souvent les erreur sont la ou c écrit alias en début de ligne quelqun pourait m'aider svp!!!! ????

Merci^^!!!!!

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers