Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

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

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

168 connectés actuellement

30731911 visiteurs
depuis l'ouverture

1889 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Lunae - le bazar d'Emz0

Le Comptoir Du clickeur

Planète Glutko

Hellsoft

Offgame

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [RPG Maker VX Ace] Navigation de menu


Nérylis - posté le 26/01/2016 à 20:59:31 (149 messages postés)

❤ 0

Domaine concerné: Script
Logiciel utilisé: RPG Maker VX Ace
Coucou, j'ai un autre petit souci que j'ai constaté et je pense que le problème vient du script de Yanfly - Ace Equip Engine. J'ai remarqué que lorsque je vais dans l'écran Equipement, si je fais :L et :R (qui correspondent aux touches Q et W dans ma config), je passe d'un personnage à un autre et si je reviens au menu principal pour appuyer de nouveau sur Equipement, le curseur va directement sur le personnage que j'ai quitté. Cela ne me dérange pas, c'est logique. Par contre, si dans l'écran Equipement, je sélectionne Equiper et que je navigue entre chaque type d'équipement, si j'appuie sur Q et W, je ne passe pas d'un personnage à un autre. De même sur l'écran suivant lorsque je sélectionne mes équipements. Mais quand je reviens au menu principal pour appuyer de nouveau sur Equipement, le curseur va sur un autre personnage comme si le jeu pensait qu'en appuyant sur Q ou W, j'étais bien passé à un autre personnage. Est-ce qu'il est possible de corriger ça ?

Le script est disponible ici : https://yanflychannel.wordpress.com/rmvxa/gameplay-scripts/ace-equip-engine/

Une démo si besoin : http://www.mediafire.com/download/04tfk0m15evj9ge/Ace+menu.exe


arttroy - posté le 28/01/2016 à 22:40:16 (2394 messages postés)

❤ 0

Just working

Histoire d'être sûr j'ai vérifié sur un projet vierge voir si il y a le même souci mais non.

Après honnêtement je vois pas trop où ça cloche dans le sens où toutes les method sont aliasées et que la Window_EquipSlot ne contient pas les commandes pour L et R (Q et W)...

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


Nérylis - posté le 28/01/2016 à 23:38:15 (149 messages postés)

❤ 0

Mon intuition m'a trompé. Ce n'est pas le script de Yanfly qui est en cause. C'est le script de Fomar pour mettre des conditions pour pouvoir s'équiper des armes et armures.

Je mets le script en code ci-dessous car il a été modifié pour avoir une interface et c'est là qu'interviennent les touches :L et :R (lignes 198 et 201).
J'imagine qu'il doit me manquer quelque chose (un truc aliasé ?) pour éviter ce petit bug gênant.

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
=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, Graphics.width/2, Graphics.height)
    self.openness = 0
    self.z = 250
    @item = nil
    @actor = nil
    refresh
  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
    if Input.trigger?(:R)
      @actor = $game_party.menu_actor_next
      refresh
    elsif Input.trigger?(:L)
      @actor = $game_party.menu_actor_prev
      refresh
    end
  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
    change_color(normal_color)
    draw_text(0, contents.height-line_height*3, contents.width, line_height, "Prec.(Q) | Suiv.(W)",1)
    draw_text(0, contents.height-line_height*2, contents.width, line_height, "Personnage Actuel",1)
    draw_text(0, contents.height-line_height, contents.width, line_height, @actor.name,1) if @actor
  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(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
      elsif @window_req.openness == 255
        @background.dispose if @background
        @window_req.close
        @item_window.activate
      end
    end
  end
end
class Scene_Item < Scene_ItemBase
  alias :old_start :start
  def start
    old_start
    @window_req = Window_Requirement.new(Graphics.width/4,0)
  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
      elsif @window_req.openness == 255
        @background.dispose if @background
        @window_req.close
        @item_window.activate
      end
    end
  end
end




arttroy - posté le 29/01/2016 à 16:09:50 (2394 messages postés)

❤ 0

Just working

Bah à la limite tu peux juste laisser le refresh dans l'update comme ça :

Portion de code : Tout sélectionner

1
2
3
4
  def update
    super
     refresh
  end



Tu n'auras plus accès aux commandes :L et :R après je comprend pas trop pourquoi il a foutu ça là direct dans la Window_Requirements le plus simple aurait été de le mettre dans l'update du scene et d'ajouter une condition genre

Portion de code : Tout sélectionner

1
2
3
if @item_window.active = false
  if Input.trigger?(:R)
...



comme ça ça ne prenait pas en compte les commandes si la fenêtre d'équipement est ouverte.

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


Nérylis - posté le 29/01/2016 à 20:28:16 (149 messages postés)

❤ 0

En fait, quand je vais dans Equipement puis dans le menu pour sélectionner les armes et armures, si j'appuie sur Crtl, j'accède à une interface me montrant les pré-requis pour porter l'équipement en question. Et sur cet écran, si j'appuie sur :L et :R, je passe au personnage précédent ou suivant. Et le problème, c'est que si j'appuie sur :L et :R sans avoir cet interface, c'est là que je constate mon problème.

Mais après t'avoir lu, c'est vrai que je ne devrai pas pouvoir passer d'un personnage à un autre à ce moment-là. Du coup, j'ai fais comme tu as dit. J'ai simplement laissé le refresh, et j'ai enlevé les lignes 246 à 249. Maintenant, c'est plus cohérent et il n'y a plus de bug. Merci pour ton aide.

Index du forum > Entraide > [RESOLU] [RPG Maker VX Ace] Navigation de menu

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