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

Sorties: "Dread Mac Farlane", (...) / Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

452 connectés actuellement

29427734 visiteurs
depuis l'ouverture

2110 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Lumen

RPG Maker VX

Alex d'Or

Hellsoft

Tashiroworld

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [RM XP] Système d'inventaire custom


loly74 - posté le 08/08/2017 à 18:54:29 (855 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

Domaine concerné: réalisation
Logiciel utilisé: RM XP
Salut à tous !

J'ai un souci avec mon système d'inventaire en event. Ayant remplacé le menu de base par le mien en event et image, j'ai voulu continuer sur ma lancée et créer le reste avec des fonctions d'événements communs.
A l'heure actuelle, voilà à quoi ressemble mon inventaire :

image

L'inventaire est composé de 30 slots. un slot se définit par 3 variables :
- le numéro du slot (allant de 1 à 30)
- le contenant du slot (0 c'est vide, et ça va aller jusqu'à autant d'objet qu'il le faut dans le jeu)
- la quantité d'objet contenu dans ce slot ( allant de 1 à 10 )

Ces valeurs sont ensuite montrées au joueur sous forme d'image placée par des coordonnées X et Y variant selon
le n° du slot, il y a donc 2 images montrées par slot (l'objet contenu dans le slot et sa quantité).

Donc l'inventaire va afficher 60 images en même temps. Problème : On peut afficher jusqu'à 50 images max sur RM XP, ce qui explique que sur mon système actuel, on peut avoir 30 objets dans son sac, mais seulement 10 sont montrés à la fois, pour voir le reste, on se sert d'un système d'onglet en haut des slots visibles en allant aux extrêmes de gauche à droite pour switcher.

Voilà pour l'affichage, mais y a ensuite un système en event commun qui est appelé par le moindre event qui va modifier votre inventaire en y ajoutant ou retirant des objets.

Cet événement commun va demander 3 conditions à un slot, et va passer au suivant si le système d'ajout d'objet ne peut pas être mis en oeuvre :

Condition : l'ID de l'objet reçu est-il = à l'ID du slot ?
si non : passe au slot suivant
si oui :
Condition : La quantité contenue dans le slot est-elle inférieure à la variable "slot max" (qui actuellement = 10 )
[ boucle :
Quantité slot +1
Quantité objet reçu -1
Condition : quantité objet = 0?
si non : retour au début du processus
si oui : fin du processus ]


Bref, vous voyez le principe, l'event commun va poser ces questions en boucle jusqu'à 30 fois si il le faut, mon pauvre PNJ blond qu'on peut voir en arrière ne bouge plus, et pas parce que j'ai programmé un quelcque event commun qui le stoppe ou quoi ... MAIS PARCE QUE CA RAME, PUTAIN !

Donc voilà, j'ai pas mal de problème avec ce système en event : trop lourd à prendre en charge par rm, trop dur à programmer pour moi (car pour l'instant je me suis limitée à 14 objets différents, mais ça va inévitablement augmenter, des objets vont changer d'ID, etc... sachant que chaque ID a ses fonctions et ses effets, ça va vite devenir difficile à gérer au cas par cas dans ma soupe de lettre qui me sert d'event commun d'inventaire)
et en plus ça me bouzille 60 variables dans ma BDD ...

Tout ça pour dire : est-ce que vous avez une idée pour optimiser ça en event ? Ou de quel genre de script je pourrais utiliser ? j'ai déjà cherché des scripts d'inventaire comme celui que je souhaite mais j'ai rien trouvé sur les communautés, fischtre.

J'ai totalement conscience que c'est un pari fou (voire impossible) de faire ça en event, mais j'ai pas trop le choix pour le moment... En plus je dois présenter une démo du jeu pour une convention dans un mois, alors c'est corsé...

Merci à vous ! :flaco

Sylvan Melody, c'est par ici ! | Mes Musiques! | Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."


Mack - posté le 08/08/2017 à 19:05:37 (2290 messages postés) - staff

❤ 0

Nan, mais faire des systèmes inventaire en Event, c'est une cata.
Le mieux c'est clairement de le faire en script, voir semi script.

Le temps de ré-installer XP, et je bidouille un truc.


EDIT :

Du coup je t'ai bidouiller ça :
https://www.mediafire.com/file/j7cz0kz5kk79h1z/Project10.rar

La constante SIZE, c'est la taille d'une icone, SWITCH, c'est un interrupteur qui sert à detecter si tu fermes ou ouvre le menu ( CF l'évent de droite pour comprendre, quand t'actives l'interrupteur, le menu s'ouvre / se ferme. ), SWITCH_OPEN c'est pour savoir si le menu est ouvert ou fermé.

Les variables @x / @y correspondent aux coordonnées X/Y de la fenêtre.

En appuyant sur C sur un item, ça appellera l'évent commun lié à cet item.

( Je prend note de tout les commentaires, même si je n'y répond pas )


loly74 - posté le 08/08/2017 à 23:01:27 (855 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

Wow, merci beaucoup, Mack ! Je teste ça tout de suite !

Edit : bon, je rencontre quelques problèmes. En indépendant sur mon projet, le script fonctionne et j'ai eu aucun souci à le réadapter pour qu'il colle aux exigences du jeu.

En revanche, c'est quand je veux l'intégrer à mon menu déjà existant qu'il y a un souci...

En fait, j'ai de la peine à comprendre les différences entre SWITCH et SWITCH_OPEN

Ce que je n'ai pas dit plus tôt, c'est qu'à l'appui d'une touche, un event commun "menu" s'ouvre à condition que l'interrupteur "menu accessible" soit activé (pour éviter d'ouvrir le menu dans les cinématiques), il contient 4 catégories (Inventaire, Carte, Relations et Quitter) et on switche de catégorie avec L et R.
Tout mon menu est affiché avec l'image n°7, et quand ce menu se ferme, l'image n°7 change d'apparence pour être mon interface générale (qui est toujours visible quand mon menu est ouvert, d'ailleurs) tout est regroupé en une image pour des questions d'ergonomie.

Du coup, dans ton exemple on active l'interrupteur à l'appui d'une touche, mais dans mon cas comment je peux ntégrer ton script à l'ensemble de mon event commun qui fait mon menu ?

Sylvan Melody, c'est par ici ! | Mes Musiques! | Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."


Mack - posté le 09/08/2017 à 00:48:28 (2290 messages postés) - staff

❤ 0

Bah, quand le joueur appuie sur les touches L et R, si il est dans le menu d'item, tu actives l'interrupteur SWITCH, ça fermera le menu d'item, et toi tu appelles ton autre menu.
Et si il est censé être dans les Items après un L / R, tu fermes ton menu et tu actives SWITCH pour ouvrir le menu.



En gros, SWITCH c'est comme un bouton poussoir, quand t'appuie dessus, si la lumière été allumé, elle s'éteint, et si elle été éteinte elle s'allume.

Tandis que SWITCH_OPEN sert juste à savoir si le menu d'Item est ouvert.

( Je prend note de tout les commentaires, même si je n'y répond pas )


loly74 - posté le 09/08/2017 à 02:31:20 (855 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

Donc si je comprends bien. En activant SWITCH, ça active SWITCH_OPEN
et si j'active à nouveau SWITCH sachant qu'il l'est déjà, ça me désactive SWITCH_OPEN ?

Sylvan Melody, c'est par ici ! | Mes Musiques! | Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."


Mack - posté le 09/08/2017 à 10:34:04 (2290 messages postés) - staff

❤ 0

C'est ça.

( Je prend note de tout les commentaires, même si je n'y répond pas )


loly74 - posté le 09/08/2017 à 13:44:39 (855 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

image

ça marche au poil ! J'ai même pu régler quelques petites choses dans le script pour que le curseur, la fenêtre et les objets s'affichent au pixel près où je voulais. :)
Toutefois, le chiffre est un peu trop grand et sort du cadre en cas de grosse quantité d'objet...

Merci beaucoup, Mack !

Mais j'ai encore une petite question : si je souhaite un jour réutiliser ton script pour un autre inventaire d'un autre jeu par exemple... qu'est-ce que je vais devoir modifier ? (sachant qu'il pourrait dans ce jeu afficher les 30 objets d'un coup, ou avoir 4 onglets, pouvoir posser 99 objets max au lieu de 10 sur un même slot... ) ?

Sylvan Melody, c'est par ici ! | Mes Musiques! | Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."


Mack - posté le 09/08/2017 à 14:30:41 (2290 messages postés) - staff

❤ 0

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
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#  This class performs map screen processing.
#==============================================================================
 
SIZE = 64
PAGE_MAX = 3
 
ROW = 2
COL = 5
 
X = 0
Y = 0
 
FONT_SIZE = 18
 
SWITCH = 1
SWITCH_OPEN = 2
 
class Scene_Map
  
 
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  alias main_old main
  def main
    
    $game_switches[SWITCH_OPEN] = false
    
    @spriteBack = Sprite.new
    @spriteBack.bitmap = RPG::Cache.picture("back1")
    
    
    @spriteSelector = Sprite.new
    @spriteSelector.bitmap = RPG::Cache.picture("selector")
    
    
    @index = 0
    
    @x = X
    @y = Y
    
    x = 20 + @index % COL * (SIZE)
    y = 20 + @index / COL * (SIZE)
    
    @spriteSelector.x = @x + x
    @spriteSelector.y = @y + y
    
   
    
    @spriteBack.x = @x
    @spriteBack.y = @y
    
    @window_item = WindowItemCustom.new((COL*SIZE)+48,(ROW*SIZE)+48)
    @window_item.x = @x
    @window_item.y = @y
    
    @spriteBack.z = @window_item.z - 1
    @spriteSelector.z = @spriteBack.z + 1
    
    @spriteBack.visible = false
    @window_item.visible = false
    @spriteSelector.visible = false
    
    main_old
    
    @spriteBack.bitmap.dispose
    @spriteBack.dispose
    @spriteSelector.bitmap.dispose
    @spriteSelector.dispose
    @window_item.dispose
    
    
  end
  
  alias update_old update
  def update
    
    if ($game_switches[SWITCH_OPEN]) 
      if Input.repeat?(Input::LEFT)
        if (@index % COL == 0)
           p = @window_item.getPage - 1
          if (p < 1)
            p = PAGE_MAX
          end
          @window_item.setPage(p)
          @spriteBack.bitmap = RPG::Cache.picture("back"+p.to_s)
          @index = (@index + (COL-1)) % (ROW * COL)
        else
          @index = (@index - 1) % (ROW * COL)
        end
      end
      if Input.repeat?(Input::RIGHT)
        if (@index % COL == COL - 1)
          p = @window_item.getPage + 1
          if (p > PAGE_MAX)
            p = 1
          end
          @window_item.setPage(p)
          @spriteBack.bitmap = RPG::Cache.picture("back"+p.to_s)
          @index = (@index - (COL-1)) % (ROW * COL)
        else
          @index = (@index + 1) % (ROW * COL)
        end
      end
      
      if Input.repeat?(Input::UP)
        @index = (@index - COL) % (ROW * COL)
      end
      if Input.repeat?(Input::DOWN)
        @index = (@index + COL) % (ROW * COL)
      end
      
      if Input.trigger?(Input::C)
         # If command event ID is valid
         @item = @window_item.getItem(@index)
        if @item.common_event_id > 0
          $game_switches[SWITCH] = true
          # Command event call reservation
          $game_temp.common_event_id = @item.common_event_id
          # If consumable
          if @item.consumable
            # Decrease used items by 1
            $game_party.lose_item(@item.id, 1)
          end
          @window_item.refresh
        end
      end
        
      x = 20 + @index % COL * (SIZE)
      y = 20 + @index / COL * (SIZE)
      
      @spriteSelector.x = @x + x
      @spriteSelector.y = @y + y
      
      if $game_switches[SWITCH]
        $game_switches[SWITCH] = false
        $game_switches[SWITCH_OPEN] = false
        Graphics.freeze
        @spriteBack.visible = false
        @window_item.visible = false
        @spriteSelector.visible = false
        Graphics.transition
      end
    else
      if $game_switches[SWITCH]
        $game_switches[SWITCH] = false
        $game_switches[SWITCH_OPEN] = true
        Graphics.freeze
        @spriteBack.visible = true
        @window_item.visible = true
        @spriteSelector.visible = true
        Graphics.transition
      end
    end
    
    
    update_old
  end
end
 
 
 
#==============================================================================
# ** WindowItemCustom
#------------------------------------------------------------------------------
#==============================================================================
 
class WindowItemCustom < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     w       : Width
  #     h       : Height
  #     c       : Column
  #     r       : Row
  #--------------------------------------------------------------------------
  def initialize(w,h)
    super(0,0,w,h)
    self.contents = Bitmap.new(w - 32, h - 32)
    self.back_opacity = 0
    self.opacity = 0
    self.visible = true
    
    @page = 1
    refresh
  end
  
  def getItem(i)
      return @data[i + (ROW * COL) * (@page - 1)]
  end
  
  def setPage(i)
    @page = i
    refresh
  end
  
  def getPage
    return @page
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    
    
    @data = []
    
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        @data.push($data_items[i])
      end
    end
    
    # If item count is not 0, make a bit map and draw all items
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, ROW * SIZE + 4)
      self.contents.font.size = FONT_SIZE
      index = (ROW * COL) * (@page - 1)
      for i in 0...(ROW * COL)
        if (index+i < @data.size)
          draw_item(index, i)
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(j,index)
    item = @data[j+index]
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    if item.is_a?(RPG::Item) and
       $game_party.item_can_use?(item.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4 + index % COL * (SIZE)
    y = index / COL * SIZE
    bitmap = RPG::Cache.icon(item.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, SIZE, SIZE), opacity)
    self.contents.draw_text(x + 2, y + SIZE - 24, 24, 32, number.to_s, 0)
  end
end



La nouvelle version du script.
J'pense que tu dois pouvoir tout paramétrer comme tu veux avec les Consts en début de script.

ROW, c'est le nombre de ligne ( Donc 2 dans le cas de ton screen ), COL le nombre de colonne ( 5 pour ton screen donc ), PAGE_MAX, le nombre de page à afficher.

Donc si tu veux 1 page de 30 items, tu mets que COL * ROW = 30 ( COL = 5 et ROW = 4 par exemple ), avec PAGE_MAX = 1.

Et de base, le max d'objet est de 99, donc ça gênera pas ^^.


Après, le gros problème de ton système, c'est que si t'as plus d'item que de nombre de slot disponible, les objets n’apparaîtront pas.
( Le joueur les aura bien, mais ils ne pourra pas y accéder. )
Donc si penses y ^^.

( Je prend note de tout les commentaires, même si je n'y répond pas )


loly74 - posté le 09/08/2017 à 17:52:33 (855 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

Citation:

Après, le gros problème de ton système, c'est que si t'as plus d'item que de nombre de slot disponible, les objets n’apparaîtront pas.
( Le joueur les aura bien, mais ils ne pourra pas y accéder. )



Et y a pas moyen de tester une condition pour dire que l'inventaire est plein ?
e instaurant une variable "nombre de slot disponible dans l'inventaire" par exemple ?

Pour la nouvelle version, je teste tout de suite !

Sylvan Melody, c'est par ici ! | Mes Musiques! | Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."


Mack - posté le 09/08/2017 à 23:05:48 (2290 messages postés) - staff

❤ 0

De base non.
Après, je peux facilement te faire un petit truc qui te calcul le nombre d'item différent dans l'inventaire.

EDIT :

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
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#  This class performs map screen processing.
#==============================================================================
 
SIZE = 64
PAGE_MAX = 3
 
ROW = 2
COL = 5
 
X = 0
Y = 0
 
FONT_SIZE = 18
 
SWITCH = 1
SWITCH_OPEN = 2
 
class Scene_Map
  
 
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  alias main_old main
  def main
    
    $game_switches[SWITCH_OPEN] = false
    
    @spriteBack = Sprite.new
    @spriteBack.bitmap = RPG::Cache.picture("back1")
    
    
    @spriteSelector = Sprite.new
    @spriteSelector.bitmap = RPG::Cache.picture("selector")
    
    
    @index = 0
    
    @x = X
    @y = Y
    
    x = 20 + @index % COL * (SIZE)
    y = 20 + @index / COL * (SIZE)
    
    @spriteSelector.x = @x + x
    @spriteSelector.y = @y + y
    
   
    
    @spriteBack.x = @x
    @spriteBack.y = @y
    
    @window_item = WindowItemCustom.new((COL*SIZE)+48,(ROW*SIZE)+48)
    @window_item.x = @x
    @window_item.y = @y
    
    @spriteBack.z = @window_item.z - 1
    @spriteSelector.z = @spriteBack.z + 1
    
    @spriteBack.visible = false
    @window_item.visible = false
    @spriteSelector.visible = false
    
    main_old
    
    @spriteBack.bitmap.dispose
    @spriteBack.dispose
    @spriteSelector.bitmap.dispose
    @spriteSelector.dispose
    @window_item.dispose
    
    
  end
  
  alias update_old update
  def update
    
    if ($game_switches[SWITCH_OPEN]) 
      if Input.repeat?(Input::LEFT)
        if (@index % COL == 0)
           p = @window_item.getPage - 1
          if (p < 1)
            p = PAGE_MAX
          end
          @window_item.setPage(p)
          @spriteBack.bitmap = RPG::Cache.picture("back"+p.to_s)
          @index = (@index + (COL-1)) % (ROW * COL)
        else
          @index = (@index - 1) % (ROW * COL)
        end
      end
      if Input.repeat?(Input::RIGHT)
        if (@index % COL == COL - 1)
          p = @window_item.getPage + 1
          if (p > PAGE_MAX)
            p = 1
          end
          @window_item.setPage(p)
          @spriteBack.bitmap = RPG::Cache.picture("back"+p.to_s)
          @index = (@index - (COL-1)) % (ROW * COL)
        else
          @index = (@index + 1) % (ROW * COL)
        end
      end
      
      if Input.repeat?(Input::UP)
        @index = (@index - COL) % (ROW * COL)
      end
      if Input.repeat?(Input::DOWN)
        @index = (@index + COL) % (ROW * COL)
      end
      
      if Input.trigger?(Input::C)
         # If command event ID is valid
         @item = @window_item.getItem(@index)
        if @item.common_event_id > 0
          $game_switches[SWITCH] = true
          # Command event call reservation
          $game_temp.common_event_id = @item.common_event_id
          # If consumable
          if @item.consumable
            # Decrease used items by 1
            $game_party.lose_item(@item.id, 1)
          end
          @window_item.refresh
        end
      end
        
      x = 20 + @index % COL * (SIZE)
      y = 20 + @index / COL * (SIZE)
      
      @spriteSelector.x = @x + x
      @spriteSelector.y = @y + y
      
      if $game_switches[SWITCH]
        $game_switches[SWITCH] = false
        $game_switches[SWITCH_OPEN] = false
        Graphics.freeze
        @spriteBack.visible = false
        @window_item.visible = false
        @spriteSelector.visible = false
        Graphics.transition
      end
    else
      if $game_switches[SWITCH]
        $game_switches[SWITCH] = false
        $game_switches[SWITCH_OPEN] = true
        Graphics.freeze
        @spriteBack.visible = true
        @window_item.visible = true
        @spriteSelector.visible = true
        Graphics.transition
      end
    end
    
    
    update_old
  end
end
 
 
 
#==============================================================================
# ** WindowItemCustom
#------------------------------------------------------------------------------
#==============================================================================
 
class WindowItemCustom < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     w       : Width
  #     h       : Height
  #     c       : Column
  #     r       : Row
  #--------------------------------------------------------------------------
  def initialize(w,h)
    super(0,0,w,h)
    self.contents = Bitmap.new(w - 32, h - 32)
    self.back_opacity = 0
    self.opacity = 0
    self.visible = true
    
    @page = 1
    refresh
  end
  
  def getItem(i)
      return @data[i + (ROW * COL) * (@page - 1)]
  end
  
  def setPage(i)
    @page = i
    refresh
  end
  
  def getPage
    return @page
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    
    
    @data = []
    
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        @data.push($data_items[i])
      end
    end
    
    # If item count is not 0, make a bit map and draw all items
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, ROW * SIZE + 4)
      self.contents.font.size = FONT_SIZE
      index = (ROW * COL) * (@page - 1)
      for i in 0...(ROW * COL)
        if (index+i < @data.size)
          draw_item(index, i)
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(j,index)
    item = @data[j+index]
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    if item.is_a?(RPG::Item) and
       $game_party.item_can_use?(item.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4 + index % COL * (SIZE)
    y = index / COL * SIZE
    bitmap = RPG::Cache.icon(item.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, SIZE, SIZE), opacity)
    self.contents.draw_text(x + 2, y + SIZE - 24, 24, 32, number.to_s, 0)
  end
end
 
class Game_Party
  def calc_nb_Inventory
    j = 0
    
    for i in 1...$data_items.size
      if ($game_party.item_number(i) > 0)
        j += 1
      end
    end
    
    return j
  end
end



T'as juste à appeler $game_party.calc_nb_Inventory pour avoir le nombre d'item différent que le joueur à.
( Et seulement les items d'ailleurs, ce système n'affiche pas les armes. Si t'en as besoin je te le rajoute )

Ex :

Portion de code : Tout sélectionner

1
$game_variables[X] = $game_party.calc_nb_Inventory


Va donner à la variable X le nombre d'item différent quand tu appelles ce morceau de script.
Le mieux c'est de directement faire tes conditions avec $game_party.calc_nb_Inventory.
Condition, 4 page, Script :

Portion de code : Tout sélectionner

1
$game_party.calc_nb_Inventory <= X


Avec X le nombre max d'item différent.

( Je prend note de tout les commentaires, même si je n'y répond pas )


Ardonie (loly74) - posté le 10/08/2017 à 20:26:54 (855 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

En fait, il faut voir l'inventaire comme celui d'Animal Crossing :

image

certains objets peuvent être mangés, équipés ou utilisés dans d'autres interfaces, mais ils sont tous mélangés dans l'inventaire.

EDIT : est-ce que j'ai une possibilité pour que les icones passent par-dessus les images ?

Sylvan Melody, c'est par ici ! | Mes Musiques! | Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."


Mack - posté le 10/08/2017 à 23:54:39 (2290 messages postés) - staff

❤ 0

Nouvelle version :
https://www.mediafire.com/file/l0yi6dcl19bxw88/Project10.rar
( J'remet une démo car j'ai changé le système pour bloquer le héros. Et j'vais surement le rechanger plus tard, faut juste que je trouve comment. )


Donc, là, les pictures passent entre le fond du menu, et les icons des objets.
Dans ce menu, on a aussi les armes / armures.
Ensuite en appuyant sur C, les objets s’utilisent, même les effets de heal, et si c'est un équipement, il s'équipe.


Après, si je peux me permettre :
Mettre les armes / armures dans ce même menu, je suis pas sur que ça soit pertinent.
Ça va bouffer des slots pour le joueur, perso, j'aurais fait deux menus différents, quitte à faire le menu des équipements soit pas accessible partout.


J'ai aussi fait un petit truc pour pouvoir donner / montrer des items à un PNJ.
En gros, en mettant le switch n°SWITCH_TYPE sur true, puis en activant le switch n°SWITCH, le menu s'ouvre, mais quand on cliqueras sur C, ça enverra l'item sélectionné dans la variable VARIABLE_ITEM.
La fonction $game_party.itemType permet de savoir si l'item sélectionné est un objet, une arme, ou une armure.
( 1 c'est un objet, 2 une arme, et 3 une armure. )
Et la fonction $game_party.itemId renvoie son ID.
T'as un petit exemple dans la démo.


Par contre, je viens de voir un bug, si tu ouvres le menu en face d'un PNJ, et que tu utilises un objets, ça active le PNJ comme si le menu était fermé.
Donc ça sera reglé en même temps que le déplacement du joueur.

EDIT de minuit pile :

Donc le lien à été changé, j'ai corrigé le déplacement, et l'activation des évents dans le menu.

( Je prend note de tout les commentaires, même si je n'y répond pas )


Ardonie (loly74) - posté le 11/08/2017 à 09:52:29 (855 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

Merci Mack, je teste ça !

Et sinon, comment j'peux modifier l'emplacement de la fenêtre pour éviter ce type de souci :
image

Je voudrais décaler la fenêtre et rapprocher les chiffres de l'objet car le curseur les cache.

Sylvan Melody, c'est par ici ! | Mes Musiques! | Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."


Mack - posté le 11/08/2017 à 20:02:06 (2290 messages postés) - staff

❤ 0

Pour la position, tu modifies les constantes X Y.
Pour le nombre d'item, cherches la ligne :

Portion de code : Tout sélectionner

1
self.contents.draw_text(x + 2, y + SIZE - 24, 24, 32, number.to_s, 0)


( Vers 288 )
Et modifie le x + 2.

( Je prend note de tout les commentaires, même si je n'y répond pas )


Ardonie (loly74) - posté le 12/08/2017 à 00:27:21 (855 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

Merci bien ! :D

Je viens d'avoir une illumination : Si je crée mes objets "graines de légumes" dans les armes, elles deviennent alors équipables et je peux m'en servir dans un système de plantation.
Seulement, il y a un petit bug: j'en reçois 12. j'équipe les sacs de graines mais je vois dans l'inventaire que ça passe à 11 graines (j'imagine que la 12e est équipée, bon ok.) quand je m'approche de la terre, une condition demande si l'objet "sac de graine" est équipé, si oui, alors ça me retire 1 sac de graine, y a une petite motte de terre, c'est mignon.
Mais quand je retourne dans l'inventaire, il me reste toujours une graine à la fin, et je n'arrive pas à m'en débarrasser tant qu'elle est équipée.

Sinon, est-ce que tu pourrais me faire un petit plus pour que l'icone de l'objet équipé s'affiche en bas à droite de l'écran ? (au pire, je modifierai les coordonnées)

Et une dernière chose... une idée pour pouvoir équiper 2 objets ? l'un s'utilise avec C et l'autre avec B je crois...

Sylvan Melody, c'est par ici ! | Mes Musiques! | Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."


Mack - posté le 12/08/2017 à 01:37:29 (2290 messages postés) - staff

❤ 0

Yep, j'pense voir pourquoi ça fait ça.

Après, utiliser les armes pour ce genre de truc, je pense pas que ça soit une bonne idée.

J'y penserais à tête reposé demain.

( Je prend note de tout les commentaires, même si je n'y répond pas )


Ardonie (loly74) - posté le 12/08/2017 à 12:58:09 (855 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

Mack a dit:


Après, utiliser les armes pour ce genre de truc, je pense pas que ça soit une bonne idée.


Très franchement, je pense pas non plus ^^' mais c'est tout ce que j'ai trouvé pour le moment.

Sylvan Melody, c'est par ici ! | Mes Musiques! | Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."


Mack - posté le 13/08/2017 à 13:27:12 (2290 messages postés) - staff

❤ 0

Le problème avec les armes, c'est qu'une fois équipé, elles sont stocké complètement à part, et donc elles ne sont plus compté dans l'inventaire, ni quand on essaye de les retirer.

J'ai bidouiller un truc, mais j'me suis dis après coup que ça pouvait poser des problèmes, genre, on peut équiper deux objets ( sur C et B ), et en même temps une arme.

Du coup, j'vais voir pour retourné avec les armes, et simplement permettre de retirer une arme équipé, et de les compter comme si elles étaient dans l'inventaire.

( Je prend note de tout les commentaires, même si je n'y répond pas )


Ardonie (loly74) - posté le 14/08/2017 à 11:09:16 (855 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

Ca me semble être un bon compromis !

Sylvan Melody, c'est par ici ! | Mes Musiques! | Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."


Mack - posté le 16/08/2017 à 09:05:50 (2290 messages postés) - staff

❤ 0

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
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#  This class performs map screen processing.
#==============================================================================
 
SIZE = 64
PAGE_MAX = 3
 
ROW = 2
COL = 5
 
X = 0
Y = 0
 
FONT_SIZE = 18
 
SWITCH = 1
SWITCH_OPEN = 2
SWITCH_TYPE = 3
 
VARIABLE_ITEM = 1
VARIABLE_EQUIP_C = 2
VARIABLE_EQUIP_B = 3
 
class Scene_Map
  
 
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  alias main_old main
  def main
    
    $game_switches[SWITCH_OPEN] = false
    
    @spriteBack = Sprite.new
    @spriteBack.bitmap = RPG::Cache.picture("back1")
    
    
    @spriteSelector = Sprite.new
    @spriteSelector.bitmap = RPG::Cache.picture("selector")
    
    
    @index = 0
    
    @x = X
    @y = Y
    
    x = 20 + @index % COL * (SIZE)
    y = 20 + @index / COL * (SIZE)
    
    @spriteSelector.x = @x + x
    @spriteSelector.y = @y + y
    
   
    
    @spriteBack.x = @x
    @spriteBack.y = @y
    
    @window_item = WindowItemCustom.new((COL*SIZE)+48,(ROW*SIZE)+48)
    @window_item.x = @x
    @window_item.y = @y
    @window_item.z = 201
    
    @spriteBack.z = 1
    @spriteSelector.z = @window_item.z + 1
    
    @spriteBack.visible = false
    @window_item.visible = false
    @spriteSelector.visible = false
    
    main_old
    
    @spriteBack.bitmap.dispose
    @spriteBack.dispose
    @spriteSelector.bitmap.dispose
    @spriteSelector.dispose
    @window_item.dispose
    
    
  end
  
  alias update_old update
  def update
    
    if ($game_switches[SWITCH_OPEN]) 
      if Input.repeat?(Input::LEFT)
        if (@index % COL == 0)
           p = @window_item.getPage - 1
          if (p < 1)
            p = PAGE_MAX
          end
          @window_item.setPage(p)
          @spriteBack.bitmap = RPG::Cache.picture("back"+p.to_s)
          @index = (@index + (COL-1)) % (ROW * COL)
        else
          @index = (@index - 1) % (ROW * COL)
        end
      end
      if Input.repeat?(Input::RIGHT)
        if (@index % COL == COL - 1)
          p = @window_item.getPage + 1
          if (p > PAGE_MAX)
            p = 1
          end
          @window_item.setPage(p)
          @spriteBack.bitmap = RPG::Cache.picture("back"+p.to_s)
          @index = (@index - (COL-1)) % (ROW * COL)
        else
          @index = (@index + 1) % (ROW * COL)
        end
      end
      
      if Input.repeat?(Input::UP)
        @index = (@index - COL) % (ROW * COL)
      end
      if Input.repeat?(Input::DOWN)
        @index = (@index + COL) % (ROW * COL)
      end
      
      if Input.trigger?(Input::C)
        # If command event ID is valid
        @item = @window_item.getItem(@index)
        if ($game_switches[SWITCH_TYPE] == true)
          $game_variables[VARIABLE_ITEM] = @item
          $game_switches[SWITCH] = true
          return
        end
 
         if @item.is_a?(RPG::Item)
           if @item.scope != 0
             for i in $game_party.actors
              used |= i.item_effect(@item)
            end
            if @item.common_event_id > 0
              $game_switches[SWITCH] = true
              # Command event call reservation
              $game_temp.common_event_id = @item.common_event_id
              # If consumable
              if @item.consumable
                # Decrease used items by 1
                $game_party.lose_item(@item.id, 1)
              end
            end
          else
            $game_variables[VARIABLE_EQUIP_C] = @item
          end
          @window_item.refresh
        else
          equip_index = 0
          if (@item.is_a?(RPG::Armor))
            equip_index = 1 + @item.kind
          end
          $game_party.actors[0].equip(equip_index, @item.id)
          $game_system.se_play($data_system.equip_se)
          @window_item.refresh
        end
      end
      
      
      if Input.trigger?(Input::B)
        # If command event ID is valid
        @item = @window_item.getItem(@index)
        if ($game_switches[SWITCH_TYPE] == true)
          $game_variables[VARIABLE_ITEM] = @item
          $game_switches[SWITCH] = true
          return
        end
 
        if @item.is_a?(RPG::Item)
          if @item.scope == 0
            $game_variables[VARIABLE_EQUIP_B] = @item
          end
        end
        @window_item.refresh
      end
        
      x = 20 + @index % COL * (SIZE)
      y = 20 + @index / COL * (SIZE)
      
      @spriteSelector.x = @x + x
      @spriteSelector.y = @y + y
      
      if $game_switches[SWITCH]
        $game_switches[SWITCH] = false
        $game_switches[SWITCH_OPEN] = false
        Graphics.freeze
        @spriteBack.visible = false
        @window_item.visible = false
        @spriteSelector.visible = false
        Graphics.transition
      end
    else
      if $game_switches[SWITCH]
        @window_item.refresh
        $game_switches[SWITCH] = false
        $game_switches[SWITCH_OPEN] = true
        Graphics.freeze
        @spriteBack.visible = true
        @window_item.visible = true
        @spriteSelector.visible = true
        Graphics.transition
      end
    end
    
    
    update_old
  end
end
 
 
 
#==============================================================================
# ** WindowItemCustom
#------------------------------------------------------------------------------
#==============================================================================
 
class WindowItemCustom < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     w       : Width
  #     h       : Height
  #     c       : Column
  #     r       : Row
  #--------------------------------------------------------------------------
  def initialize(w,h)
    super(0,0,w,h)
    self.contents = Bitmap.new(w - 32, h - 32)
    self.back_opacity = 0
    self.opacity = 0
    self.visible = true
    
    @page = 1
    refresh
  end
  
  def getItem(i)
      return @data[i + (ROW * COL) * (@page - 1)]
  end
  
  def setPage(i)
    @page = i
    refresh
  end
  
  def getPage
    return @page
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    
    
    @data = []
    
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        @data.push($data_items[i])
      end
    end
    # Also add weapons and items if outside of battle
    unless $game_temp.in_battle
      for i in 1...$data_weapons.size
        if $game_party.weapon_number(i) > 0
          @data.push($data_weapons[i])
        end
      end
      for i in 1...$data_armors.size
        if $game_party.armor_number(i) > 0
          @data.push($data_armors[i])
        end
      end
    end
    
    # If item count is not 0, make a bit map and draw all items
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, ROW * SIZE + 4)
      self.contents.font.size = FONT_SIZE
      index = (ROW * COL) * (@page - 1)
      for i in 0...(ROW * COL)
        if (index+i < @data.size)
          draw_item(index, i)
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(j,index)
    item = @data[j+index]
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    
    x = 4 + index % COL * (SIZE)
    y = index / COL * SIZE
    bitmap = RPG::Cache.icon(item.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, SIZE, SIZE), opacity)
    self.contents.draw_text(x + 2, y + SIZE - 24, 24, 32, number.to_s, 0)
  end
end
class Game_Player
  alias update_old update
  def update
    if ($game_switches[SWITCH_OPEN])
      return
    end
    update_old
  end
end
class Game_Party
  def calc_nb_Inventory
    j = 0
    
    for i in 1...$data_items.size
      if ($game_party.item_number(i) > 0)
        j += 1
      end
    end
    
    # Also add weapons and items if outside of battle
    unless $game_temp.in_battle
      for i in 1...$data_weapons.size
        if $game_party.weapon_number(i) > 0
          j += 1
        end
      end
      for i in 1...$data_armors.size
        if $game_party.armor_number(i) > 0
          j += 1
        end
      end
    end
    
    return j
  end
  
  def itemType()
    it = $game_variables[VARIABLE_ITEM]
    if (it == 0)
      return 0
    end
    if it.is_a?(RPG::Weapon)
      return 2
    end
    if it.is_a?(RPG::Armor)
      return 3
    end
    return 1
  end
  
  def itemId()
    it = $game_variables[VARIABLE_ITEM]
    if (it == 0)
      return 0
    end
    return it.id
  end
  
  
  def equipCType()
    it = $game_variables[VARIABLE_EQUIP_C]
  
    if (it == 0)
      return 0
    end
    
    if $game_party.item_number(it.id) <= 0
      $game_variables[VARIABLE_EQUIP_C] = 0
      return 0
    end
    
    if it.is_a?(RPG::Weapon)
      return 2
    end
    if it.is_a?(RPG::Armor)
      return 3
    end
    return 1
  end
  
  def equipCId()
    it = $game_variables[VARIABLE_EQUIP_C]
    if (it == 0)
      return 0
    end
    
    if $game_party.item_number(it.id) <= 0
      $game_variables[VARIABLE_EQUIP_C] = 0
      return 0
    end
    return it.id
  end
  
   def equipBType()
    it = $game_variables[VARIABLE_EQUIP_B]
    if (it == 0)
      return 0
    end
    
    if $game_party.item_number(it.id) <= 0
      $game_variables[VARIABLE_EQUIP_B] = 0
      return 0
    end
    
    if it.is_a?(RPG::Weapon)
      return 2
    end
    if it.is_a?(RPG::Armor)
      return 3
    end
    return 1
  end
  
  def equipBId()
    it = $game_variables[VARIABLE_EQUIP_B]
    if (it == 0)
      return 0
    end
    
    if $game_party.item_number(it.id) <= 0
      $game_variables[VARIABLE_EQUIP_B] = 0
      return 0
    end
    return it.id
  end
end



Donc ça marche pareil que pour montrer des items, mais avec les commandes equipCType / equipBType et equipCId / equipBId.

Pour équiper des items, il faut que tu mettes leur cible sur aucune.

Désolé, avec le taf, j'ai pas eu trop le temps :/

( Je prend note de tout les commentaires, même si je n'y répond pas )


Ardonie (loly74) - posté le 19/08/2017 à 18:01:19 (855 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

que veux-tu dire par "mettre la cible sur "aucune" " ?
sinon, pour équiper sur C, il faut appuyer sur C et appuyer sur b pour assigner l'item sur le B, c'est bien ça ?

Sylvan Melody, c'est par ici ! | Mes Musiques! | Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."


Mack - posté le 19/08/2017 à 18:43:55 (2290 messages postés) - staff

❤ 0

Le champ dans la bdd où tu choisis si tu cinle un allié, tout les alliés, un ennemi, tout les ennemis ... Tu prends le premier, celui qui dit que t'as aucune cible.

( Je prend note de tout les commentaires, même si je n'y répond pas )


Ardonie (loly74) - posté le 19/08/2017 à 19:55:51 (855 messages postés) -

❤ 0

Ex Couteau Suisse Agréé

Ah ok ! merci pour cette précision !
Comme je faisais tout en event avant, je ne suis pas une habituée de la BDD.

Sylvan Melody, c'est par ici ! | Mes Musiques! | Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne."

Index du forum > Entraide > [RESOLU] [RM XP] Système d'inventaire custom

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