Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: "Dread Mac Farlane", (...) / Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

543 connectés actuellement

29442668 visiteurs
depuis l'ouverture

8745 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Offgame

Zarok

Leo-Games

RPG Fusion

Tous nos partenaires

Devenir
partenaire



Messages postés par Dyeel
Nombre de messages référencés sur Oniromancie (non supprimés): 196

Aller à la page: 1 2 3 4 5

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

Dyeel - posté le 26/01/2014 à 18:23:37. (200 messages postés)

LittleGamer : ça va te faire l'entier juste inférieur à @exp_list[@level+1] - @exp_list[@level]

Si tu veux arrondir, remplace to_i par round

Hellper :

Le : correspond à un else, la syntaxe avec le point d'interrogation puis les deux points permet de faire un if...else plus rapidement.

Ce qui est avant les : est ce qui est renvoyé si la condition est true, ce qui est à droite, c'est renvoyé si la condition est false.

Edit : grillé, désolé ! :-/

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

Dyeel - posté le 26/01/2014 à 18:17:15. (200 messages postés)

Normal..
Essaie comme ça :

Portion de code : Tout sélectionner

1
return @exp_list[@level+1] > 0 ? (@exp_list[@level+1] - @exp_list[@level]).to_i : 0



Posté dans Forum - Gaming Live sur votre jeu !

Dyeel - posté le 22/01/2014 à 20:30:30. (200 messages postés)

Vidéo très agréable à regarder, bonne ambiance, bien commenté!

Bravo ;)

J'ai par ailleurs trouvé le projet très intéressant! J'en avais jamais entendu parler.

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

Dyeel - posté le 19/01/2014 à 21:37:36. (200 messages postés)

Merci nukidoudi, je connais la syntaxe, je lui disais juste ça pour qu'il puisse faire le rapprochement avec ce qu'il avait imaginé et qui partait d'une bonne idée.

S'il modifie sans comprendre ça servira à faire marcher son projet, mais pas à le faire avancer pour des modifications futures...

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

Dyeel - posté le 19/01/2014 à 21:32:02. (200 messages postés)

Oui, ce qui revient quand même strictement au même et qui l'empêchera de voir le rapport avec la syntaxe qu'il avait énoncée, du @truc == true ... ^^

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

Dyeel - posté le 19/01/2014 à 19:39:56. (200 messages postés)

T'as bien écrit $game_switches comme moi?

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

Dyeel - posté le 19/01/2014 à 18:52:41. (200 messages postés)

Tu peux utiliser un if oui, mais pas la peine de mettre une variable @truc.

Si tu veux le contrôle, tu fais if $game_switches[id] == true en remplaçant id par un numéro d'id correspondant à un numéro d'interrupteur que tu peux activer/désactiver via un event.

Par contre faire ça sur des méthodes du genre screen_x etc c'est un peu sale...
Ce que tu peux faire c'est aller chercher le script qui s'appelle Game_Actor dans RM (celui de base, pas ce script là), tu cherches les méthodes correspondant à screen_x, etc... et tu fais un truc du genre :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
def screen_x
     if $game_switches[1] == true
          # les commandes qui sont dans le script de base
     else
          # les commandes screen_x que tu as dans le script que tu viens de poster
     end
end



Puis tu fais pareil pour chaque méthode (screen_x, screen_y, etc...)

Posté dans Forum - Gaming Live sur votre jeu !

Dyeel - posté le 15/01/2014 à 18:17:37. (200 messages postés)

Content si ça a pu t'être utile :sourire3

Le côté découverte était aussi sympa parce qu'on peut voir les premières impressions, ce qui va ou ne va pas, sûrement que repasser dans un format plus classique ferait perdre ce côté première impression justement :-/

Mais c'est vrai que je pense que juste un petit break d'une minute au début qui explique pourquoi tu as choisi ce jeu, ce que le maker/studio propose, ce que toi et le joueur peuvent attendre de la présentation, ça pourrait apporter une touche de plus à tes vidéos.

A bientôt !

Posté dans Forum - Gaming Live sur votre jeu !

Dyeel - posté le 14/01/2014 à 19:13:02. (200 messages postés)

Salut!

J'aime bien tes vidéos, je trouve qu'elles ont un bon rythme, en plus tu as une bonne élocution, c'est agréable de suivre tout ça d'autant que tu sors des vidéos assez régulièrement =)

Je ne peux donc que t'encourager à continuer et te souhaiter bon courage!

J'ai quand même un léger reproche : je trouve que tu fais pas assez le tour du jeu en début de vidéo pour expliquer de quoi il s'agit. En fait tu entres dans le jeu en présentant le titre et en faisant une présentation hyper générale, je pense que tu pourrais en plus parler du studio de développement vite fait, expliquer un peu de quoi/qui il s'agit, pour RM pourquoi pas parler du temps de développement d'une démo que tu testes, etc... Parce qu'en fait on a l'impression (ou moi tout du moins) qu'on t'a mis un jeu sous les yeux sans rien te dire du tout et que tu joues.
Bon j'ai cru comprendre que tu découvrais en partie le jeu en y jouant et en donnant tes premières impressions, ce qui est sympa, mais je pense qu'avant tu pourrais peut-être parler de ce que propose le créateur sur son site ou son forum, dire quel système est en place, etc... Puis enfin tester et voir si ça répond à tes attentes vis-à-vis de ce que t'as pu voir sur le jeu avant de le tester.

Par exemple pour Viscera Cleanup Detail, tu as juste donné le titre et tu es passé au nettoyage, sans faire un tour du propriétaire, et tu dis que le jeu est une simulation de nettoyage macabre, mais on apprend un peu tard dans la vidéo que l'autre spécificité du jeu est de plonger le joueur dans quelque chose d'un peu plus original, à savoir la non gravité.

Par contre j'ai remarqué dans ta dernière vidéo que tu as parlé du studio, que tu as expliqué brièvement ce qu'il fallait faire, ce que ça proposait et tout, donc là c'est une vidéo que j'ai trouvée vraiment bien, qui nous disait tout.

Voilà, j'espère que tu trouveras mes critiques constructives, en tout cas je suis désolé d'avoir fait un pavé ^^'

Encore bravo pour tes vidéos, je suis abonné à ta chaîne et je continue de suivre ;)

Posté dans Forum - [RMXP] Problème script de forge

Dyeel - posté le 12/01/2014 à 16:56:50. (200 messages postés)

Effectivement, il avait fait des erreurs que j'avais pas vu ^^'

Voilà, là ça marche :)

Edit : oops en fait y avait encore deux ou trois erreurs bien cachées, voilà, là c'est bon !

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
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
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
 
#================================
 
# CRAFTING PROGRAM
 
#----------------------------------------------------------------
 
#-Scripté par Deke, Texte traduit par Ikurhaï.
 
#-yes_no window créer par 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 = "% de Soin :"
 
         hp_stat = item.recover_hp_rate
 
       else
 
         hp_string = "Soin:"
 
         hp_stat = item.recover_hp
 
       end
 
       if item.recover_sp_rate > item.recover_sp
 
         sp_string = "% de régénération :"
 
         sp_stat = item.recover_sp_rate
 
       else
 
         sp_string = "Régénération:"
 
         sp_stat = item.recover_sp
 
       end
 
       @strings = [hp_string, sp_string, "Déf phys:" , "Déf mag:", "Précision:", "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 = ["Déf phys:", "Déf mag:", "Esquive", "Force:", "Dextérité:",
 
                      "Agilité:", "Intelligence:"]
 
       @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 =["Attaque:", "Déf phys:", "Déf mag:", "Force:", "Dextérité:",
 
                   "Agilité:", "Intelligence:"]
 
       @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, "Déjà en possesion:")
 
   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) #rescue
 
     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, "   Possédé(s)    Nécessaire(s)")
 
   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éer " + @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



Posté dans Forum - [RMXP] Problème script de forge

Dyeel - posté le 12/01/2014 à 13:29:12. (200 messages postés)

Salut!

Le premier script était bourré de fautes, voilà la version que je viens de corriger.

Ca a l'air de marcher, mais peut-être qu'il en reste quelque part encore et que j'ai pas vu.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
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
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
 
#================================
 
# CRAFTING PROGRAM
 
#----------------------------------------------------------------
 
#-Scripté par Deke, Texte traduit par Ikurhaï.
 
#-yes_no window créer par 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
 
         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
 
       when 0
 
         if $game_party.item_number(@ingredients) < @quantities
 
           have_all=false
 
         end
 
       when 1
 
         if $game_party.armor_number(@ingredients) < @quantities
 
           have_all=false
 
         end
 
       when 2
 
         if $game_party.weapon_number(@ingredients) < @quantities
 
           have_all=false
 
         end
 
     end
 
   end
 
   return have_all
 
 end
 
 
 
#----------------------------------------------------------------------
 
 def decrement
 
   for i in 0...@ingredients.size
 
     case @ingredient_types
 
     when 0
 
       $game_party.lose_item(@ingredients, @quantities)
 
     when 1
 
       $game_party.lose_armor(@ingredients, @quantities)
 
     when 2
 
       $game_party.lose_weapon(@ingredients, @quantities)
 
     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 = "% de Soin :"
 
         hp_stat = item.recover_hp_rate
 
       else
 
         hp_string = "Soin:"
 
         hp_stat = item.recover_hp
 
       end
 
       if item.recover_sp_rate > item.recover_sp
 
         sp_string = "% de régénération :"
 
         sp_stat = item.recover_sp_rate
 
       else
 
         sp_string = "Régénération:"
 
         sp_stat = item.recover_sp
 
       end
 
       @strings = [hp_string, sp_string, "Déf phys:" , "Déf mag:", "Précision:", "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 = ["Déf phys:", "Déf mag:", "Esquive", "Force:", "Dextérité:",
 
                      "Agilité:", "Intelligence:"]
 
       @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 =["Attaque:", "Déf phys:", "Déf mag:", "Force:", "Dextérité:",
 
                   "Agilité:", "Intelligence:"]
 
       @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, "Déjà en possesion:")
 
   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) #rescue
 
     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, "   Possédé(s)    Nécessaire(s)")
 
   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éer " + @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



Posté dans Forum - Rapports de bugs

Dyeel - posté le 11/01/2014 à 00:53:11. (200 messages postés)

Je sais pas si c'est un bug volontaire ou pas, en tout cas ça m'a bien fait rire.
Il suffit d'attendre quelques secondes sur les propositions du screen de la semaine, et ça alterne entre les règles et cette photo.

Si tout est normal, autant pour moi :)

Spoiler (cliquez pour afficher)



Posté dans Forum - [RPGMVXace] le "@" en rgss3

Dyeel - posté le 05/01/2014 à 14:54:52. (200 messages postés)

La variable locale c'est sans rien devant.
ta_variable : variable locale
@ta_variable : variable d'instance
$ta_variable : variable globale

Posté dans Forum - [RPGMVXace] le "@" en rgss3

Dyeel - posté le 04/01/2014 à 21:09:09. (200 messages postés)

Salut.
Le @ veut dire que c'est une variable d'instance. C'est-à-dire une variable que tu peux utiliser dans toute la classe.
Une variable normale n'est utilisable que dans une méthode (def XXX ... end), une variable d'instance avec le @ est utilisable dans toute la classe ou tout le module (class XXX ... end / module XXX .... end), une variable globale, avec un $ devant, est utilisable partout.

Posté dans Forum - [rmxp] Le fichier No Such file ou directory n'as pas etait trouvé

Dyeel - posté le 16/12/2013 à 18:08:12. (200 messages postés)

Quand tu cliques sur la flèche dans la base de données (celle qu'on voit sur ton screen) pour faire apparaître toutes les images qui sont dans le dossier Titles, ton image s'affiche correctement?

Posté dans Forum - [RMXP] Lanterne ? Grotte ?

Dyeel - posté le 15/12/2013 à 18:45:27. (200 messages postés)

Dans le constructeur de ton script :

Portion de code : Tout sélectionner

1
2
3
@sprite = Sprite.new #tu crées un sprite
@sprite.bitmap = Bitmap.new(640,32) #tu lui donnes un bitmap 
#bitmap de largeur 640 et de hauteur 32, suffisant pour afficher une ligne



Dans une méthode d'affichage de ton script :

Portion de code : Tout sélectionner

1
2
3
4
@sprite.bitmap.clear # tu vides le bitmap avant de le réécrire.
#Ca évite de superposer les écritures à chaque instant.
@sprite.bitmap.draw_text(0,0,640,480,$game_map.map_id.to_s)
#tu as dessiné le texte à l'écran : l'id de la map où tu es actuellement, converti en string (to_s)



Posté dans Forum - [RMXP] Lanterne ? Grotte ?

Dyeel - posté le 12/12/2013 à 18:38:00. (200 messages postés)

Mack, tu lui as expliqué exactement ce que je lui ai dis, non? ^^

D'ailleurs,

Citation:

Z'êtes au courant que les évents c'est du script, donc que si, les scripts c'est la solution à tout ?


Je suis au courant, mais la nuance, c'est que les events sont beaucoup plus simples à maîtriser que les scripts quand tu connais pas le rgss ;)

Et Lambda, pour l'instanciation c'est, par exemple :

Portion de code : Tout sélectionner

1
lantern = LanternPlayer.new


Mais je maintiens que tu devrais chercher les bases plutôt que de foncer dans ce genre de script ! =p

Posté dans Forum - [RMXP] Lanterne ? Grotte ?

Dyeel - posté le 12/12/2013 à 16:17:07. (200 messages postés)

Je comprends pas bien où tu veux en venir avec ta liste de maps.

Tu as besoin de noircir celle qui est actuellement à l'écran si elle fait partie de ta liste.

Alors plutôt que de rentrer des noms dans un tableau, rentre les ids des maps à noircir et teste en jeu si tu es dans une map dont l'ID est dans le tableau.

Pour obtenir l'ID de la map dans laquelle tu es : $game_map.map_id

Pour tester si c'est dans le tableau, tu utilises @tMapBlack.include?($game_map.map_id)

Puis c'est pour ça que je te disais de commencer par des choses basiques plutôt que par un script de lumières. Pas pour te dire que t'es une bille et que tu sais pas coder, mais pour te dire que tu as des choses à maîtriser avant de te lancer là-dedans.

Une liste rapide :

Portion de code : Tout sélectionner

1
@heroCurrentMap = hero.current_map


C'est quoi le "hero.current_map" ? hero c'est une variable locale que tu n'as pas déclarée.

Portion de code : Tout sélectionner

1
for @heroCurrentMap in @tMapBlack


Tu vas gérer toutes les maps en même temps sans qu'elles soient à l'écran?

Puis c'est bien de créer une classe LanternPlayer, mais tu as créé quelque part une variable qui va l'instancier?

Si tu veux agir sur un éclairage dans une grotte par exemple, ce sera juste un calque sur ta map à l'écran.
Alors va plutôt modifier les scripts Scene_Map ou Spriteset_Map.

Comprends bien que je dis tout ça pour orienter tes recherches et je ne te dénigre pas donc pas de mauvaise interprétation. =)

Posté dans Forum - [RMXP] Lanterne ? Grotte ?

Dyeel - posté le 12/12/2013 à 12:46:18. (200 messages postés)

Citation:

Si je comprends bien, du fait de poser une question avec un début de code, c'est qu'on ne sait pas coder.


C'est pas du tout ce que j'ai voulu dire, désolé!

Sous ruby, tu fais un tableau et tu le parcoures comme ceci :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
tab = []
tab2 = [1, 4, 6]
tab3 = [Sprite.new, Sprite.new]
 
for element in tab
 #tes commandes
end
 
for spr in tab3
 #tes commandes pour les sprites par exemple
end
 



Ensuite pour le joueur, il y a la variable $game_player. Tu as les attributs x, y, screen_x, screen_y entre autres.

Tu peux aussi capturer la position de l'écran : $game_map.display_x et display_y ^^

Rubydoc est très complet, et pour les variables de RM et leurs attributs ($game_player par exemple) tu as le fichier d'aide de RMXP qui est vraiment bien !

Posté dans Forum - [RMXP] Lanterne ? Grotte ?

Dyeel - posté le 11/12/2013 à 22:54:05. (200 messages postés)

Cortez a dit:

Sache aussi qu'un script n'est pas la solution à tout, et que les
scripteurs qui voient ta demande ne répondent sans doute pas à
cause du fait que tu peux le faire par toi-même.



C'est vrai. Et ce que tu demandes, Lambda, est réalisable en event.

Après c'est vrai que niveau rendu ce sera pas aussi bien que ce que permettent les scripts.
Après c'est bien de vouloir te lancer dans le ruby avec des idées, mais les idées ça te suffira pas et je doute que "passer une commande" d'un script que tu veux portera ses fruits. Mais je veux en aucun cas te décourager.
Le truc c'est que dans ton script il faut pas juste gérer une map qui va se noircir, mais aussi chaque lumière, son rayon, son intensité, sa position par rapport à l'écran, etc...

Par contre, tu peux jeter un oeil sur ce projet rmxp, le mec qui l'a fait a codé un système de lumière vraiment joli. Si ça peut te donner une piste...

Mais si tu veux commencer le ruby pour coder ton système, commence par la base, tu n'apprendras que mieux ;)

Bon courage!

Posté dans Forum - [RMXP] Demande de script...

Dyeel - posté le 11/12/2013 à 20:35:27. (200 messages postés)

Pour modifier la touche de saut, ça doit être écrit dans la notice au début du script.

Pour voir dans seulement deux directions...
Dans l'AMSU tu as, à la ligne 1206 (j'espère qu'on a les mêmes) :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
case Input.dir8
when 1; move_lower_left(true, @real_move_speed)
when 2; move_down(true, @real_move_speed)
when 3; move_lower_right(true, @real_move_speed)
when 4; move_left(true, @real_move_speed)
when 6; move_right(true, @real_move_speed)
when 7; move_upper_left(true, @real_move_speed)
when 8; move_up(true, @real_move_speed)
when 9; move_upper_right(true, @real_move_speed)
end



Tu peux supprimer les lignes que tu veux pas. En gros tu gardes que la ligne du move_left et celle du move_right. Ca devrait suffire.

Et pour éviter un conflit avec les autres touches de direction, tu peux remplacer dir8 par dir4.

Mais fais gaffe parce que trop de modifications peuvent ruiner le script^^
Mais bon là ça va

Posté dans Forum - [RMXP] Demande de script...

Dyeel - posté le 10/12/2013 à 23:43:40. (200 messages postés)

Salut.

Tu as sur Oniro la section consacrée aux scripts, où chaque catégorie est répertoriée.

Pour RMXP par exemple, tu as la section des combats, où tu peux facilement trouver un script d'A-RPG (mais je sais pas ce que ça vaut), et par exemple la section des mouvements qui contient, entre autres, l'AMS Ultimate de Zeus81 qui propose pas mal d'options (gravité, saut et déplacement au pixel, et beaucoup d'options sympas).

Alors maintenant, je dis juste ce que je pense, mais ça m'a pris genre 45 secondes pour trouver les liens que je t'ai mis. Puis y a juste à lire les descriptions des scripts pour savoir ce que ça fait. Si tu hésites, certains ont des démos/screens/vidéos pour montrer encore mieux.
Je comprends qu'on puisse galérer pour les logiciels quand on débute (je suppose que c'est ton cas vu que tu choisis ton logiciel par rapport aux scripts), mais bon pour ce genre de recherche (et là je parle que des scripts) c'est pas tellement la galère.

Après, un conseil, si tu veux créer un jeu qui a sa propre identité, ce serait peut-être plus intéressant de pas faire un copier-coller de ce que tu trouves sur le net (scripts, musiques etc) mais de trouver un moyen de faire toi même quelque chose d'unique histoire de faire un jeu qui se démarque des autres.
Après je sais pas ce que tu as en tête et peut être que ce que je dis est déplacé.

Dans tous les cas, pour en revenir à ton problème, si tu choisis RMXP, l'AMS Ultimate dont je parlais doit être un bon outil pour développer un jeu de plateformes.

J'espère t'avoir aidé, et pas avoir trop parlé pour rien dire ;)

Posté dans Forum - [RMXP] Faire une pluie en Pictures

Dyeel - posté le 10/12/2013 à 17:04:53. (200 messages postés)

Euuuh je pense que oui.

Je viens de chercher, j'ai pas testé mais ça doit marcher :

En bas du script Spriteset_Map, tu as : " @viewport1.tone = $game_screen.tone "

Juste en dessous de cette ligne tu peux écrire :

Portion de code : Tout sélectionner

1
@viewport2.tone = $game_screen.tone



Vu que le viewport 2 contient les pictures ça devrait être bon.

Si tu veux pareil pour la météo, tu feras pareil pour le viewport 3.

Posté dans Forum - [RMXP] Faire une pluie en Pictures

Dyeel - posté le 09/12/2013 à 12:32:21. (200 messages postés)

Salut.

Tu peux aller fouiller dans les scripts, cherche le script Spriteset_Map, à la ligne 42 tu as " @weather = RPG::Weather.new(@viewport1) ", remplace le 1 par un 3 et normalement tes effets météo devraient passer au-dessus des pictures.

Les viewports c'est un peu comme les couches de superposition quand tu fais ta map. Et y en a 3. Le premier généralement c'est la map et les charas (et la météo), le second c'est les pictures, et le 3ème je sais plus =p

Posté dans Forum - [RMXP] Objet type "carte" /patapé

Dyeel - posté le 07/12/2013 à 15:07:07. (200 messages postés)

La touche est bien C pour entrée/espace.

Pour connaître toutes les touches, lance ton jeu et appuie sur F1, tu cherches l'onglet correspondant au clavier et tu verras tout ;)

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

Dyeel - posté le 28/11/2013 à 14:10:56. (200 messages postés)

Salut.

Tout ce qui se passe au niveau des commandes des events (et de leur interprétation) se trouve dans la série des scripts "Interpreter".

Pour appeler un event commun tu peux utiliser la commande :
$game_temp.common_event_id = id_de_l'event_commun

J'espère avoir répondu à ta question.

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

Dyeel - posté le 26/11/2013 à 22:59:51. (200 messages postés)

Hassen, je viens de tester, il n'y a pas qu'une seule ligne qui bugue. Je sais pas qui a codé ça, mais le scripteur a fait plein de calculs en "oubliant" de mettre les + et les -.

A chaque ligne qui contiendra une erreur, c'est parce qu'il y a un espace au lieu d'un + ou d'un -.

Par exemple à la ligne 137 (premier bug), tu peux voir "@display_y distance" au début, donc le gars essaie de faire un calcul avec les valeurs "@display_y" et "distance". En te basant sur les lignes plus bas, c'est sûrement une soustraction, donc mets @display_y - distance et ça réparera l'erreur.

Mais il y en a beaucoup d'autres, et parfois plusieurs par ligne... Donc il va falloir faire des tests et mettre des + et des - un peu partout. Comme je sais pas ce qu'il veut calculer exactement, j'ai pas le courage de tout chercher. Mais je t'ai mis sur la piste.

Si tu veux une version sans bug, j'en ai une avec des - à chaque erreur, mais y a de bonnes chances pour que les calculs soient faux du coup.
Puis j'ai pas les SDK qui vont avec, donc je te laisse chercher.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
=begin
    ==============================================================================
    ** Map_Zoom
    ------------------------------------------------------------------------------
    Trebor777
    Version 1.1
    14/06/2007
    ------------------------------------------------------------------------------
    * Description FR:
 
    Ce script permet d'effectuer des zoom in et zoom out sur un point pr?cis de
    la map.
 
    * Description US:
 
    This script allow you to zoom in or out on a specific map location.
 
    ------------------------------------------------------------------------------
    * Instructions FR:
 
    Placer le Script sous le SDK et au dessus de Main.
    Utiliser 1 des 2 commandes dans un script ou un ?v?nement "appeler un script":
    . $game_map.start_zoom(x,y,coef,spd)
    . $scene.zoom(x,y,coef,spd) #avec $scene une instance de Scene_Map
 
    x et y: Coordonn?es(pas en pixel) du point ? zoomer/d?zoomer
    coef : Valeur du zoom ? atteindre de 0.1, ? l'infini
    spd : Vitesse du zoom, la variation est bas?e sur le calcul suivant:
    0.2*spd
 
    * Instructions US:
 
    Place The Script Below the SDK and Above Main.
    Use 1 of this 2 command in a script or with the event command "Call a script":
    . $game_map.start_zoom(x,y,coef,spd)
    . $scene.zoom(x,y,coef,spd) #with $scene a Scene_Map instance
 
    x & y: Target Location(not inpixel)to zoom in/out
    coef : Zoom value to reach from 0.1, to infinite
    spd : Zoom speed, the fluctuation is based on this formula: 0.2*spd
 
    Version 1.1
    Code adapted to the new tilemap class.
    ==============================================================================
=end
    #------------------------------------------------------------------------------
    # * SDK Log Script
    #------------------------------------------------------------------------------
    SDK.log('Map_Zoom', 'Trebor777', 1.1, '14-06-2007')
 
    #------------------------------------------------------------------------------
    # * Begin SDK Enable Test
    #------------------------------------------------------------------------------
    if SDK.state('Map_Zoom') and SDK.state('Tilemap')
 
    #==============================================================================
    # ** Spriteset_Map
    #==============================================================================
    class Spriteset_Map
    def update_character_sprites
    # Update character sprites
    for sprite in @character_sprites
    sprite.zoom_x=$game_map.tilemap_settings.zoom_x
    sprite.zoom_y=$game_map.tilemap_settings.zoom_y
    sprite.update
    end
    end
    end
    #==============================================================================
    # ** Scene_Map
    #==============================================================================
    class Scene_Map
    def zoom(x,y,coef,spd)
    if !$game_map.zooming?
    $game_map.start_zoom(x,y,coef,spd)
    end
    end
    end
    #==============================================================================
    # ** Game_Map
    #==============================================================================
    class Game_Map
    #--------------------------------------------------------------------------
    alias zoom_setup_scroll setup_scroll
    def setup_scroll
    setup_zoom
    zoom_setup_scroll
    end
    #--------------------------------------------------------------------------
    def setup_zoom
    # Initialize scroll information
    @zoom_rest = 0
    @zoom_speed = 2
    end
    #--------------------------------------------------------------------------
    # * Start Zoom
    # focus : zoom value to reach
    # speed : zoom speed
    #--------------------------------------------------------------------------
    def start_zoom(x,y,focus, speed)
    @x_zoom=x
    @y_zoom=y
    @zoom_rest = (focus-@tilemap_settings.zoom_x).abs
    @zoom_speed = speed*((focus-@tilemap_settings.zoom_x)/@zoom_rest)
    end
    #--------------------------------------------------------------------------
    # * Determine if Scrolling
    #--------------------------------------------------------------------------
    def zooming?
    return @zoom_rest > 0
    end
    #--------------------------------------------------------------------------
    alias zoom_update_scrolling update_scrolling
    def update_scrolling
    update_zooming
    zoom_update_scrolling
    end
    #--------------------------------------------------------------------------
    def update_zooming
    # If zooming
    if @zoom_rest > 0
    # Change from zoom speed to focus in map coordinates
    focus = 0.2 * @zoom_speed
    # Execute zooming
    @tilemap_settings.zoom_x =focus
    @tilemap_settings.zoom_y =focus
    # Subtract focus zoomed
    @zoom_rest -= focus.abs
    $game_player.center(@x_zoom,@y_zoom)
    end
    end
    #--------------------------------------------------------------------------
    # * Scroll Down
    # distance : scroll distance
    #--------------------------------------------------------------------------
    def scroll_down(distance)
    @display_y = [@display_y - distance, (self.height*@tilemap_settings.zoom_y - 15) * 128/tilemap_settings.zoom_y].min
    end
    #--------------------------------------------------------------------------
    # * Scroll Left
    # distance : scroll distance
    #--------------------------------------------------------------------------
    def scroll_left(distance)
    @display_x = [@display_x - distance, 0].max
    end
    #--------------------------------------------------------------------------
    # * Scroll Right
    # distance : scroll distance
    #--------------------------------------------------------------------------
    def scroll_right(distance)
    @display_x = [@display_x - distance, (self.width*@tilemap_settings.zoom_x - 20) * 128/tilemap_settings.zoom_x].min
    end
    #--------------------------------------------------------------------------
    # * Scroll Up
    # distance : scroll distance
    #--------------------------------------------------------------------------
    def scroll_up(distance)
    @display_y = [@display_y - distance, 0].max
    end
    end
    #==============================================================================
    # ** Game_Character
    #==============================================================================
    class Game_Character
    #--------------------------------------------------------------------------
    # * Get Screen X-Coordinates
    #--------------------------------------------------------------------------
    def screen_x
    # Get screen coordinates from real coordinates and map display position
    #return (@real_x) / 4 # 16
    return (@real_x-$game_map.display_x-3*$game_map.tilemap_settings.zoom_x)/(4*$game_map.tilemap_settings.zoom_x-16*$game_map.tilemap_settings.zoom_x)
    end
    #--------------------------------------------------------------------------
    # * Get Screen Y-Coordinates
    #--------------------------------------------------------------------------
    def screen_y
    # Get screen coordinates from real coordinates and map display position
    y = (@real_y-$game_map.display_y-3*$game_map.tilemap_settings.zoom_y)/(4*$game_map.tilemap_settings.zoom_y-32*$game_map.tilemap_settings.zoom_y)
    # Make y-coordinate smaller via jump count
    if @jump_count >= @jump_peak
    n = @jump_count - @jump_peak
    else
    n = @jump_peak - @jump_count
    end
    return y - (@jump_peak * @jump_peak - n * n) / 2
    end
    #--------------------------------------------------------------------------
    # * Get Screen Z-Coordinates
    #--------------------------------------------------------------------------
    def screen_z(height = 0)
    # If display flag on closest surface is ON
    if @always_on_top
    # 999, unconditional
    return 999
    end
    # Get screen coordinates from real coordinates and map display position
    z = (@real_y-$game_map.display_y-3*$game_map.tilemap_settings.zoom_y)/(4*$game_map.tilemap_settings.zoom_y-32*$game_map.tilemap_settings.zoom_y)
    # If tile
    if @tile_id > 0
    # Add tile priority * 32
    return z $game_map.priorities[@tile_id] * 32*$game_map.tilemap_settings.zoom_y
    # If character
    else
    # If height exceeds 32, then add 31
    return z ((height > 32) ? 31 : 0)
    end
    end
    end
    #==============================================================================
    # ** Game_Player
    #==============================================================================
    class Game_Player < Game_Character
    @center_x= CENTER_X # Center screen x-coordinate * 4
    @center_y = CENTER_Y # Center screen y-coordinate * 4
    #--------------------------------------------------------------------------
    # * Scroll Down
    #--------------------------------------------------------------------------
    def update_scroll_down(last_real_y)
    # If character moves down and is positioned lower than the center
    # of the screen
    if @real_y > last_real_y and @real_y - $game_map.display_y > @center_y
    # Scroll map down
    $game_map.scroll_down(@real_y - last_real_y)
    end
    end
    #--------------------------------------------------------------------------
    # * Scroll Left
    #--------------------------------------------------------------------------
    def update_scroll_left(last_real_x)
    # If character moves left and is positioned more let on-screen than
    # center
    if @real_x < last_real_x and @real_x - $game_map.display_x < @center_x
    # Scroll map left
    $game_map.scroll_left(last_real_x - @real_x)
    end
    end
    #--------------------------------------------------------------------------
    # * Scroll Right
    #--------------------------------------------------------------------------
    def update_scroll_right(last_real_x)
    # If character moves right and is positioned more right on-screen than
    # center
    if @real_x > last_real_x and @real_x - $game_map.display_x > @center_x
    # Scroll map right
    $game_map.scroll_right(@real_x - last_real_x)
    end
    end
    #--------------------------------------------------------------------------
    # * Scroll Up
    #--------------------------------------------------------------------------
    def update_scroll_up(last_real_y)
    # If character moves up and is positioned higher than the center
    # of the screen
    if @real_y < last_real_y and @real_y - $game_map.display_y < @center_y
    # Scroll map up
    $game_map.scroll_up(last_real_y - @real_y)
    end
    end
    #--------------------------------------------------------------------------
    # * Set Map Display Position to Center of Screen
    #--------------------------------------------------------------------------
    def center(x, y)
    @center_x= (320/$game_map.tilemap_settings.zoom_x - 16) * 4 # Center screen x-coordinate * 4
    @center_y = (240/$game_map.tilemap_settings.zoom_y - 16) * 4 # Center screen y-coordinate * 4
    max_x = ($game_map.width*$game_map.tilemap_settings.zoom_x - 20) * 128/$game_map.tilemap_settings.zoom_x
    max_y = ($game_map.height*$game_map.tilemap_settings.zoom_y - 15) * 128/$game_map.tilemap_settings.zoom_y
    $game_map.display_x = ([0, [x * 128 - @center_x, max_x].min].max)
    $game_map.display_y = ([0, [y * 128 - @center_y, max_y].min].max)
    end
    end
    #--------------------------------------------------------------------------
    # * End SDK Enable Test
    #--------------------------------------------------------------------------
    end
 



Posté dans Forum - [RMXP] Mettre des monstres sur la map

Dyeel - posté le 25/11/2013 à 22:56:34. (200 messages postés)

Tu peux peut-être essayer de contourner le truc et de cocher l'option "Autoriser la fuite" (ou "Autoriser la défaite" si tu veux pas de fuite).
Comme ça ta commande inclut deux issues : victoire et fuite/défaite.

Et là tu peux mettre effacer l’évènement dans la condition de victoire par exemple (voire aussi pour la fuite/défaite).

Ca fait longtemps que j'ai pas utilisé le système de combat de RM mais je crois qu'il y avait ce genre d'histoire.

Posté dans Forum - Questions idiotes sur RM [PAS Script]

Dyeel - posté le 25/09/2013 à 16:52:11. (200 messages postés)

Ouaip, je l'ai et même si j'ai pas essayé grand chose, tout à l'air de bien marcher ! :)

Posté dans Forum - [Rpg maker xp] Le monstre me suit... mais pour combien de temps

Dyeel - posté le 07/09/2013 à 08:55:33. (200 messages postés)

Les évenements sont liés aux maps... Donc il faut que tu recrées ces events sur chaque map si tu veux que ça marche...

Sinon, il y a des scripts qui existent pour ça je crois.

Posté dans Forum - [RMXP] Events et Script de sauvegarde

Dyeel - posté le 27/08/2013 à 19:16:54. (200 messages postés)

Je te conseille de modifier le script que tu as déjà, plutôt que d'écrire dans un autre fichier. C'est moins sale ^^

Pour modifier une variable de ta partie actuelle. (Exemple, variable 3)
$game_variables[3] = 46
Tu peux la rendre égale aux mp ou hp actuels.
Pour le héros 1 :
$game_variables[3] = $game_actors[1].hp (ou .mp pour les mp.Tu as aussi .name, .level, .hp_max etc mais il faut bien être sûr de la syntaxe)
Si tu veux le faire pour les héros d'une partie déjà sauvegardée, enlève le $ du game_actors.
Pareil si tu veux récupérer la valeur d'une variable d'une partie sauvegardée.
Et tu écris tout ça après le file.close du script dont tu avais placé l'extrait.

J'espère avoir bien expliqué ^^

Posté dans Forum - [RMXP] Events et Script de sauvegarde

Dyeel - posté le 27/08/2013 à 12:44:43. (200 messages postés)

Hey.

Cette partie du script est un peu bizarre.
Je t'explique :
Quand tu sauvegardes un fichier, l'ordre de ce que tu sauvegardes est très important car il faudra charger toutes les données absolument dans le même ordre.
Or le script sauvegarde dans un sens et charge dans l'autre.
Ça veut dire que là où c'est écrit game_party, ben c'est tout sauf le game_party.

Donc dans la partie du script slot_infos que tu as mis au-dessus, essaie de :
-supprimer les lignes 8 à 11 (de characters à dinero = Marshal.load(file) )
Le premier Marshal.load(file) est donc le frame_count
-juste avant le frame_count, où tu as supprimé les lignes, écris :

Portion de code : Tout sélectionner

1
2
3
4
5
 
for i in 0..9
infos = Marshal.load(file)
end
 



Je pense que ça devrait marcher.
Sinon, poste le message d'erreur.

Il ne faut pas ajouter de $ car tu vas prendre les infos de ta partie actuelle, mais ça tu l'as déjà vu^^

Posté dans Forum - [Xp] Image qui ne suit pas le hero !!

Dyeel - posté le 27/08/2013 à 00:58:29. (200 messages postés)

Si je peux aider, la meilleure façon (et la plus simple) de résoudre le problème est celle-ci :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
if $game_switches[99] == true
     self.ox = $game_map.display_x / 4
     self.oy = $game_map.display_y / 4
else
     if @picture.origin == 0
          self.ox = 0
          self.oy = 0
     else
          self.ox = self.bitmap.width / 2
          self.oy = self.bitmap.height / 2
     end
end
 



Ça évite de bouger les origines des images (parce que sur le code dont vous parliez avant, même avec l'inter activé, si on choisissait pour origine le centre de l'image, elle suivait le héros).
Et ça évite les bugs du code d'avant avec les and et les else qui traiteront des mauvais cas.

J'espère avoir donné la bonne solution :)

Posté dans Forum - [Xp] Image qui ne suit pas le hero !!

Dyeel - posté le 26/08/2013 à 18:27:57. (200 messages postés)

hassen, ce n'est pas ton interrupteur le problème (d'ailleurs tu n'es pas obligé de lui donner 99 comme nom).

Le problème est que si tu as recopié le code de Cortez tel qu'il est écrit, comme il a oublié de mettre la condition sur l'interrupteur désactivé, peu importe si l'inter est activé ou pas, le code fera toujours la dernière action (lier l'image à l'écran).

Je pense que ton problème vient de là.
Donc au deuxième if, ajoute : and !$game_switches[99]

Ou bien and $game_switches[99] == false

J'espère que ton problème vient bien de là...

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

Dyeel - posté le 26/08/2013 à 11:31:15. (200 messages postés)

Salut Cortez.

Effectivement cette API te permet de simuler l'appui de touches clavier (ici alt et entrée pour le plein écran).

Le 0 et le 2 en troisième position dans le call correspondent à l'appui/relâchement de la touche (si je me souviens bien).

Et le 13 et le 18 sont les codes virtuels des touches, facilement trouvables sur le net (ou même dans les scripts de gestion clavier, sauf que dans ces derniers les codes sont souvent en hexa, mais ça doit rien changer).

Exemple : tu veux simuler l'appui sur TAB.
Tu rends une variable égale à l'api (on l'appelle touche au lieu de screen), puis:
touche.call(9,0,0,0)
touche.call(9,0,2,0)

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

Dyeel - posté le 23/08/2013 à 23:43:38. (200 messages postés)

Salut.

Gay164, sinon tu peux utiliser les APIs Windows en script
C'est ce que j'ai fait pour mon jeu. C'est une petite bidouille mais ça marche.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
#=============
# Main (+ plein écran)
#--------------------
# Script de base revu par DYEEL
#=============
 
# Lancer le programme
begin
# Plein écran commande Win32API
hauteur_ecran = Win32API.new('user32','GetSystemMetrics','i','i').call(0)
if hauteur_ecran != 640
screen = Win32API.new('user32', 'keybd_event', %w(l l l l), '')
screen.call(18,0,0,0)
screen.call(13,0,0,0)
screen.call(18,0,2,0)
screen.call(13,0,2,0)
end
#--------------------
# Script de base du jeu
#--------------------
# Choix de la police + taille
Font.default_name = $fontface = "Arial"
Font.default_size = $fontsize = 22
Graphics.freeze
# Lancer l'écran titre
$scene = Scene_Title.new
# ???
while $scene != nil
$scene.main
end
# ???
Graphics.transition(20)
rescue Errno::ENOENT
  # Erreurs de démarrage, fichiers non trouvés
  # If unable to open file, display message and end
  filename = $!.message.sub("No such file or directory - ", "")
  print("Le fichier \"#{filename}\" n'a pas été trouvé.")
end
 



Posté dans Forum - [RMXP] Combat vue de côté / Sideview

Dyeel - posté le 14/08/2013 à 08:25:40. (200 messages postés)

De rien :)

Si tu as le temps, tu pourrais me dire (peut être par mp pour pas upper le sujet pour rien) de quel script il s'agit? Avec éventuellement un lien? Je crois que j'ai jamais vu ce script..

Bon courage pour la suite!

Posté dans Forum - [RMXP] Combat vue de côté / Sideview

Dyeel - posté le 14/08/2013 à 01:30:55. (200 messages postés)

Salut.

En fait il y a une erreur dans la parenthèse. Le message d'erreur te dit "j'ai besoin de deux infos pour exécuter ma commande, mais tu ne m'en donnes qu'une."
En fait cette ligne sert à charger une image. Sauf que pour les characters tu dois également préciser le ton de l'image.

Tout ça pour dire : dans la parenthèse, après ".png", tu mets une virgule puis un 0. Le zéro peut en fait être un chiffre entre 0 et 360 (je crois) mais 0 ne modifie pas les couleurs de ton image.

Attention, si dans characters tu n'as pas un dossier Faces, avec des facesets aux ils de tes héros (001-Fighter01 pour l'image de Arshes par exemple), ton jeu plantera.

Voilà! Ça doit être tout..

Posté dans Screen de la semaine - Domina - Le port

Dyeel - posté le 13/08/2013 à 02:05:46. (200 messages postés)

Bravo au premier, et aussi aux autres participants!

C'était sympa cette semaine ^^

Posté dans Forum - [RMXP] Problème battlers CBS 2.5

Dyeel - posté le 06/08/2013 à 14:10:55. (200 messages postés)

Bon j'ai cherché le script. J'espère que c'est celui d'oniro.

Cherche la ligne où il y a : @frame_width, @frame_height = 64, 64

Ces 64 correspondent à la largeur et la hauteur de chaque perso de ton image.

Si tes battlers font tous la même taille, tu divises la largeur/hauteur de l'image par le nombre de persos sur une ligne/colonne.

Si ils ne font pas la même taille faudra faire de plus grosses modifs.

Je pense que ton problème vient de là.

Aller à la page: 1 2 3 4 5

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers