Aller à la page 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
Reprise du message précédent:
Troma -
posté le 02/10/2022 à 17:31:05 (6392 messages postés)
| Je procrastine | Bonjour, quelqu'un saurait me dire ce qu'il faut toucher dans ce script pour rapprocher les picture de personnages affiché et.ou que le 4em soient plus a gauche, merci et si possible afficher une image en fond plutot que le windiwskin.
Spoiler (cliquez pour afficher) Citation: # Advanced CMS Menu by Prexus
# Created on Monday July 4th 2005
# All Rights Reserved
# Made Specially for Naramura Sensei's Battlers
class Scene_Menu
def initialize(menu_index = 0)
@menu_index = menu_index
end
def main
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "Statut"
s5 = "Sauvegarder"
s6 = "Quitter"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
@command_window.index = @menu_index
if $game_party.actors.size == 0
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
if $game_system.save_disabled
@command_window.disable_item(4)
end
@command_window.x = 32
@command_window.y = 32
@command_window.z = 3005
@command_window.back_opacity = 128
@playtime_window = Window_PlayTime.new
@playtime_window.x = 32
@playtime_window.y = 480-32-@playtime_window.height
@playtime_window.back_opacity = 128
@playtime_window.z = 3005
@gold_window = Window_Gold.new
@gold_window.x = 640-32-@gold_window.width
@gold_window.y = 480-32-@gold_window.height
@gold_window.back_opacity = 128
@gold_window.z = 3005
@chr_status = Window_CharacterStatus.new
@chr_status.visible = false
@status_window = Window_MenuStatus.new
@status_window.chr_status = @chr_status
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@chr_status.dispose
@status_window.dispose
@gold_window.dispose
@playtime_window.dispose
end
def update
if @status_window.active and (@command_window.x != -128 or @playtime_window.x != 32-@playtime_window.width)
if @command_window.x != -128
@command_window.z = 3001
@command_window.x -= 5
end
if @playtime_window.x != 32-@playtime_window.width
@playtime_window.x -= 5
end
return
end
if @command_window.active and (@command_window.x != 32 or @playtime_window.x != 32)
if @command_window.x != 32
@command_window.z = 3005
@command_window.x += 5
end
if @playtime_window.x != 32
@playtime_window.x += 5
end
return
end
@command_window.update
@status_window.update
@gold_window.update
@playtime_window.update
@chr_status.update
if @command_window.active
update_command
@chr_status.visible = false
return
end
if @status_window.active
update_status
@chr_status.visible = true
return
end
end
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
if $game_party.actors.size == 0 and @command_window.index < 4
$game_system.se_play($data_system.buzzer_se)
return
end
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
$scene = Scene_Item.new
when 1
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4
if $game_system.save_disabled
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Save.new
when 5
$game_system.se_play($data_system.decision_se)
$scene = Scene_End.new
end
return
end
end
def update_status
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 1
if $game_party.actors[@status_window.index].restriction >= 2
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Skill.new(@status_window.index)
when 2
$game_system.se_play($data_system.decision_se)
$scene = Scene_Equip.new(@status_window.index)
when 3
$game_system.se_play($data_system.decision_se)
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end
class Window_CharacterStatus < Window_Base
def initialize
super(480-32, 0, 192, 128)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.back_opacity = 0
self.z = 3006
end
def refresh(index)
self.contents.clear
if index >= 0
actor = $game_party.actors[index]
draw_actor_name(actor, 0, 0)
draw_actor_level(actor, 0, 24)
draw_actor_hp(actor, 0, 48)
draw_actor_sp(actor, 0, 72)
end
end
end
class Window_MenuStatus < Window_Base
attr_reader :index
attr_reader :chr_status
def initialize
@viewport = Viewport.new(0, 0, 640, 480)
@viewport.z = 3001
super(-16, -16, 640+32, 480+32)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.active = false
self.z = 3000
@index = -1
@column_max = 1
@sprites = []
refresh
end
def index=(index)
@index = index
if self.active and @chr_status != nil
update_chr_status
end
update_cursor_rect
refresh
end
def refresh
self.contents.clear
for i in 0...@sprites.size
@sprites.dispose
end
@sprites = []
@item_max = $game_party.actors.size
for i in 0...@item_max
actor = $game_party.actors[@item_max-i-1]
@sprites[@item_max-i-1] = Sprite.new(@viewport)
@sprites[@item_max-i-1].bitmap = RPG::Cache.picture(actor.image_name)
@sprites[@item_max-i-1].x = 560-((i+1)*120)
@sprites[@item_max-i-1].y = 480-@sprites[@item_max-i-1].bitmap.height
@sprites[@item_max-i-1].opacity = 255
@sprites[@item_max-i-1].z = 3004-i
end
end
def update_cursor_rect
if @index < 0
for i in 0...@sprites.size
@sprites.opacity = 255
end
else
for i in 0...@sprites.size
if i == @index
@sprites.opacity = 255
@sprites.z += 4
else
@sprites.opacity = 200
@sprites.z = 3001+i
end
end
end
end
def dispose
super
for i in 0...@sprites.size
@sprites.dispose
end
end
def chr_status=(chr_status)
@chr_status = chr_status
if self.active and @chr_status != nil
update_chr_status
end
end
def update
super
if self.active and @item_max > 0 and @index >= 0
if Input.repeat?(Input::RIGHT)
if Input.trigger?(Input::RIGHT) or @index < @item_max - @column_max
$game_system.se_play($data_system.cursor_se)
@index = (@index + @column_max) % @item_max
end
end
if Input.repeat?(Input::LEFT)
if Input.trigger?(Input::LEFT) or @index >= @column_max
$game_system.se_play($data_system.cursor_se)
@index = (@index - @column_max + @item_max) % @item_max
end
end
end
if self.active and @chr_status != nil
update_chr_status
elsif @chr_status != nil
@chr_status.refresh(-1)
end
update_cursor_rect
end
def update_chr_status
@chr_status.refresh(@index)
end
end
class Window_Base
def shadow_color
return Color.new(0, 0, 0, 255)
end
def draw_actor_name(actor, x, y)
self.contents.font.color = shadow_color
self.contents.draw_text(x+1, y+1, 120, 32, actor.name)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 120, 32, actor.name)
end
def draw_actor_level(actor, x, y)
self.contents.font.color = shadow_color
self.contents.draw_text(x+1, y+1, 32, 32, "Lv")
self.contents.draw_text(x + 33, y + 1, 24, 32, actor.level.to_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, "Lv")
self.contents.font.color = normal_color
self.contents.draw_text(x + 32, y, 24, 32, actor.level.to_s, 2)
end
def draw_actor_hp(actor, x, y, width = 144)
self.contents.font.color = shadow_color
self.contents.draw_text(x+1, y+1, 32, 32, $data_system.words.hp)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
if width - 32 >= 108
hp_x = x + width - 108
flag = true
elsif width - 32 >= 48
hp_x = x + width - 48
flag = false
end
self.contents.font.color = shadow_color
self.contents.draw_text(hp_x+1, y+1, 48, 32, actor.hp.to_s, 2)
self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
if flag
self.contents.font.color = shadow_color
self.contents.draw_text(hp_x + 49, y+1, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 61, y+1, 48, 32, actor.maxhp.to_s)
self.contents.font.color = normal_color
self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
end
end
def draw_actor_sp(actor, x, y, width = 144)
self.contents.font.color = shadow_color
self.contents.draw_text(x+1, y+1, 32, 32, $data_system.words.sp)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
if width - 32 >= 108
sp_x = x + width - 108
flag = true
elsif width - 32 >= 48
sp_x = x + width - 48
flag = false
end
self.contents.font.color = shadow_color
self.contents.draw_text(sp_x+1, y+1, 48, 32, actor.sp.to_s, 2)
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2)
if flag
self.contents.font.color = shadow_color
self.contents.draw_text(sp_x + 49, y+1, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 61, y+1, 48, 32, actor.maxsp.to_s)
self.contents.font.color = normal_color
self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
end
end
end
class Game_Actor < Game_Battler
attr_reader :image_name
def initialize(actor_id)
super()
setup(actor_id)
@image_name = @name
end
end |
|
ꀎꀎꀎꀎꀎꀎꀎ | Suite du sujet:
cortez -
posté le 02/10/2022 à 21:42:08 (524 messages postés)
| | Fait gaffe, le script que tu as posté comporte des erreurs (que j'ai du le retrouver sur le forum et ailleurs sur le net pour pouvoir le corriger)
Si tu veux déplacer tous les personnages vers la gauche, tu dois changer la valeur que j'ai souligné a la ligne 235
@sprites[@item_max-i-1].x = 560-((i+1)*120)
Tu peux aussi réduire l'écart entre chaque personnage en changeant la valeur 120 par un nombre plus petit (la ligne 235)
Pour ce qui est d'ajouter une image en fond, tu dois en placer un dans le dossier picture en la nommant : fond_menu
Si tu veux changer le nom de l'image c'est a la ligne 47 : @img_fond.bitmap = RPG::Cache.picture("fond_menu")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
| # Advanced CMS Menu by Prexus
# Created on Monday July 4th 2005
# All Rights Reserved
# Made Specially for Naramura Sensei's Battlers
class Scene_Menu
def initialize(menu_index = 0)
@menu_index = menu_index
end
def main
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "Statut"
s5 = "Sauvegarder"
s6 = "Quitter"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
@command_window.index = @menu_index
if $game_party.actors.size == 0
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
if $game_system.save_disabled
@command_window.disable_item(4)
end
@command_window.x = 32
@command_window.y = 32
@command_window.z = 3005
@command_window.back_opacity = 128
@playtime_window = Window_PlayTime.new
@playtime_window.x = 32
@playtime_window.y = 480-32-@playtime_window.height
@playtime_window.back_opacity = 128
@playtime_window.z = 3005
@gold_window = Window_Gold.new
@gold_window.x = 640-32-@gold_window.width
@gold_window.y = 480-32-@gold_window.height
@gold_window.back_opacity = 128
@gold_window.z = 3005
@chr_status = Window_CharacterStatus.new
@chr_status.visible = false
@status_window = Window_MenuStatus.new
@status_window.chr_status = @chr_status
@img_fond = Sprite.new
@img_fond.bitmap = RPG::Cache.picture("fond_menu")
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@chr_status.dispose
@status_window.dispose
@gold_window.dispose
@playtime_window.dispose
@img_fond.bitmap.dispose
@img_fond.dispose
end
def update
if @status_window.active and (@command_window.x != -128 or @playtime_window.x != 32-@playtime_window.width)
if @command_window.x != -128
@command_window.z = 3001
@command_window.x -= 5
end
if @playtime_window.x != 32-@playtime_window.width
@playtime_window.x -= 5
end
return
end
if @command_window.active and (@command_window.x != 32 or @playtime_window.x != 32)
if @command_window.x != 32
@command_window.z = 3005
@command_window.x += 5
end
if @playtime_window.x != 32
@playtime_window.x += 5
end
return
end
@command_window.update
@status_window.update
@gold_window.update
@playtime_window.update
@chr_status.update
if @command_window.active
update_command
@chr_status.visible = false
return
end
if @status_window.active
update_status
@chr_status.visible = true
return
end
end
def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
if $game_party.actors.size == 0 and @command_window.index < 4
$game_system.se_play($data_system.buzzer_se)
return
end
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
$scene = Scene_Item.new
when 1
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4
if $game_system.save_disabled
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Save.new
when 5
$game_system.se_play($data_system.decision_se)
$scene = Scene_End.new
end
return
end
end
def update_status
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 1
if $game_party.actors[@status_window.index].restriction >= 2
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Skill.new(@status_window.index)
when 2
$game_system.se_play($data_system.decision_se)
$scene = Scene_Equip.new(@status_window.index)
when 3
$game_system.se_play($data_system.decision_se)
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end
class Window_CharacterStatus < Window_Base
def initialize
super(480-32, 0, 192, 128)
self.contents = Bitmap.new(width-32, height-32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.back_opacity = 0
self.z = 3006
end
def refresh(index)
self.contents.clear
if index >= 0
actor = $game_party.actors[index]
draw_actor_name(actor, 0, 0)
draw_actor_level(actor, 0, 24)
draw_actor_hp(actor, 0, 48)
draw_actor_sp(actor, 0, 72)
end
end
end
class Window_MenuStatus < Window_Base
attr_reader :index
attr_reader :chr_status
def initialize
@viewport = Viewport.new(0, 0, 640, 480)
@viewport.z = 3001
super(-16, -16, 640+32, 480+32)
self.contents = Bitmap.new(width-32, height-32)
self.back_opacity = 0
self.opacity = 0
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
self.active = false
self.z = 3000
@index = -1
@column_max = 1
@sprites = []
refresh
end
def index=(index)
@index = index
if self.active and @chr_status != nil
update_chr_status
end
update_cursor_rect
refresh
end
def refresh
self.contents.clear
for i in 0...@sprites.size
@sprites[i].dispose
end
@sprites = []
@item_max = $game_party.actors.size
for i in 0...@item_max
actor = $game_party.actors[@item_max-i-1]
@sprites[@item_max-i-1] = Sprite.new(@viewport)
@sprites[@item_max-i-1].bitmap = RPG::Cache.picture(actor.image_name)
@sprites[@item_max-i-1].x = 560-((i+1)*120)
@sprites[@item_max-i-1].y = 480-@sprites[@item_max-i-1].bitmap.height
@sprites[@item_max-i-1].opacity = 255
@sprites[@item_max-i-1].z = 3004-i
end
end
def update_cursor_rect
if @index < 0
for i in 0...@sprites.size
@sprites[i].opacity = 255
end
else
for i in 0...@sprites.size
if i == @index
@sprites[i].opacity = 255
@sprites[i].z += 4
else
@sprites[i].opacity = 200
@sprites[i].z = 3001+i
end
end
end
end
def dispose
super
for i in 0...@sprites.size
@sprites[i].dispose
end
end
def chr_status=(chr_status)
@chr_status = chr_status
if self.active and @chr_status != nil
update_chr_status
end
end
def update
super
if self.active and @item_max > 0 and @index >= 0
if Input.repeat?(Input::RIGHT)
if Input.trigger?(Input::RIGHT) or @index < @item_max - @column_max
$game_system.se_play($data_system.cursor_se)
@index = (@index + @column_max) % @item_max
end
end
if Input.repeat?(Input::LEFT)
if Input.trigger?(Input::LEFT) or @index >= @column_max
$game_system.se_play($data_system.cursor_se)
@index = (@index - @column_max + @item_max) % @item_max
end
end
end
if self.active and @chr_status != nil
update_chr_status
elsif @chr_status != nil
@chr_status.refresh(-1)
end
update_cursor_rect
end
def update_chr_status
@chr_status.refresh(@index)
end
end
class Window_Base
def shadow_color
return Color.new(0, 0, 0, 255)
end
def draw_actor_name(actor, x, y)
self.contents.font.color = shadow_color
self.contents.draw_text(x+1, y+1, 120, 32, actor.name)
self.contents.font.color = normal_color
self.contents.draw_text(x, y, 120, 32, actor.name)
end
def draw_actor_level(actor, x, y)
self.contents.font.color = shadow_color
self.contents.draw_text(x+1, y+1, 32, 32, "Lv")
self.contents.draw_text(x + 33, y + 1, 24, 32, actor.level.to_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, "Lv")
self.contents.font.color = normal_color
self.contents.draw_text(x + 32, y, 24, 32, actor.level.to_s, 2)
end
def draw_actor_hp(actor, x, y, width = 144)
self.contents.font.color = shadow_color
self.contents.draw_text(x+1, y+1, 32, 32, $data_system.words.hp)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, $data_system.words.hp)
if width - 32 >= 108
hp_x = x + width - 108
flag = true
elsif width - 32 >= 48
hp_x = x + width - 48
flag = false
end
self.contents.font.color = shadow_color
self.contents.draw_text(hp_x+1, y+1, 48, 32, actor.hp.to_s, 2)
self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
if flag
self.contents.font.color = shadow_color
self.contents.draw_text(hp_x + 49, y+1, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 61, y+1, 48, 32, actor.maxhp.to_s)
self.contents.font.color = normal_color
self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1)
self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s)
end
end
def draw_actor_sp(actor, x, y, width = 144)
self.contents.font.color = shadow_color
self.contents.draw_text(x+1, y+1, 32, 32, $data_system.words.sp)
self.contents.font.color = system_color
self.contents.draw_text(x, y, 32, 32, $data_system.words.sp)
if width - 32 >= 108
sp_x = x + width - 108
flag = true
elsif width - 32 >= 48
sp_x = x + width - 48
flag = false
end
self.contents.font.color = shadow_color
self.contents.draw_text(sp_x+1, y+1, 48, 32, actor.sp.to_s, 2)
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2)
if flag
self.contents.font.color = shadow_color
self.contents.draw_text(sp_x + 49, y+1, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 61, y+1, 48, 32, actor.maxsp.to_s)
self.contents.font.color = normal_color
self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1)
self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s)
end
end
end
class Game_Actor < Game_Battler
attr_reader :image_name
def initialize(actor_id)
super()
setup(actor_id)
@image_name = @name
end
end |
|
Troma -
posté le 03/10/2022 à 04:42:41 (6392 messages postés)
| Je procrastine | Super merci beaucoups, oui je l'ai pris ici il me semble, merci.
|
ꀎꀎꀎꀎꀎꀎꀎ |
Gari -
posté le 03/10/2022 à 14:51:14 (5901 messages postés)
- | | Oui, il avait effectivement des erreurs, encore, désolé.
Du coup j'ai pris la version de cortez pour faire la MAJ.
|
cortez -
posté le 03/10/2022 à 16:36:25 (524 messages postés)
| | Gari a dit: Oui, il avait effectivement des erreurs, encore, désolé.
Du coup j'ai pris la version de cortez pour faire la MAJ. |
Pas de souci, par contre c'est bizarre que sur ma version Steam de XP, la ligne 180/181 et 207/208 pose problème, vous avez quoi dans votre script Main ?
(il me semble que la version gratuite possède les script issus de la version jap)
|
Ephy -
posté le 30/10/2022 à 10:05:03 (30100 messages postés)
- | [BIG SHOT] | Support : RMVXAce
Question 1 :
Question stupide, est-ce que vous savez dans quel script de base les émoticônes par défaut sont gérées? L'animation est lente et ça se traîne pour rien. J'aurais aimé accélérer un peu la chose mais je trouve pas où changer ça.
Edit:
Réponse stupide.
Script Sprite_Character - ligne 208
1
2
3
4
5
6
7
8
9
10
11
12
| #--------------------------------------------------------------------------
# * Balloon Icon Display Speed
#--------------------------------------------------------------------------
def balloon_speed
return 4
end
#--------------------------------------------------------------------------
# * Wait Time for Last Frame of Balloon
#--------------------------------------------------------------------------
def balloon_wait
return 24
end |
Merci.
|
Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14 |
balnelius -
posté le 26/02/2023 à 14:35:13 (6 messages postés)
| | Bonjour,
est ce qu'il existe un script pour faire en sorte que son perso puisse dépasser le niveau 99 sur RPG maker mz ?
|
Gari -
posté le 26/02/2023 à 19:48:26 (5901 messages postés)
- | | Le VisuStella Core plugin le fait.
|
balnelius -
posté le 26/02/2023 à 20:32:18 (6 messages postés)
| | ok, merci
il faut faire quoi comme manip avec le visustella ?
juste mettre un notetag, ou il faut activer un truc sur le coté avant ?
|
Aure -
posté le 05/06/2024 à 10:45:33 (8 messages postés)
| | Bonjour,
J'utilise un plugin de visustella mz, il se nomme date and time system, voici le lien du plugin.
Lien : http://www.yanfly.moe/wiki/Date_and_Time_System_VisuStella_MZ
J'ai réglé l'heure en temps réel, cependant quelque chose m'échappent.
J'aimerais qu'à partir de 22h temps réel les pnj rentrent chez eux, j'aimerais aussi que les magasins ferment leurs portes de 22H à 8H puis ouvrent de 8H à 22h tout en temps réel.
Est-ce possible de m'aider ?
Sois en événement ou en script ?
|
Ephy -
posté le 07/09/2024 à 15:34:46 (30100 messages postés)
- | [BIG SHOT] | Support: RMVXAce
Question:
Je cherche à pouvoir changer, in-game, un tile par un autre, comme on peut le faire sur RM2003 avec la fonction Change Tile:
Bien sûr, cette fonction a disparu de RMVXAce.
Est-ce que vous avez un petit appel de script pour faire ça? C'est un de mes piliers pour l'animation dans RM.
Je me doute que RME peut faire ça facilement mais je préfère ne pas m'encombrer avec RME pour un si petit truc.
|
Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14 |
| Narrer l'autocatégorème | (purée j'avais jamais réalisé qu'on pouvait facilement animer ce qu'on veut avec ça, merci pour l'astuce !)
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 |
Crystal -
posté le 08/09/2024 à 20:26:56 (2146 messages postés)
- | | Tu peux probablement utiliser $game_map.data[x, y, z] = (ID du tile), mais je n'ai pas testé. Je vois dans la doc que le Tilemap utilise une référence à cette table, donc normalement si tu modifies la table de Game_Map, le changement sera aussi directement reflété sur le rendu.
|
Hermoni_ -
posté le 08/09/2024 à 22:44:42 (62 messages postés)
| | Comme si tu changeais de tileset ? Y doit y avoir un moyen avec ça, je sais que sur mon jeu j'avais codé un truc pour que selon si je suis en debug mode ou non ça charge une version "debug" de mes tilesets.
Après j'ai pas testé en plein jeu mais j'imagine qu'il doit y avoir moyen de gruger pour le faire ?
|
Mack -
posté le 08/09/2024 à 22:57:52 (2310 messages postés)
- - | | Pas sur que y ai une commande toute prête pour faire ça
Par contre, la solution de Crystal est un bon début, il suffit de faire une boucle sur la longueur / largeur / 3, et de changer le tile.
Un truc dans ce genre :
1
2
3
4
5
6
7
8
9
10
11
12
13
| class Game_Interpreter
def change_tiles(old, new)
for x in 0..$game_map.data.size
for y in 0..$game_map.data[x].size
for z in 0..3
if $game_map.data[x][y][z] == old
$game_map.data[x][y][z] = new
end
end
end
end
end
end |
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Crystal -
posté le 09/09/2024 à 02:44:31 (2146 messages postés)
- | | Pour accéder à une Table RGSS, tu dois utiliser [x, y, z] étant donné que c'est une classe C et non un Array. Aussi, faire attention à l'usage de variables locales avec des mots réservés (new). Pour changer tous les tiles, ceci devrait fonctionner:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| class Game_Map
def convert_tiles(old_id, new_id, layer = nil)
t = self.data
t.xsize.times do |x|
t.ysize.times do |y|
t.zsize.times do |z|
if t[x, y, z] == old_id && (! layer || z == layer)
t[x, y, z] = new_id
end
end
end
end
end
end |
Ensuite, tu peux écrire une commande script comme:
1
| $game_map.convert_tiles(16, 42) |
Ou optionnellement, pour répliquer le comportement de RM2k3 avec choix de la couche Z:
1
| $game_map.convert_tiles(16, 42, 0) # N'affecte que la première couche |
|
Ephy -
posté le 09/09/2024 à 19:33:42 (30100 messages postés)
- | [BIG SHOT] | Alors ça marche mais à moitié.
Déjà, y'a pas moyen de récupérer l'ID d'un tile via RM à ma connaissance. Obligé de récupérer cet ID dans une variable et de regarder sa valeur via la table des variables in-game. C'est pas très pratique mais ça t'y es pour rien.
On peut récupérer l'ID de la couche 1, 2 ou 3. La couche 1 semble correspondre aux tiles A1-5. La couche 2 j'aurais dit les tiles B-E et la 3 aucune idée.
Dans ton code, z=0 correspond aux tiles A1-5. z=1 correspond à certains tiles spéciaux de A2 (ceux de la moitié droite du tileset).
Par contre j'arrive pas à changer les tiles de la couche haute des tilesets B à E (du moins du tilesetB). Je sais pas si il y a un couac dans ton code, si j'arrive pas à récupérer le bon ID de tile ou si RM refuse simplement de changer les tiles de la couche haute in-game.
Je pourrais me contenter des tiles de la couche basse si j'avais pas déjà de gros soucis de place sur ce maudit tile A5.
Je préfère creuser au max et avoir le truc le plus fonctionnel possible. J'aimerais qu'on la mette dans les scripts d'oniro. C'est hyper pratique cette fonction quand on sait un minimum la manier.
|
Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14 |
Mack -
posté le 09/09/2024 à 20:47:24 (2310 messages postés)
- - | | Citation:
Alors ça marche mais à moitié.
Déjà, y'a pas moyen de récupérer l'ID d'un tile via RM à ma connaissance. Obligé de récupérer cet ID dans une variable et de regarder sa valeur via la table des variables in-game. C'est pas très pratique mais ça t'y es pour rien. |
Comment ça ? Il suffit juste de mettre le numéro, pourquoi vouloir passer par une variable ?
A la limite, si tu connais pas l'ID de la tile que tu veux remplacer, ni celle par quoi tu veux la remplacer, le mieux c'est d'utiliser un truc du genre :
1
2
3
| $game_map.data.zsize.times do |z|
p $game_map.data[2,5,z]
end |
Qui va afficher dans la console le tile ID de chaque couche, pour les coordonnées 2/5, et à toi de voir à quoi ça correspond.
( Mais à première vue, 0-255 la couche B, 256-511 la C, 512-727 D, et 728-(728+256) [Flemme de compter ] la E )
En utilisant basiquement :
1
| $game_map.convert_tiles(1, 2) |
Ca marche très bien, j'ai utilisé le tileset basique de RMVAce ( Terrain ), ça change bien mes panneaux en ponts ( sur la couche B ).
@Crystal, on va pas se cacher que mon code avait aucune chance de marcher, et que c'était pas le but
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Ephy -
posté le 09/09/2024 à 21:06:07 (30100 messages postés)
- | [BIG SHOT] | Citation: Comment ça ? Il suffit juste de mettre le numéro, pourquoi vouloir passer par une variable ? |
A ma connaissance on n'a pas accès aux ID de tile dans l'éditeur. Donc pour avoir l'ID d'un tile il faut placer ce tile sur une case donnée, récupérer l'ID de tile de cette case dans une variable, lancer le jeu, ouvrir la table des variables avec F9, chercher la variable pour enfin afficher la valeur de l'ID de tile. Après, il reste juste à mettre le numéro.
Ta solution en script est certainement plus simple en effet.
Bon ça fonctionne. Je pense savoir pourquoi ça marchait pas sur mon premier test.
J'avais essayé de remplacer les tiles de la couche 2 par $game_map.data[id1,id2,2] et ceux de la couche 3 par $game_map.data[id1,id2,3] alors que la solution c'était de remplacer les tiles de la couche 3 par $game_map.data[id1,id2,2]. Bref. Merci RM de ne pas être en mesure d'afficher l'ID du tile sélectionné dans l'éditeur.
Merci Crystal pour le script, c'est parfait et merci Mack pour le support qui m'a somme toute aidé à mieux cerner comment fonctionnent les ID de tile de VXAce.
|
Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14 | Aller à la page 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 73Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!
|