Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
524 connectés actuellement
30732772 visiteurs depuis l'ouverture
2751 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
Messages postés par Nérylis Nombre de messages référencés sur Oniromancie (non supprimés): 145 Aller à la page: 1 2 3 4
Posté dans Forum - [RPG Maker VX Ace] Petite modification de script |
Nérylis -
posté le 06/02/2016 à 08:08:24. (149 messages postés) |
| Dans ma démo, il y a plusieurs cas où un défilement a été créé avec la petite flèche en question. Regarde par exemple dans le menu Statut pour le premier personnage, puis le menu Maîtrise. Si tu valides, tu peux te déplacer avec les touches Haut et Bas et on voit les petites flèches indiquant le défilement possible. En script, ça se trouve dans celui de Vincent26 - Weapon's type upgrade si je ne dis pas de bêtises. Tu pourras peut-être trouver comment on fait pour reproduire la même chose.
|
Posté dans Forum - [RPG Maker VX Ace] Petite modification de script |
Nérylis -
posté le 05/02/2016 à 17:05:09. (149 messages postés) |
| Effectivement, ça marche bien.
Il reste l'histoire du déroulement lorsqu'un équipement a plusieurs statistiques améliorées. Actuellement, on voit la partie supérieure d'une ligne comme sur ma Capture 2. Est-ce que tu te sens capable de me faire un défilement avec la petite flèche sans qu'on voit des bouts de ligne ?
|
Posté dans Forum - [RPG Maker VX Ace] Petite modification de script |
Nérylis -
posté le 04/02/2016 à 18:40:55. (149 messages postés) |
| Le problème, c'est que si j'enlève le ! de !@item_window.active, je ne peux plus vérifier l'interface pour les équipements. Par ailleurs, j'ai aussi le problème de l'interface vide lorsque j'appuie sur Shift alors que je suis sur un emplacement vide (comme au début de ma démo pour les emplacements Ceinture, Collier, Bague et Bracelet).
|
Posté dans Forum - [RPG Maker VX Ace] Petite modification de script |
Nérylis -
posté le 31/01/2016 à 20:38:06. (149 messages postés) |
| Domaine concerné: Script Logiciel utilisé: RPG Maker VX Ace Coucou, j'aurais besoin d'une petite modification de script. J'utilise un système pour upgrader mes équipements avec du pex classique et je possède une interface pour vérifier le level et les bonus supplémentaires de mes équipements.
C'est cette interface que je veux légèrement modifier. Je vous mets le script pour commencer :
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
| #Modif class Scene_Equip
class Scene_Equip < Scene_MenuBase
#Modification de l'update
alias update_interface update
def update
update_interface
if Input.trigger?(:A)
return if !@item_window.active && !@slot_window.active && @status_window.menu == 0
Sound.play_cursor
switch_info
elsif Input.trigger?(:UP) && @status_window.menu == 1
Sound.play_cursor
@status_window.ligne_actuel -= 1
@status_window.refresh(@status_window.item_actuel)
elsif Input.trigger?(:DOWN) && @status_window.menu == 1
Sound.play_cursor
@status_window.ligne_actuel += 1
@status_window.refresh(@status_window.item_actuel)
elsif Input.trigger?(:B) && @status_window.menu == 1
Sound.play_cursor
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.refresh(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
#Modifiication du refresh
alias refresh_interface refresh
def refresh(item = nil)
if @menu == 0
refresh_interface
else
contents.clear
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
draw_text_ex(0, 0, "")
@max_ligne = 0
@item = nil
else
@max_ligne = 0
@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, -88-@ligne_actuel*24, contents.width, contents.height, "Niveau :")
contents.font.color = normal_color
contents.draw_text(0, -64-@ligne_actuel*24, contents.width, contents.height, item.level.to_s + " / " + item.max_level.to_s)
contents.font.color = system_color
contents.draw_text(0, -40-@ligne_actuel*24, contents.width, contents.height, "Expérience :")
contents.font.color = normal_color
contents.draw_text(0, -16-@ligne_actuel*24, contents.width, contents.height, item.exp.to_s)
contents.font.color = normal_color
contents.draw_text(0, 8-@ligne_actuel*24, contents.width, contents.height, item.exp_to_level.to_s)
contents.font.color = system_color
contents.draw_text(0, 32-@ligne_actuel*24, contents.width, contents.height, "Prochains bonus :")
@max_ligne = 6
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
contents.draw_text(0 , 56+j*48-@ligne_actuel*24, contents.width, contents.height, Vocab.param(i))
contents.font.color = normal_color
contents.draw_text(0 , 80+j*48-@ligne_actuel*24, contents.width, contents.height, item.params[i].to_s+" passe à "+next_value.floor.to_s)
j += 1
@max_ligne += 2
end
end
end
end
end |
Quand je navigue dans mon menu equipement, cela donne ce que vous voyez sur la Capture 1. Quand j'appuie sur Shift, la fenêtre de droite change et on voit l'interface comme sur la Capture 2. Première chose : est-ce qu'il serait possible de créer une petite flèche pour montrer que le déroulement est possible lorsque le texte des bonus dépasse de la fenêtre ? Actuellement, on peut défiler en appuyant sur les touches Haut et Bas mais on voit une partie du texte et aucune petite flèche.
Ensuite, mon autre souci se trouve lorsque je vais sur la commande Retirer (Capture 3). Si j'appuie sur Shift, j'obtiens mon interface avec rien dedans (Capture 4). Serait-il possible de bloquer l'accès à l'interface quand je suis sur Retirer ? Qu'on ne puisse pas y accéder et qu'on n'entende aucun bruit de validation ou d'erreur.
Capture 1 :
Capture 2 :
Capture 3 :
Capture 4 :
|
Posté dans Forum - [RPG Maker VX Ace] Navigation de menu |
Nérylis -
posté le 29/01/2016 à 20:28:16. (149 messages postés) |
| 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.
|
Posté dans Forum - [RPG Maker VX Ace] Navigation de menu |
Nérylis -
posté le 28/01/2016 à 23:38:15. (149 messages postés) |
| 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.
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 |
|
Posté dans Forum - [RPG Maker VX Ace] Navigation de menu |
Nérylis -
posté le 26/01/2016 à 20:59:31. (149 messages postés) |
| 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
|
Posté dans Forum - [RPG Maker VX Ace] Souci avec un appel de script |
Nérylis -
posté le 25/01/2016 à 21:37:15. (149 messages postés) |
| Je n'ajoute pas les personnages avec les commandes de base. Les personnages non retenus dans les équipes sont stockés dans une variable après la création des équipes. Et ces personnages sont restitués à la sortie du donjon avec l'appel de script suivant :
Var = 31
$game_variables[Var].each do |actor_id|
$game_party.add_actor(actor_id)
end
Donc ma question du coup, c'est comment adapter ta solution pour restituer les personnages dont les ID sont contenus dans la variable.
|
Posté dans Forum - [RPG Maker VX Ace] Souci avec un appel de script |
Nérylis -
posté le 25/01/2016 à 21:12:16. (149 messages postés) |
| Je viens de tester, ça marche bien effectivement. Cela dit, dans mon système, le joueur est libre de créer et modifier les équipes de son choix en plein donjon. En gros, là je viens de prendre le cas où il s'agit du personnage 9. Mais dans la réalité, il faudra que j'applique cette méthode pour le(s) personnage(s) en réserve qui ne sont pas entrés dans le donjon. Comme c'est le joueur qui créé les équipes, je ne peux pas prédire quels personnages sont en réserve. Ils sont stockés dans une variable du jeu (la 31 dans ma démo). Comment on peut faire pour restituer ces personnages ? Ce sont leur ID qui est stocké dans la variable.
|
Posté dans Forum - [RPG Maker VX Ace] Souci avec un appel de script |
Nérylis -
posté le 21/01/2016 à 18:27:38. (149 messages postés) |
| Domaine concerné: Appel de script Logiciel utilisé: RPG Maker VX Ace Bonjour, j'aurais besoin d'un coup de pouce pour finaliser un système que j'ai mis au point pour switcher entre plusieurs équipes de personnages présents sur différentes maps. Pour faire simple, quand on entre dans le donjon, il faut constituer des équipes de personnages. Ceux qui ne sont pas sélectionnés seront récupérés à la sortie du donjon. C'est justement sur le dernier appel de script que j'ai un souci. Quand je prends le dernier téléporteur, si jamais juste avant j'ai libéré la place dans mes combattants (par exemple 3 combattants au lieu de 4), le premier personnage non sélectionné au départ va prendre la place vacante au milieu de mes combattants. Or, je souhaiterais qu'il se mettre à la suite de tous les personnages déjà présents. Mais je ne sais pas comment faire. Quelqu'un peut m'aider ? Je mets une démo si besoin : mediafire.com download/1nt7sb8uhh8f7jy/Teams+-+Update.exe
Et des screens ci-dessous :
Lorsque j'ai récupéré les personnages de toutes mes équipes, j'ai mes 8 personnages comme ici :
Ensuite, avant de sortir du donjon, je décide de retirer le personnage numéro 2 de mes combattants. J'obtiens ceci :
Et quand je sors du donjon et que je récupère le personnage numéro 9 (qui n'avait pas été sélectionné pour faire partie des équipes), voilà comment il se place :
Pour restituer ce personnage, j'utilise cet appel de script :
Var = 31
$game_variables[Var].each do |actor_id|
$game_party.add_actor(actor_id)
end
Si j'utilise l'appel de script ci-dessous, ça me restitue le personnage comme étant un non combattant mais il ne se place pas à la fin.
Var = 31
$game_variables[Var].each do |actor_id|
$game_party.add_actor(actor_id)
index = $game_party.battle_members_array.index(actor_id)
$game_party.battle_members_array[index] = 0
end
Comment faire pour qu'il se place à la fin de la liste des personnages ?
|
Posté dans Forum - [RPG Maker VX Ace] Problème Script Equipment Requirements |
Nérylis -
posté le 24/11/2015 à 18:22:03. (149 messages postés) |
| Non, ça ne marche pas non plus. Ça sélectionne des équipements dont je n'ai pas les conditions requises pour les porter. Et en plus, j'utilise des slots d'équipement supplémentaires avec un script de Yanfly, et ça ne sélectionne rien pour ces slots.
|
Posté dans Forum - [RPG Maker VX Ace] Problème Script Equipment Requirements |
Nérylis -
posté le 28/10/2015 à 18:25:25. (149 messages postés) |
| Je viens de tester mais quand je fais Optimal, ça ne sélectionne pas toujours le meilleur équipement. Ou parfois, ça ne sélectionne rien du tout. Il faudrait que, parmi les équipements dont on peut s'équiper si les pré-requis sont remplis, l'option Optimal choisisse l'arme avec juste la meilleure attaque, et les armures avec juste la meilleure défense, sans tenir compte des autres paramètres.
|
Posté dans Forum - [RPG Maker VX Ace] Problème Script Equipment Requirements |
Nérylis -
posté le 11/10/2015 à 09:28:03. (149 messages postés) |
| Domaine concerné: Scripts
Logiciel utilisé: RPG Maker VX Ace
Bonjour,
J'utilise le script de Fomar0153 pour mettre des conditions afin de pouvoir porter les équipements. A la base, le script n'affichait pas les équipements qu'on ne pouvait pas porter. Après une modif, on peut désormais voir en grisé les équipements qu'on ne peut pas porter, avec aussi un ajout d'une interface.
Par contre, il y a un petit problème que je n'avais pas vu. Quand un équipement n'a pas toutes les conditions requises pour être porté, on ne peut pas s'en équiper, ce qui est normal. Sauf que si on sélectionne Optimal, le personnage peut se retrouver équipé des pièces qu'il n'est pas censé pouvoir porter. Quelqu'un pourrait me corriger cela s'il vous plaît ?
Le script de Fomar est ici :
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
----------------------
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 switch_id in a different line
#--------------------------------------------------------------------------
Variable_Vocab = {
# Variable_ID => "Vocab",
2 => "Nombre de pierres à casser",
}
class Window_EquipItem
#--------------------------------------------------------------------------
# ● Check the requirements
#--------------------------------------------------------------------------
def enable?(item)
unless item == nil
return false if @actor.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 @actor.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 @actor.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 ? @actor.param_base(id) : @actor.param(id)
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 |
Il y a aussi un script de vincent26, lié à ce système de pré-requis, je ne sais pas s'il peut avoir un impact, donc je le mets au cas où :
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
| #Notetag the weapons/armors
#<maitrise name,y>
#<maitrise_rang name,rang>
Equipement_Vocab = {
# Variable_ID => "Vocab",
"Hache" => "Maitrise :",
"Lance" => "Maitrise :",
"Griffes" => "Maitrise :",
"Epée" => "Maitrise :",
"Katana" => "Maitrise :",
"Arc" => "Maitrise :",
"Dague" => "Maitrise :",
"Massue" => "Maitrise :",
"Bâton" => "Maitrise :",
"Arme à feu" => "Maitrise :",
}
module RPG
#--------------------------------------------------------------------------
# ● Equip Item is inherited by both Weapon and Armor
#--------------------------------------------------------------------------
class EquipItem
def maitrise
self.note =~ /<maitrise (.*)>/i ? $1 : 0
end
def maitrise_rang
self.note =~ /<maitrise_rang (.*)>/i ? $1 : 0
end
end
end
class Window_EquipItem
alias enable_weapon_upgrade? enable?
def enable?(item)
return false unless enable_weapon_upgrade?(item)
unless item == nil
if item.maitrise != 0
array = item.maitrise.split(",")
array[1] = array[1].to_i
name = (Weapon_Upgrade::LIST_TYPE_ARME.index(array[0])+1).to_s
nbr = $game_actors[@actor.id].weapon_upgrade[name] == nil ? 0 : $game_actors[@actor.id].weapon_upgrade[name]
return false if nbr < array[1]
end
if item.maitrise_rang != 0
array = item.maitrise_rang.split(",")
name = (Weapon_Upgrade::LIST_TYPE_ARME.index(array[0])+1).to_s
nbr2 = Weapon_Upgrade::LVL_DESCRIPTION.key(array[1])
nbr = $game_actors[@actor.id].weapon_upgrade[name] == nil ? 0 : $game_actors[@actor.id].weapon_upgrade[name]
return false if nbr < nbr2
end
end
return true
end
alias draw_remove_equip_weapon_upgrade draw_remove_equip
def draw_remove_equip(rect)
change_color(normal_color, true)
draw_remove_equip_weapon_upgrade(rect)
end
end
class Window_Requirement
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)
@t += 1
end
if item && item.maitrise != 0
array = item.maitrise.split(",")
array[1] = array[1].to_i
name = (Weapon_Upgrade::LIST_TYPE_ARME.index(array[0])+1).to_s
return if @actor == nil
nbr = $game_actors[@actor.id].weapon_upgrade[name] == nil ? 0 : $game_actors[@actor.id].weapon_upgrade[name]
nbr >= array[1] ? change_color(normal_color) : change_color(text_color(2))
draw_text(0, line_height*(@t), contents.width, line_height, Equipement_Vocab[array[0]]+" "+array[1].to_s)
@t += 1
end
if item && item.maitrise_rang != 0
array = item.maitrise_rang.split(",")
name = (Weapon_Upgrade::LIST_TYPE_ARME.index(array[0])+1).to_s
return if @actor == nil
nbr = $game_actors[@actor.id].weapon_upgrade[name] == nil ? 0 : $game_actors[@actor.id].weapon_upgrade[name]
nbr2 = Weapon_Upgrade::LVL_DESCRIPTION.key(array[1])
nbr >= nbr2 ? change_color(normal_color) : change_color(text_color(2))
draw_text(0, line_height*(@t), contents.width, line_height, Equipement_Vocab[array[0]]+" "+array[1])
@t += 1
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 |
Edit : je vous mets une petite démo que j'utilise pour tout ce qui se rapporte aux menus : http://www.mediafire.com/download/ywfcpg8b4x2h18h/Bug+Optimal.exe
|
Posté dans Forum - Nérylis |
Nérylis -
posté le 10/10/2015 à 09:27:57. (149 messages postés) |
| Bonjour tout le monde !
Pseudo : Nérylis
Prénom : Romain
Age : 27
Localisation : Seine Maritime
Loisirs, passions :
Jeux vidéo
Romans fantasy
Musique
Making depuis : Octobre 2014
Niveau sous RPG Maker : Bon
Je travaille actuellement sur une grosse démo regroupant les systèmes et scripts que je souhaite mettre en place dans un jeu sur RPG Maker.
Voilà pour ma présentation. Si vous avez des questions, je suis là pour vous répondre.
A+
| Aller à la page: 1 2 3 4
|
|
|