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)
- | [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)
- - | | De tête ça doit être un truc du genre :
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 :
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)
- | [BIG SHOT] |
Ça me donne ça avec ou sans le
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)
- - | | 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)
- | [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:
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:
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)
- - | | 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)
- | [BIG SHOT] | S'pas comme si je le savais en plus
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)
- - | | 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)
- | 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)
- | [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)
| | 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)
- | [BIG SHOT] | Merci pour les explications Nagato.
Sinon j'ai un autre "souci".
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)
- - | | 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 ) |
Mack -
posté le 20/12/2014 à 12:56:20 (2310 messages postés)
- - | | 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)
- | [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:
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)
- - | | 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)
- | [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)
- - | | 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)
| | Tiens, c'est une version simplifiée de ce que Zeus et moi utilisons pour régler le problème :
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)
| | 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
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)
| | 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.
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)
| | 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)
- | [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).
(pour info y'a bien un espace entre machin et truc normalement).
Un moyen de régler ça?
|
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)
| | 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)
| | Essaie de rajouter ça :
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...).
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 73Index du forum > Entraide > [Scripts] Petites questions connes sur les SCRIPTS!!
|