Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
506 connectés actuellement
30732519 visiteurs depuis l'ouverture
2498 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
Messages postés par Gari Nombre de messages référencés sur Oniromancie (non supprimés): 5915 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 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
Posté dans Forum - Sauvons la planète ! Avant qu'elle pète ! *prout* Trop tard ! |
Gari -
posté le 07/09/2022 à 14:52:28. (5901 messages postés) - |
| Citation: vrac obligatoire pour la nourriture |
Alors ça j'avais cru comprendre lors d'une émission que c'était une fausse bonne solution, d'où le fait qu'on en croise assez peu. Mais je sais plus pourquoi (approvisionnement ? Bacs ?).
Il y a des choses qui me paraissent un poil plus lunatiques que d'autres, mais dans l'ensemble je suppose que ça se tient.
|
Posté dans Forum - Glixel |
Gari -
posté le 07/09/2022 à 10:52:56. (5901 messages postés) - |
| J'avais vu ça sur un discord parallèle à celui d'oniro, c'est fait.
|
Posté dans Jeux - Glixel |
Gari -
posté le 05/09/2022 à 15:14:13. (5901 messages postés) - |
| Lien à jour (version 0.8.3, 4/9/2022) avec une nouvelle zone !
Edit 7/7/2022 : Mise à jour version 0.8.4
|
Posté dans Forum - Topic de l'amour |
Gari -
posté le 01/09/2022 à 16:54:00. (5901 messages postés) - |
| Attends, on va quand même garder ça pour la postérité, ce serait dommage que ça se perde. Sur le discord :
Citation: Joke : Je suis fan de tes petites maisons, rominou
Noiracide : J'ai rêvé de toi Joke je sais absolument pas pk
on était à une soirée pour ton anniv et on fumait des joints
j'ai pas compris
Joke : Ce doit être un rêve prémonitoire, j'espère qu'il n'y avait rien de sexuel entre nous quand-même
Noiracide : non ❤️ mais on étaient bien bauf |
|
Posté dans Forum - Muma|Rope [COLLAB] Venez tester ! |
Gari -
posté le 01/09/2022 à 13:17:41. (5901 messages postés) - |
| Oui. Mais c'est soit elle meurt d'ennui, soit elle se meurt (désolé j'étais pas clair).
Peut-être marchez alors ? Mais c'est pas très vendeur.
Ok pour Swamp. Pas très beau pour un screen en effet (les arbres violets dans l'eau sont gros et trop répétitifs).
Une simple modification du mapping devrait suffir, en vrai, il faut juste que vous trouviez comment utiliser le chipset, et peut-être pivoter deux-trois motifs pour ajouter de la variété à moindre coût (nénuphar, racine) :
Un essai en aérant un peu. Le totem a du mal à se démarquer quand même, il aurait fallu quelque chose de plus large peut-être, ou placé différemment par rapport au gros tronc porte derrière Muma.
Deuxième essai, mais on perd les dimensions du screen :
|
Posté dans Forum - Muma|Rope [COLLAB] Venez tester ! |
Gari -
posté le 01/09/2022 à 12:47:06. (5901 messages postés) - |
| Citation: Pour des raisons d'accessibilité au plus grand nombre, la langue du jeu est l'anglais. Cependant il n'y a aucun texte en dehors de l'écran titre et de quelques mots dans le tuto, rendant le jeu totalement jouable même aux plus réfractaires des anglophobes.
Muma est une fille qui se meurt d'ennuie. Sa vie ne tient plus qu'à un fil... ou plutôt une corde. Elle regrette sans doute de ne pas avoir pu vivre toutes ces choses dont rêve toutes les petites filles. Pour tromper son ennui, Muma va chercher ce qu'il y a de plus beau : des souvenirs.
Baladez, explorez, fouillez, retournez, décortiquez les mondes de Muma et créez ces souvenirs pour combler le vide de son cœur.
Muma|Rope est un projet multimaker initié par Romain (aka Noiracide) en 2013, tombé dans l'oubli et ressorti de l'ombre en 2019. Inscrit dans la digne lignée des Yume Nikki-like, Muma|Rope est un jeu d'exploration, d'errance, de mondes glauques, colorés et illogiques, de secrets, de mystères et d'ombres dans lequel le chemin vaut plus que la fin. |
au plus réfractaire des anglophobes. (plus joli)
Muma est une fille qui meurt d'ennui. (se mourir ne se dit pas, c'est se languir que tu devais penser)
"Elle regrette sans doute de ne pas avoir pu vivre toutes ces choses dont rêve toutes les petites filles." => est-ce que ce n'est pas donner du lore là où il ne devrait pas y en avoir ? Pour moi, ce serait plutôt au joueur de se faire sa propre opinion là-dessus (surtout qu'il me semble que vous vouliez garder ça très flou).
Baladez-vous
Pour le screen le plus représentatif (en premier), j'aurais dit le désert (zone accessible tôt et qui se démarque visuellement), mais celui des arcs-en-ciel est pas mal non plus.
Swamp ça ressemble à quoi déjà ?
|
Posté dans Jeux - The Legend Of Femi-Mars : Bertrand's Legacy (retiré) |
Gari -
posté le 01/09/2022 à 10:13:25. (5901 messages postés) - |
| Le jeu est fonctionnel, mais c'est vraiment plat compte tenu qu'il s'agit d'un fangame sur un youtubeur (donc on pourrait s'attendre à des références ou de l'humour).
|
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Gari -
posté le 01/09/2022 à 09:30:19. (5901 messages postés) - |
| J'ai regardé dans le dossier des battlers, et c'est comme je disais, Seikame n'a pas utilisé de scripts pour placer ses battlers, il a juste joué sur la hauteur des images.
Pour le positionnement de côté, je sais pas pas, mais ça a l'air d'être à la fin de Sprite_Battler. Il y a des chances que les sprites n'aient pas une position fixe dans le système de base.
1
2
3
4
| # Set sprite coordinates
self.x = @battler.screen_x
self.y = @battler.screen_y-30
self.z = @battler.screen_z |
|
Posté dans Forum - Rapports de bugs |
Gari -
posté le 31/08/2022 à 11:01:06. (5901 messages postés) - |
| J'ai enlevé le post-it de la liste d'Huli. Je l'avais mise à jour, mais en l'état elle était pas claire à cause des liens barrés, et j'ai pas trop le courage d'entretenir cette liste. Je considère que les tutos d'oniros sont tous utiles (sinon ils seraient pas là).
Faudrait que je fasse un tour dans la liste des scripts externes, aussi...
|
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Gari -
posté le 31/08/2022 à 10:50:48. (5901 messages postés) - |
| You are not prepared il me semble que c'est l'affichage standard de XP (portraits des héros en combat). Peut-être que l'auteur a juste fait une image plus haute avec une partie transparente en bas pour pas qu'elle se trouve sur l'interface de combat ?
|
Posté dans Forum - Screenshots de vos jeux ! |
Gari -
posté le 31/08/2022 à 10:45:12. (5901 messages postés) - |
| A l'image ça a l'air très cool !
Question stupide, pour les menus c'est un windowskin ou des picture faites à la main. Dans les deux cas ça rend bien.
|
Posté dans Forum - Aëdemphia |
Gari -
posté le 31/08/2022 à 10:42:31. (5901 messages postés) - |
| Je dirais bien que je suis partant pour la bêta, mais comme Darmalse (ou l'autre ville Zurithor avec des poissons volants) tournait déjà pas très bien chez moi, ça risque d'être frustrant, surtout que le jeu est quand même assez long.
Et puis je suis sans doute pas un très bon détecteur de bugs (j'imagine qu'à ce stade de développement, ce doit être des bugs bien pénibles à débusquer).
Bon courage pour la dernière ligne droite !
|
Posté dans News - Public, à vos scrutins ! |
Gari -
posté le 30/08/2022 à 12:31:03. (5901 messages postés) - |
| Il fait beaucoup mieux que le premier, apparemment. Comme quoi, faut pas se fier aux apparences !
|
Posté dans Forum - Rapports de bugs |
Gari -
posté le 27/08/2022 à 16:14:37. (5901 messages postés) - |
| Oui, c'est normal.
(On compte sur les membres pour apporter des modifications responsables quand ils ont des infos sur un fichier, notamment rippé.)
|
Posté dans Galerie - Fanart de Léo |
Gari -
posté le 27/08/2022 à 16:08:55. (5901 messages postés) - |
| Je connais pas l'univers, mais le dessin est beau (posture + effet de lumière sur les chairs). Il est pas un peu anorexique par contre ? (je crois que tu voulais que son ventre soit à moitié de profil ?)
|
Posté dans Forum - Rapports de bugs |
Gari -
posté le 27/08/2022 à 09:14:24. (5901 messages postés) - |
| Je viens de regarder, et tu peux éditer les infos du fichier (ce qui est normal, ça a été mis en place pour permettre à tous les membres qui le souhaiteraint de rajouter ou corriger des infos, notamment pour les ressources graphiques), mais j'ai pas vu pour le fichier en lui-même. Tu as fait une manipulation en particulier ?
|
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Gari -
posté le 25/08/2022 à 08:48:07. (5901 messages postés) - |
| Non, elle se produit à chaque fois. Il s'avère qu'il ne fallait pas faire de retour à la ligne dans la boîte de dialogue. En gros le maker faisait :
Citation:
Le bug pour les choix reste anormal, mais je peux contourner ça en ajoutant une boîte vide devant les boîtes concernées (VX détecte automatiquement si les choix peuvent être insérés dans la boîte de message précédente, et comme il y a un saut à la ligne le log doit mal placer son curseur).
Du coup je pense que vérifier si une ligne a été sautée après \nb[x] et la supprimer devrait pouvoir résoudre mon problème ?
|
Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!! |
Gari -
posté le 24/08/2022 à 19:49:20. (5901 messages postés) - |
| Mack : le problème du retour à la ligne, c'est que quand il y a un choix, il sélectionne la ligne vide comme premier choix, et la deuxième ligne avec le premier choix annoncé est le deuxième choix quand sélectionné.
En gros :
[boîte avec le nom du perso]
[curseur premier choix sur ligne vide
curseur deuxième choix sur ligne du premier choix
ligne du deuxième choix non sélectionnable]
Euh, j'ai pas tout compris, mais :
- \nb[x] permet d'ajouter une boîte au-dessus de la boîte de dialogue standard. Il s'agit d'un ajout de Yanfly pour ajouter le nom d'un personnage (ça supporte les balises textes pour des variables ou non de héros).
- La classe c'est Window_Message < Window_Selectable
- pour ce que fait refresh_name_box, c'est défini ligne 620.
- Le reste je ne sais pas où regarder
Citation: Ce que tu peux tenter, par exemple, c'est de prendre la variable qui contient le nom problématique et de lui faire "variable.chomp!" pour enlever de possibles sauts de ligne de celle-ci. |
Je mets ça où ? Car en soi il s'agit d'une balise code qu'on met dans la boîte message, du style \nb[\n[1]] (ce qui afficherait l'acteur 1 de la bdd), et pas un appel de script. Et si c'est dans le script je n'ai aucune idée de où caser ça.
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
| #===============================================================================
#
# Yanfly Engine RD - Custom Message System
# Last Date Updated: 2009.06.14
# Level: Easy, Lunatic
#
# This is by no means a complex message system like Modern Algebra's ATS or
# Woratana's Neo Message System. If you want a message system with a lot of
# features, I highly recommend that you take a look at those. This message
# system here will supply the most basic functions and needs without adding
# too many extra features.
#
# What this script has to offer is basic functionality for new tags, a namebox
# window, and drawn items, weapons, and armours along with their icons. There
# also exists a Lunatic Mode to create quick and easy custom shortcuts. For
# the most part, this script is plug and play.
#
#===============================================================================
# Updates:
# ----------------------------------------------------------------------------
# o 2009.06.14 - Started script and finished.
#===============================================================================
# Instructions
#===============================================================================
#
# Scroll down and bind ROW_VARIABLE to the desired variable. This variable will
# let you adjust how many rows can be viewed at once. If the rows are set to 0,
# it will display the default row amount of 4 rows.
#
# The following are codes you may use when typing out your messages. Replace
# x, y with numbers unless specified otherwise.
#
# Code: Effect:
# \v[x] Writes variable x's value.
# \n[x] Writes actor x's name.
# \c[x] Changes the colour of the text to x.
# \g Displays the gold window.
# \. Waits 15 frames (quarter second).
# \| Waits 60 frames (a full second).
# \! Waits until key is pressed.
# \> Following text is instant.
# \< Following text is no longer instant.
# \^ Skips to the next message.
# \\ Writes a "\" in the window.
#
# \w[x] Waits x frames (60 frames = 1 second).
#
# \nb[x] Creates a name window with x. Left side.
# \nbl[x] Creates a name window with x. Locks the namebox. Left side.
# \nbu[x] Creates a name window with x. Unlocks the namebox. Left side.
# \rnb[x] Creates a name window with x. Right side.
# \rnbl[x] Creates a name window with x. Locks the namebox. Right side.
# \rnbu[x] Creates a name window with x. Unlocks the namebox. Right side.
# \nbu Closes name window. Unlocks the namebox.
#
# \fn[x] Changes the font name to x. Set to 0 to reset font name.
# \fs[x] Changes the font size to x. Set to 0 to reset font size.
# \fb Changes the font to bold and back.
# \fi Changes the font to italic
# \fh Changes the font to shadowed and back.
#
# \ac[x] Writes actor x's class name.
# \as[x] Writes actor x's subclass name. Requires Subclass System.
# \ax[x] Writes actor x's combination class name. Requires Subclass System.
# \af[x] Replaces face with actor x's face.
# \af[x:y] Replaces face with actor x's face name but uses expression y.
#
# \pn[x] Writes ally's name in party slot x.
# \pc[x] Writes ally's class name in party slot x.
# \ps[x] Writes ally's subclass name in party slot x.
# \px[x] Writes ally's combination class name in party slot x.
# \pf[x] Replaces face with ally's face in party slot x.
# \pf[x:y] Replaces face with ally's face name but uses expression y.
#
# \nc[x] Writes class ID x's name.
# \ni[x] Writes item ID x's name.
# \nw[x] Writes weapon ID x's name.
# \na[x] Writes armour ID x's name.
# \ns[x] Writes skill ID x's name.
# \nt[x] Writes state ID x's name.
#
# \i[x] Draws icon ID x into the message window.
# \ii[x] Writes item ID x's name with icon included.
# \iw[x] Writes weapon ID x's name with icon included.
# \ia[x] Writes armour ID x's name with icon included.
# \is[x] Writes skill ID x's name with icon included.
# \it[x] Writes state ID x's name with icon included.
#
#===============================================================================
#
# Compatibility
# - Incompatible: Any other message systems obviously.
# - Alias: Window_Message: initialize, update, dispose, new_page
# - Overwrites: Game_Interpreter: command_101, setup_choices
# - Overwrites: Window_Message: convert_special_characters, update_message
#
#===============================================================================
# Credits:
# Woratana for reference on stringing multiple message text.
# Modern Algebra for reference on a few misc methods.
#===============================================================================
$imported = {} if $imported == nil
$imported["CustomMessageSystem"] = true
module YE
module MESSAGE
# This adjusts how many rows are shown. On screen. If it's 0 or under, a
# maximum of 4 rows will be shown. If it's above, it will show that many
# rows and texts following it immediately after will also display that many
# extra rows.
ROW_VARIABLE = 90
# This adjusts the icon width. Used mostly for monospaced fonts so that
# icons will not break the alignment.
ICON_WIDTH = 24
# This determines where you would like the namebox window to appear relative
# to the message window. Adjust the following accordingly.
NAME_WINDOW_X = 0 # Adjusts X position offset from Message Window.
NAME_WINDOW_Y = 40 # Adjusts Y position offset from Message Window.
NAME_WINDOW_W = 20 # Adjusts extra width added to the Name Window.
NAME_WINDOW_H = 40 # Adjusts the height of the Name Window.
NAME_COLOUR = 0 # Default colour used for name box.
# The following lets you adjust whether or not you would like to see the
# back of the name window.
NAME_WINDOW_SHOW_BACK = true
# The following allows you to adjust the font defaults for ALL text in the
# game. This includes the text outside of the message window and includes
# the text within the menu windows.
FONT_NAME = ["Cambria", "Cambria", "Cambria"]
FONT_SIZE = 20
FONT_BOLD = false
FONT_ITALIC = false
FONT_SHADOW = true
end # MESSAGE
end # YE
#===============================================================================
# How to Use: Lunatic Mode
#===============================================================================
#
# This portion is for those who know how to script.
#
# \X[x] or \X[x:y] or \X[x:y:z]
# These let you create your own custom tags. If you use the first tag, there is
# one case for the "custom_convert" definition to return. If you use the second
# tag, there will be two cases for you to select from. And likewise, if there's
# three tags, then the z case will also be taken into account of.
#
#===============================================================================
class Window_Message < Window_Selectable
def custom_convert(x_case, y_case = 0, z_case = 0)
text = ""
case x_case
#---------------------------------------------------------------------------
# //////////////////////////////////////////////////////////////////////////
# This is where you begin adding in your own custom converted tags.
#---------------------------------------------------------------------------
when 1 # Show the full name of the actor.
case y_case # This is the extra case for the actor.
when 1
text = "\\n[1] von Xiguel"
when 2
text = "Michelle \\n[2]"
when 3
text = "\\n[3] Manfred"
when 4
text = "\\n[4] Fernaeus"
end
when 2 # Show how much gold the party has.
text = $game_party.gold
when 3 # Show party's max level
text = $game_party.max_level
#---------------------------------------------------------------------------
# This is the part you guys shouldn't touch afterwards.
# //////////////////////////////////////////////////////////////////////////
#---------------------------------------------------------------------------""
end
return text
end
end # Window_Message
#===============================================================================
# Editting anything past this point may potentially result in causing computer
# damage, incontinence, explosion of user's head, coma, death, and/or halitosis.
# Therefore, edit at your own risk.
#===============================================================================
Font.default_size = YE::MESSAGE::FONT_SIZE
Font.default_name = YE::MESSAGE::FONT_NAME
Font.default_bold = YE::MESSAGE::FONT_BOLD
Font.default_italic = YE::MESSAGE::FONT_ITALIC
Font.default_shadow = YE::MESSAGE::FONT_SHADOW
#===============================================================================
# Window_Message
#===============================================================================
class Window_Message < Window_Selectable
#--------------------------------------------------------------------------
# alias initialize
#--------------------------------------------------------------------------
alias initialize_cms initialize unless $@
def initialize
initialize_cms
var = $game_variables[YE::MESSAGE::ROW_VARIABLE]
@max_rows = (var <= 0) ? 4 : var
nheight = YE::MESSAGE::NAME_WINDOW_H
@name_window = Window_Base.new(YE::MESSAGE::NAME_WINDOW_X, 0, 100, nheight)
@name_text = Window_Base.new(YE::MESSAGE::NAME_WINDOW_X, 0, 100, 56)
@name_window.openness = 0
@name_text.openness = 0
@name_text.opacity = 0
@name_window.z = self.z + 1
@name_text.z = @name_window.z + 1
@name_window_lock = false
end
#--------------------------------------------------------------------------
# alias dispose
#--------------------------------------------------------------------------
alias dispose_cms dispose unless $@
def dispose
dispose_cms
@name_window.dispose if @name_window != nil
@name_text.dispose if @name_text != nil
end
#--------------------------------------------------------------------------
# close
#--------------------------------------------------------------------------
def close
super
@name_window.close
@name_text.close
@name_window_lock = false
end
#--------------------------------------------------------------------------
# alias update
#--------------------------------------------------------------------------
alias update_cms update unless $@
def update
@name_window.update
@name_text.update
refresh_size
update_cms
end
#--------------------------------------------------------------------------
# refresh_size
#--------------------------------------------------------------------------
def refresh_size
var = $game_variables[YE::MESSAGE::ROW_VARIABLE]
@max_rows = (var <= 0) ? 4 : var
calc_height = @max_rows * 24 + 32
if self.height != calc_height
self.height = calc_height
create_contents
end
end
#--------------------------------------------------------------------------
# overwrite reset_window
#--------------------------------------------------------------------------
def reset_window
var = $game_variables[YE::MESSAGE::ROW_VARIABLE]
wheight = var <= 0 ? 4 * 24 + 32 : var * 24 + 32
@background = $game_message.background
@position = $game_message.position
self.opacity = (@background == 0) ? 255 : 0
case @position
when 0 # Top
self.y = 0
@gold_window.y = 360
when 1 # Middle
self.y = (Graphics.height - wheight) / 2
@gold_window.y = 0
when 2 # Bottom
self.y = (Graphics.height - wheight)
@gold_window.y = 0
end
end
#--------------------------------------------------------------------------
# overwrite convert_special_characters
#--------------------------------------------------------------------------
def convert_special_characters
@name_window_open = false
#-------------------------------------------------------------
# Lunatic REGEXP Conversions
#-------------------------------------------------------------
@text.gsub!(/\\X\[(\d+)\]/i) {
custom_convert($1.to_i) }
@text.gsub!(/\\X\[(\d+):(\d+)\]/i) {
custom_convert($1.to_i, $2.to_i) }
@text.gsub!(/\\X\[(\d+):(\d+):(\d+)\]/i) {
custom_convert($1.to_i, $2.to_i, $3.to_i) }
#-------------------------------------------------------------
# Default REGEXP Conversions
#-------------------------------------------------------------
@text.gsub!(/\\V\[(\d+)\]/i) { $game_variables[$1.to_i] }
@text.gsub!(/\\V\[(\d+)\]/i) { $game_variables[$1.to_i] }
@text.gsub!(/\\N\[(\d+)\]/i) { $game_actors[$1.to_i].name }
@text.gsub!(/\\C\[(\d+)\]/i) { "\x01{#{$1}}" }
@text.gsub!(/\\G/i) { "\x02" }
@text.gsub!(/\\\./) { "\x03" }
@text.gsub!(/\\\|/) { "\x04" }
@text.gsub!(/\\!/) { "\x05" }
@text.gsub!(/\\>/) { "\x06" }
@text.gsub!(/\\</) { "\x07" }
@text.gsub!(/\\\^/) { "\x08" }
@text.gsub!(/\\\\/) { "\\" }
#-------------------------------------------------------------
# New REGEXP Conversions
#-------------------------------------------------------------
@text.gsub!(/\\W\[(\d+)\]/i) { "\x09{#{$1}}" }
@text.gsub!(/\\I\[(\d+)\]/i) { "\x10{#{$1}}" }
@text.gsub!(/\\FS\[(\d+)\]/i) { "\x11{#{$1}}" }
@text.gsub!(/\\FN\[(.*?)\]/i) { "\x12{#{$1}}" }
@text.gsub!(/\\FB/i) { "\x13" }
@text.gsub!(/\\FI/i) { "\x14" }
@text.gsub!(/\\FH/i) { "\x15" }
#-------------------------------------------------------------
# Automatic Actor REGEXP Conversions
#-------------------------------------------------------------
@text.gsub!(/\\AN\[(\d+)\]/i) {
if $game_actors[$1.to_i] != nil
$game_actors[$1.to_i].name
else
""
end }
@text.gsub!(/\\AC\[(\d+)\]/i) {
if $game_actors[$1.to_i] != nil
$game_actors[$1.to_i].class.name
else
""
end }
@text.gsub!(/\\AS\[(\d+)\]/i) {
if $imported["SubclassSelectionSystem"] and
$game_actors[$1.to_i] != nil and
$game_actors[$1.to_i].subclass != nil
$game_actors[$1.to_i].subclass.name
else
""
end }
@text.gsub!(/\\AX\[(\d+)\]/i) {
combination_class($game_actors[$1.to_i]) }
@text.gsub!(/\\AF\[(\d+)\]/i) {
if $game_actors[$1.to_i] != nil
$game_message.face_name = $game_actors[$1.to_i].face_name
$game_message.face_index = $game_actors[$1.to_i].face_index
end
"" }
@text.gsub!(/\\AF\[(\d+):(\d+)\]/i) {
if $game_actors[$1.to_i] != nil
$game_message.face_name = $game_actors[$1.to_i].face_name
$game_message.face_index = $2.to_i
end
"" }
#-------------------------------------------------------------
# Automatic Party REGEXP Conversions
#-------------------------------------------------------------
@text.gsub!(/\\PN\[(\d+)\]/i) {
if $game_party.members[$1.to_i] != nil
$game_party.members[$1.to_i].name
else
""
end }
@text.gsub!(/\\PC\[(\d+)\]/i) {
if $game_party.members[$1.to_i] != nil
$game_party.members[$1.to_i].class.name
else
""
end }
@text.gsub!(/\\PS\[(\d+)\]/i) {
if $imported["SubclassSelectionSystem"] and
$game_party.members[$1.to_i] != nil and
$game_party.members[$1.to_i].subclass != nil
$game_party.members[$1.to_i].subclass.name
else
""
end }
@text.gsub!(/\\PX\[(\d+)\]/i) {
combination_class($game_party.members[$1.to_i]) }
@text.gsub!(/\\PF\[(\d+)\]/i) {
if $game_party.members[$1.to_i] != nil
$game_message.face_name = $game_party.members[$1.to_i].face_name
$game_message.face_index = $game_party.members[$1.to_i].face_index
end
"" }
@text.gsub!(/\\PF\[(\d+):(\d+)\]/i) {
if $game_party.members[$1.to_i] != nil
$game_message.face_name = $game_party.members[$1.to_i].face_name
$game_message.face_index = $2.to_i
end
"" }
#-------------------------------------------------------------
# Auto Class, Item, Weapon, and Armour REGEXP Conversions
#-------------------------------------------------------------
@text.gsub!(/\\NC\[(\d+)\]/i) {
$data_classes[$1.to_i].name }
@text.gsub!(/\\NI\[(\d+)\]/i) {
$data_items[$1.to_i].name }
@text.gsub!(/\\NW\[(\d+)\]/i) {
$data_weapons[$1.to_i].name }
@text.gsub!(/\\NA\[(\d+)\]/i) {
$data_armors[$1.to_i].name }
@text.gsub!(/\\NS\[(\d+)\]/i) {
$data_skills[$1.to_i].name }
@text.gsub!(/\\NT\[(\d+)\]/i) {
$data_states[$1.to_i].name }
@text.gsub!(/\\II\[(\d+)\]/i) {
"\x10{#{$data_items[$1.to_i].icon_index}}" +
"#{$data_items[$1.to_i].name}"}
@text.gsub!(/\\IW\[(\d+)\]/i) {
"\x10{#{$data_weapons[$1.to_i].icon_index}}" +
"#{$data_weapons[$1.to_i].name}"}
@text.gsub!(/\\IA\[(\d+)\]/i) {
"\x10{#{$data_armors[$1.to_i].icon_index}}" +
"#{$data_armors[$1.to_i].name}"}
@text.gsub!(/\\IS\[(\d+)\]/i) {
"\x10{#{$data_skills[$1.to_i].icon_index}}" +
"#{$data_skills[$1.to_i].name}"}
@text.gsub!(/\\IT\[(\d+)\]/i) {
"\x10{#{$data_states[$1.to_i].icon_index}}" +
"#{$data_states[$1.to_i].name}"}
#-------------------------------------------------------------
# Name box REGEXP Conversions
#-------------------------------------------------------------
@text.gsub!(/\\NB\[(.*?)\]/i) {
if $1.to_s != nil
refresh_name_box($1.to_s)
end
"" }
@text.gsub!(/\\NBL\[(.*?)\]/i) {
if $1.to_s != nil
refresh_name_box($1.to_s)
@name_window_lock = true
end
"" }
@text.gsub!(/\\NBU\[(.*?)\]/i) {
if $1.to_s != nil
refresh_name_box($1.to_s)
@name_window_lock = false
end
"" }
@text.gsub!(/\\NBU/i) {
@name_window.close
@name_text.close
@name_window_lock = false
"" }
@text.gsub!(/\\RNB\[(.*?)\]/i) {
if $1.to_s != nil
refresh_name_box($1.to_s, 1)
end
"" }
@text.gsub!(/\\RNBL\[(.*?)\]/i) {
if $1.to_s != nil
refresh_name_box($1.to_s, 1)
@name_window_lock = true
end
"" }
@text.gsub!(/\\RNBU\[(.*?)\]/i) {
if $1.to_s != nil
refresh_name_box($1.to_s, 1)
@name_window_lock = false
end
"" }
# Close the Name Window
unless @name_window_lock
@name_window.close if !@name_window_open
@name_text.close if !@name_window_open
end
end
#--------------------------------------------------------------------------
# overwrite update_message
#--------------------------------------------------------------------------
def update_message
loop do
text_height = [contents.font.size + (contents.font.size / 5), WLH].max
c = @text.slice!(/./m) # Get next text character
case c
#----------------------------------------------------------------------
# Default Cases
#----------------------------------------------------------------------
when nil # There is no text that must be drawn
finish_message # Finish update
break
when "\x00" # New line
new_line
if @line_count >= @max_rows # If line count is maximum
unless @text.empty? # If there is more
self.pause = true # Insert number input
break
end
end
when "\x01" # \C[n] (text character color change)
@text.sub!(/\{(\d+)\}/, "")
contents.font.color = text_color($1.to_i)
next
when "\x02" # \G (gold display)
@gold_window.refresh
@gold_window.open
when "\x03" # \. (wait 1/4 second)
@wait_count = 15
break
when "\x04" # \| (wait 1 second)
@wait_count = 60
break
when "\x05" # \! (Wait for input)
self.pause = true
break
when "\x06" # \> (Fast display ON)
@line_show_fast = true
when "\x07" # \< (Fast display OFF)
@line_show_fast = false
when "\x08" # \^ (No wait for input)
@pause_skip = true
#----------------------------------------------------------------------
# New Cases
#----------------------------------------------------------------------
when "\x09" # \| Wait x frames
@text.sub!(/\{(\d+)\}/, "")
@wait_count = $1.to_i
break
when "\x10" # \i Draws icon ID x
@text.sub!(/\{(\d+)\}/, "")
icon = $1.to_i
icon_width = (24 - YE::MESSAGE::ICON_WIDTH) / 2
draw_icon(icon, @contents_x - icon_width, @contents_y)
@contents_x += YE::MESSAGE::ICON_WIDTH
when "\x11" # \fs Font Size Change
@text.sub!(/\{(\d+)\}/, "")
size = $1.to_i
if size <= 0 # If 0, revert back to the default font size.
size = Font.default_size
end
contents.font.size = size
text_height = [size + (size / 5), WLH].max
when "\x12" # \fs Font Name Change
@text.sub!(/\{(.*?)\}/, "")
name = $1.to_s
if name == "0" # If 0, revert back to the default font.
name = Font.default_name
end
contents.font.name = name
when "\x13" # \fb Font bold
contents.font.bold = contents.font.bold ? false : true
when "\x14" # \fi Font italic
contents.font.italic = contents.font.italic ? false : true
when "\x15" # \fi Font shadowed
contents.font.shadow = contents.font.shadow ? false : true
#----------------------------------------------------------------------
# Finish Up
#----------------------------------------------------------------------
else # Normal text character
contents.draw_text(@contents_x, @contents_y, 40, text_height, c)
c_width = contents.text_size(c).width
@contents_x += c_width
end
break unless @show_fast or @line_show_fast
end
end
#--------------------------------------------------------------------------
# alias new_page
#--------------------------------------------------------------------------
alias new_page_cms new_page unless $@
def new_page
new_page_cms
contents.font.name = Font.default_name
contents.font.size = Font.default_size
contents.font.bold = Font.default_bold
contents.font.italic = Font.default_italic
contents.font.shadow = Font.default_shadow
end
#--------------------------------------------------------------------------
# combination_class
#--------------------------------------------------------------------------
def combination_class(actor)
return "" if actor == nil
class1 = actor.class.name
return class1 unless $imported["SubclassSelectionSystem"]
return class1 if actor.subclass == nil
class2 = actor.subclass.name
text = sprintf(YE::SUBCLASS::DISPLAY_FORMAT, class1, class2)
return text unless YE::SUBCLASS::USE_COMPLEX_CLASS_NAMES
if YE::SUBCLASS::COMPLEX_CLASS_NAMES_FULL.include?(text)
text = YE::SUBCLASS::COMPLEX_CLASS_NAMES_FULL[text]
end
return text
end
#--------------------------------------------------------------------------
# refresh_name_box
#--------------------------------------------------------------------------
def refresh_name_box(name, side = 0)
return if $game_temp.in_battle
font_colour = YE::MESSAGE::NAME_COLOUR
font_name = Font.default_name
font_size = Font.default_size
font_bold = Font.default_bold
font_italic = Font.default_italic
font_shadow = Font.default_shadow
icon = 0
name_width = 0
#---Convert Special Characters
name = name.gsub(/\x01\{(\d+)\}/i) {
font_colour = $1.to_i
""}
name = name.gsub(/\x09\{(\d+)\}/i) {""}
name = name.gsub(/\x10\{(\d+)\}/i) {
icon = $1.to_i
name_width += YE::MESSAGE::ICON_WIDTH
""}
name = name.gsub(/\x11\{(\d+)\}/i) {
font_size = $1.to_i
""}
name = name.gsub(/\x12\{(.*?)\}/i) {
font_name = $1.to_s
""}
name = name.gsub(/\x13/i) {
font_bold = true
""}
name = name.gsub(/\x14/i) {
font_italic = true
""}
name = name.gsub(/\x15/i) {
font_shadow = true
""}
#---Convert Special Characters
@name_text.contents.font.name = font_name
@name_text.contents.font.size = font_size
@name_text.contents.font.bold = font_bold
@name_text.contents.font.italic = font_italic
@name_text.contents.font.shadow = font_shadow
name_width += @name_text.contents.text_size(name).width
name_width += YE::MESSAGE::NAME_WINDOW_W
@name_window.width = name_width + 40
@name_text.width = @name_window.width
var = $game_variables[YE::MESSAGE::ROW_VARIABLE]
wheight = var <= 0 ? 4 * 24 + 32 : var * 24 + 32
position = $game_message.position
case position
when 0
@name_window.y = self.height - YE::MESSAGE::NAME_WINDOW_H
@name_window.y += YE::MESSAGE::NAME_WINDOW_Y
when 1
@name_window.y = (Graphics.height - wheight) / 2
@name_window.y -= YE::MESSAGE::NAME_WINDOW_Y
when 2
@name_window.y = (Graphics.height - wheight)
@name_window.y -= YE::MESSAGE::NAME_WINDOW_Y
end
offset = (@name_text.height - @name_window.height) / 2
@name_text.y = @name_window.y - offset
if YE::MESSAGE::NAME_WINDOW_SHOW_BACK and $game_message.background == 0
@name_window.opacity = 255
else
@name_window.opacity = 0
end
if side == 0
@name_window.x = YE::MESSAGE::NAME_WINDOW_X
else
@name_window.x = Graphics.width - YE::MESSAGE::NAME_WINDOW_X
@name_window.x -= @name_window.width
end
@name_text.x = @name_window.x
@name_window.create_contents
@name_text.create_contents
txh = [font_size + (font_size / 5), WLH].max
@name_text.contents.font.color = text_color(font_colour)
@name_text.contents.font.name = font_name
@name_text.contents.font.size = font_size
@name_text.contents.font.bold = font_bold
@name_text.contents.font.italic = font_italic
@name_text.contents.font.shadow = font_shadow
if icon > 0
iw = YE::MESSAGE::ICON_WIDTH
@name_text.draw_icon(icon, YE::MESSAGE::NAME_WINDOW_W / 2, 0)
@name_text.contents.draw_text(iw, 0, name_width + 8 - iw, txh, name, 1)
else
@name_text.contents.draw_text(0, 0, name_width + 8, txh, name, 1)
end
@name_window.open
@name_text.open
@name_window_open = true
end
end # Window_Message
#===============================================================================
# Game_Interpreter
#===============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# overwrite Show Text
#--------------------------------------------------------------------------
def command_101
unless $game_message.busy
$game_message.face_name = @params[0]
$game_message.face_index = @params[1]
$game_message.background = @params[2]
$game_message.position = @params[3]
flow = true
loop {
if @list[@index].code == 101 and meet_stringing_conditions and flow
@index += 1
else
break
end
flow = @row_check
while @list[@index].code == 401 and meet_stringing_conditions
$game_message.texts.push(@list[@index].parameters[0])
@index += 1
end }
if @list[@index].code == 102 # Show choices
setup_choices(@list[@index].parameters)
elsif @list[@index].code == 103 # Number input processing
setup_num_input(@list[@index].parameters)
end
set_message_waiting # Set to message wait state
end
return false
end
#--------------------------------------------------------------------------
# overwrite setup_choices
#--------------------------------------------------------------------------
def setup_choices(params)
var = $game_variables[YE::MESSAGE::ROW_VARIABLE]
rows = (var <= 0) ? 4 : var
if $game_message.texts.size <= rows - params[0].size
$game_message.choice_start = $game_message.texts.size
$game_message.choice_max = params[0].size
for s in params[0]
$game_message.texts.push(s)
end
$game_message.choice_cancel_type = params[1]
$game_message.choice_proc = Proc.new { |n| @branch[@indent] = n }
@index += 1
end
end
#--------------------------------------------------------------------------
# meet_stringing_conditions
#--------------------------------------------------------------------------
def meet_stringing_conditions
var = $game_variables[YE::MESSAGE::ROW_VARIABLE]
rows = (var <= 0) ? 4 : var
@row_check = (rows > 4) ? true : false
return true if rows > $game_message.texts.size
return false
end
end # Game_Interpreter
#===============================================================================
#
# END OF FILE
#
#============================================================================== |
Le script complet, si ça peut aider (je supprimerai plus tard).
| 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 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
|
|
|