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:
terzarok -
posté le 16/05/2015 à 14:04:29 (345 messages postés)
| | Support : RMXP
Question : Optimiser le script Balloon Messages
Bonjour
J'utilise le script http://moonpearl-gm.blogspot.fr/2012/02/bubble-messages.html de MoonPearl pour transformer les messages textes en bulles de BD pour faire parler les persos.
Mais ce script a un défaut au niveau des combats, ça fait planter le jeu lorsque je veux faire parler un des combattants (ennemi ou allié).
Sauriez-vous comment on pourrait améliorer ça sans remplacer entièrement le(s) script(s) en question par celui-ci par exemple https://github.com/wachunga/rmxp-multiple-message-windows ?
Je ne m'y connais pas trop (sur une échelle de 10, je dois être à 2 ou 3) en scripts, et je dois avouer que refaire entièrement les dialogues de mon jeu parce que les interrupteurs et variables ne sont pas les mêmes ne m'enchante guère ! ^^'
Merci d'avance
|
Il y a des gens qui passeraient des heures à expliquer qu'ils sont débordés. Moi sur Deviantart | Suite du sujet:
arttroy -
posté le 18/05/2015 à 18:44:52 (2394 messages postés)
| Just working | Bonjour les gens, j'aurais une question concernant les objets...
Support :RMVX ace
Question 1 (résolu) :
Est il possible de faire en sorte que des objets (id 2 à 10 inclus dans la BDD) ne s'additionnent pas mais se dupliquent lorsqu'on les ramasse en jeu (principe des herbes dans la série resident evil) ?
Si quelqu'un pouvait m'éclairer ça m'arrangerait bien s'il vous plaît.
C'est bon problème réglé ^^
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
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.
|
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 (733 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 (523 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".
| 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!!
|