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:
Evolite -
posté le 05/06/2015 à 12:23:45 (6 messages postés)
| | Bonjour, j'aimerais savoir comment mettre a jour un statut ( comme le poison) a jour via un script,car en normal ça me prendrait juste 10 ans, en modifiant son effet via une variable. par ex: le statut a pour effet un taux de récupération de PV * 90%, mais la variable a changé, et je veut mettre a jour l'effet du statut, en mettant taux de récupération de PV * 80% par ex. merci d'avance.
| Suite du sujet:
hassen -
posté le 11/06/2015 à 01:29:20 (580 messages postés)
| Alien | Logiciel utilisé : Xp
Salut tout le monde !!
j'ai entre les mains un script sur rpg maker Xp pour afficher une mini map, il marche nickel, mais je veux un code ou un interrupteur pour activer et désactiver la mini map, vous pouvez m'aidez ?
http://www.gdunlimited.net/forums/topic/3556-xp-the-best-minimap-ever/
|
School Urban Legends |
Danzaiver -
posté le 11/06/2015 à 02:29:04 (364 messages postés)
| | Pourquoi s’embêter avec un script que l'ont ne comprend pas, quand ont peut le faire en évent ?
Je me permet de te mettre un tuto pour faire une mini map en event au cas ou tu n'aurai pas de réponse :
https://www.youtube.com/watch?v=HVRqa4QTUL8
Sache que j'utilise ce système que j'ai améliorer en trois tailles différente + gestion de la transparence par le joueur.
|
hassen -
posté le 12/06/2015 à 14:00:04 (580 messages postés)
| Alien | Je vais te dire pourquoi j'utilise ce magnifique script au lieu du tien (que je conaissait déja) parce que il affiche la map entiére en mini map avec les moindres détails et ça c'est difficile a faire en événement.
Tu devrais essayer mon script pour voir la différence, et merci quand méme.
|
School Urban Legends |
TheBigRoomXXL -
posté le 14/06/2015 à 09:01:54 (237 messages postés)
| el psy congroo | Bonjour, bonsoir
Support :RMVX ace
Question 1 :
Quand on utilise l'Event Extender comment obtenir l'IP d'une fenêtre pour utilisé les commandes de manipulation de fenêtre?
Question 2:
Est-il possible grâce à la commande "open_window(id)" d'appelé une fenêtre créer avec window maker (un petit logiciel qui permet de créer un fenêtre et de sauvegarder son code dans un ficher texte) ?
Merci d'avance.
|
Nukidoudi -
posté le 14/06/2015 à 11:43:05 (736 messages postés)
- | yo | Question 1 :
La création d'une fenêtre fonctionne comme une image. Tu lui attribues un ID et après tu utilises cet ID pour faire des manipulation.
Tu pourras trouver un exemple d'utilisation des fenêtres, qui n'est pas très simple ici : http://rmex.forumactif.org/t28-coffre-de-stockage
Question 2 :
Non.
|
https://xvw.lol |
brikou -
posté le 25/06/2015 à 20:16:35 (282 messages postés)
| | Support : RMVXAce
Il y a un problème dans ce script qui fait faire au jeu des "RGSS a cessé de fonctionner" à répétition :
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
| #==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
# This class performs the map screen processing.
#==============================================================================
class Scene_Map < Scene_Base
#--------------------------------------------------------------------------
# * Start Processing
#--------------------------------------------------------------------------
def start
super
SceneManager.clear
$game_player.straighten
$game_map.refresh
$game_message.visible = false
create_spriteset
create_all_windows
@menu_calling = false
create_window_health
create_window_gauge
if $game_switches[Listhere::HUDSwithID] == true
@window_health.visible = true
@window_gauge.visible = true
@window_health.show
@window_gauge.show
else
@window_health.visible = false
@window_gauge.visible = false
@window_health.hide
@window_gauge.hide
end
end
def terminate
super
@window_health.dispose
@window_gauge.dispose
SceneManager.snapshot_for_background
dispose_spriteset
perform_battle_transition if SceneManager.scene_is?(Scene_Battle)
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
super
$game_map.update(true)
$game_player.update
$game_timer.update
@spriteset.update
@window_gauge.refresh
if $game_switches[Listhere::HUDSwithID] == true
@window_health.visible = true
@window_gauge.visible = true
@window_health.show
@window_gauge.show
else
@window_health.visible = false
@window_gauge.visible = false
@window_health.hide
@window_gauge.hide
end
update_scene if scene_change_ok?
end
def create_window_health
@window_health = Window_Health.new(0, -39, 1)
end
def create_window_gauge
@window_gauge = Window_Gauge.new
end
end
|
Le script affiche sur la map deux fenêtres, un HUD et une jauge (window_health et window_gauge)
Si un interrupteur est activé, les fenêtres sont visibles, sinon elles sont invisibles.
Peut-être un problème avec les dispose mal placés qui font afficher 8000 fenêtres sans les effacer ?
|
Chromochimi (Arcade / Terminé) ||| La Question (Mini-jeu narratif / Terminé !) ||| Blade Converter (A-RPG ~ Beat them all / En cours !) ||| Des mini-projets Unity ! |
cortez -
posté le 25/06/2015 à 23:15:11 (524 messages postés)
| | @brikou
Normalement un :
@spriteset.dispose
que tu place après la ligne 41 devrait résoudre les problèmes. Ou 31 si la manipulation ne change rien.
Je connait bien XP mais VXace modifie tout avec ses def Start et def Terminate.
|
brikou -
posté le 25/06/2015 à 23:34:09 (282 messages postés)
| | Je crois pas que j'ai à le changer, c'est déjà géré par le script de base.
Je pense que le souci vient surtout des fenêtres que j'ai ajouté.
|
Chromochimi (Arcade / Terminé) ||| La Question (Mini-jeu narratif / Terminé !) ||| Blade Converter (A-RPG ~ Beat them all / En cours !) ||| Des mini-projets Unity ! |
arttroy -
posté le 26/06/2015 à 00:46:02 (2394 messages postés)
| Just working | Tes lignes .visible = true sont la même chose que les .show et les .visible = false les mêmes que .hide tu peux virer les unes ou les autres ça devrait rien changer déjà (quoique peut être que si... Vu que tu demande au log de faire deux fois la même chose il aime peut être pas ça).
Edit : Ton souci viendra plutôt de l'update à mon avis, tu n'as rien touché aux scripts d'origine donc ça vient bien des fenêtres que tu as rajouté. Essaie d'enlever ta condition de l'update et tu la met dans une method genre def update_gauges que tu appelles dans l'update.
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
brikou -
posté le 26/06/2015 à 08:56:21 (282 messages postés)
| | Les méthodes .hide et .show c'est des méthodes que j'ai créé et qui changent juste l'opacité des sprites présents dans les window (opacité = 0 pour .hide et opacité = 255 pour .show) alors que les visible = true / false, c'est pour effacer les textes/ contours de la fenêtre.
Je vais essayer en modifiant l'update.
Edit : Hélas, ça n'arrange rien.
J'ai oublié de le dire dans mon premier post, mais oui, mes fenêtres contiennent des images. J'ai l'impression que ça plante quand on change de scene, aussi. Quand on passe du menu de sauvegarde à la map ou du menu principal à la map.
Edit2 : Je crois avoir réussi ^^
Finalement c'est mon window_health que j'ai modifié :
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
| class Window_Health < Window_Base
#--------------------------------------------------------------------------
# * Object Initialization
# x : window X coordinate
# y : window Y coordinate
#--------------------------------------------------------------------------
def initialize(actor, x, y)
super(x, y, 160, 160)
self.opacity = 0
@actor = actor
@viewports = {}
#Character 1
@viewports[1] = Viewport.new(40 + x, y, 60, 20)
@viewports[1].z = 100
@viewports[2] = Viewport.new(97 + x, y, 3, 20)
@viewports[2].z = 107
#Fade Effect
@viewports[3] = Viewport.new(40 + x, y, 61, 20)
@viewports[3].z = 104
#Highlight Effect
@viewports[4] = Viewport.new(40 + x, y, 60, 20)
@viewports[4].z = 103
#Border Effect
@viewports[5] = Viewport.new(40 + x - 9, y - 5, 80, 30)
@viewports[5].z = 106
#Burst Effect
@viewports[6] = Viewport.new(40 + x, y, 60, 20)
@viewports[6].z = 105
#
@health = Plane.new(@viewports[1])
@healthlead = Plane.new(@viewports[2])
@health.bitmap = Cache.system("+75%Health.jpg")
@healthlead.bitmap = Cache.system("+75%HealthLead")
@healthlead.ox = 57
@healthlead.blend_type = 1
@healthtrim = Sprite.new(@viewports[3])
@healthtrim.bitmap = Cache.system("HealthTrim")
@healthlight = Plane.new(@viewports[4])
@healthlight.bitmap = Cache.system("HealthHighlight")
@healthlight.blend_type = 1
@healthtop = Plane.new(@viewports[4])
@healthtop.bitmap = Cache.system("+75%HealthTop")
@healthborder = Sprite.new(@viewports[5])
@healthborder.bitmap = Cache.system("HealthBorder")
@healthborder.opacity = 175
@burst = Plane.new(@viewports[6])
@burst.bitmap = Cache.system("Burst-NONE")
@burst.opacity = 0
update
end
#--------------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------------
def update
check_hp
@healthlight.ox -= 1
@health.ox += 1
@healthlead.ox += 1
@healthtop.ox += 1
end
#==========================================================================
# * Check HP
#==========================================================================
def check_hp
if $game_variables[20] == 1 #POISON
@health.bitmap = Cache.system("PoisonHealth.jpg")
@healthlead.bitmap = Cache.system("PoisonHealthLead")
@healthtop.bitmap = Cache.system("PoisonHealthTop")
elsif $game_variables[20] == 100 #DEAD
@health.bitmap = Cache.system("0%Health.jpg")
@healthlead.bitmap = Cache.system("0%HealthLead")
@healthtop.bitmap = Cache.system("0%HealthTop")
elsif $game_variables[20] < 25 #Below 25%HP
@health.bitmap = Cache.system("25%Health.jpg")
@healthlead.bitmap = Cache.system("25%HealthLead")
@healthtop.bitmap = Cache.system("25%HealthTop")
elsif $game_variables[20] < 75 #Below 75%HP
@health.bitmap = Cache.system("-75%Health.jpg")
@healthlead.bitmap = Cache.system("-75%HealthLead")
@healthtop.bitmap = Cache.system("-75%HealthTop")
elsif $game_variables[20] > 75 #Above 75%HP
@health.bitmap = Cache.system("+75%Health.jpg")
@healthlead.bitmap = Cache.system("+75%HealthLead")
@healthtop.bitmap = Cache.system("+75%HealthTop")
end
end
#--------------------------------------------------------------------------
# * Dispose
#--------------------------------------------------------------------------
def dispose
super
for view in @viewports.values
next if view == nil
view.dispose
view = nil
end
@viewports.clear
@viewports = {}
@health.dispose
@healthlead.dispose
@healthtrim.dispose
@healthlight.dispose
@healthtop.dispose
@healthborder.dispose
@burst.dispose
end
end |
Dans le def dispose, j'ai supprimé tout ce qui se rapportait aux viewports (lignes 97 à 103)
Et maintenant, le rgss ne plante plus. Par contre je sais pas du tout pourquoi xD
Mais ça a l'air de marcher ! 8D
|
Chromochimi (Arcade / Terminé) ||| La Question (Mini-jeu narratif / Terminé !) ||| Blade Converter (A-RPG ~ Beat them all / En cours !) ||| Des mini-projets Unity ! |
kanatos -
posté le 09/08/2015 à 11:57:51 (293 messages postés)
| cute rabbit | Bonjour a tous, j'ai installé ce script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
| #================================
# CRAFTING PROGRAM
#----------------------------------------------------------------
#-written by Deke
#-yes_no window code created by Phsylomortis
#----------------------------------------------------------------
#================================
#updates to Game_Party class
class Game_Party
attr_accessor :recipes
alias crafting_party_initialize initialize
def initialize
crafting_party_initialize
@recipes=[]
end
#----------------------------------------------------------------------
def know?(recipe, version = 1)
unless recipe.is_a?(Game_Recipe)
recipe = get_recipe_from_master_list(recipe, version)
end
return $game_party.recipes.include?(recipe)
end
#----------------------------------------------------------------------
def learn_recipe(recipe , version = 1)
unless recipe.is_a?(Game_Recipe)
recipe = get_recipe_from_master_list(recipe, version)
end
if recipe.is_a?(Game_Recipe)
unless know?(recipe)
@recipes.push(recipe)
end
end
end
#----------------------------------------------------------------------
def forget_recipe(recipe , version = 1)
if !recipe.is_a?(Game_Recipe)
recipe = get_recipe_from_master_list(recipe, version)
end
if recipe.is_a?(Game_Recipe)
for i in 0...@recipes.size
if recipe == @recipes[i]
index = i
break
end
end
if index != nil
@recipes.delete(@recipes[index])
end
end
end
#----------------------------------------------------------------------
def get_recipe_from_master_list(item, version)
index = nil
for i in 0...$game_temp.recipe_list.size
if item[0] == $game_temp.recipe_list[i].result and item[1] ==$game_temp.recipe_list[i].result_type
version -= 1
if version == 0
index = i
break
end
end
end
if index.is_a?(Integer)
return ($game_temp.recipe_list[index])
else
return false
end
end
end # of Game_Party updates
#================================
class Game_Recipe
attr_reader :ingredients
attr_reader :quantities
attr_reader :result
attr_reader :result_type
attr_reader :ingredient_types
#----------------------------------------------------------------------
def initialize( ingredients, ingredient_types, quantities, result, result_type)
@ingredients = ingredients
@ingredient_types = ingredient_types
@quantities = quantities
@result = result
@result_type = result_type
end
#----------------------------------------------------------------------
def name
case @result_type
when 0
name = $data_items[@result].name
when 1
name = $data_armors[@result].name
when 2
name = $data_weapons[@result].name
end
return name
end
#----------------------------------------------------------------------
def have
have_all = true
for i in 0...@ingredients.size
case @ingredient_types[i]
when 0
if $game_party.item_number(@ingredients[i]) < @quantities[i]
have_all=false
end
when 1
if $game_party.armor_number(@ingredients[i]) < @quantities[i]
have_all=false
end
when 2
if $game_party.weapon_number(@ingredients[i]) < @quantities[i]
have_all=false
end
end
end
return have_all
end
#----------------------------------------------------------------------
def decrement
for i in 0...@ingredients.size
case @ingredient_types[i]
when 0
$game_party.lose_item(@ingredients[i], @quantities[i])
when 1
$game_party.lose_armor(@ingredients[i], @quantities[i])
when 2
$game_party.lose_weapon(@ingredients[i], @quantities[i])
end
end
end
#----------------------------------------------------------------------
def make
if have
case @result_type
when 0
$game_party.gain_item(@result, 1)
when 1
$game_party.gain_armor(@result, 1)
when 2
$game_party.gain_weapon(@result, 1)
end
decrement
end
end
#----------------------------------------------------------------------
def == (recipe)
if recipe.is_a?(Game_Recipe)
equal = true
if recipe.ingredients != self.ingredients
equal = false
end
if recipe.ingredient_types != self.ingredient_types
equal = false
end
if recipe.quantities != self.quantities
equal = false
end
if recipe.result != self.result
equal=false
end
if recipe.result_type != self.result_type
equal = false
end
else
equal = false
end
return equal
end
end # of Game_Recipe class
#===================================
class Window_Craft < Window_Selectable
#--------------------------------------------------------------------------
def initialize
super(0, 64, 240, 416)
@column_max = 1
refresh
self.index = 0
end
#--------------------------------------------------------------------------
def recipe
return @data[self.index]
end
#--------------------------------------------------------------------------
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
for i in 0...$game_party.recipes.size
@data.push($game_party.recipes[i])
end
@item_max = @data.size
if @item_max > 0
self.contents = Bitmap.new(width - 32, row_max * 32)
self.contents.font.name = $fontface.is_a?(String) ? $fontface : $defaultfonttype
self.contents.font.size = $fontsize.is_a?(Integer) ? $fontsize : $defaultfontsize
for i in 0...@item_max
draw_item(i)
end
end
end
#--------------------------------------------------------------------------
def draw_item(index)
recipe = @data[index]
self.contents.font.color = recipe.have ? normal_color : disabled_color
x = 16
y = index * 32
self.contents.draw_text(x , y, self.width-32, 32, recipe.name, 0)
end
#--------------------------------------------------------------------------
def update_help
current_recipe = recipe
if current_recipe.is_a?(Game_Recipe)
case current_recipe.result_type
when 0
description = $data_items[current_recipe.result].description
when 1
description = $data_armors[current_recipe.result].description
when 2
description = $data_weapons[current_recipe.result].description
end
else
description = ""
end
@help_window.set_text(description)
@help_window.update
end
end # of Window_Craft
#=======================================
class Window_CraftResult < Window_Base
#--------------------------------------------------------------------------
def initialize
super(240, 64, 400, 184)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface.is_a?(String) ? $fontface : $defaultfonttype
self.contents.font.size = 20
@result = nil
@type = nil
end
#--------------------------------------------------------------------------
def refresh
self.contents.clear
case @type
when 0
item = $data_items[@result]
if item.recover_hp_rate > item.recover_hp
hp_string = "HP Recovery% :"
hp_stat = item.recover_hp_rate
else
hp_string = "HP Recovery Points:"
hp_stat = item.recover_hp
end
if item.recover_sp_rate > item.recover_sp
sp_string = "SP Recovery% :"
sp_stat = item.recover_sp_rate
else
sp_string = "SP Recovery Points:"
sp_stat = item.recover_sp
end
@strings = [hp_string, sp_string, "Phy. Def:" , "Mag Def:", "Accuracy:", "Variance:"]
@stats = [hp_stat, sp_stat, item. pdef_f, item.mdef_f, item.hit, item.variance,
$game_party.item_number(@result)]
@bitmap = RPG::Cache.icon(item.icon_name)
when 1
item = $data_armors[@result]
@strings = ["Phy. Def:", "Mag. Def:", "Evasion plus:", "Strength plus:", "Dex. plus:",
"Agility plus:", "Int. plus:"]
@stats = [item.pdef, item.mdef, item.eva, item.str_plus, item.dex_plus,
item.agi_plus, item.int_plus, $game_party.armor_number(@result) ]
@bitmap = RPG::Cache.icon(item.icon_name)
when 2
item = $data_weapons[@result]
@strings =["Attack Power:", "Phy. Def:", "Mag. Def:", "Strength plus:", "Dex. plus:",
"Agility plus:", "Int. plus:"]
@stats = [item.atk, item.pdef, item.mdef, item.str_plus, item.dex_plus,
item.agi_plus, item.int_plus, $game_party.weapon_number(@result) ]
@bitmap = RPG::Cache.icon(item.icon_name)
end
for i in 0...@strings.size
x = i%2 * 184
y = i /2 *28 +32
self.contents.font.color = normal_color
self.contents.draw_text(x,y,100, 28,@strings[i])
self.contents.font.color = system_color
self.contents.draw_text(x + 110, y, 45, 28, @stats[i].to_s)
end
self.contents.blt(0, 0, @bitmap, Rect.new(0, 0, 24, 24), 255)
self.contents.font.color= normal_color
self.contents.draw_text(40, 0, 300, 28, "Nombre d'exemplaire:")
self.contents.font.color = system_color
count = @stats[@stats.size - 1].to_s
self.contents.draw_text(294, 0, 45, 28, count )
end
#----------------------------------------------------------------------
def set_result(result , type)
@result = result
@type = type
refresh
end
end #of Window_CraftResult
#=======================================
class Window_CraftIngredients < Window_Base
#--------------------------------------------------------------------------
def initialize
super(240, 248, 400, 232)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface.is_a?(String) ? $fontface : $defaultfonttype
self.contents.font.size = 20
@ingredients = []
@types = []
@quantities = []
@item = nil
@count = 0
end
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...@ingredients.size
case @types[i]
when 0
@item = $data_items[@ingredients[i]]
@count = $game_party.item_number(@ingredients[i])
when 1
@item = $data_armors[@ingredients[i]]
@count = $game_party.armor_number(@ingredients[i])
when 2
@item = $data_weapons[@ingredients[i]]
@count = $game_party.weapon_number(@ingredients[i])
end
y = i *26
self.contents.blt(0, y, RPG::Cache.icon(@item.icon_name), Rect.new(0, 0, 24, 24), 255)
self.contents.font.color = @count >= @quantities[i] ? normal_color : disabled_color
self.contents.draw_text(30, y, 280, 28, @item.name)
self.contents.draw_text(300, y, 45, 28, @quantities[i].to_s)
self.contents.font.color = system_color
self.contents.draw_text(245, y, 45, 28, @count.to_s )
end
end
#--------------------------------------------------------------------------
def set_ingredients(ingredients , types, quantities)
@ingredients = ingredients
@types = types
@quantities = quantities
refresh
end
end # of Window_CraftIngredients
#======================================
class Scene_Craft
#--------------------------------------------------------------------------
def initialize(craft_index=0, return_scene = "menu")
@craft_index=craft_index
@return_scene = return_scene
end
#--------------------------------------------------------------------------
def main
@craft_window = Window_Craft.new
@craft_window.index=@craft_index
@confirm_window = Window_Base.new(120, 188, 400, 64)
@confirm_window.contents = Bitmap.new(368, 32)
@confirm_window.contents.font.name = $fontface.is_a?(String) ? $fontface : $defaultfonttype
@confirm_window.contents.font.size = $fontsize.is_a?(Integer) ? $fontsize : $defaultfontsize
@help_window = Window_Help.new
@craft_window.help_window = @help_window
@result_window=Window_CraftResult.new
@ingredients_window=Window_CraftIngredients.new
@yes_no_window = Window_Command.new(100, ["Oui", "Non"])
@confirm_window.visible = false
@confirm_window.z = 1500
@yes_no_window.visible = false
@yes_no_window.active = false
@yes_no_window.index = 1
@yes_no_window.x = 270
@yes_no_window.y = 252
@yes_no_window.z = 1500
@label_window = Window_Base.new(450,200,190,52)
@label_window.contents=Bitmap.new(@label_window.width - 32,@label_window.height - 32)
@label_window.contents.font.size=20
@label_window.contents.font.color = @label_window.normal_color
@label_window.contents.font.name = $fontface.is_a?(String) ? $fontface : $defaultfonttype
@label_window.contents.draw_text(0, 0, @label_window.contents.width, 20, " Item Requis")
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@help_window.dispose
@craft_window.dispose
@result_window.dispose
@ingredients_window.dispose
@confirm_window.dispose
@yes_no_window.dispose
@label_window.dispose
end
#--------------------------------------------------------------------------
def update
@craft_window.update
@ingredients_window.update
if $game_party.recipes.size > 0
@result_window.set_result(@craft_window.recipe.result, @craft_window.recipe.result_type)
@ingredients_window.set_ingredients(@craft_window.recipe.ingredients,
@craft_window.recipe.ingredient_types,
@craft_window.recipe.quantities)
end
if @craft_window.active
update_craft
return
end
if @yes_no_window.active
confirm_update
return
end
end
#--------------------------------------------------------------------------
def update_craft
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
if @return_scene == "menu"
$scene = Scene_Menu.new(0)
else
$scene = Scene_Map.new
end
return
end
if Input.trigger?(Input::C) and $game_party.recipes.size != 0
@recipe = @craft_window.recipe
if @recipe.have
@yes_no_window.active = true
@craft_window.active = false
else
$game_system.se_play($data_system.buzzer_se)
return
end
end
end
#--------------------------------------------------------------------------
def confirm_update
@craft_index = @craft_window.index
@confirm_window.visible = true
@confirm_window.z = 1500
@yes_no_window.visible = true
@yes_no_window.active = true
@yes_no_window.z = 1500
@yes_no_window.update
string = "Crée " + @recipe.name + "?"
cw = @confirm_window.contents.text_size(string).width
center = @confirm_window.contents.width/2 - cw /2
unless @drawn
@confirm_window.contents.draw_text(center, 0, cw, 30, string)
@drawn = true
end
if Input.trigger?(Input::C)
if @yes_no_window.index == 0
$game_system.se_play($data_system.decision_se)
@recipe.make
$game_system.se_play($data_system.save_se)
$scene=Scene_Craft.new(@craft_index)
else
$game_system.se_play($data_system.cancel_se)
$scene=Scene_Craft.new(@craft_index)
end
end
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene=Scene_Craft.new(@craft_index)
end
end
end # of Scene_Craft |
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
| #================================
# Sample master list for crafting script
#----------------------------------------------------------------
#-written by Deke
#----------------------------------------------------------------
#================================
class Game_Temp
attr_reader :recipe_list
alias crafting_temp_initialize initialize
def initialize
crafting_temp_initialize
@recipe_list=[]
get_recipe_list
end
def get_recipe_list
#----------------------------------------------------------------
#----------------------------------------------------------------
#--------------- Insérer vos recettes ici ! --------------
#----------------------------------------------------------------
#----------------------------------------------------------------
ingredients = [1, 1, 1]
ingredient_types = [0, 1, 2]
quantities = [1, 1, 1]
result = 2
result_type = 2
@recipe_list.push(Game_Recipe.new(ingredients,ingredient_types,quantities,result,result_type))
ingredients = [30,31,32]
ingredient_types = [0,0,0]
quantities = [1,1,1]
result = 4
result_type = 2
@recipe_list.push(Game_Recipe.new(ingredients,ingredient_types,quantities,result,result_type))
ingredients = [29,30]
ingredient_types = [0,0]
quantities = [1,2]
result = 8
result_type = 1
@recipe_list.push(Game_Recipe.new(ingredients,ingredient_types,quantities,result,result_type))
ingredients = [30,31,1]
ingredient_types = [0,0,1]
quantities = [1,1,3]
result = 4
result_type = 0
@recipe_list.push(Game_Recipe.new(ingredients,ingredient_types,quantities,result,result_type))
end # of get_recipe_list method
end # of updates to Game_Temp Class |
Il marche nickel mais je voulais savoir si il était possible d'avoir deux forgeron indépendant.
Je m'explique, par exemple dans mon jeu j'ai un magicien qui peut te forgé des armes/armure élémentaires, et un autre forgeron qui peut forgé des armes plus traditionnelle (épée à deux main, Long arc etc...) mais dans ce script il ne permet que de gérer un type de forgeron...
lien du script (crée par Deke, Phsylomortis. Traduit par Ikhuraï) :
http://www.rpg-maker.fr/scripts-234-systeme-de-forge.html
|
arttroy -
posté le 09/08/2015 à 13:23:43 (2394 messages postés)
| Just working | Ah ouais ok en fait si tu créé un forgeron, il a toutes les recettes définies disponibles. C'est ça ? Bon écoutes on va faire autrement, tu as de la chance je suis dans un bon jour ^^. Je te mp.
Par contre on est déjà plus dans une question conne, je pense que tu aurais eu meilleur temps de poster ça dans l'entraide.
@Brikou
Le mieux c'est de créer tes classes comme ça avec Ace
def initialize
super
end
def update
super
end
def refresh
end
def terminate (plutôt que dispose)
end
Et sinon souvent moi c'est des erreurs de dispose que j'ai. Je règle ça (merci sensei) en faisant comme ça @sprite.dispose if @sprite
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
bigbru -
posté le 10/08/2015 à 15:57:31 (16 messages postés)
| | Bonjour,
Je suis à la recherche d'informations et de ressources concernant toutes les classes, méthodes, héritages, ect... utilisables lorsque nous concevons nos script.
J'ai eu beau cherché je n'ai pas trouvé ce genre de base de connaissance.
Merci,
Bru
|
arttroy -
posté le 10/08/2015 à 16:03:54 (2394 messages postés)
| Just working | Tu peux regarder là, il y a pas mal d'info :
http://ruby-doc.org/
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
bigbru -
posté le 10/08/2015 à 16:09:00 (16 messages postés)
| | Je cherchais plutôt les fonctionnalités liée à RGSS3 et non au langage Ruby lui-même, tel que la liste des méthodes accessibles, les variables du jeu ou encore les classes à hériter en fonction des scripts que l'on souhaite créer.
|
ThrillerProd -
posté le 15/08/2015 à 12:09:08 (1121 messages postés)
| | Salut les gens,
Après bon nombre de recherche, je ne trouve pas un simple script pour afficher une battle animation où bon me semble sur RPG maker VX ace.
Zeus avait fait un script similaire pour XP mais il n'y a aucun équivalent sur VX ace...
Si quelqu'un a une piste, il est le bienvenue !
Merci !
|
Actinium Studio : Youtube / (Rm2k3)(A-Rpg) Acsiosa |
| Man Of The Gaping Mind | Support : RMVXACE
Bonjour bande de germes, j'ai installé ce script-ci pour simplifier le menu de mon jeu d'énigmes et d'horreur et n'en faire qu'un simple menu destiné à révéler les objets normaux... Le problème étant que cet abruti de jeu pense toujours que cet inventaire sert à utiliser les objets sélectionnés sur le héros plutôt que de simplement en donner la description...
Ma question est donc : comment dois-je bidouiller mon (mes ?) scripts pour ne plus rendre les objets sélectionnables ? Je remercie d'avance celui qui saura m'aider, sachant que le script installé est ce dernier :
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
| class Scene_Item < Scene_ItemBase
def create_category_window
end
def create_item_window
wy = @help_window.y + @help_window.height
wh = Graphics.height - wy
@item_window = Window_ItemList.new(0, wy, Graphics.width, wh)
@item_window.viewport = @viewport
@item_window.help_window = @help_window
@item_window.set_handler(:ok, method(:on_item_ok))
@item_window.set_handler(:cancel, method(:on_item_cancel))
@item_window.category = :item
@item_window.activate
@item_window.select(0)
end
def on_item_cancel
return_scene
end
end
|
|
arttroy -
posté le 16/08/2015 à 20:30:44 (2394 messages postés)
| Just working | @maniax skell : Vas dans le Scene_ItemBase ligne 65 et tu met un # devant use_item
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
zeus81 -
posté le 16/08/2015 à 20:44:47 (11071 messages postés)
| | C'toi l'abruti pas le jeu, suffit de configurer tes objets dans la bdd pour qu'ils ne soient pas utilisables.
|
| Man Of The Gaping Mind | Merci, mais le souci est qu'il développe toujours la fenêtre avec la liste des héros, ce que je veux empêcher. Or, la fenêtre affichant le personnage et son statut apparaît toujours lorsque j'appuie sur Enter avec l'objet sélectionné...
@Jupiter18: Assez bizzaremment, je ne retrouve pas cette option dans la bdd de VX ACE... Après, je suis peut-être quand même un abruti pour utiliser VX ACE...
EDIT : Il suffisait effectivement d'enlever tout disponibilité à l'objet dans la bdd. Je pense avoir amplement mérité mes galons d'abruti, effectivement !
|
arttroy -
posté le 17/08/2015 à 13:50:26 (2394 messages postés)
| Just working | ah ok je pensais que tu voulais que ça reste en blanc pour le nom des objets dans le menu. Dans le cas contraire effectivement c'est plus simple de le faire comme Zeus l'a dit.
Pour info la fenêtre qui s'affiche quand tu sélectionne un objet c'est la Window_MenuActor.
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
| Man Of The Gaping Mind | Bah, en fait, si le rend l'objet inutilisable via l'inventaire, il le devient aussi quand mon personnage doit choisir un objet à utiliser via une commande de variables... (C'est-à-dire qu'une petite fenêtre s'ouvre et le joueur doit sélectionner l'objet à utiliser pour résoudre l'énigme/ouvrir la porte, etc...)
La solution optimale serait donc effectivement d'empêcher l'apparition de Window_MenuActor lors d'une pression sur la touche enter...
|
| | Problème sur VX:
Bonjour tout le monde, j'ai une question qui me bloque depuis quelques heures,
Comment puis-je faire pour qu'un personnage qui utilise une attaque normal
puisse faire une attaque à distance (sans se déplacer vers sa cible) avec un sceptre genre une orbe mana.
Merci d'avance de vos réponses, SVP soyez indulgent je débute.
PS: j'utilise le script SBS tankentai avec les sprites de "Kaduki".
|
Gaëlian -
posté le 26/10/2015 à 23:36:44 (47 messages postés)
| | RESOLU
Support : RMXP
Question 1 :
Comment fait-on pour afficher sur certaines maps et en continu durant le jeu les contenus des variables du jeu, tout ayant une possibilité de décision sur les coordonnées X et Y de cette variable, sur les couleurs du texte et la taille ?
merci d'avance.
Edit : merci Verhen !
|
verehn -
posté le 21/11/2015 à 22:35:11 (9058 messages postés)
- | Vhehrhehn | (C'est un peu tard mais...)
Essaye ce script il y a les instructions dedans.
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
| #============================================================================
# SCRIPT COMPTEUR
# Stephane Roys, Royer
# Fevrier 2007
# Projet: Petite Boite à outils pour aider les event maker
# Ce script permet de gèrer en event l'apparition d'un compteur sours forme d'une icone avec un nombre et un titre
# 1- Créer un compteur en event
# Faire inserer script: $compteur = Compteur.new(x,y,var,"icone","texte")
# Remplacer $compteur par $le_nom_de_votre_compteur
# x et y par les coordonnées ecran ou s'affichent votre compteur
# var par le numéro de votre variable qui contrôle la compteur
# "icone" par le nom de votre icone que vou savez importé dans le dossier Icons,
# texte par un texte entre "guillement" court portant le nom de votre compteur (par ex "Ammo").
# exemple: $ammo=compteur.new(0,0,2,"005-Weapon05","Fleches")
# ici on créé un compteur $ammo qui s'affiche en 0,0 (coin haut gauche)
# , gèrer par la variable002 avec le texte "Fleches" devant
# 2- Mise à jour de la compteur
# La mise à jour est automatique, vous n'avez qu'à changer la valeur de la variable de votre compteur
# Ainsi que l'effacement quand vous allez sur votre menu
# 3- Effacer une compteur
# Faire simplement $le_nom_de_votre_compteur.off
# Recommandations à lire
#------------------------
# 1- Vous pouvez changer la taille de la Police et la couleur de tous les compteurs ici:
FONT="Arial"
TAILLE=16
COLOR=Color.new(0,0,0,255)
#2- Prenez soin de donner des noms différents à vos compteurs sinon vous risquez d'avoir des conflits
#3- Ne crééez pas une compteur en processus parallèle sinon vous allez créér une nouvelle compteur à chaque frame
# jusqu'a ce que RM bug
#4- La sauvergarde est comprise dans le script. Donc apres un load votre compteur sera dans l'etat ou il a été sauvé
#5- Les compteurs s'effacent tous seul quand vous sortez de la map vers un menu, et il se recrée seul quand vous revenez sur la map
#============================================================================
#============================================================================
# COMPTEURS
# Créé le tableau des compteurs de Jeu
#============================================================================
class Game_Party
attr_accessor:compteurs
alias compteur_game_party_initialize initialize
#--------------------------------------------------------------------------
# INITIALIZE
#--------------------------------------------------------------------------
def initialize
compteur_game_party_initialize
# Tableau des compteurs
@compteurs=[]
end
end
#============================================================================
# COMPTEUR
#============================================================================
class Compteur
attr_accessor:x # Coordonnées d'affichage
attr_accessor:y
attr_accessor:var # Numéro de la variable RMXP
attr_accessor:value # Valeur de la variable RMXP
attr_accessor:texte # Texte devant l'icone
attr_accessor:icone # nom de l'icone dans le dossier Icons
attr_accessor:fin_compteur # Indique la fin du compteur
#--------------------------------------------------------------------------
# INITIALIZE
#--------------------------------------------------------------------------
def initialize(x,y,var,icone,texte)
@x=x;@y=y;@var=var;@icone=icone;@texte=texte
@fin_compteur=false
$game_party.compteurs.push(self)
@visible=true
@value=$game_variables[@var]
end
#--------------------------------------------------------------------------
# UPDATE
#--------------------------------------------------------------------------
def update
@value=$game_variables[@var]
end
#--------------------------------------------------------------------------
# OFF
# Termine le compteur
#--------------------------------------------------------------------------
def off
@fin_compteur=true
end
end
#============================================================================
# ¦ Spriteset Map
# Mise à jour de la class Spriteset_Map afin de gérer l'affichage graphique
#============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
alias compteur_spriteset_map_initialize initialize
alias compteur_spriteset_map_dispose dispose
alias compteur_spriteset_map_update update
#--------------------------------------------------------------------------
# INITIALIZE
#--------------------------------------------------------------------------
def initialize
# Créé les compteurs
@compteur_sprite=[]
for compteur in $game_party.compteurs
setup_compteur(compteur)
end
compteur_spriteset_map_initialize
end
#--------------------------------------------------------------------------
# SETUP
#--------------------------------------------------------------------------
def setup_compteur(compteur)
# Créé le sprite en fonction de la taille de la police
sprite=Sprite.new
sprite.bitmap=Bitmap.new(24+3*TAILLE+compteur.texte.size*TAILLE,[TAILLE,24].max)
# Récupère l'icone
bitmap=Bitmap.new(24,24)
bitmap = RPG::Cache.icon(compteur.icone)
# Construit le sprite
sprite.bitmap.blt(compteur.texte.size*TAILLE,0,bitmap,Rect.new(0,0,24,24))
sprite.bitmap.font.color= Color.new(0,0,0)
sprite.z = 3000
sprite.x = compteur.x
sprite.y = compteur.y
sprite.bitmap.font.name = FONT
sprite.bitmap.font.size = TAILLE
sprite.bitmap.font.color= COLOR
sprite.bitmap.draw_text(0,0,compteur.texte.size*TAILLE, [TAILLE,24].max,compteur.texte,0)
@compteur_sprite.push(sprite)
end
#--------------------------------------------------------------------------
# UPDATE
#--------------------------------------------------------------------------
def update
compteur_spriteset_map_update
#-----------------------------
# Cherche si une nouvelle compteur a été créée
for key in @compteur_sprite.size..$game_party.compteurs.size-1
setup_compteur($game_party.compteurs[key])
end
#-----------------------------
# Update la compteur
delete_sprite=[]
delete_compteur=[]
for key in 0..$game_party.compteurs.size-1
compteur=$game_party.compteurs[key]
sprite=@compteur_sprite[key]
# Récupère la valeur du compteur
compteur.update
# Rafraichit le sprite
sprite.bitmap.clear
bitmap=Bitmap.new(24,24)
bitmap = RPG::Cache.icon(compteur.icone)
# Affiche l'icone
sprite.bitmap.blt(compteur.texte.size*TAILLE,0,bitmap,Rect.new(0,0,24,24))
# Affiche le titre
sprite.bitmap.draw_text(0,0,compteur.texte.size*TAILLE, [TAILLE,24].max,compteur.texte,1)
# Affiche le Compteur
sprite.bitmap.draw_text(compteur.texte.size*TAILLE+24,0,compteur.texte.size*TAILLE, [TAILLE,24].max,compteur.value.to_s,1)
# Observe si la compteur est disposée
if compteur.fin_compteur
delete_sprite.push(sprite)
delete_compteur.push(compteur)
end
end
#-----------------------------
# Dispose la compteur
for sprite in delete_sprite
sprite.dispose
@compteur_sprite.delete(sprite)
end
for compteur in delete_compteur
$game_party.compteurs.delete(compteur)
end
end
#--------------------------------------------------------------------------
# DISPOSE
#--------------------------------------------------------------------------
def dispose
compteur_spriteset_map_dispose
for sprite in @compteur_sprite
sprite.dispose
end
end
end |
|
Eldrao ~ PakuPaku ~ Winged Light ~ Ruin ~ Ma galerie ~ LTDAD ~ Don de graphismes plateforme 2D | 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!!
|