Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Jeux: puie z / Jeux: Citymaime - Chapitre 1 / Jeux: Mer, îles et fous / News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

352 connectés actuellement

30732065 visiteurs
depuis l'ouverture

2043 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Maker VX

Hellsoft

Le Temple de Valor

Planète Glutko

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [Rpg Maker VX] Afficher les objets trouvés/reçu sur la map


Narak - posté le 23/06/2013 à 21:59:26 (62 messages postés)

❤ 0

Domaine concerné: Script
Logiciel utilisé: Rpg Maker VX
Bien le bonjour, ou bonsoir

Utilisant le système ABS après avoir tué les monstres, ils me laissent un butin mais quoi comme butin?? Je ne sais pas c'est pour sa que je me suis tourné vers le srcipt de Blockade http://www.rpg-maker.fr/scripts-251-afficher-les-objets-trouvesrecu-sur-la-map.html

Le script en détaille :

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
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
#===============================================================================
# ▼ [VX] Afficher les objets trouvés/reçu sur la map
#------------------------------------------------------------------------
# Blockade Script Library - Afficher les objets trouvés/reçu sur la map
# Date : 12/04/2010
# Niveau : Facile
# Version : 2.0
# Auteur : Blockade
# Forum d\'origine : http://rpg-maker-vx.bbactif.com/forum.html
#
# Remerciment à Khai ( http://ktbanh.wordpress.com/)
#
# Marre de pas avoir d\'interface spécifique quand le joueur gagne un objet ou de l\'expérience ? 
# Ce script permet d\'afficher une fenêtre qui récapitule les gains obtenus ! Dans sa nouvelle version, il
# n\'y plus aucun code à rentrer le script reconnait les gains tout seul !
#=======================================================================
# ▼ Mises a jour
# -------------------------------------------------------------------------
# ☼ 12/04/2010 -  Version 1.0 
#       - Sortie du script
# ☼ ??/??/???? -  Version 1.1 
#       - Permet de gagner de l\'expérience
# ☼ 20/06/2010 -  Version 1.2
#       - Correction de plusieurs bugs
# ☼ 01/01/2011 -  Version 2.0 
#       - Plus besoin de passer par des lignes de codes, tout se fait automatiquement
#       - Réécriture complète du script
#=======================================================================
# ▼ Fonctionnalités
# -------------------------------------------------------------------------
# - Affiche une fenêtre avec les gains obtenus (gère l\'expérience, l\'or, les objets et l\'équipement)
# - La fenêtre s\'adapte quand il y a plusieurs gains
# - On peut adapter très facilement le titre de la fenêtre et le son joué en fonction de la situation (coffre, PNJ...)
# - Plus aucun code à rentrer !
# - Retro-compatible avec les versions antérieures
#   (vous n\'avez pas besoin de changer les appels de scripts, ils marchent toujours)
#=======================================================================
# ▼ Installation
#--------------------------------------------------------------------------
# Mettez le au dessus de main, et jetez un coup d\'oeil au module de configuration.
#=======================================================================
# ▼ Utilisation
#--------------------------------------------------------------------------
#  Dans cette nouvelle version vous n\'avez rien à faire ! Mettez juste votre event avec le gain
# d\'objet/équipement/argent/expérience et le jeu affichera tout seul comme un grand la fenêtre.
#  Bien sur il est possible de désactiver la fenêtre très simplement, juste en activant un interrupteur
# dont l\'ID est configurable plus bas !
#
# Aussi pour vous éviter de tout changer dans le jeu, cette version est rétro compatible, c\'est à
# dire que la veille méthode marche toujours (avec gain()), jetez un coup d\'oeil à la démo vous
# verrez.
#
# Pour changer le lieu, c\'est simple vous avez juste à changer la valeur d\'une variable dont l\'ID
# est configurable. Pour les nouveaux, un lieu dans le script c\'est juste l\'affichage d\'un texte
# différent, et un son différent suivant les cas. Si vous vous trouvez dans un coffre, il suffit de 
# mettre la variable lieu à 1 pour que le script affiche \"Butin trouvé\" à la place de \"Butin\", et qu\'il
# joue un son de coffre. Bien sur vous pouvez changer ces valeurs dans le module de 
# configuration ! Si vous ne comprenez pas regardez la démo !
#=======================================================================
# ▼ Alias et compatibilité
#--------------------------------------------------------------------------
# ► Méthodes réecrites :
#  > Game_Interpreter : update
# 
# ► Alias méthodes  :
#  > Game_Interpreter : initialize
#  > Game_Interpreter : execute_command
#  > Scene_Map : start
#  > Scene_Map : update
#  > Scene_Map : terminate
#  > Game_Temp : initialize
#===============================================================================
 
module BSL
  module OTR
    #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # ID_X - Configuration des ID de variable/interrupteurs
    #-------------------------------------------------
    # Niveau : Facile
    # Vous pouvez configurer ici l\'ID de l\'interrupteur qui désactive l\'affichage de la fenêtre;
    # et de la variable de lieu.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # L\'ID de l\'interrupteur qui désactive la fenêtre de gain si il est activé
    ID_INT_DESACTIVER = 1
    # L\'ID de la variable qui contient le lieu (voir la section LIEU_X plus loin pour les détails)
    ID_VAR_LIEU = 1
    
    #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # TEXT_X - Configuration des textes
    #-------------------------------------------------
    # Niveau : Facile
    # Vous pouvez configurer ici tous les textes qui apparaissent dans les fenêtres.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # Texte situé avant la quantité d\'objets gagné
    TEXT_QUANTITE = \"x\" 
    # Texte affiché avant la quantité d\'argent obtenu
    TEXT_GAIN_GOLD = \"Gils obtenus\" 
    # Texte affiché avant la quantité d\'argent obtenu
    TEXT_GAIN_EXP = \"Exp. obtenue\" 
    
    #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # UPDATE_X - Permetre aux éléments du décors de bouger
    #-------------------------------------------------
    # Niveau : Facile
    # Si vous souhaitez pour une raison ou une autre que les events ou que les autotiles
    # ne bougent plus pendant que la fenêtre apparaît c\'est ici qu\'il faut se rendre.
    # Mettez true si vous voulez qu\'ils bougent, false sinon.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # Continuer à faire bouger les autotitles lors de l\'apparition de la fenêtre (L\'eau par exemple)
    UPDATE_SPRITESET = true 
    # Continuer à exécuter les events
    UPDATE_EVENT = true  
 
    #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # ICON_X - Configuration des icônes
    #-------------------------------------------------
    # Niveau : Facile
    # Vous pouvez modifier ici les icônes qui apparaissent lors du gain d\'expérience et d\'or.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # L\'ID de l\'icône affichée pour l\'argent
    ICON_GOLD = 205 
    # L\'ID de l\'icône affichée pour l\'expérience
    ICON_EXP = 101
    
    #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # LIEU_X - Configuration des lieux
    #-------------------------------------------------
    # Niveau : Facile
    # Vous pouvez modifier ici les différents titres affichés, ainsi que les sons joué suivant
    # la valeur de la variable qui défini le lieu.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # > Par défaut (si la variable lieu vaut 0)
    LIEU_0_TEXT = \"Butin\"      # Texte affiché par défaut lors de l\'obtention d\'un butin
    LIEU_0_MUSIQUE = true    # Jouer le SE ? (par défaut)
    LIEU_0_SE = \"Saint5\"      # Le SE joué par défaut lors de l\'obtention d\'un butin
    LIEU_0_VOLUME = 100    # Le volume du SE joué par défaut
    LIEU_0_TEMPO  = 100    # Le tempo du SE joué par défaut
 
    # > Un coffre (Lieu = 1)
    LIEU_1_TEXT = \"Butin trouvé\"    # Texte affiché  lors de l\'obtention d\'un butin (Lieu = 1)
    LIEU_1_MUSIQUE = true            # Jouer le SE ? (Lieu = 1)
    LIEU_1_SE = \"Chest\"                # Le SE joué lors de l\'obtention d\'un butin (Lieu = 1)
    LIEU_1_VOLUME= 100                # Le volume du SE joué (Lieu = 1)
    LIEU_1_TEMPO = 100                # Le tempo du SE joué (Lieu = 1)
 
    # > Un PNJ (Lieu = 2)
    LIEU_2_TEXT = \"Butin reçu\"          # Texte affiché  lors de l\'obtention d\'un butin (Lieu = 2)
    LIEU_2_MUSIQUE = true                # Jouer le SE ? (Lieu = 2)
    LIEU_2_SE = \"Saint5\"                    # Le SE joué lors de l\'obtention d\'un butin (Lieu = 2)
    LIEU_2_VOLUME = 100                  # Le volume du SE joué (Lieu = 2)
    LIEU_2_TEMPO  = 100                  # Le tempo du SE joué (Lieu = 2 )
 
    # > Autres (Objet caché...) (Lieu = 3)
    LIEU_3_TEXT = \"Butin trouvé\"      # Texte affiché  lors de l\'obtention d\'un butin (Lieu = 3)
    LIEU_3_MUSIQUE = true          # Jouer le SE ? (Lieu = 3)
    LIEU_3_SE = \"Saint5\"                # Le SE joué lors de l\'obtention d\'un butin (Lieu = 3)
    LIEU_3_VOLUME = 100                # Le volume du SE joué (Lieu = 3)
    LIEU_3_TEMPO  = 100                #  Le tempo du SE joué (Lieu = 3)
  end
end
 
 
#==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
#  An interpreter for executing event commands. This class is used within the
# Game_Map, Game_Troop, and Game_Event classes.
#==============================================================================
class Game_Interpreter
  include BSL::OTR
  #--------------------------------------------------------------------------
  # * alias_method : initialize
  #--------------------------------------------------------------------------
  alias bsl_otr_gameinterpreter_initialize initialize
  def initialize(*args)
    bsl_otr_gameinterpreter_initialize(*args)
    @cmd_trouve = false # Mis à true si on à déjà trouvé une commande de gain
    @gain = [] 
  end
  
  #--------------------------------------------------------------------------
  # * Event Command Execution
  #--------------------------------------------------------------------------
  alias bsl_otr_gameinterpreter_execute_command execute_command
  def execute_command
    # On le fait pas si on arrive à la fin de l\'event et si on est pas sur la carte
    if !(@index >= @list.size-1) && $scene.is_a?(Scene_Map) && !$game_switches[ID_INT_DESACTIVER]
     code = @list[@index].code
     # Si le code n\'est pas entre 125 et 128, et que y\'avait au moins une commande de gain avant 
     afficher_gains if !(code.between?(125,12) && code  != 315 && @cmd_trouve
     # Si le code est entre 125 et 128 on met cette information dans @gain
     if code.between?(125,12 || code == 315
      params =  @list[@index].parameters
       if code == 125
        value = operate_value(params[0], params[1], params[2])
        index = 0
       else
        value =  operate_value(params[1], params[2], params[3])
        index = params[0]
      end
      if value > 0 # On fait la suite que si la valeur est positive
       @cmd_trouve = true
        type = calcul_type(code)
       @gain.push([type,index,value])
      end
    end
  end
   # Si c\'est la fin de l\'event et qui y\'a toujours des gains
  afficher_gains if @index >= @list.size-1 && $scene.is_a?(Scene_Map) && @cmd_trouve
   # On execute la commande habituellement
   bsl_otr_gameinterpreter_execute_command 
 end
 
 
   #--------------------------------------------------------------------------
  # * Frame Update
  #---------------------------------------------------------------------------
  def update
    loop do
      return if $game_temp.affichage_gain
      if $game_map.map_id != @map_id        # Map is different?
        @event_id = 0                       # Make event ID 0
      end
      if @child_interpreter != nil          # If child interpreter exists
        @child_interpreter.update           # Update child interpreter
        if @child_interpreter.running?      # If running
          return                            # Return
        else                                # After execution has finished
          @child_interpreter = nil          # Erase child interpreter
        end
      end
      if @message_waiting                   # Waiting for message finish
        return
      end
      if @moving_character != nil           # Waiting for move to finish
        if @moving_character.move_route_forcing
          return
        end
        @moving_character = nil
      end
      if @wait_count > 0                    # Waiting
        @wait_count -= 1
        return
      end
      if $game_troop.forcing_battler != nil # Forcing battle action
        return
      end
      if $game_temp.next_scene != nil       # Opening screens
        return
      end
      if @list == nil                       # If content list is empty
        setup_starting_event if @main       # Set up starting event
        return if @list == nil              # Nothing was set up
      end
      return if execute_command == false    # Execute event command
      @index += 1                           # Advance index
    end
  end
  
  #--------------------------------------------------------------------------
  # * On affiche les gains
  #-------------------------------------------------------------------------- 
  def afficher_gains
    @cmd_trouve = false
    $scene.afficher_gains(@gain)
    @gain = []
    $game_temp.affichage_gain = true
  end
  
  #--------------------------------------------------------------------------
  # * Converti le code de la commande en type pour le script
  #--------------------------------------------------------------------------
  def calcul_type(code)
    type = 0
    case code
      when 126 # Objet
        type = 1
      when 127 # Arme
        type = 2
      when 128 # Armure
        type = 3
      when 125 # Or
        type = 4
      when 315 # Experience
        type = 5
      end
      return type
    end
    
  #--------------------------------------------------------------------------
  # * Ancienne méthode
  #--------------------------------------------------------------------------
  def gain(type,index,value,lieu=0)
    @gain = []
    if type.is_a?(Array)
      type.each_index { |i|
       @gain.push([type[i],index[i],value[i]])}
    else
      @gain.push([type,index,value])
    end
    $game_variables[ID_VAR_LIEU] = lieu
    donner_butin
    afficher_gains
  end
end
 
 
#--------------------------------------------------------------------------
# * Donne le butin gagné (retro-compatibilité)
#--------------------------------------------------------------------------
  def donner_butin
      @gain.each { |gain|
        case gain[0]
          when 1
            $game_party.gain_item($data_items[gain[1]], gain[2])
          when 2
            $game_party.gain_item($data_weapons[gain[1]], gain[2])     
          when 3
            $game_party.gain_item($data_armors[gain[1]], gain[2])   
          when 4
            $game_party.gain_gold(gain[2])
          when 5
            if gain[1] == 0
              $game_party.members.each{|member|
              member.change_exp(member.exp + gain[2],false)}
            else
              actor = $game_actors[gain[1]]
              actor.change_exp(actor.exp + gain[2],false)
            end
        end}
      end
 
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#  This class performs the map screen processing.
#==============================================================================
class Scene_Map < Scene_Base
    include BSL::OTR
  #--------------------------------------------------------------------------
  # * alias_method : initialize
  #--------------------------------------------------------------------------
  alias bsl_otr_scenemap_start start
  def start
    @window_lieu = Window_Lieu.new
    @window_butin = Window_Butin.new
    bsl_otr_scenemap_start
  end
  
  #--------------------------------------------------------------------------
  # *alias_method : update
  #--------------------------------------------------------------------------
  alias bsl_otr_scenemap_update update
  def update
    # On met à jour les informations que si la fenêtre est visible
    if @window_butin.visible
      @spriteset.update if UPDATE_SPRITESET
      $game_map.update if UPDATE_EVENT
      @window_butin.update
      @window_lieu.update
      @message_window.update if @message_window.visible
      if Input.trigger?(Input::C) || Input.trigger?(Input::B)
        @window_butin.visible = false
        @window_lieu.visible = false
        $game_temp.affichage_gain = false
        $game_variables[ID_VAR_LIEU]  = 0
      end
    else
      bsl_otr_scenemap_update
    end
  end
  
   #--------------------------------------------------------------------------
  # *  Afficher le gain
  #-------------------------------------------------------------------------- 
  def afficher_gains(gain)
    @gain = gain
    ajuster_fenetres
    afficher_texte
    afficher_fenetres
  end
  
  #--------------------------------------------------------------------------
  # *  On centre les deux fenêtres
  #--------------------------------------------------------------------------  
  def ajuster_fenetres
    @window_butin.height = 56 + 25*(@gain.size-1)
    @window_lieu.x=(544-@window_lieu.width)/2
    @window_butin.x = (544-@window_butin.width)/2
    @window_lieu.y = (416-@window_lieu.height-@window_butin.height)/2
    @window_butin.y = @window_lieu.y + @window_butin.height-25*(@gain.size-1)
  end
  
  #--------------------------------------------------------------------------
  # * Affiche le texte voulu
  #--------------------------------------------------------------------------
  def afficher_texte
    @window_lieu.clear
    @window_butin.clear
    @window_lieu.set_text
    y = 0
    @gain.each { |data_gain| 
        special = false
        case data_gain[0]
          when 1
            nom = $data_items[data_gain[1]].name
            icone = $data_items[data_gain[1]].icon_index
          when 2
            nom = $data_weapons[data_gain[1]].name
            icone = $data_weapons[data_gain[1]].icon_index   
          when 3
            nom = $data_armors[data_gain[1]].name
            icone = $data_armors[data_gain[1]].icon_index 
          when 4
            nom = TEXT_GAIN_GOLD
            icone = ICON_GOLD
            special = true
          when 5
            nom = TEXT_GAIN_EXP
            icone = ICON_EXP
            special = true
        end
      @window_butin.set_gain(0,y,nom,icone,data_gain[2],special)
      y += 25}
    end
    
  #--------------------------------------------------------------------------
  # *  On affiche les fenêtres
  #--------------------------------------------------------------------------  
  def afficher_fenetres
    @window_lieu.visible = false
    @window_butin.visible = true
  end
  
  #--------------------------------------------------------------------------
  # *  alias_method : terminate
  #--------------------------------------------------------------------------
  alias bsl_otr_scenemap_terminate terminate
  def terminate
    bsl_otr_scenemap_terminate
    @window_butin.dispose
    @window_lieu.dispose
  end
end
 
#==============================================================================
# ** Window_Lieu
#------------------------------------------------------------------------------
#  La fenêtre qui gère le titre général du butin obtenu
#==============================================================================
class Window_Lieu < Window_Base
  include BSL::OTR
#--------------------------------------------------------------------------
# * Initialize
#--------------------------------------------------------------------------
  def initialize
    super(0,0,250,-100)
    self.visible = true
  end
  
#--------------------------------------------------------------------------
 # *  Efface le contenu
 #--------------------------------------------------------------------------
  def clear
    self.contents.clear
  end
  
#--------------------------------------------------------------------------
# * Affiche le texte dans la fenêtre (/!\\ Personalisable)
#--------------------------------------------------------------------------
  def set_text
    case $game_variables[ID_VAR_LIEU]
      when 0 # Par défaut
        title = LIEU_0_TEXT
        Audio.se_play(\"Audio/SE/#{LIEU_0_SE}\", LIEU_0_VOLUME, LIEU_0_TEMPO) if LIEU_0_MUSIQUE
      when 1 # Coffre
        title = LIEU_1_TEXT
        Audio.se_play(\"Audio/SE/#{LIEU_1_SE}\", LIEU_1_VOLUME, LIEU_1_TEMPO) if LIEU_1_MUSIQUE
      when 2 # PNJ
        title =  LIEU_2_TEXT
        Audio.se_play(\"Audio/SE/#{LIEU_2_SE}\", LIEU_2_VOLUME, LIEU_2_TEMPO)  if LIEU_2_MUSIQUE
      when 3 # Recu (Autres coffre/PNJ)
        title =  LIEU_3_TEXT
        Audio.se_play(\"Audio/SE/#{LIEU_3_SE}\",LIEU_3_VOLUME, LIEU_3_TEMPO)  if LIEU_3_MUSIQUE
    end
    self.contents.draw_text(0,0,contents.width,WLH,title,1)
  end
end
 
#==============================================================================
# ** Window_Butin
#------------------------------------------------------------------------------
#  La fenêtre qui gère les objets obtenus
#==============================================================================
class Window_Butin < Window_Base
 include BSL::OTR
#--------------------------------------------------------------------------
# * Initialize
#--------------------------------------------------------------------------
  def initialize
    super(0,0,250,-100)
    self.visible = false
  end
  
 #--------------------------------------------------------------------------
 # *  Efface le contenu
 #--------------------------------------------------------------------------
  def clear
    self.contents.clear
    create_contents
  end
 
#--------------------------------------------------------------------------
# * Affiche les objets/gils gagnés
#--------------------------------------------------------------------------
  def set_gain(x,y,butin,icone,num,special)
    @num = num
    draw_icon(icone,x,y)
    self.contents.draw_text(x+25,y,150,WLH,butin)
    if special
      self.contents.draw_text(x,y,contents.width,WLH,@num,2)
    else
      self.contents.draw_text(x,y,contents.width,WLH,TEXT_QUANTITE + @num.to_s,2)
    end
  end
end
 
#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
#  This class handles temporary data that is not included with save data.
# The instance of this class is referenced by $game_temp.
#==============================================================================
 
class Game_Temp
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :affichage_gain        # True si on affiche des gains
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias bsl_otr_gametemp_initialize initialize
  def initialize
    bsl_otr_gametemp_initialize
    @affichage_gain = false
  end
end



J'ai réussi à modifier la coordonné en Y de la fenêtre en modifiant le chiffre 25 mais pour la coordonné en x?

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#==============================================================================
# ** Window_Lieu
#------------------------------------------------------------------------------
#  La fenêtre qui gère le titre général du butin obtenu
#==============================================================================
class Window_Lieu < Window_Base
  include BSL::OTR
#--------------------------------------------------------------------------
# * Initialize
#--------------------------------------------------------------------------
  def initialize
    super(0,0,250,25)
    self.visible = true
  end



J'ai aussi réussi à supprimer la fenêtre "Butin trouvé"

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
#--------------------------------------------------------------------------
  # *  On affiche les fenêtres
  #--------------------------------------------------------------------------  
  def afficher_fenetres
    @window_lieu.visible = false
    @window_butin.visible = true
  end



Le problème étant sur abs, le fait de devoir cliquer sur une touche me bloque le jeu.

##Je souhaiterais pourvoir soit toujours joué avec la fenêtre active

##Soit avoir une fenêtre en bas à gauche à la manière des mmorpg (chat) affiche les objets, or, expériences, (up du personnage) reçut du bas vers le haut sur 5/6 lignes

Merci de me venir en aide :)

viens voir :http://www.rpg-maker.fr/index.php?page=forum&id=22418&deb=1&ancre=967250


Widoo - posté le 23/06/2013 à 22:38:05 (86 messages postés)

❤ 0

I ♥ RMXP

Portion de code : Tout sélectionner

1
super(0,0,250,25)



non non non!!!
Quand on modifie quelque chose faut savoir ce qu'on modifie!!

super(x, y, width, height)
x position x, y position y , width la largeur de la "fenetre" ou image, et height la hauteur. La tu diminues la hauteur... Faut que tu modifies les 0, pas les width et height.


Narak - posté le 23/06/2013 à 23:06:55 (62 messages postés)

❤ 0

déjà ça, ok merci :)
me reste le problème du blocage du jeu lors de l'affichage :s

viens voir :http://www.rpg-maker.fr/index.php?page=forum&id=22418&deb=1&ancre=967250


arttroy - posté le 24/06/2013 à 20:04:33 (2394 messages postés)

❤ 0

Just working

Euh pour ton histoire de touche, je suis pas un expert mais il ne manque pas un update quelque part ici (ligne 362):

Portion de code : Tout sélectionner

1
2
3
4
5
6
      if Input.trigger?(Input::C) || Input.trigger?(Input::B)
        @window_butin.visible = false
        @window_lieu.visible = false
        $game_temp.affichage_gain = false
        $game_variables[ID_VAR_LIEU]  = 0
      end



Parce qu'encore une fois si je suis bien le code, ça dit que si tu appuie :C ou :B ça t'efface tout ce qui concerne la fameuse fenêtre mais après rien... Donc techniquement c'est normal que ça bloque (enfin si j'ai bien compris...). Si quelqu'un pouvait confirmer ou infirmer mes dires ce serait sympa.

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?


Narak - posté le 24/06/2013 à 22:10:16 (62 messages postés)

❤ 0

Merci d'essayer de m'aider mais je pense que tu m'as mal comprit. Ce script n'est pas adapté pour les combat en abs, combat des monstres directement sur la map. En gros je tue des monstres et ils me laissent des objets mais j'aimerais savoir lesquels, sans que j'ai besoin d'ouvrir mon inventaire.
Et j'ai trouvé ce script, mais comme étant en abs, il y a une page qui s'ouvre toute les 3s après avoir tué un monstre et je ne peut pas faire d'action pendant ce temps, ça casse alors le rythme du jeu.Et en plus ils me tapent dessus en attendant que je valide....

viens voir :http://www.rpg-maker.fr/index.php?page=forum&id=22418&deb=1&ancre=967250


Joke - posté le 25/06/2013 à 22:59:19 (5090 messages postés)

❤ 0

Bilouteux fou

Retire cette méthode (ou mets la en commentaire en ajoutant =begin avant et =end après) tu devrais pouvoir continuer de jouer pendant l'affichage de la box.

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
   #--------------------------------------------------------------------------
  # * Frame Update
  #---------------------------------------------------------------------------
  def update
    loop do
      return if $game_temp.affichage_gain
      if $game_map.map_id != @map_id        # Map is different?
        @event_id = 0                       # Make event ID 0
      end
      if @child_interpreter != nil          # If child interpreter exists
        @child_interpreter.update           # Update child interpreter
        if @child_interpreter.running?      # If running
          return                            # Return
        else                                # After execution has finished
          @child_interpreter = nil          # Erase child interpreter
        end
      end
      if @message_waiting                   # Waiting for message finish
        return
      end
      if @moving_character != nil           # Waiting for move to finish
        if @moving_character.move_route_forcing
          return
        end
        @moving_character = nil
      end
      if @wait_count > 0                    # Waiting
        @wait_count -= 1
        return
      end
      if $game_troop.forcing_battler != nil # Forcing battle action
        return
      end
      if $game_temp.next_scene != nil       # Opening screens
        return
      end
      if @list == nil                       # If content list is empty
        setup_starting_event if @main       # Set up starting event
        return if @list == nil              # Nothing was set up
      end
      return if execute_command == false    # Execute event command
      @index += 1                           # Advance index
    end
  end



biloumaster.fr, mon joli site ouèb tout bô tout frai !


Narak - posté le 26/06/2013 à 10:42:40 (62 messages postés)

❤ 0

Non sa ne marche pas :s
Par contre j'ai peut être trouvé ce qu'il faut changer
Au départ ils nous demandent :

Portion de code : Tout sélectionner

1
2
3
4
5
  # Continuer à faire bouger les autotitles lors de l'apparition de la fenêtre (L'eau par exemple)
    UPDATE_SPRITESET = true 
    # Continuer à exécuter les events
    UPDATE_EVENT = true  
    



Et je suis arrivé à cette conclusion, il faut rajouter des lignes de code içi :

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
  #--------------------------------------------------------------------------
  # *alias_method : update
  #--------------------------------------------------------------------------
  alias bsl_otr_scenemap_update update
  def update
    # On met à jour les informations que si la fenêtre est visible
    if @window_butin.visible
      @spriteset.update if UPDATE_SPRITESET
      $game_map.update if UPDATE_EVENT
      @window_butin.update
      @window_lieu.update
      @message_window.update if @message_window.visible
      if Input.trigger?(Input::C) || Input.trigger?(Input::B)
        @window_butin.visible = false
        @window_lieu.visible = false
        $game_temp.affichage_gain = false
        $game_variables[ID_VAR_LIEU]  = 0
      end
    else
      bsl_otr_scenemap_update
    end
  end



viens voir :http://www.rpg-maker.fr/index.php?page=forum&id=22418&deb=1&ancre=967250


arttroy - posté le 28/06/2013 à 13:03:47 (2394 messages postés)

❤ 0

Just working

Tu n'as pas un message d'erreur qui apparaît quand le jeu bloque ?? Si c'est le cas screene le et met le nous par là stp ce sera plus facile avec ça. Sinon au cas où tu ne l'aurais pas vu la portion de code que tu nous a indiqué c'est celle que je t'avais donné un peu plus haut donc en fait j'avais bien compris.

Je pense vraiment que c'est un souci d'update, essaie de rajouter ça après la ligne 17 ($game_variables[ID_VAR_LIEU] = 0)

Portion de code : Tout sélectionner

1
$game_map.update



Je ne garanti rien mais bon...

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?


Narak - posté le 29/06/2013 à 16:16:55 (62 messages postés)

❤ 0

Toujours pas xs

viens voir :http://www.rpg-maker.fr/index.php?page=forum&id=22418&deb=1&ancre=967250


Cortez - posté le 30/06/2013 à 10:15:00 (524 messages postés)

❤ 0

Je n'ai pas encore le niveau mais il me semble que ça :

Portion de code : Tout sélectionner

1
2
3
4
5
6
if Input.trigger?(Input::C) || Input.trigger?(Input::B)
        @window_butin.visible = false
        @window_lieu.visible = false
        $game_temp.affichage_gain = false
        $game_variables[ID_VAR_LIEU]  = 0
 



C'est justement la portion de code qui oblige à l'appui de la touche
"C" pour valider la fenêtre.
Donc il faut remplacer

Portion de code : Tout sélectionner

1
if Input.trigger?(Input::C)


Par un attendre X frames (pour fermer auto la fenêtre) mais ça ne
permet toujours pas d'afficher en même temps que le jeu.
Pour cela il faut afficher des bitmaps et non des fenêtres qui ont
hérité des mêmes fonction que celles des messages.

Sinon une autre option pour toi serai de regarder du côté de l'event-extender, il serait plus simple d'y ajouter une commande
pour afficher des icones que de modifier ce script à mon avis.


arttroy - posté le 30/06/2013 à 10:20:31 (2394 messages postés)

❤ 0

Just working

Ben oui c'est ce que je lui disait mais ce que je trouve curieux c'est qu'à la suite de cette portion de code il n'y ait pas un update comme pour le else (bsl_otr_scenemap_update).

Parce qu'en gros si il appuie sur :C ça efface bien sa fenêtre de message mais ensuite rien...

Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ?


Cortez - posté le 30/06/2013 à 11:01:35 (524 messages postés)

❤ 0

Je ne pense pas ...
La fenêtre affichée est considérée comme celle des messages.
Donc la méthode

Portion de code : Tout sélectionner

1
@window_butin.visible = false


renvoie automatiquement vers la condition :

Portion de code : Tout sélectionner

1
if @window_butin.visible


Mais celle-ci étant sur False, on va direct au else
donc on update avec :

Portion de code : Tout sélectionner

1
bsl_otr_scenemap_update



Donc selon mon avis je pense que c'est bon ...
M'enfin il dit qu'il est toujours bloqué par la fenêtre donc :

Il joue /phase action
un monstre meurt /phase action
la fenêtre apparait /phase attente
il press C /phase attente
il continue de jouer /phase action

Donc en effet devoir attendre coupe l'action et cela nuit au
gameplay de son jeu.
Narak, comme je le pense, il vaut mieux chercher avec un autre
script (ou une programmation en évènements ).
Par ce que ce n'est pas juste une petite modif, mais c'est carrément
refaire le script qu'il te faut.


Narak - posté le 02/07/2013 à 15:21:35 (62 messages postés)

❤ 0

Ok, merci les gens.
Le problème apparemment ne pouvant pas être résolu (à partir du script existant), j'ai ouvert un sujet pour une demande de scipt : http://www.rpg-maker.fr/index.php?page=forum&id=22314&deb=fin#fin

viens voir :http://www.rpg-maker.fr/index.php?page=forum&id=22418&deb=1&ancre=967250

Index du forum > Entraide > [Rpg Maker VX] Afficher les objets trouvés/reçu sur la map

repondre up

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