Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Jeux: puie z / Jeux: Citymaime - Chapitre 1 / Jeux: Mer, îles et fous / News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

153 connectés actuellement

30731921 visiteurs
depuis l'ouverture

1899 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Lunae - le bazar d'Emz0

RPG Fusion

ConsoleFun

New RPG Maker

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!

Aller à la page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

Reprise du message précédent:

Ephy - posté le 15/12/2014 à 22:29:27 (30100 messages postés) - honor

❤ 0

[BIG SHOT]

J'aurai besoin de récupérer l'ID de l'icone des équipements d'un héros donné d'ID n.
Mais je trouve pas quelle fonction utiliser pour faire ça... help?



Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14


Suite du sujet:

Mack - posté le 15/12/2014 à 22:36:26 (2310 messages postés) - staff -

❤ 0

De tête ça doit être un truc du genre :

Portion de code : Tout sélectionner

1
$game_party.members[ID].equips[N].icon_index 


ID pour l'id du héros, et N, pour l'id de l'équipement.
( 0 pour l'arme, 1 pour l'armure, ou le casque peut être xD ... )

Si ça marche pas, essaie de rajouter :

Portion de code : Tout sélectionner

1
attr_reader   :equips 


avec les autres dans Game_Actor.

( Je prend note de tout les commentaires, même si je n'y répond pas )


Ephy - posté le 15/12/2014 à 22:45:44 (30100 messages postés) - honor

❤ 0

[BIG SHOT]

image
Ça me donne ça avec ou sans le

Portion de code : Tout sélectionner

1
attr_reader   :equips



J'essaye de récupérer ça pour l'afficher dans une fenêtre de mon menu dans Window_MenuStatus.

Je suppose que icon_index n'est pas définie ou un truc du genre.



Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14


Mack - posté le 15/12/2014 à 23:01:50 (2310 messages postés) - staff -

❤ 0

Nope, c'est l'equipement qui est vide ou n'existe pas ^^.

Je vais y jeter un oeil alors ^^.

EDIT :
Bah, ça marche très bien xD.

T'es sur que le personnage a un Equipement au moins ? xD
( Arme/Bouclier/Casque/Armure/Accessoire )
Et aussi, l'id c'est dans l'équipe ( donc 0 pour le meneur ) ^^.

( Je prend note de tout les commentaires, même si je n'y répond pas )


Ephy - posté le 15/12/2014 à 23:41:04 (30100 messages postés) - honor

❤ 0

[BIG SHOT]

C'est bon ça marche. C'était un tout petit peu plus compliqué en fait parce que je dois aussi gérer les persos sans armes/etc.

Par contre c'est quoi la différence entre ça:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
    weaponID = $game_party.members[index].equips[0]
    
                      draw_text(8+24, 12+96*index, contents.width - 8, 24, weaponIconID)
 
 
    if weaponID == nil
    else
      draw_icon(weaponID.icon_index, 0, 36+96*index, enabled)
    end


et ça:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
    weaponID = $game_party.members[index].equips[0]
    
                      draw_text(8+24, 12+96*index, contents.width - 8, 24, weaponIconID)
 
 
    if weaponID == !nil
      draw_icon(weaponID.icon_index, 0, 36+96*index, enabled)
    end
 



Le premier marche nickel. Si mon perso a une arme ça m'affiche l'arme. Si il en a pas ça m'affiche rien.
Le second ça marche juste pas et le jeu plante si le perso n'a pas d'arme. Alors que théoriquement, si le héros n'a pas d'arme weaponID n'a pas de valeur donc weaponID = nil donc ça devrait pas récupérer l'ID de l'icone...

Y'a encore quelques subtilités là derrière que j'ai du mal à saisir.



Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14


Mack - posté le 16/12/2014 à 00:06:49 (2310 messages postés) - staff -

❤ 0

En faite, le différent en prog, tu fais != au lieu de == ^^.
Donc pour du différent de nil, tu fais :
weaponID != nil au lieu de weaponID == !nil

^^.

( Je prend note de tout les commentaires, même si je n'y répond pas )


Ephy - posté le 16/12/2014 à 00:14:16 (30100 messages postés) - honor

❤ 0

[BIG SHOT]

S'pas comme si je le savais en plus  XD
Par contre dans les scripts de base j'ai vu ça justement je sais plus où... d'où mon erreur en fait.
M'enfin j'aurai du y penser quand même.



Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14


Mack - posté le 16/12/2014 à 00:20:37 (2310 messages postés) - staff -

❤ 0

T'as pas plutôt vu un truc du genre :
b = !b
?
En gros, b est un boolean, et tu lui dit qu'il est égale à non lui.
Donc s'il était vrai il devient faux et inversement.
C'est plutôt pratique ^^.

( Je prend note de tout les commentaires, même si je n'y répond pas )


Nukidoudi - posté le 16/12/2014 à 10:06:07 (736 messages postés) -

❤ 0

yo

par contre, c'est parfaitement stupide de faire if weaponID == !nil. On se contentera de faire if weaponID.

https://xvw.lol


Ephy - posté le 16/12/2014 à 12:54:54 (30100 messages postés) - honor

❤ 0

[BIG SHOT]

Mwai. J'ai pas l'habitude des if sans contrôle après. Thanks.

Mack> Me semble pas mais bon. Peut-être. Je sais plus où j'avais vu ce truc. S'pas grave. En tout cas c'est vachement pratique ça. Ça pourra me servir.



Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14


Nagato Yuki - posté le 16/12/2014 à 19:28:54 (351 messages postés)

❤ 0

Le if sans "contrôle" on s'en sert pour les variables potentiellement pas initialisés et dont on est certains qu'elles ne contiendront pas soit un booléen soit un objet d'une nature autre.

Après dans la plupart des cas on assimile nil à false même si c'est pas du tout la même chose et ça n'a pas du tout le même sens.

Pokémon Workshop, le site de Making Pokémon sur RPG Maker~


Ephy - posté le 20/12/2014 à 12:22:08 (30100 messages postés) - honor

❤ 0

[BIG SHOT]

Merci pour les explications Nagato.

Sinon j'ai un autre "souci".
image

Le début des textes est rongé sur certaines lettres. Mais ça vient pas de la police vu que ces lettres s'affichent correctement si je met un espace avant.
Le souci vient donc certainement du cadre du texte.
La question est, comment agrandir de 2~3 pixels TOUS les cadres de tous les textes du jeu? Si je me trompe pas le cadre des textes est défini avec un rect mais où et comment agrandir ça j'en ai aucune idée. Quelqu'un a une piste?



Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14


Mack - posté le 20/12/2014 à 12:34:56 (2310 messages postés) - staff -

❤ 0

Jette un oeils du côté du drawText de la WindowBase.
M'enfin, ça me semble être une mauvaise idée, mais bon ^^".

( Je prend note de tout les commentaires, même si je n'y répond pas )


Ephy - posté le 20/12/2014 à 12:41:00 (30100 messages postés) - honor

❤ 0

[BIG SHOT]

Portion de code : Tout sélectionner

1
2
3
  def draw_text(*args)
    contents.draw_text(*args)
  end


Effectivement ça doit pas être ici.



Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14


Mack - posté le 20/12/2014 à 12:56:20 (2310 messages postés) - staff -

❤ 0

Ah sisi, c'est là.
Mais par contre, ça va être chiant.
En gros le args*, pour pas avoir à les définir, puisque la fonction de contents utilise les même arguments, dans le même ordre.
Maintenant, à toi de faire le tri.

Y a peut être une autre solution, mais j'en ai pas la moindre idée.
( Sinon, tu rajoutes juste un espace sur tout les texte du jeu ? )


( Et quand je disais que c'était sans doute une mauvaise idée, je parlais de ta solution hein xD )

( Je prend note de tout les commentaires, même si je n'y répond pas )


Ephy - posté le 20/12/2014 à 13:47:54 (30100 messages postés) - honor

❤ 0

[BIG SHOT]

Ha oui ma "solution" n'en est pas une du tout. C'était juste un test histoire de savoir si c'était RM qui arrivait pas à afficher la police correctement ou si c'était le texte qui dépassait du cadre.

Le contents donne ça:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
  def create_contents
    contents.dispose
    if contents_width > 0 && contents_height > 0
      self.contents = Bitmap.new(contents_width, contents_height)
    else
      self.contents = Bitmap.new(1, 1)
    end
  end



Mais j'ai un peu du mal à savoir qu'est-ce qui défini la taille du cadre du texte en fait. Surtout que pour le coup le contents concerne tout et pas seulement le texte :/

Rajouter un espace à tous les textes c'est assez ennuyeux quand même. D'une part parce que ça décale tout et c'est moche et d'autre part parce que ça limite le nombre de caractères dans les champs à caractères limités (même si sur Ace je suis pas sûr que ça pose des masses de problèmes).

Ou alors sinon si y'a un moyen de mettre automatiquement un espace avant n'importe quel texte du jeu?



Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14


Mack - posté le 20/12/2014 à 13:56:48 (2310 messages postés) - staff -

❤ 0

En faites, c'est pas le contents qu'il faut modifier, mais le tableau d'arguments args* ^^.
Sauf qu'il faut réussir à définir qu'elle partie vaut quoi.
Et le principale problème, c'est que ça varie selon la taille du tableau ^^".
Mais, pour te donner une idée de comment ça fonctionne, regarder dans les différentes fenêtres comment sont placé les arguments.

Par exemple, si tu regardes la def draw_actor_class dans WindowBase, tu vois que les arguments sont x,y, width, height, texte.
Donc si args.size == 5, tu peux en déduire que args[0] = x, args[1] = y, args[2] = width ...

( Je prend note de tout les commentaires, même si je n'y répond pas )


Ephy - posté le 20/12/2014 à 14:04:45 (30100 messages postés) - honor

❤ 0

[BIG SHOT]

Ouaip ça j'avais compris mais le souci en fait c'est que même si je met x-4 ça va me bouger le x de la zone de texte de -4 mais le texte va bouger aussi.

Du coup faudrait carrément trouver quelle fonction détermine où le texte est affiché dans le cadre.
C'est pas simple à expliquer ce truc...



Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14


Mack - posté le 20/12/2014 à 14:21:19 (2310 messages postés) - staff -

❤ 0

Ah ouais, non je vois le problème.
Mais du coup, faudrait voir le contenu du contents, m'enfin bon pour trouver le code du Bitmap ^^".

( Je prend note de tout les commentaires, même si je n'y répond pas )


Estheone - posté le 20/12/2014 à 15:08:30 (312 messages postés)

❤ 0

Tiens, c'est une version simplifiée de ce que Zeus et moi utilisons pour régler le problème :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
class Bitmap
  alias rgss_draw_text draw_text
  def draw_text(*args)
    args.unshift(rect) if args.first.is_a?(String)
    args.push(0) if args.last.is_a?(String)
    font_effect = font.shadow || font.outline || font.italic
    text = font_effect ? " #{args[-2]} " : args[-2]
    rect = args.first.is_a?(Rect) ? args.first : Rect.new(*args[0, 4])
    align = args.last
    rgss_draw_text(rect, text, align)
  end
end



Ca rajoute simplement un espace avant et après automatiquement si la police contient un effet qui provoque le rognage (italique, ombré ou contour).

Wandering Souls : Jeu complet / Topic sur Oniro


Patow - posté le 20/12/2014 à 15:37:23 (49 messages postés)

❤ 0

Salut tout le monde, pour mon projet actuel j'essaie de modifier le Scene_Title pour laisser au joueur choisir le niveau de difficulté quand il sélectionne Nouvelle Partie, mais il y a plusieurs bugs que je n'arrive pas à résoudre (c'est la toute première fois que je scripte vraiment quelque chose u_u) en plus de quelques trucs que je n'arrive pas à faire comme pouvoir revenir au "Nouvelle Partie/Charger une Partie/ etc" quand on appuie sur Echap à la fenêtre de sélection de la difficulté.

Le problème principal, c'est qu'une fois la difficulté choisit, ben ... il ne se passe rien, même si le script est censé se comporter comme une "Nouvelle Partie" normale juste après (avec command_new_game). Où me suisèje trompé ?

Bref, voilà le script en question, avec mes modifications, en espérant que vous pouvez m'aider :flaco

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
#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
#  This class performs the title screen processing.
#==============================================================================
 
class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    if $BTEST                         # If battle test
      battle_test                     # Start battle test
    else                              # If normal play
      super                           # Usual main processing
    end
  end
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super
    load_database                     # Load database
    create_game_objects               # Create game objects
    check_continue                    # Determine if continue is enabled
    create_title_graphic              # Create title graphic
    create_command_window             # Create command window
    play_title_music                  # Play title screen music
  end
  #--------------------------------------------------------------------------
  # * Execute Transition
  #--------------------------------------------------------------------------
  def perform_transition
    Graphics.transition(20)
  end
  #--------------------------------------------------------------------------
  # * Post-Start Processing
  #--------------------------------------------------------------------------
  def post_start
    super
    open_command_window
  end
  #--------------------------------------------------------------------------
  # * Pre-termination Processing
  #--------------------------------------------------------------------------
  def pre_terminate
    super
    close_command_window
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_command_window
    snapshot_for_background
    dispose_title_graphic
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    @command_window.update
    if Input.trigger?(Input::C)
      Sound.play_decision
      case @command_window.index
      when 0    #New game
        s1 = "Facile"
        s2 = "Moyen"
        s3 = "Difficile"
        s4 = "Expert"
    @command_window = Window_Command.new(172, [s1, s2, s3, s4])
    @command_window.x = (600 - @command_window.width) / 2
    @command_window.y = 288
          when 0 #Difficulté facile
            $game_variables[001] = 0
             command_new_game
          when 1 #Difficulté moyenne
            $game_variables[001] = 1
             command_new_game
          when 2 #Difficulté dure
            $game_variables[001] = 2
             command_new_game
          when 3 #Difficulté expert
            $game_variables [001] = 3
             command_new_game
      when 1    # Continue
        command_continue
      when 2    # Shutdown
        command_shutdown
          end
        end
     end
   end
  #--------------------------------------------------------------------------
  # * Load Database
  #--------------------------------------------------------------------------
  def load_database
    $data_actors        = load_data("Data/Actors.rvdata")
    $data_classes       = load_data("Data/Classes.rvdata")
    $data_skills        = load_data("Data/Skills.rvdata")
    $data_items         = load_data("Data/Items.rvdata")
    $data_weapons       = load_data("Data/Weapons.rvdata")
    $data_armors        = load_data("Data/Armors.rvdata")
    $data_enemies       = load_data("Data/Enemies.rvdata")
    $data_troops        = load_data("Data/Troops.rvdata")
    $data_states        = load_data("Data/States.rvdata")
    $data_animations    = load_data("Data/Animations.rvdata")
    $data_common_events = load_data("Data/CommonEvents.rvdata")
    $data_system        = load_data("Data/System.rvdata")
    $data_areas         = load_data("Data/Areas.rvdata")
  end
  #--------------------------------------------------------------------------
  # * Load Battle Test Database
  #--------------------------------------------------------------------------
  def load_bt_database
    $data_actors        = load_data("Data/BT_Actors.rvdata")
    $data_classes       = load_data("Data/BT_Classes.rvdata")
    $data_skills        = load_data("Data/BT_Skills.rvdata")
    $data_items         = load_data("Data/BT_Items.rvdata")
    $data_weapons       = load_data("Data/BT_Weapons.rvdata")
    $data_armors        = load_data("Data/BT_Armors.rvdata")
    $data_enemies       = load_data("Data/BT_Enemies.rvdata")
    $data_troops        = load_data("Data/BT_Troops.rvdata")
    $data_states        = load_data("Data/BT_States.rvdata")
    $data_animations    = load_data("Data/BT_Animations.rvdata")
    $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
    $data_system        = load_data("Data/BT_System.rvdata")
  end
  #--------------------------------------------------------------------------
  # * Create Game Objects
  #--------------------------------------------------------------------------
  def create_game_objects
    $game_temp          = Game_Temp.new
    $game_message       = Game_Message.new
    $game_system        = Game_System.new
    $game_switches      = Game_Switches.new
    $game_variables     = Game_Variables.new
    $game_self_switches = Game_SelfSwitches.new
    $game_actors        = Game_Actors.new
    $game_party         = Game_Party.new
    $game_troop         = Game_Troop.new
    $game_map           = Game_Map.new
    $game_player        = Game_Player.new
  end
  #--------------------------------------------------------------------------
  # * Determine if Continue is Enabled
  #--------------------------------------------------------------------------
  def check_continue
    @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  end
  #--------------------------------------------------------------------------
  # * Create Title Graphic
  #--------------------------------------------------------------------------
  def create_title_graphic
    @sprite = Sprite.new
    @sprite.bitmap = Cache.system("Title")
  end
  #--------------------------------------------------------------------------
  # * Dispose of Title Graphic
  #--------------------------------------------------------------------------
  def dispose_title_graphic
    @sprite.bitmap.dispose
    @sprite.dispose
  end
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::new_game
    s2 = Vocab::continue
    s3 = Vocab::shutdown
    @command_window = Window_Command.new(172, [s1, s2, s3])
    @command_window.x = (170 - @command_window.width) / 2
    @command_window.y = 312
    if @continue_enabled                    # If continue is enabled
      @command_window.index = 1             # Move cursor over command
    else                                    # If disabled
      @command_window.draw_item(1, false)   # Make command semi-transparent
    end
    @command_window.openness = 0
    @command_window.open
  end
  #--------------------------------------------------------------------------
  # * Dispose of Command Window
  #--------------------------------------------------------------------------
  def dispose_command_window
    @command_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Open Command Window
  #--------------------------------------------------------------------------
  def open_command_window
    @command_window.open
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 255
  end
  #--------------------------------------------------------------------------
  # * Close Command Window
  #--------------------------------------------------------------------------
  def close_command_window
    @command_window.close
    begin
      @command_window.update
      Graphics.update
    end until @command_window.openness == 0
  end
  #--------------------------------------------------------------------------
  # * Play Title Screen Music
  #--------------------------------------------------------------------------
  def play_title_music
    $data_system.title_bgm.play
    RPG::BGS.stop
    RPG::ME.stop
  end
  #--------------------------------------------------------------------------
  # * Check Player Start Location Existence
  #--------------------------------------------------------------------------
  def confirm_player_location
    if $data_system.start_map_id == 0
      print "Player start location not set."
      exit
    end
  end
  #--------------------------------------------------------------------------
  # * Command: New Game
  #--------------------------------------------------------------------------
  def command_new_game
    confirm_player_location
    Sound.play_decision
    $game_party.setup_starting_members            # Initial party
    $game_map.setup($data_system.start_map_id)    # Initial map position
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    $game_player.refresh
    $scene = Scene_Map.new
    RPG::BGM.fade(1500)
    close_command_window
    Graphics.fadeout(60)
    Graphics.wait(40)
    Graphics.frame_count = 0
    RPG::BGM.stop
    $game_map.autoplay
  end
  #--------------------------------------------------------------------------
  # * Command: Continue
  #--------------------------------------------------------------------------
  def command_continue
    if @continue_enabled
      Sound.play_decision
      $scene = Scene_File.new(false, true, false)
    else
      Sound.play_buzzer
    end
  end
  #--------------------------------------------------------------------------
  # * Command: Shutdown
  #--------------------------------------------------------------------------
  def command_shutdown
    Sound.play_decision
    RPG::BGM.fade(800)
    RPG::BGS.fade(800)
    RPG::ME.fade(800)
    $scene = nil
  end
  #--------------------------------------------------------------------------
  # * Battle Test
  #--------------------------------------------------------------------------
  def battle_test
    load_bt_database                  # Load battle test database
    create_game_objects               # Create game objects
    Graphics.frame_count = 0          # Initialize play time
    $game_party.setup_battle_test_members
    $game_troop.setup($data_system.test_troop_id)
    $game_troop.can_escape = true
    $game_system.battle_bgm.play
    snapshot_for_background
    $scene = Scene_Battle.new
     end
   end
  end
 



Vient de retrouver mon mot de passe.


Estheone - posté le 20/12/2014 à 16:12:24 (312 messages postés)

❤ 0

Tu as juste besoin de revoir 2 fonctions (update et create_command_window) et d'en ajouter une (create_difficulty_window). Pour le reste tu peux laisser les scripts d'origine.

Essaie de comprendre pourquoi ça marche, ça te sera utile si tu veux faire d'autres modifs du même genre par la suite.

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
  def update
    super
    @command_window.update
    if Input.trigger?(Input::C)
      case @phase
      when :main
        case @command_window.index
        when 0    # New game
          create_difficulty_window
        when 1    # Continue
          command_continue
        when 2    # Shutdown
          command_shutdown
        end
      when :difficulty
        $game_variables[1] = @command_window.index
        command_new_game
      end
    elsif Input.trigger?(Input::B) and @phase == :difficulty
      Sound.play_cancel
      dispose_command_window
      create_command_window
    end
  end
  
  def create_command_window
    @phase = :main
    s1 = Vocab::new_game
    s2 = Vocab::continue
    s3 = Vocab::shutdown
    @command_window = Window_Command.new(172, [s1, s2, s3])
    @command_window.x = (544 - @command_window.width) / 2
    @command_window.y = 288
    if @continue_enabled                    # If continue is enabled
      @command_window.index = 1             # Move cursor over command
    else                                    # If disabled
      @command_window.draw_item(1, false)   # Make command semi-transparent
    end
    @command_window.openness = 0
    @command_window.open
  end
  
  def create_difficulty_window
    @phase = :difficulty
    Sound.play_decision
    dispose_command_window  
    s1 = "Facile"
    s2 = "Moyen"
    s3 = "Difficile"
    s4 = "Expert"
    @command_window = Window_Command.new(172, [s1, s2, s3, s4])
    @command_window.x = (544 - @command_window.width) / 2
    @command_window.y = 288
    @command_window.openness = 0
    @command_window.open
  end



Wandering Souls : Jeu complet / Topic sur Oniro


Patow - posté le 20/12/2014 à 16:15:20 (49 messages postés)

❤ 0

Très bien, merci ;). C'est la première fois que je modifie moi-même un script (mis à part pour rajouter des commandes dans les menus), alors je m'attendais à ce que j'oublie des trucs et/ou que ça ne fonctionne pas ^^

Vient de retrouver mon mot de passe.


Ephy - posté le 20/12/2014 à 19:20:22 (30100 messages postés) - honor

❤ 0

[BIG SHOT]

Merci Estheone. Tu me sauve la vie là. Je pige pas tout au code mais en tout cas ça marche nickel.

edit: Ça marche bien dans les menus mais malheureusement ça pose quelque légers soucis sur l'affichage des dialogues :/
Ça me met un espace entre chaque caractères. du coup ça décale tout et ça fini par être quasi illisible.
(au dessous j'ai remplacé l'espace par un point. on voit bien que y'en a un à chaque caractère).
image
(pour info y'a bien un espace entre machin et truc normalement).
Un moyen de régler ça? :triste2



Power Level: 1 148 355,38|Mystic Slayer (Value!+)|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14


Guilhem - posté le 21/12/2014 à 16:19:41 (26 messages postés)

❤ 0

Yop, je voudrais savoir si il y a moyen de déterminer si une case est passable ou pas en jeu par condition et sans compter les événements. Concrètement c'est pour faire un projectile que le joueur peut envoyer quand il veut. Avant de l'envoyer, il faudrait que le jeu puisse vérifier si les 6 cases devant le joueur sont passables.
Je suppose que ça peut se faire par appel de script... D'où le choix de ce topic. Et j'utilise VX Ace.


Estheone - posté le 21/12/2014 à 18:56:30 (312 messages postés)

❤ 0

Essaie de rajouter ça :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
 
class Bitmap
  alias rgss_text_size text_size unless method_defined?(:rgss_text_size)
  def text_size(text)
    font_effect = font.shadow || font.outline || font.italic
    rect = rgss_text_size(text)
    rect.width += font_effect ? 3 : 1 if text.size > 1
    rect
  end
end



Si ça marche pas il ne te reste plus qu'à utiliser une version de draw_text sans les modifs (en espérant que t'avais pas de problème de rognage sur les dialogues...).

Portion de code : Tout sélectionner

1
2
3
4
5
6
 
class Bitmap
  def draw_text2(*args)
    rgss_draw_text(*args)
  end
end



Puis tu vas dans ton script d'affichage des messages et tu remplaces les draw_text par draw_text2.

Wandering Souls : Jeu complet / Topic sur Oniro

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

Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

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