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

Interviews: Ephy / Tutos: Godot : Premier Contact -Partie (...) / Tutos: Godot : Premier Contact -Partie (...) / Making-of: Ma première game jam classée / Jeux: Oracle of Tao / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

89 connectés actuellement

11011184 visiteurs
depuis l'ouverture

1294 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Hellsoft

Planète Glutko

Le Studio du Chat Vert

RPG Maker VX

Le Temple de Valor

Leo-Games

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [RPG Maker VX Ace] Ajustement fenêtre


Nérylis - posté le 17/02/2016 à 22:54:30 (149 messages postés)

❤ 0

Domaine concerné: Script
Logiciel utilisé: RPG Maker VX Ace
Coucou,

J'ai un petit problème d'interface sur ma démo. Il s'agit de l'interface qui permet de lire les pré-requis nécessaires au port des équipements. Il s'agit du script de Fomar intitulé Equipment Requirements présent dans ma démo que voici : https://www.mediafire.com/download/j0952abf5gaibtb/Ace+menu3.exe

Principe : quand on va dans le menu Equipement avec un personnage, lorsqu'on sélectionne les équipements disponibles, si on appuie sur la touche Ctrl, on accède à une interface sur laquelle on peut voir les conditions pour porter l'équipement en question (ça peut être un niveau minimum par exemple).

Voici ce que j'aimerais changer :

- Est-ce qu'il serait possible que le cadre de l'interface actuelle (encadré en bleu sur ma capture ci-dessous) se retrouve centrée en bas à gauche (suivant le cadre jaune) ?
- Est-ce qu'il serait possible que lorsqu'on switch sur cette interface, il n'y ait pas de transparence avec les autres fenêtres et qu'on puisse conserver le background de la même façon que pour l'interface des sets ?
- Est-ce qu'il serait possible, quand on est sur cette interface, de pouvoir revenir en arrière avec la touche dédiée (ici Ctrl) mais aussi avec la touche Annuler, de la même façon que pour l'interface des sets ?

Capture :

https://www.servimg.com/view/11188066/114

L'interface des sets que je cite comme référence est celle que l'on peut accéder en sélectionnant les équipements orange dans ma démo et en appuyant sur la touche D.

Voilà, si vous avez des questions, n'hésitez pas à me demander.


arttroy - posté le 18/02/2016 à 15:32:11 (2394 messages postés)

❤ 0

Just working

Ok je vois ce que tu veux dire... Ca devrait pas me poser de problèmes ça ^^ C'est juste une histoire d'effacement/affichage de fenêtre et non de transparence pour le second truc que tu veux.

Je te fais ça ce soir en rentrant du taf.

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


Nérylis - posté le 18/02/2016 à 19:58:16 (149 messages postés)

❤ 0

Oki ça marche.


arttroy - posté le 18/02/2016 à 22:40:21 (2394 messages postés)

❤ 0

Just working

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
=begin
Equipment Requirements
by Fomar0153
modified by Zouzaka
Version 1.3
----------------------
Notes
----------------------
Adds a level requirement to equipment.
----------------------
Instructions
----------------------
Notetag the weapons/armors like so:
<levelreq x>
<mhpreq x>
<mmpreq x>
<atkreq x>
<defreq x>
<matreq x>
<mdfreq x>
<agireq x>
<lukreq x>
<switchreq x>
<variablereq x,y>
<wepreq x>
<armreq x>
----------------------
Change Log
----------------------
1.0 -> 1.1 Added stat requirements
          Changed script name from Equipment Level Requirements
          to just Equipment Requirements
1.1 -> 1.2 Added switch and other equipment requirements
1.2 -> 1.3 Ajout D'une Window qui affiche les Conditions requises
          Réduit le script de base de plus de 50 lignes
1.3 -> 1.4 Optimisation et resolution de bug
----------------------
Known bugs
----------------------
None
=end
  #--------------------------------------------------------------------------
  # ● If set to true then it compares the requirement with the actor's base 
  #  stat rather than their current.
  #--------------------------------------------------------------------------
EQUIPREQ_USE_BASE_STAT = true
  #--------------------------------------------------------------------------
  # ● Vocab for switch's 
  #  every switch_id in a different line
  #--------------------------------------------------------------------------
 
Switch_Vocab = {
# Switch_ID => "Vocab",
#2 => "Visiter la Campagne",
}
  #--------------------------------------------------------------------------
  # ● Vocab for variables 
  #  every variable_id in a different line
  #--------------------------------------------------------------------------
 
Variable_Vocab = {
# Variable_ID => "Vocab",
#2 => "Nombre de pierres à casser",
}
 
 
class Game_Actor
  def optimize_equipments
    clear_equipments
    equip_slots.size.times do |i|
      next if !equip_change_ok?(i)
      items = $game_party.equip_items.select do |item|
        item.etype_id == equip_slots[i] &&
        equippable?(item) && item.performance >= 0 && reqstate?(item)
      end
      change_equip(i, items.max_by {|item| item.performance })
    end
  end
  def reqstate?(item)
    unless item == nil
      return false if level < item.levelreq
      return false if reqstat(0) < item.mhpreq
      return false if reqstat(1) < item.mmpreq
      return false if reqstat(2) < item.atkreq
      return false if reqstat(3) < item.defreq
      return false if reqstat(4) < item.matreq
      return false if reqstat(5) < item.mdfreq
      return false if reqstat(6) < item.agireq
      return false if reqstat(7) < item.lukreq
      if item.switchreq > 0
        return false unless $game_switches[item.switchreq]
      end
      if item.variablereq != 0
        return false unless $game_variables[item.variablereq[0]] < item.variablereq[1]
      end
      if item.wepreq > 0
        e = []
        for equip in equips
          e.push(equip.id) if equip.class == RPG::Weapon
        end
        return false unless e.include?(item.wepreq)
      end
      if item.armreq > 0
        e = []
        for equip in equips
          e.push(equip.id) if equip.class == RPG::Armor
        end
        return false unless e.include?(item.armreq)
      end
    end
    return true
  end
  #--------------------------------------------------------------------------
  # ● New Method
  #--------------------------------------------------------------------------
  def reqstat(id)
    EQUIPREQ_USE_BASE_STAT ? param_base(id) : param(id)
  end
end
class Window_EquipItem
  #--------------------------------------------------------------------------
  # ● Check the requirements
  #--------------------------------------------------------------------------
  def enable?(item)
    return @actor.reqstate?(item)
  end
end
module RPG
  #--------------------------------------------------------------------------
  # ● Equip Item is inherited by both Weapon and Armor
  #--------------------------------------------------------------------------
  class EquipItem
    def variablereq
      self.note =~ /<variablereq (.*),(.*)>/i ? [$1.to_i,$2.to_i] : 0
    end
    def levelreq
      self.note =~ /<levelreq (.*)>/i ? $1.to_i : 0
    end
    def mhpreq
      self.note =~ /<mhpreq (.*)>/i ? $1.to_i : 0
    end
    def mmpreq
      self.note =~ /<mmpreq (.*)>/i ? $1.to_i : 0
    end
    def atkreq
      self.note =~ /<atkreq (.*)>/i ? $1.to_i : 0
    end
    def defreq
      self.note =~ /<defreq (.*)>/i ? $1.to_i : 0
    end
    def matreq
      self.note =~ /<matreq (.*)>/i ? $1.to_i : 0
    end
    def mdfreq
      self.note =~ /<mdfreq (.*)>/i ? $1.to_i : 0
    end
    def agireq
      self.note =~ /<agireq (.*)>/i ? $1.to_i : 0
    end
    def lukreq
      self.note =~ /<lukreq (.*)>/i ? $1.to_i : 0
    end
    def switchreq
      self.note =~ /<switchreq (.*)>/i ? $1.to_i : 0
    end
    def wepreq
      self.note =~ /<wepreq (.*)>/i ? $1.to_i : 0
    end
    def armreq
      self.note =~ /<armreq (.*)>/i ? $1.to_i : 0
    end
  end
end
class Window_Requirement < Window_Base
  def initialize(x, y)
    super(x, y, window_width, window_height)#(x, y, Graphics.width/2, Graphics.height)
    self.openness = 0
    self.z = 250
    @item = nil
    @actor = nil
    refresh
  end
  def window_width
    return 326
  end
  def window_height
    return 224
  end
  def reqstat(id)
    EQUIPREQ_USE_BASE_STAT ? @actor.param_base(id) : @actor.param(id)
  end
  def item ; return @item ; end
  def item=(item)
    @item = item
    refresh
  end
  def actor ; return @actor ; end
  def actor=(actor)
    @actor = actor
    refresh
  end
  def update
    super
      refresh
  end
  def refresh
    contents.clear
    @req = ["item.levelreq","item.mhpreq","item.mmpreq","item.atkreq","item.defreq","item.matreq","item.mdfreq","item.agireq","item.lukreq"]#,"item.wepreq","item.armreq"]
    @vocab_req = [Vocab.level,Vocab.param(0),Vocab.param(1),Vocab.param(2),Vocab.param(3),Vocab.param(4),Vocab.param(5),Vocab.param(6),Vocab.param(7)]#,Vocab.weapon,Vocab.armor]
    @req_condition = ["@actor.level","reqstat(0)","reqstat(1)","reqstat(2)","reqstat(3)","reqstat(4)","reqstat(5)","reqstat(6)","reqstat(7)"]
    @t = 2
    change_color(normal_color)
    draw_text(contents.width/8, 0, contents.width, line_height, "Conditions requises")
    @req.each do |req|
      if item != nil && eval(req) != 0 && actor != nil
        eval(@req_condition[@req.index(req)]) < eval(req) ? change_color(text_color(2)) : change_color(normal_color)
        draw_text(0, line_height*@t, contents.width, line_height, @vocab_req[@req.index(req)]+" requis : "+eval(req).to_s)
        @t += 1
      end
    end
    change_color(normal_color)
    if item != nil && item.wepreq != 0 && actor != nil
      e = []
      for equip in @actor.equips 
        if equip.class == RPG::Weapon
          e.push(equip.id)
        end
      end
      change_color(text_color(2)) unless e.include?(item.wepreq)
      draw_text(0, line_height*@t, contents.width, line_height, "Arme requise : "+$data_weapons[item.wepreq].name)
      @t += 1
    end
    change_color(normal_color)
    if item != nil && item.armreq != 0 && actor != nil
      e = []
      for equip in @actor.equips
        e.push(equip.id) if equip.class == RPG::Armor
      end
      change_color(text_color(2)) unless e.include?(item.armreq)
      draw_text(0, line_height*(@t), contents.width, line_height, "Armure requise : "+$data_armors[item.armreq].name)
      @t += 1
    end
    if item && item.switchreq != 0
      $game_switches[item.switchreq] ? change_color(normal_color) : change_color(text_color(2))
      draw_text(0, line_height*(@t), contents.width, line_height, Switch_Vocab[item.switchreq])
      @t += 1
    end
    if item && item.variablereq != 0
      $game_variables[item.variablereq[0]] >= item.variablereq[1] ? change_color(normal_color) : change_color(text_color(2))
      draw_text(0, line_height*(@t), contents.width, line_height, Variable_Vocab[item.variablereq[0]]+" "+$game_variables[item.variablereq[0]].to_s+"/"+item.variablereq[1].to_s)
    end
  end
end
 
#~ #==============================================================================
#~ # ** Scene_Equip
#~ #------------------------------------------------------------------------------
#~ #  This class performs the equipment screen processing.
#~ #==============================================================================
 
class Scene_Equip
  alias :old_start :start
  def start
    old_start
    @window_req = Window_Requirement.new(0,192)#(Graphics.width/4,0)
  end
  alias :old_update :update
  def update
    old_update
    if Input.trigger?(:CTRL)
      if @window_req.openness == 0 && @item_window.active && @item_window.item != nil
        @window_req.item=@item_window.item
        @window_req.actor= @actor
        @background = Sprite.new
        @background.z = 200
        @background.bitmap = Bitmap.new(Graphics.width, Graphics.height)
       # @background.bitmap.fill_rect(0,0,Graphics.width,Graphics.height,Color.new(0, 0, 0,128))
        @window_req.open
        @item_window.deactivate
        @item_window.visible = false
      elsif @window_req.openness == 255
        @background.dispose if @background
        @window_req.close
        @item_window.activate
        @item_window.visible = true
      end
    elsif Input.trigger?(:B)
      if @window_req.openness == 255
        @background.dispose if @background
        @window_req.close
        @item_window.activate
        @item_window.visible = true
      end
    end
  end
end
class Scene_Item < Scene_ItemBase
  alias :old_start :start
  def start
    old_start
    @window_req = Window_Requirement.new(0,192)#(Graphics.width/4,0)
    @window_req.width = 544
  end
  alias :old_update :update
  def update
    old_update
    if Input.trigger?(:CTRL)
      if @window_req.openness == 0 && (@item_window.item.class == RPG::Weapon || @item_window.item.class == RPG::Armor)
        @window_req.item=@item_window.item
        @window_req.actor= @actor
        @background = Sprite.new
        @background.z = 200
        @background.bitmap = Bitmap.new(Graphics.width, Graphics.height)
      #  @background.bitmap.fill_rect(0,0,Graphics.width,Graphics.height,Color.new(0, 0, 0,128))
        @window_req.open
        @item_window.deactivate
        @item_window.visible = false
      elsif @window_req.openness == 255
        @background.dispose if @background
        @window_req.close
        @item_window.activate
        @item_window.visible = true
      end
    elsif Input.trigger?(:B)
      if @window_req.openness == 255
        @background.dispose if @background
        @window_req.close
        @item_window.activate
        @item_window.visible = true
      end
    end
  end
end



Et voilà mission accomplie :lei

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


Nérylis - posté le 19/02/2016 à 15:50:44 (149 messages postés)

❤ 0

Je viens de tester, c'est beaucoup mieux qu'avant. J'ai quelques remarques :

- Est-ce qu'il serait possible d'avoir le son du curseur lorsqu'on appuie sur la touche pour accéder et quitter cette interface ?
- Est-ce qu'il y a une méthode pour centrer "Conditions requises" qui apparait en haut de l'interface ?
- Je ne sais pas si ça te bloque aussi dans ce cas mais lorsqu'on met un certain nombre de conditions, ça sort de la fenêtre. Il faudrait faire un menu déroulant avec les fameuses petites flèches, dans le cas où on a beaucoup de conditions.

Par rapport au fait de pouvoir accéder à cette interface depuis le menu Objets :
- Est-ce qu'il serait possible que la couleur d'écriture soit normale (blanche) pour toutes les conditions ? Parce que dans le menu Objets, on ne fait pas référence à un personnage particulier, donc on ne peut pas dire si les conditions sont vérifiées ou non par rapport à un personnage. C'est plutôt à titre d'information, il faudrait donc une couleur d'écriture normale dans ce cas-là. L'interface des sets d'équipement marche comme ça.


arttroy - posté le 20/02/2016 à 12:12:09 (2394 messages postés)

❤ 0

Just working

1 merci non avant les remarques ? un merci ne coute rien et produit beaucoup ne l'oublie pas ^^.

le son du curseur pas de soucis rajoutes juste

Portion de code : Tout sélectionner

1
Sound.play_cursor



sous les ligne

Portion de code : Tout sélectionner

1
2
 
if @window_req.openness ==



et voilà ce sera réglé (tu en as 6 a rajouter dans le Scene_Equip et le Scene_Item).

Pour l'histoire de couleur de texte regardes ton script à partir de la ligne 216 et modifie tous les endroits où il y a

Portion de code : Tout sélectionner

1
text_color(2)



par

Portion de code : Tout sélectionner

1
normal_color



Pour le reste j'y arrive pas désolé.

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


Sou - posté le 20/02/2016 à 12:23:03 (394 messages postés)

❤ 0

On a jamais assez de munitions

Citation:

1 merci non avant les remarques ? un merci ne coute rien et produit beaucoup ne l'oublie pas ^^.



MERCI ! MERCI Arttroy !
Je me retiens depuis trop longtemps de le lui dire à cet homme du UP permanent!

(oui je passais juste pour exprimer mon soulagement)

Je suis Sou et c'est tout.


Nérylis - posté le 20/02/2016 à 14:11:35 (149 messages postés)

❤ 0

Oui, merci pour ton aide (j'ai l'habitude de le dire à la fin quand tout est ok mais ne t'en fais pas, je n'oublie jamais de remercier ceux et celles qui m'aident).^^

C'est bon pour le son du curseur.

Un truc auquel je n'avais pas fais attention, c'est normal s'il y a un effet de transition quand j'ouvre et ferme l'interface ? Ça ne le fait pas sur les autres interfaces.

Pour les couleurs, j'avais bien repéré le text_color(2). Le souci, c'est qu'il y a deux cas à différencier. Le premier, c'est quand on va dans le menu Equiper où là on doit bien voir les conditions requises atteintes en blanc et les non atteintes en rouge. Le second, c'est quand on va dans le menu Objets où là on doit voir toutes les conditions en blanc car ce menu n'est pas rattaché à un personnage particulier. or là actuellement, la partie du script qui gère les couleurs est commun aux deux cas. Il faudrait séparer mais je ne sais pas comment faire.


arttroy - posté le 21/02/2016 à 13:31:01 (2394 messages postés)

❤ 0

Just working

Ah ok donc il va falloir dupliquer la Window_Requirements et la modifier à convenance pour faire ce que tu veux (en gros on va créer une Window_Requirements_Equip et une Window_Requirements_Item)

Pour ta transition c'est assez simple, c'est dû à cette ligne :

self.openness = 0

et à celle là (elle y est plusieurs fois ) :

@window_req.close

L'ennui c'est qu'il se sert de ça pour détecter l'ouverture de la fenêtre

if @window_req.openness == 0

ou

if @window_req.openness == 255

Donc va falloir modifier ça aussi et honnêtement aujourd'hui j'ai la flemme ('fin disons que la soirée d'hier m'a pas super réussi j'ai mal la tête ^^).

Je te ferais ça demain.

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


Nérylis - posté le 21/02/2016 à 13:39:19 (149 messages postés)

❤ 0

Ok, ça marche. Merci bien. :)

Edit : Ne t'embête pas, il va y avoir un problème de taille d'interface depuis le menu Objets. Donc, je ne vais pas intégrer cette possibilité.
Pour le menu défilant et l'histoire de la transition, je vais demander à une personne qui a réussi à satisfaire ma demande sur l'autre topic.

Merci en tout cas pour ton aide.


arttroy - posté le 24/02/2016 à 15:08:06 (2394 messages postés)

❤ 0

Just working

Il a fait ça comment pour les fenêtres ?? non parce que je suis curieux de savoir ^^

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


Nérylis - posté le 24/02/2016 à 18:06:04 (149 messages postés)

❤ 0

Je te mets le script concerné ci-dessous. Si tu veux essayer le même principe pour voir si tu arrives à un résultat similaire sur le script de ce topic, tu peux mais la personne doit me faire la modif aujourd'hui.

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
#Modif class Scene_Equip
class Scene_Equip < Scene_MenuBase
  
  #Modification de l'update
  alias update_interface update
  def update
    update_interface
    if Input.trigger?(:SHIFT)
      return if !@item_window.active && !@slot_window.active && @status_window.menu == 0
      if @item_window.item != nil && !@slot_window.active && @item_window.visible
        if @status_window.menu == 0
          Sound.play_cursor
        else
          Sound.play_cancel
        end
        switch_info
      end
      if @slot_window.visible && @slot_window.item != nil
        if @status_window.menu == 0
          Sound.play_cursor
        else
          Sound.play_cancel
        end
        switch_info
      end
    elsif Input.trigger?(:UP) && @status_window.menu == 1
      @status_window.upStat
      #@status_window.refresh(@status_window.item_actuel)
    elsif Input.trigger?(:DOWN) && @status_window.menu == 1
      @status_window.downStat
      #@status_window.refresh(@status_window.item_actuel)
    elsif Input.trigger?(:B) && @status_window.menu == 1
      Sound.play_cancel
      switch_info
    end
  end
  
  #Switch vers le menu info
  def switch_info
    if @status_window.menu == 1
      @status_window.menu = 0
      @status_window.ligne_actuel = 0
      @item_window.activate if @item_window.visible
      @slot_window.activate if @slot_window.visible
      item = nil
    else
      @status_window.menu = 1
      if @item_window.visible
        @item_window.deactivate
        item = @item_window.item
      elsif @slot_window.visible
        @slot_window.deactivate
        item = @actor.equips[@slot_window.index]
      end
    end
    @status_window.recreate_contents(item)
  end
  
end
#Modif Window_EquipStatus
class Window_EquipStatus < Window_Base
  
  attr_accessor :menu #Ajout de la variable menu
  attr_reader :ligne_actuel #Ajout de la variable ligne actuel
  
  #Modification Initialisation
  alias initialize_interface initialize
  def initialize(*args)
    @menu = 0
    @ligne_actuel = 0
    initialize_interface(*args)
  end
  
  #Modification de la ligne actuel
  def ligne_actuel=(value)
    @ligne_actuel = [0,[value,@max_ligne-8].min].max
  end
  
  def recreate_contents(item)
    self.oy = 0
    if @menu == 0
      self.padding = 12
      create_contents
    else
      self.padding = 16
    end
    refresh(item)
  end
  
  #Modifiication du refresh
  alias refresh_interface refresh
  def refresh(item = nil)
    if @menu == 0
      refresh_interface
    else
      draw_interface(item)
    end
  end
  
  #Récuperation de l'item_actuel
  def item_actuel
    return @item
  end
  
  #Creation de la fenetre d'info
  def draw_interface(item)
    if item == nil
      create_contents
      draw_text_ex(0, 0, "")
      @max_ligne = 0
      @item = nil
    else
      # compter le nombre de ligne afin de créer le contennts de bonne taille
      @max_ligne = 6
      for i in 0..7
        if item.instance_mult_lvl_bonus(i) != 1 || item.instance_static_lvl_bonus(i) != 0
          @max_ligne += 2
        end
      end
      
      self.contents = Bitmap.new(width - self.padding * 2, @max_ligne * 24)
      
      @item = item
#~      draw_icon(item.icon_index , 0, -@ligne_actuel*24)
#~      contents.font.color = item.rarity_colour
#~      contents.draw_text(24, -88-@ligne_actuel*24, contents.width, contents.height, item.name)
 
      contents.font.color = system_color
      contents.draw_text(0, 0, contents.width, 24, "Niveau :")
      contents.font.color = normal_color
      if item.level != item.max_level
        contents.draw_text(0, 24, contents.width, 24, item.level.to_s + " / " + item.max_level.to_s)
      else
        contents.draw_text(0, 24, contents.width, 24, "-- Max --")
      end
      contents.font.color = system_color
      contents.draw_text(0, 48, contents.width, 24, "Expérience :")
      contents.font.color = normal_color
      if item.level != item.max_level
        contents.draw_text(0, 72, contents.width, 24, item.exp.to_s)
        contents.font.color = normal_color
        contents.draw_text(0, 96, contents.width, 24, item.exp_to_level.to_s)
      else
        contents.draw_text(0, 72, contents.width, 24, "-- Max --")
      end
      contents.font.color = system_color
      contents.draw_text(0, 120, contents.width, 24, "Prochains bonus :")
 
      j = 0
      for i in 0..7
        if item.instance_mult_lvl_bonus(i) != 1 || item.instance_static_lvl_bonus(i) != 0
          next_value = item.params[i]*item.instance_mult_lvl_bonus(i)+item.instance_static_lvl_bonus(i)
          contents.font.color = normal_color
          if item.level != item.max_level
            contents.draw_text(0 , 144 + (48 * j), contents.width, 24, Vocab.param(i))
            contents.font.color = normal_color
            contents.draw_text(0 , 168 + (48 * j), contents.width, 24, item.params[i].to_s+" passe à "+next_value.floor.to_s)
            j += 1
          end
        end
      end
    end
  end
  
  def downStat
    dif = (@max_ligne * 24) - (height - self.padding * 2)
    save_oy = self.oy
    if self.oy + 24 > dif
      self.oy = [dif,0].max
    else
      self.oy += 24
    end
    if save_oy != self.oy
      Sound.play_cursor
    end
  end
  
  def upStat
    save_oy = self.oy
    if self.oy - 24 < 0
      self.oy = 0
    else
      self.oy -= 24
    end
    if save_oy != self.oy
      Sound.play_cursor
    end
  end
  
end




arttroy - posté le 25/02/2016 à 14:58:59 (2394 messages postés)

❤ 0

Just working

Ah ok je vois maintenant, c'est exactement l'idée que j'avais au début et que je ne parvenait pas à faire, faut que je revoie cet aspect des fenêtres. Merci d'avoir pris le temps de remettre le script ici.

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


Nérylis - posté le 25/02/2016 à 18:03:37 (149 messages postés)

❤ 0

La personne en question ne m'a pas fait la modification pour le script du topic. Je veux bien, si tu as du temps, que tu essaies de la faire. En même temps, ça te permettra de voir si tu arrives à reprendre l'idée pour créer l'interface de façon propre.

Sur le script que je te remets ci-dessous, j'ai retiré la partie qui permettait de visualiser l'interface depuis le menu Objets pour les raisons évoquées précédemment. Donc, du coup, il n'y a que à partir du menu Equipement qu'on a accès à cette interface lorsqu'on change d'équipement en appuyant sur la touche Ctrl. Les points à corriger :
- Création du menu déroulant lorsque la liste des pré-requis est longue au point de sortir de la fenêtre.
- Enlever la transition dûe au self.openness pour avoir quelque chose d'instantané.

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
=begin
Equipment Requirements
by Fomar0153
modified by Zouzaka
Version 1.3
----------------------
Notes
----------------------
Adds a level requirement to equipment.
----------------------
Instructions
----------------------
Notetag the weapons/armors like so:
<levelreq x>
<mhpreq x>
<mmpreq x>
<atkreq x>
<defreq x>
<matreq x>
<mdfreq x>
<agireq x>
<lukreq x>
<switchreq x>
<variablereq x,y>
<wepreq x>
<armreq x>
----------------------
Change Log
----------------------
1.0 -> 1.1 Added stat requirements
          Changed script name from Equipment Level Requirements
          to just Equipment Requirements
1.1 -> 1.2 Added switch and other equipment requirements
1.2 -> 1.3 Ajout D'une Window qui affiche les Conditions requises
          Réduit le script de base de plus de 50 lignes
1.3 -> 1.4 Optimisation et resolution de bug
----------------------
Known bugs
----------------------
None
=end
  #--------------------------------------------------------------------------
  # ● If set to true then it compares the requirement with the actor's base 
  #  stat rather than their current.
  #--------------------------------------------------------------------------
EQUIPREQ_USE_BASE_STAT = true
  #--------------------------------------------------------------------------
  # ● Vocab for switch's 
  #  every switch_id in a different line
  #--------------------------------------------------------------------------
 
Switch_Vocab = {
# Switch_ID => "Vocab",
#2 => "Visiter la Campagne",
}
  #--------------------------------------------------------------------------
  # ● Vocab for variables 
  #  every variable_id in a different line
  #--------------------------------------------------------------------------
 
Variable_Vocab = {
# Variable_ID => "Vocab",
#2 => "Nombre de pierres à casser",
}
 
 
class Game_Actor
  def optimize_equipments
    clear_equipments
    equip_slots.size.times do |i|
      next if !equip_change_ok?(i)
      items = $game_party.equip_items.select do |item|
        item.etype_id == equip_slots[i] &&
        equippable?(item) && item.performance >= 0 && reqstate?(item)
      end
      change_equip(i, items.max_by {|item| item.performance })
    end
  end
  def reqstate?(item)
    unless item == nil
      return false if level < item.levelreq
      return false if reqstat(0) < item.mhpreq
      return false if reqstat(1) < item.mmpreq
      return false if reqstat(2) < item.atkreq
      return false if reqstat(3) < item.defreq
      return false if reqstat(4) < item.matreq
      return false if reqstat(5) < item.mdfreq
      return false if reqstat(6) < item.agireq
      return false if reqstat(7) < item.lukreq
      if item.switchreq > 0
        return false unless $game_switches[item.switchreq]
      end
      if item.variablereq != 0
        return false unless $game_variables[item.variablereq[0]] < item.variablereq[1]
      end
      if item.wepreq > 0
        e = []
        for equip in equips
          e.push(equip.id) if equip.class == RPG::Weapon
        end
        return false unless e.include?(item.wepreq)
      end
      if item.armreq > 0
        e = []
        for equip in equips
          e.push(equip.id) if equip.class == RPG::Armor
        end
        return false unless e.include?(item.armreq)
      end
    end
    return true
  end
  #--------------------------------------------------------------------------
  # ● New Method
  #--------------------------------------------------------------------------
  def reqstat(id)
    EQUIPREQ_USE_BASE_STAT ? param_base(id) : param(id)
  end
end
class Window_EquipItem
  #--------------------------------------------------------------------------
  # ● Check the requirements
  #--------------------------------------------------------------------------
  def enable?(item)
    return @actor.reqstate?(item)
  end
end
module RPG
  #--------------------------------------------------------------------------
  # ● Equip Item is inherited by both Weapon and Armor
  #--------------------------------------------------------------------------
  class EquipItem
    def variablereq
      self.note =~ /<variablereq (.*),(.*)>/i ? [$1.to_i,$2.to_i] : 0
    end
    def levelreq
      self.note =~ /<levelreq (.*)>/i ? $1.to_i : 0
    end
    def mhpreq
      self.note =~ /<mhpreq (.*)>/i ? $1.to_i : 0
    end
    def mmpreq
      self.note =~ /<mmpreq (.*)>/i ? $1.to_i : 0
    end
    def atkreq
      self.note =~ /<atkreq (.*)>/i ? $1.to_i : 0
    end
    def defreq
      self.note =~ /<defreq (.*)>/i ? $1.to_i : 0
    end
    def matreq
      self.note =~ /<matreq (.*)>/i ? $1.to_i : 0
    end
    def mdfreq
      self.note =~ /<mdfreq (.*)>/i ? $1.to_i : 0
    end
    def agireq
      self.note =~ /<agireq (.*)>/i ? $1.to_i : 0
    end
    def lukreq
      self.note =~ /<lukreq (.*)>/i ? $1.to_i : 0
    end
    def switchreq
      self.note =~ /<switchreq (.*)>/i ? $1.to_i : 0
    end
    def wepreq
      self.note =~ /<wepreq (.*)>/i ? $1.to_i : 0
    end
    def armreq
      self.note =~ /<armreq (.*)>/i ? $1.to_i : 0
    end
  end
end
class Window_Requirement < Window_Base
  def initialize(x, y)
    super(x, y, window_width, window_height)#(x, y, Graphics.width/2, Graphics.height)
    self.openness = 0
    self.z = 250
    @item = nil
    @actor = nil
    refresh
  end
  def window_width
    return 326
  end
  def window_height
    return 224
  end
  def reqstat(id)
    EQUIPREQ_USE_BASE_STAT ? @actor.param_base(id) : @actor.param(id)
  end
  def item ; return @item ; end
  def item=(item)
    @item = item
    refresh
  end
  def actor ; return @actor ; end
  def actor=(actor)
    @actor = actor
    refresh
  end
  def update
    super
      refresh
  end
  def refresh
    contents.clear
    @req = ["item.levelreq","item.mhpreq","item.mmpreq","item.atkreq","item.defreq","item.matreq","item.mdfreq","item.agireq","item.lukreq"]#,"item.wepreq","item.armreq"]
    @vocab_req = [Vocab.level,Vocab.param(0),Vocab.param(1),Vocab.param(2),Vocab.param(3),Vocab.param(4),Vocab.param(5),Vocab.param(6),Vocab.param(7)]#,Vocab.weapon,Vocab.armor]
    @req_condition = ["@actor.level","reqstat(0)","reqstat(1)","reqstat(2)","reqstat(3)","reqstat(4)","reqstat(5)","reqstat(6)","reqstat(7)"]
    @t = 2
    change_color(normal_color)
    draw_text(contents.width/6, 0, contents.width, line_height, "Conditions requises")
    @req.each do |req|
      if item != nil && eval(req) != 0 && actor != nil
        eval(@req_condition[@req.index(req)]) < eval(req) ? change_color(text_color(2)) : change_color(normal_color)
        draw_text(0, line_height*@t, contents.width, line_height, @vocab_req[@req.index(req)]+" requis : "+eval(req).to_s)
        @t += 1
      end
    end
    change_color(normal_color)
    if item != nil && item.wepreq != 0 && actor != nil
      e = []
      for equip in @actor.equips 
        if equip.class == RPG::Weapon
          e.push(equip.id)
        end
      end
      change_color(text_color(2)) unless e.include?(item.wepreq)
      draw_text(0, line_height*@t, contents.width, line_height, "Arme requise : "+$data_weapons[item.wepreq].name)
      @t += 1
    end
    change_color(normal_color)
    if item != nil && item.armreq != 0 && actor != nil
      e = []
      for equip in @actor.equips
        e.push(equip.id) if equip.class == RPG::Armor
      end
      change_color(text_color(2)) unless e.include?(item.armreq)
      draw_text(0, line_height*(@t), contents.width, line_height, "Armure requise : "+$data_armors[item.armreq].name)
      @t += 1
    end
    if item && item.switchreq != 0
      $game_switches[item.switchreq] ? change_color(normal_color) : change_color(text_color(2))
      draw_text(0, line_height*(@t), contents.width, line_height, Switch_Vocab[item.switchreq])
      @t += 1
    end
    if item && item.variablereq != 0
      $game_variables[item.variablereq[0]] >= item.variablereq[1] ? change_color(normal_color) : change_color(text_color(2))
      draw_text(0, line_height*(@t), contents.width, line_height, Variable_Vocab[item.variablereq[0]]+" "+$game_variables[item.variablereq[0]].to_s+"/"+item.variablereq[1].to_s)
    end
  end
end
 
#~ #==============================================================================
#~ # ** Scene_Equip
#~ #------------------------------------------------------------------------------
#~ #  This class performs the equipment screen processing.
#~ #==============================================================================
 
class Scene_Equip
  alias :old_start :start
  def start
    old_start
    @window_req = Window_Requirement.new(0,192)#(Graphics.width/4,0)
  end
  alias :old_update :update
  def update
    old_update
    if Input.trigger?(:CTRL)
      if @window_req.openness == 0 && @item_window.active && @item_window.item != nil
        Sound.play_cursor
        @window_req.item=@item_window.item
        @window_req.actor= @actor
        @background = Sprite.new
        @background.z = 200
        @background.bitmap = Bitmap.new(Graphics.width, Graphics.height)
       # @background.bitmap.fill_rect(0,0,Graphics.width,Graphics.height,Color.new(0, 0, 0,128))
        @window_req.open
        @item_window.deactivate
        @item_window.visible = false
      elsif @window_req.openness == 255
        Sound.play_cancel
        @background.dispose if @background
        @window_req.close
        @item_window.activate
        @item_window.visible = true
      end
    elsif Input.trigger?(:B)
      if @window_req.openness == 255
        Sound.play_cancel
        @background.dispose if @background
        @window_req.close
        @item_window.activate
        @item_window.visible = true
      end
    end
  end
end




arttroy - posté le 26/02/2016 à 15:03:54 (2394 messages postés)

❤ 0

Just working

Ok je vais voir ce que je peux faire ce soir, cet après midi j'ai lod :clindoeil2

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


Nérylis - posté le 26/02/2016 à 16:22:24 (149 messages postés)

❤ 0

D'ac. J'ai voulu refaire comme pour l'autre interface mais je n'arrive même pas à enlever cette transition.


arttroy - posté le 29/02/2016 à 16:10:34 (2394 messages postés)

❤ 0

Just working

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
=begin
Equipment Requirements
by Fomar0153
modified by Zouzaka
Version 1.3
----------------------
Notes
----------------------
Adds a level requirement to equipment.
----------------------
Instructions
----------------------
Notetag the weapons/armors like so:
<levelreq x>
<mhpreq x>
<mmpreq x>
<atkreq x>
<defreq x>
<matreq x>
<mdfreq x>
<agireq x>
<lukreq x>
<switchreq x>
<variablereq x,y>
<wepreq x>
<armreq x>
----------------------
Change Log
----------------------
1.0 -> 1.1 Added stat requirements
          Changed script name from Equipment Level Requirements
          to just Equipment Requirements
1.1 -> 1.2 Added switch and other equipment requirements
1.2 -> 1.3 Ajout D'une Window qui affiche les Conditions requises
          Réduit le script de base de plus de 50 lignes
1.3 -> 1.4 Optimisation et resolution de bug
----------------------
Known bugs
----------------------
None
=end
  #--------------------------------------------------------------------------
  # ● If set to true then it compares the requirement with the actor's base 
  #  stat rather than their current.
  #--------------------------------------------------------------------------
EQUIPREQ_USE_BASE_STAT = true
  #--------------------------------------------------------------------------
  # ● Vocab for switch's 
  #  every switch_id in a different line
  #--------------------------------------------------------------------------
 
Switch_Vocab = {
# Switch_ID => "Vocab",
#2 => "Visiter la Campagne",
}
  #--------------------------------------------------------------------------
  # ● Vocab for variables 
  #  every variable_id in a different line
  #--------------------------------------------------------------------------
 
Variable_Vocab = {
# Variable_ID => "Vocab",
#2 => "Nombre de pierres à casser",
}
 
 
class Game_Actor
  def optimize_equipments
    clear_equipments
    equip_slots.size.times do |i|
      next if !equip_change_ok?(i)
      items = $game_party.equip_items.select do |item|
        item.etype_id == equip_slots[i] &&
        equippable?(item) && item.performance >= 0 && reqstate?(item)
      end
      change_equip(i, items.max_by {|item| item.performance })
    end
  end
  def reqstate?(item)
    unless item == nil
      return false if level < item.levelreq
      return false if reqstat(0) < item.mhpreq
      return false if reqstat(1) < item.mmpreq
      return false if reqstat(2) < item.atkreq
      return false if reqstat(3) < item.defreq
      return false if reqstat(4) < item.matreq
      return false if reqstat(5) < item.mdfreq
      return false if reqstat(6) < item.agireq
      return false if reqstat(7) < item.lukreq
      if item.switchreq > 0
        return false unless $game_switches[item.switchreq]
      end
      if item.variablereq != 0
        return false unless $game_variables[item.variablereq[0]] < item.variablereq[1]
      end
      if item.wepreq > 0
        e = []
        for equip in equips
          e.push(equip.id) if equip.class == RPG::Weapon
        end
        return false unless e.include?(item.wepreq)
      end
      if item.armreq > 0
        e = []
        for equip in equips
          e.push(equip.id) if equip.class == RPG::Armor
        end
        return false unless e.include?(item.armreq)
      end
    end
    return true
  end
  #--------------------------------------------------------------------------
  # ● New Method
  #--------------------------------------------------------------------------
  def reqstat(id)
    EQUIPREQ_USE_BASE_STAT ? param_base(id) : param(id)
  end
end
class Window_EquipItem
  #--------------------------------------------------------------------------
  # ● Check the requirements
  #--------------------------------------------------------------------------
  def enable?(item)
    return @actor.reqstate?(item)
  end
end
module RPG
  #--------------------------------------------------------------------------
  # ● Equip Item is inherited by both Weapon and Armor
  #--------------------------------------------------------------------------
  class EquipItem
    def variablereq
      self.note =~ /<variablereq (.*),(.*)>/i ? [$1.to_i,$2.to_i] : 0
    end
    def levelreq
      self.note =~ /<levelreq (.*)>/i ? $1.to_i : 0
    end
    def mhpreq
      self.note =~ /<mhpreq (.*)>/i ? $1.to_i : 0
    end
    def mmpreq
      self.note =~ /<mmpreq (.*)>/i ? $1.to_i : 0
    end
    def atkreq
      self.note =~ /<atkreq (.*)>/i ? $1.to_i : 0
    end
    def defreq
      self.note =~ /<defreq (.*)>/i ? $1.to_i : 0
    end
    def matreq
      self.note =~ /<matreq (.*)>/i ? $1.to_i : 0
    end
    def mdfreq
      self.note =~ /<mdfreq (.*)>/i ? $1.to_i : 0
    end
    def agireq
      self.note =~ /<agireq (.*)>/i ? $1.to_i : 0
    end
    def lukreq
      self.note =~ /<lukreq (.*)>/i ? $1.to_i : 0
    end
    def switchreq
      self.note =~ /<switchreq (.*)>/i ? $1.to_i : 0
    end
    def wepreq
      self.note =~ /<wepreq (.*)>/i ? $1.to_i : 0
    end
    def armreq
      self.note =~ /<armreq (.*)>/i ? $1.to_i : 0
    end
  end
end
class Window_Requirement < Window_Base
  def initialize(x, y)
    super(x, y, window_width, window_height)#(x, y, Graphics.width/2, Graphics.height)
    self.visible = false
    self.z = 250
    @item = nil
    @actor = nil
    refresh
  end
  def window_width
    return 326
  end
  def window_height
    return 224
  end
  def reqstat(id)
    EQUIPREQ_USE_BASE_STAT ? @actor.param_base(id) : @actor.param(id)
  end
  def item ; return @item ; end
  def item=(item)
    @item = item
    refresh
  end
  def actor ; return @actor ; end
  def actor=(actor)
    @actor = actor
    refresh
  end
  def update
    super
      refresh
  end
  def refresh
    contents.clear
    @req = ["item.levelreq","item.mhpreq","item.mmpreq","item.atkreq","item.defreq","item.matreq","item.mdfreq","item.agireq","item.lukreq"]#,"item.wepreq","item.armreq"]
    @vocab_req = [Vocab.level,Vocab.param(0),Vocab.param(1),Vocab.param(2),Vocab.param(3),Vocab.param(4),Vocab.param(5),Vocab.param(6),Vocab.param(7)]#,Vocab.weapon,Vocab.armor]
    @req_condition = ["@actor.level","reqstat(0)","reqstat(1)","reqstat(2)","reqstat(3)","reqstat(4)","reqstat(5)","reqstat(6)","reqstat(7)"]
    @t = 2
    change_color(normal_color)
    draw_text(contents.width/6, 0, contents.width, line_height, "Conditions requises")
    @req.each do |req|
      if item != nil && eval(req) != 0 && actor != nil
        eval(@req_condition[@req.index(req)]) < eval(req) ? change_color(text_color(2)) : change_color(normal_color)
        draw_text(0, line_height*@t, contents.width, line_height, @vocab_req[@req.index(req)]+" requis : "+eval(req).to_s)
        @t += 1
      end
    end
    change_color(normal_color)
    if item != nil && item.wepreq != 0 && actor != nil
      e = []
      for equip in @actor.equips 
        if equip.class == RPG::Weapon
          e.push(equip.id)
        end
      end
      change_color(text_color(2)) unless e.include?(item.wepreq)
      draw_text(0, line_height*@t, contents.width, line_height, "Arme requise : "+$data_weapons[item.wepreq].name)
      @t += 1
    end
    change_color(normal_color)
    if item != nil && item.armreq != 0 && actor != nil
      e = []
      for equip in @actor.equips
        e.push(equip.id) if equip.class == RPG::Armor
      end
      change_color(text_color(2)) unless e.include?(item.armreq)
      draw_text(0, line_height*(@t), contents.width, line_height, "Armure requise : "+$data_armors[item.armreq].name)
      @t += 1
    end
    if item && item.switchreq != 0
      $game_switches[item.switchreq] ? change_color(normal_color) : change_color(text_color(2))
      draw_text(0, line_height*(@t), contents.width, line_height, Switch_Vocab[item.switchreq])
      @t += 1
    end
    if item && item.variablereq != 0
      $game_variables[item.variablereq[0]] >= item.variablereq[1] ? change_color(normal_color) : change_color(text_color(2))
      draw_text(0, line_height*(@t), contents.width, line_height, Variable_Vocab[item.variablereq[0]]+" "+$game_variables[item.variablereq[0]].to_s+"/"+item.variablereq[1].to_s)
    end
  end
end
 
#~ #==============================================================================
#~ # ** Scene_Equip
#~ #------------------------------------------------------------------------------
#~ #  This class performs the equipment screen processing.
#~ #==============================================================================
 
class Scene_Equip
  alias :old_start :start
  def start
    old_start
    @window_req = Window_Requirement.new(0,192)#(Graphics.width/4,0)
  end
  alias :old_update :update
  def update
    old_update
    if Input.trigger?(:CTRL)
      if @window_req.visible == false && @item_window.active && @item_window.item != nil
        Sound.play_cursor
        @window_req.item=@item_window.item
        @window_req.actor= @actor
        @background = Sprite.new
        @background.z = 200
        @background.bitmap = Bitmap.new(Graphics.width, Graphics.height)
       # @background.bitmap.fill_rect(0,0,Graphics.width,Graphics.height,Color.new(0, 0, 0,128))
        @window_req.visible = true
        @item_window.deactivate
        @item_window.visible = false
      elsif @window_req.visible == true
        Sound.play_cancel
        @background.dispose if @background
        @window_req.visible = false
        @item_window.activate
        @item_window.visible = true
      end
    elsif Input.trigger?(:B)
      if @window_req.visible == true
        Sound.play_cancel
        @background.dispose if @background
        @window_req.visible = false
        @item_window.activate
        @item_window.visible = true
      end
    end
  end
end



Là déjà tu as plus ton souci d'ouverture/fermeture de fenetre ^^. Pour le reste j'y comprend que dalle... Y'a des fonctions qu'il utilise nulle part dans le script... Il a fait des modifications ailleurs?

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


Nérylis - posté le 29/02/2016 à 20:06:06 (149 messages postés)

❤ 0

Non, il a juste modifié le script que j'ai mis plus haut. Il me semble que c'est le "DownStat" et le "UpStat" qui gèrent le défilement, non ? On les retrouve lignes 27 et 30, et aussi à la fin.


arttroy - posté le 29/02/2016 à 21:45:30 (2394 messages postés)

❤ 0

Just working

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
=begin
Equipment Requirements
by Fomar0153
modified by Zouzaka
Version 1.3
----------------------
Notes
----------------------
Adds a level requirement to equipment.
----------------------
Instructions
----------------------
Notetag the weapons/armors like so:
<levelreq x>
<mhpreq x>
<mmpreq x>
<atkreq x>
<defreq x>
<matreq x>
<mdfreq x>
<agireq x>
<lukreq x>
<switchreq x>
<variablereq x,y>
<wepreq x>
<armreq x>
----------------------
Change Log
----------------------
1.0 -> 1.1 Added stat requirements
          Changed script name from Equipment Level Requirements
          to just Equipment Requirements
1.1 -> 1.2 Added switch and other equipment requirements
1.2 -> 1.3 Ajout D'une Window qui affiche les Conditions requises
          Réduit le script de base de plus de 50 lignes
1.3 -> 1.4 Optimisation et resolution de bug
----------------------
Known bugs
----------------------
None
=end
  #--------------------------------------------------------------------------
  # ● If set to true then it compares the requirement with the actor's base 
  #  stat rather than their current.
  #--------------------------------------------------------------------------
EQUIPREQ_USE_BASE_STAT = true
  #--------------------------------------------------------------------------
  # ● Vocab for switch's 
  #  every switch_id in a different line
  #--------------------------------------------------------------------------
 
Switch_Vocab = {
# Switch_ID => "Vocab",
#2 => "Visiter la Campagne",
}
  #--------------------------------------------------------------------------
  # ● Vocab for variables 
  #  every variable_id in a different line
  #--------------------------------------------------------------------------
 
Variable_Vocab = {
# Variable_ID => "Vocab",
#2 => "Nombre de pierres à casser",
}
 
 
class Game_Actor
  def optimize_equipments
    clear_equipments
    equip_slots.size.times do |i|
      next if !equip_change_ok?(i)
      items = $game_party.equip_items.select do |item|
        item.etype_id == equip_slots[i] &&
        equippable?(item) && item.performance >= 0 && reqstate?(item)
      end
      change_equip(i, items.max_by {|item| item.performance })
    end
  end
  def reqstate?(item)
    unless item == nil
      return false if level < item.levelreq
      return false if reqstat(0) < item.mhpreq
      return false if reqstat(1) < item.mmpreq
      return false if reqstat(2) < item.atkreq
      return false if reqstat(3) < item.defreq
      return false if reqstat(4) < item.matreq
      return false if reqstat(5) < item.mdfreq
      return false if reqstat(6) < item.agireq
      return false if reqstat(7) < item.lukreq
      if item.switchreq > 0
        return false unless $game_switches[item.switchreq]
      end
      if item.variablereq != 0
        return false unless $game_variables[item.variablereq[0]] < item.variablereq[1]
      end
      if item.wepreq > 0
        e = []
        for equip in equips
          e.push(equip.id) if equip.class == RPG::Weapon
        end
        return false unless e.include?(item.wepreq)
      end
      if item.armreq > 0
        e = []
        for equip in equips
          e.push(equip.id) if equip.class == RPG::Armor
        end
        return false unless e.include?(item.armreq)
      end
    end
    return true
  end
  #--------------------------------------------------------------------------
  # ● New Method
  #--------------------------------------------------------------------------
  def reqstat(id)
    EQUIPREQ_USE_BASE_STAT ? param_base(id) : param(id)
  end
end
class Window_EquipItem
  #--------------------------------------------------------------------------
  # ● Check the requirements
  #--------------------------------------------------------------------------
  def enable?(item)
    return @actor.reqstate?(item)
  end
end
module RPG
  #--------------------------------------------------------------------------
  # ● Equip Item is inherited by both Weapon and Armor
  #--------------------------------------------------------------------------
  class EquipItem
    def variablereq
      self.note =~ /<variablereq (.*),(.*)>/i ? [$1.to_i,$2.to_i] : 0
    end
    def levelreq
      self.note =~ /<levelreq (.*)>/i ? $1.to_i : 0
    end
    def mhpreq
      self.note =~ /<mhpreq (.*)>/i ? $1.to_i : 0
    end
    def mmpreq
      self.note =~ /<mmpreq (.*)>/i ? $1.to_i : 0
    end
    def atkreq
      self.note =~ /<atkreq (.*)>/i ? $1.to_i : 0
    end
    def defreq
      self.note =~ /<defreq (.*)>/i ? $1.to_i : 0
    end
    def matreq
      self.note =~ /<matreq (.*)>/i ? $1.to_i : 0
    end
    def mdfreq
      self.note =~ /<mdfreq (.*)>/i ? $1.to_i : 0
    end
    def agireq
      self.note =~ /<agireq (.*)>/i ? $1.to_i : 0
    end
    def lukreq
      self.note =~ /<lukreq (.*)>/i ? $1.to_i : 0
    end
    def switchreq
      self.note =~ /<switchreq (.*)>/i ? $1.to_i : 0
    end
    def wepreq
      self.note =~ /<wepreq (.*)>/i ? $1.to_i : 0
    end
    def armreq
      self.note =~ /<armreq (.*)>/i ? $1.to_i : 0
    end
  end
end
class Window_Requirement < Window_Base
  def initialize(x, y)
    super(x, y, window_width, window_height)#(x, y, Graphics.width/2, Graphics.height)
    self.visible = false
    self.z = 250
    @item = nil
    @actor = nil
    @max_ligne = 0
    refresh
  end
  def window_width
    return 326
  end
  def window_height
    return 224
  end
  def reqstat(id)
    EQUIPREQ_USE_BASE_STAT ? @actor.param_base(id) : @actor.param(id)
  end
  def item ; return @item ; end
  def item=(item)
    @item = item
    refresh
  end
  def actor ; return @actor ; end
  def actor=(actor)
    @actor = actor
    refresh
  end
  def update
    super
      refresh
  end
  def refresh
    contents.clear
    @req = ["item.levelreq","item.mhpreq","item.mmpreq","item.atkreq","item.defreq","item.matreq","item.mdfreq","item.agireq","item.lukreq"]#,"item.wepreq","item.armreq"]
    @vocab_req = [Vocab.level,Vocab.param(0),Vocab.param(1),Vocab.param(2),Vocab.param(3),Vocab.param(4),Vocab.param(5),Vocab.param(6),Vocab.param(7)]#,Vocab.weapon,Vocab.armor]
    @req_condition = ["@actor.level","reqstat(0)","reqstat(1)","reqstat(2)","reqstat(3)","reqstat(4)","reqstat(5)","reqstat(6)","reqstat(7)"]
    @t = 2
    change_color(normal_color)
    draw_text(contents.width/6, 0, contents.width, line_height, "Conditions requises")
    @req.each do |req|
      if item != nil && eval(req) != 0 && actor != nil
        eval(@req_condition[@req.index(req)]) < eval(req) ? change_color(text_color(2)) : change_color(normal_color)
        draw_text(0, line_height*@t, contents.width, line_height, @vocab_req[@req.index(req)]+" requis : "+eval(req).to_s)
        @t += 1
      end
    end
    change_color(normal_color)
    if item != nil && item.wepreq != 0 && actor != nil
      @max_ligne = 1
      e = []
      for equip in @actor.equips 
        if equip.class == RPG::Weapon
          e.push(equip.id)
        end
      end
      change_color(text_color(2)) unless e.include?(item.wepreq)
      draw_text(0, line_height*@t, contents.width, line_height, "Arme requise : "+$data_weapons[item.wepreq].name)
      @t += 1
    end
    change_color(normal_color)
    if item != nil && item.armreq != 0 && actor != nil
      @max_ligne = 2
      e = []
      for equip in @actor.equips
        e.push(equip.id) if equip.class == RPG::Armor
      end
      change_color(text_color(2)) unless e.include?(item.armreq)
      draw_text(0, line_height*(@t), contents.width, line_height, "Armure requise : "+$data_armors[item.armreq].name)
      @t += 1
    end
    if item && item.switchreq != 0
      @max_ligne = 3
      $game_switches[item.switchreq] ? change_color(normal_color) : change_color(text_color(2))
      draw_text(0, line_height*(@t), contents.width, line_height, Switch_Vocab[item.switchreq])
      @t += 1
    end
    if item && item.variablereq != 0
      @max_ligne = 4
      $game_variables[item.variablereq[0]] >= item.variablereq[1] ? change_color(normal_color) : change_color(text_color(2))
      draw_text(0, line_height*(@t), contents.width, line_height, Variable_Vocab[item.variablereq[0]]+" "+$game_variables[item.variablereq[0]].to_s+"/"+item.variablereq[1].to_s)
    end
  end
  
  def downStat
    dif = (@max_ligne * 24) - (height - self.padding * 2)
    save_oy = self.oy
    if self.oy + 24 > dif
      self.oy = [dif,0].max
    else
      self.oy += 24
    end
    if save_oy != self.oy
      Sound.play_cursor
    end
  end
  
  def upStat
    save_oy = self.oy
    if self.oy - 24 < 0
      self.oy = 0
    else
      self.oy -= 24
    end
    if save_oy != self.oy
      Sound.play_cursor
    end
  end
 
end
 
#~ #==============================================================================
#~ # ** Scene_Equip
#~ #------------------------------------------------------------------------------
#~ #  This class performs the equipment screen processing.
#~ #==============================================================================
 
class Scene_Equip
  alias :old_start :start
  def start
    old_start
    @window_req = Window_Requirement.new(0,192)#(Graphics.width/4,0)
  end
  alias :old_update :update
  def update
    old_update
    if Input.trigger?(:CTRL)
      if @window_req.visible == false && @item_window.active && @item_window.item != nil
        Sound.play_cursor
        @window_req.item=@item_window.item
        @window_req.actor= @actor
        @background = Sprite.new
        @background.z = 200
        @background.bitmap = Bitmap.new(Graphics.width, Graphics.height)
       # @background.bitmap.fill_rect(0,0,Graphics.width,Graphics.height,Color.new(0, 0, 0,128))
        @window_req.visible = true
        @item_window.deactivate
        @item_window.visible = false
      elsif @window_req.visible == true
        Sound.play_cancel
        @background.dispose if @background
        @window_req.visible = false
        @item_window.activate
        @item_window.visible = true
      end
    elsif Input.trigger?(:B)
      if @window_req.visible == true
        Sound.play_cancel
        @background.dispose if @background
        @window_req.visible = false
        @item_window.activate
        @item_window.visible = true
      end
    elsif Input.trigger?(:UP) && @window_req.visible == true
      @window_req.upStat
    elsif Input.trigger?(:DOWN) && @window_req.visible == true
      @window_req.downStat
    end
  end
end



Voilà normalement c'est bon mais je n'ai pas pu tester parce que j'ai pas trouvé d'objet avec assez de trucs a afficher... Dis moi si c'est bon.

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


Nérylis - posté le 29/02/2016 à 21:56:33 (149 messages postés)

❤ 0

Je viens de tester, je n'ai pas vu de changement. Pour la transition, pas de soucis. Mais pas de défilement.

Tu peux configurer un équipement en ajoutant 4-5 conditions en notetag comme par exemple :
<mhpreq 50>
<mmpreq 50>
<atkreq 10>
<defreq 10>
<matreq 10>
<mdfreq 10>
<agireq 10>
<lukreq 10>

Dans le script qui sert d'exemple, il y a un def recreate_contents à la ligne 79 avec le self.oy, ça a sans doute un rapport, non ?

Edit : Voici la solution.^^

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
=begin
Equipment Requirements
by Fomar0153
modified by Zouzaka
Version 1.3
----------------------
Notes
----------------------
Adds a level requirement to equipment.
----------------------
Instructions
----------------------
Notetag the weapons/armors like so:
<levelreq x>
<mhpreq x>
<mmpreq x>
<atkreq x>
<defreq x>
<matreq x>
<mdfreq x>
<agireq x>
<lukreq x>
<switchreq x>
<variablereq x,y>
<wepreq x>
<armreq x>
----------------------
Change Log
----------------------
1.0 -> 1.1 Added stat requirements
          Changed script name from Equipment Level Requirements
          to just Equipment Requirements
1.1 -> 1.2 Added switch and other equipment requirements
1.2 -> 1.3 Ajout D'une Window qui affiche les Conditions requises
          Réduit le script de base de plus de 50 lignes
1.3 -> 1.4 Optimisation et resolution de bug
----------------------
Known bugs
----------------------
None
=end
  #--------------------------------------------------------------------------
  # ● If set to true then it compares the requirement with the actor's base 
  #  stat rather than their current.
  #--------------------------------------------------------------------------
EQUIPREQ_USE_BASE_STAT = true
  #--------------------------------------------------------------------------
  # ● Vocab for switch's 
  #  every switch_id in a different line
  #--------------------------------------------------------------------------
 
Switch_Vocab = {
# Switch_ID => "Vocab",
#2 => "Visiter la Campagne",
}
  #--------------------------------------------------------------------------
  # ● Vocab for variables 
  #  every variable_id in a different line
  #--------------------------------------------------------------------------
 
Variable_Vocab = {
# Variable_ID => "Vocab",
#2 => "Nombre de pierres à casser",
}
 
 
class Game_Actor
  def optimize_equipments
    clear_equipments
    equip_slots.size.times do |i|
      next if !equip_change_ok?(i)
      items = $game_party.equip_items.select do |item|
        item.etype_id == equip_slots[i] &&
        equippable?(item) && item.performance >= 0 && reqstate?(item)
      end
      change_equip(i, items.max_by {|item| item.performance })
    end
  end
  def reqstate?(item)
    unless item == nil
      return false if level < item.levelreq
      return false if reqstat(0) < item.mhpreq
      return false if reqstat(1) < item.mmpreq
      return false if reqstat(2) < item.atkreq
      return false if reqstat(3) < item.defreq
      return false if reqstat(4) < item.matreq
      return false if reqstat(5) < item.mdfreq
      return false if reqstat(6) < item.agireq
      return false if reqstat(7) < item.lukreq
      if item.switchreq > 0
        return false unless $game_switches[item.switchreq]
      end
      if item.variablereq != 0
        return false unless $game_variables[item.variablereq[0]] < item.variablereq[1]
      end
      if item.wepreq > 0
        e = []
        for equip in equips
          e.push(equip.id) if equip.class == RPG::Weapon
        end
        return false unless e.include?(item.wepreq)
      end
      if item.armreq > 0
        e = []
        for equip in equips
          e.push(equip.id) if equip.class == RPG::Armor
        end
        return false unless e.include?(item.armreq)
      end
    end
    return true
  end
  #--------------------------------------------------------------------------
  # ● New Method
  #--------------------------------------------------------------------------
  def reqstat(id)
    EQUIPREQ_USE_BASE_STAT ? param_base(id) : param(id)
  end
end
class Window_EquipItem
  #--------------------------------------------------------------------------
  # ● Check the requirements
  #--------------------------------------------------------------------------
  def enable?(item)
    return @actor.reqstate?(item)
  end
end
module RPG
  #--------------------------------------------------------------------------
  # ● Equip Item is inherited by both Weapon and Armor
  #--------------------------------------------------------------------------
  class EquipItem
    def variablereq
      self.note =~ /<variablereq (.*),(.*)>/i ? [$1.to_i,$2.to_i] : 0
    end
    def levelreq
      self.note =~ /<levelreq (.*)>/i ? $1.to_i : 0
    end
    def mhpreq
      self.note =~ /<mhpreq (.*)>/i ? $1.to_i : 0
    end
    def mmpreq
      self.note =~ /<mmpreq (.*)>/i ? $1.to_i : 0
    end
    def atkreq
      self.note =~ /<atkreq (.*)>/i ? $1.to_i : 0
    end
    def defreq
      self.note =~ /<defreq (.*)>/i ? $1.to_i : 0
    end
    def matreq
      self.note =~ /<matreq (.*)>/i ? $1.to_i : 0
    end
    def mdfreq
      self.note =~ /<mdfreq (.*)>/i ? $1.to_i : 0
    end
    def agireq
      self.note =~ /<agireq (.*)>/i ? $1.to_i : 0
    end
    def lukreq
      self.note =~ /<lukreq (.*)>/i ? $1.to_i : 0
    end
    def switchreq
      self.note =~ /<switchreq (.*)>/i ? $1.to_i : 0
    end
    def wepreq
      self.note =~ /<wepreq (.*)>/i ? $1.to_i : 0
    end
    def armreq
      self.note =~ /<armreq (.*)>/i ? $1.to_i : 0
    end
  end
end
class Window_Requirement < Window_Base
  def initialize(x, y)
    super(x, y, window_width, window_height)#(x, y, Graphics.width/2, Graphics.height)
    #self.openness = 0
    self.visible = false
    self.z = 250
    @item = nil
    @actor = nil
    self.padding = 16
    refresh
  end
  def window_width
    return 326
  end
  def window_height
    return 224
  end
  def reqstat(id)
    EQUIPREQ_USE_BASE_STAT ? @actor.param_base(id) : @actor.param(id)
  end
  def item ; return @item ; end
  def item=(item)
    @item = item
    refresh
  end
  def actor ; return @actor ; end
  def actor=(actor)
    @actor = actor
    refresh
  end
  def update
    super
    #refresh
  end
  def refresh
    self.oy = 0
    @req = ["item.levelreq","item.mhpreq","item.mmpreq","item.atkreq","item.defreq","item.matreq","item.mdfreq","item.agireq","item.lukreq"]#,"item.wepreq","item.armreq"]
    @vocab_req = [Vocab.level,Vocab.param(0),Vocab.param(1),Vocab.param(2),Vocab.param(3),Vocab.param(4),Vocab.param(5),Vocab.param(6),Vocab.param(7)]#,Vocab.weapon,Vocab.armor]
    @req_condition = ["@actor.level","reqstat(0)","reqstat(1)","reqstat(2)","reqstat(3)","reqstat(4)","reqstat(5)","reqstat(6)","reqstat(7)"]
    
    
    # Calculer la taille du contenu
    @t = 2
    @req.each do |req|
      if item != nil && eval(req) != 0 && actor != nil
        @t += 1
      end
    end
    if item != nil && item.wepreq != 0 && actor != nil
      @t += 1
    end
    if item != nil && item.armreq != 0 && actor != nil
      @t += 1
    end
    if item && item.switchreq != 0
      @t += 1
    end
    if item && item.variablereq != 0
      @t += 1
    end
    
    self.contents = Bitmap.new(width - self.padding * 2, @t * line_height)
    
    change_color(system_color)
    draw_text(contents.width/6, 0, contents.width, line_height, "Conditions requises")
    @t = 2
    @req.each do |req|
      if item != nil && eval(req) != 0 && actor != nil
        eval(@req_condition[@req.index(req)]) < eval(req) ? change_color(text_color(2)) : change_color(normal_color)
        draw_text(0, line_height*@t, contents.width, line_height, @vocab_req[@req.index(req)]+" requis : "+eval(req).to_s)
        @t += 1
      end
    end
    change_color(normal_color)
    if item != nil && item.wepreq != 0 && actor != nil
      e = []
      for equip in @actor.equips 
        if equip.class == RPG::Weapon
          e.push(equip.id)
        end
      end
      change_color(text_color(2)) unless e.include?(item.wepreq)
      draw_text(0, line_height*@t, contents.width, line_height, "Arme requise : "+$data_weapons[item.wepreq].name)
      @t += 1
    end
    change_color(normal_color)
    if item != nil && item.armreq != 0 && actor != nil
      e = []
      for equip in @actor.equips
        e.push(equip.id) if equip.class == RPG::Armor
      end
      change_color(text_color(2)) unless e.include?(item.armreq)
      draw_text(0, line_height*(@t), contents.width, line_height, "Armure requise : "+$data_armors[item.armreq].name)
      @t += 1
    end
    if item && item.switchreq != 0
      $game_switches[item.switchreq] ? change_color(normal_color) : change_color(text_color(2))
      draw_text(0, line_height*(@t), contents.width, line_height, Switch_Vocab[item.switchreq])
      @t += 1
    end
    if item && item.variablereq != 0
      $game_variables[item.variablereq[0]] >= item.variablereq[1] ? change_color(normal_color) : change_color(text_color(2))
      draw_text(0, line_height*(@t), contents.width, line_height, Variable_Vocab[item.variablereq[0]]+" "+$game_variables[item.variablereq[0]].to_s+"/"+item.variablereq[1].to_s)
    end
  end
  
  def downStat
    dif = (@t * line_height) - (height - self.padding * 2)
    save_oy = self.oy
    if self.oy + line_height > dif
      self.oy = [dif,0].max
    else
      self.oy += line_height
    end
    if save_oy != self.oy
      Sound.play_cursor
    end
  end
  
  def upStat
    save_oy = self.oy
    if self.oy - line_height < 0
      self.oy = 0
    else
      self.oy -= line_height
    end
    if save_oy != self.oy
      Sound.play_cursor
    end
  end
  
end
 
#~ #==============================================================================
#~ # ** Scene_Equip
#~ #------------------------------------------------------------------------------
#~ #  This class performs the equipment screen processing.
#~ #==============================================================================
 
class Scene_Equip
  alias :old_start :start
  def start
    old_start
    @window_req = Window_Requirement.new(0,192)#(Graphics.width/4,0)
  end
  alias :old_update :update
  def update
    old_update
    if Input.trigger?(:CTRL)
      #if @window_req.openness == 0 && @item_window.active && @item_window.item != nil
      if !@window_req.visible && @item_window.active && @item_window.item != nil
        Sound.play_cursor
        @window_req.item=@item_window.item
        @window_req.actor= @actor
        #@background = Sprite.new
        #@background.z = 200
        #@background.bitmap = Bitmap.new(Graphics.width, Graphics.height)
      # @background.bitmap.fill_rect(0,0,Graphics.width,Graphics.height,Color.new(0, 0, 0,128))
        #@window_req.open
        @window_req.visible = true
        @item_window.deactivate
        @item_window.visible = false
      #elsif @window_req.openness == 255
      elsif @window_req.visible
        Sound.play_cancel
        #@background.dispose if @background
        #@window_req.close
        @item_window.activate
        @item_window.visible = true
        @window_req.visible = false
      end
    elsif Input.trigger?(:B)
      #if @window_req.openness == 255
      if @window_req.visible
        Sound.play_cancel
        #@background.dispose if @background
        #@window_req.close
        @item_window.activate
        @item_window.visible = true
        @window_req.visible = false
      end
    elsif Input.trigger?(:UP) && @window_req.visible
      @window_req.upStat
      #@status_window.refresh(@status_window.item_actuel)
    elsif Input.trigger?(:DOWN) && @window_req.visible
      @window_req.downStat
    end
  end
end



Du coup, ça marche. Merci pour l'aide apportée. Il ne me reste plus qu'un problème sur l'autre topic à solutionner pour ma démo.


arttroy - posté le 01/03/2016 à 16:34:21 (2394 messages postés)

❤ 0

Just working

Oui j'ai vu mais là c'est juste au delà de ce dont je suis capable désolé mais je m'y aventure même pas ^^.

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

Index du forum > Entraide > [RESOLU] [RPG Maker VX Ace] Ajustement fenêtre

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 | 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