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:
| Narrer l'autocatégorème | J'aimerais agrandir la résolution de RMVX Ace (passer du 17x13 carreaux au 20x15 par exemple) :
- Faut-il juste modifier des scripts, ou bien faut-il rajouter de gros morceaux de lignes de code, voir des scripts entiers ? (je pose cette question pour évaluer grosso modo ce que le changement de résolution demande en modifications) Ma question concerne également tout ce qui est lié à ce choix de nouvelle résolution, tel que le recentrage du héros sur l'écran par exemple (à moins que ce soit automatique ?).
- Comment se passe ensuite la programmation en events ? Y a-t-il des bugs liés à la modification ? Des choses à savoir ? (par exemple si on veut afficher une image, l'éditeur considère que les coordonnées du centre de l'écran sont différentes ?)
[/noob en scripts]
Merci d'avance !
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 | Suite du sujet:
Estheone -
posté le 15/11/2013 à 11:26:28 (312 messages postés)
| | Pas de souci, les scripts de VX Ace sont bien faits à ce niveau là.
Tu as juste à mettre
1
| Graphics.resize_screen(640, 480) |
en premier dans le main et tout devrait fonctionner comme il faut (héros au centre, menus redimensionnés...)
Garde juste en tête de faire toujours des maps d'au moins 20x15 sinon ça va faire nimp.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
| Narrer l'autocatégorème | C'est vrai ? Y a juste à faire ça ? \o/ Owi.
Merci beaucoup !
Edit : ça marche super bien (on peut même faire des minis résolutions ou des réso verticales ) par contre on ne peut pas aller au-delà de 640*480. :o M'enfin c'est déjà super de pouvoir faire tout ça et ce aussi simplement. Et quoi qu'il en soit encore merci !
Autre petite question sinon (les scripts c'est comme les tatoutages, une fois qu'on a commencé... ) : comment bloquer le scrolling de l'écran ? Je ne cherche pas à faire quelque chose de compliqué, juste à bloquer la caméra dans absolument tout le jeu. Ainsi si le héros se retrouve téléporté sur une map plus grande que la résolution la vue se fige (avec donc le carreau d'arrivée de téléportation au centre) et le héros peut se balader sur toute la map mais il sort du champ de la caméra (enfin, on se comprend ^^) s'il va trop loin. (on pouvait faire ça nativement dans RM2000/03)
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 |
Estheone -
posté le 18/11/2013 à 01:55:18 (312 messages postés)
| | Pour bloquer le scrolling c'est tout aussi simple, surtout si c'est pour tout le jeu.
Tu vas dans Game_Player et dans la fonction update tu vires la ligne update_scroll ou tu la mets en commentaire (# devant).
Ou un peu plus évolué tu contrôles la fonction avec un interrupteur :
1
| update_scroll(last_real_x, last_real_y) if $game_switches[1] |
Avec ça la caméra suit le joueur uniquement si l'interrupteur 1 est activé.
Dans tous les cas le scrolling est toujours fonctionnel via la commande d'event "faire défiler la carte" au cas où tu en aurais besoin.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
kvk -
posté le 18/11/2013 à 03:00:05 (322 messages postés)
| | Salut !
support : VX Ace
- Je donne à mes personnages un state avec le S-Parameter EXR *1000
- Je tue un monstre qui rapporte 1 xp.
- Le jeu m'affiche que j'ai gagné 1 XP.
- J'en gagne 10 comme prévu par le State.
Que dois-je modifier pour que la valeur d'XP affichée à la fin du combat soit celle après le calcul du S-Parameter et non la valeur brute?
Mon but est de faire en sorte que l’expérience gagné soit augmenté selon le nombre d'ennemis (Parce qu'affronter 5 slimes d'un coup est bien plus dangereux que d'affronter cinq fois un slime).
Pour le moment j'ai compris / cru comprendre que je dois modifier le def self.display_exp (Battle_manager, ligne 307) et modifier ce que l'on affiche pour que ça prenne en compte le sparam(9) qui correspond a EXR... mais comment je-fais-je cette operation?
J'ai fais ça, mais ça crash evidemment :
1
2
3
4
5
6
7
8
9
10
11
|
def self.display_exp
if $game_troop.exp_total > 0
$game_party.all_members.each do |actor| #aj
text = sprintf(Vocab::ObtainExp, ($game_troop.exp_total * final_exp_rate).to_i) #aj
actor.gain_exp($game_troop.exp_total)
end
$game_message.add('\.' + text)
end
end
|
Merci d'avance !
|
"Il est plus facile de professer en paroles un humanisme de bon aloi, que de rendre service à son voisin de palier." |
Estheone -
posté le 18/11/2013 à 04:24:10 (312 messages postés)
| |
1
2
3
4
5
6
7
8
9
10
| def self.display_exp
actor = $game_party.battle_members.select{|a| !a.dead?}.first
if actor
exp = ($game_troop.exp_total * actor.final_exp_rate).to_i
if exp > 0
text = sprintf(Vocab::ObtainExp, exp)
$game_message.add('\.' + text)
end
end
end |
Ca ne calcule qu'en fonction du premier perso vivant par contre, donc fais toujours en sorte que toute l'équipe bénéficie des mêmes bonus d'expérience, sinon l'affichage ne correspondra plus à rien.
|
Wandering Souls : Jeu complet / Topic sur Oniro |
kvk -
posté le 18/11/2013 à 13:02:53 (322 messages postés)
| | Grands mercis, tu roxes !
|
"Il est plus facile de professer en paroles un humanisme de bon aloi, que de rendre service à son voisin de palier." |
| Narrer l'autocatégorème | Estheone > merci encore une fois !
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 |
Cortez -
posté le 21/11/2013 à 11:23:29 (524 messages postés)
| | RmXP
Modifier un script de base.
Je souhaiterai afficher des images du dossier Icons comme des
pictures.
Je sais que la commande doit etre modifié afin de fonctionner et
que celle-ci devra être en script.
1
| $game_screen.pictures[8].show("Arrow.png", 1, x, y, zoom x, zoom y, opacité, type transparence) |
Cependant j'ai beau chercher, le script Game_Pictures ne contient
aucune référence au dossier /Pictures dans lequel il trouve les
images.
La solution de copier/collez les icones dans le dossier picture est
impossible, j'ai beaucoup trop d'icones et le poids du dossier est
presque doublé.
Comme je m'en doutais, la commande :
1
| $game_screen.pictures[8].show("Graphics/Icons/Alc1.png", 1, 320, 240, 100, 100, 255, 0) |
Donne une erreur puisque la commande cherche un dossier Graphics/Pictures/Graphics/Icons
et non le dossier Graphics/Icons seul.
|
Mack -
posté le 21/11/2013 à 11:50:53 (2310 messages postés)
- - | | C'est dans Sprite_Picture en faite.
Cherche cette ligne :
1
| self.bitmap = RPG::Cache.picture(@picture_name) |
C'est celle qui dit que l'image se trouve dans Graphics/Pictures/Lenomquetarentré
Du coup, à toi de voir comment tu veux faire pour dire d'afficher une icone ou une picture.
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
cantarelle -
posté le 21/11/2013 à 12:55:20 (1530 messages postés)
| Makeuse tarée et Agent du FBI... | Pour afficher une icone...
1
| RPG::Cache.icon("Nom_de_ton_icone") |
|
Makeuse à la crosse de street-hockey. Livestream. |
Cortez -
posté le 21/11/2013 à 16:43:48 (524 messages postés)
| | Après de nombreux test, je suis parvenu à quelque chose :
1
2
3
4
5
6
| if @picture_name.include?("icon ")
@picture_name = @picture_name.gsub!(/\\[Ii][Cc][Oo][Nn][^>]/) {""}
self.bitmap = RPG::Cache.icon(@picture_name)
else
# Get picture graphic
self.bitmap = RPG::Cache.picture(@picture_name) |
Cela me permet de vérifier si le nom du fichier comprend "icon"
mais je bloque sur la dernière partie, découper et virer le mot
"icon" afin d'avoir le bon nom de fichier.
Voici aussi la commande en script
$game_screen.pictures[8].show("icon Alc1.png", 1, 320, 240, 100, 100, 255, 0)
Le fichier s'appelle "Alc1.png" le mot "icon " fait office de déclancheur pour la condition include?
Mais dans l'état actuel, je suis bloqué par un
"cannot convert nil into string"
Vous pouvez m'aider ?
Finalement après bidouillage ça marche :
1
2
| if @picture_name.include?("@")
@picture_name = @picture_name.gsub!(/[@]/,"")[0..50] |
cela efface le @ et laisse le bon nom de fichier.
|
Nagato Yuki -
posté le 21/11/2013 à 20:09:44 (351 messages postés)
| | Une petite info pour toi :
gsub retourne toujours le nouveau string.
gsub! retourne le string si et seulement si il a été modifié, c'est pensé pour être utilisé de la sorte :
1
2
3
4
5
6
| is_an_icon=@picture_name.gsub!("icon "){nil}
if is_an_icon
print "Le fichier est une icone !"
else
print "Le fichier n'est pas une icone :("
end |
En gros, la méthode gsub! modifie le string sur lequel on appelle la méthode et n'en crée pas un.
Pour ton code, je te conseillerais plutôt de faire :
@picture_name.sub!("icon "){nil}
sub supprime uniquement la première instance "icon " qu'il voit, par contre, si la méthode est plusieurs fois appelée, ça risque de supprimer tous les "icon " que le string contient :b
Edit : D'ailleurs pour que ton code fonctionne en toute circonstances (je viens de le relire xD)
1
2
3
4
| if @picture_name.include?("icon ")
self.bitmap = RPG::Cache.icon(@picture_name.sub("icon ",""))
else
self.bitmap = RPG::Cache.picture(@picture_name) |
|
Pokémon Workshop, le site de Making Pokémon sur RPG Maker~ |
hassen -
posté le 26/11/2013 à 22:01:05 (580 messages postés)
| Alien | Ahh...moi jai une question pas conne du tout a moins d'étre un bon scripteur.
Support : RMXP
Question : Je cherche depuis longtemps un script pour l'éffet du zoom in et out, jai trouvé le zoom mais pour le faire fonctionner ça marche pas, posté mon probléme dans un autre site pour plus de détails si quelqun peut vraiment m'aider svp !!
http://forum.eclipso.fr/viewtopic.php?f=57&t=1599
|
School Urban Legends |
Dyeel -
posté le 26/11/2013 à 22:59:51 (200 messages postés)
| | Hassen, je viens de tester, il n'y a pas qu'une seule ligne qui bugue. Je sais pas qui a codé ça, mais le scripteur a fait plein de calculs en "oubliant" de mettre les + et les -.
A chaque ligne qui contiendra une erreur, c'est parce qu'il y a un espace au lieu d'un + ou d'un -.
Par exemple à la ligne 137 (premier bug), tu peux voir "@display_y distance" au début, donc le gars essaie de faire un calcul avec les valeurs "@display_y" et "distance". En te basant sur les lignes plus bas, c'est sûrement une soustraction, donc mets @display_y - distance et ça réparera l'erreur.
Mais il y en a beaucoup d'autres, et parfois plusieurs par ligne... Donc il va falloir faire des tests et mettre des + et des - un peu partout. Comme je sais pas ce qu'il veut calculer exactement, j'ai pas le courage de tout chercher. Mais je t'ai mis sur la piste.
Si tu veux une version sans bug, j'en ai une avec des - à chaque erreur, mais y a de bonnes chances pour que les calculs soient faux du coup.
Puis j'ai pas les SDK qui vont avec, donc je te laisse chercher.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
| =begin
==============================================================================
** Map_Zoom
------------------------------------------------------------------------------
Trebor777
Version 1.1
14/06/2007
------------------------------------------------------------------------------
* Description FR:
Ce script permet d'effectuer des zoom in et zoom out sur un point pr?cis de
la map.
* Description US:
This script allow you to zoom in or out on a specific map location.
------------------------------------------------------------------------------
* Instructions FR:
Placer le Script sous le SDK et au dessus de Main.
Utiliser 1 des 2 commandes dans un script ou un ?v?nement "appeler un script":
. $game_map.start_zoom(x,y,coef,spd)
. $scene.zoom(x,y,coef,spd) #avec $scene une instance de Scene_Map
x et y: Coordonn?es(pas en pixel) du point ? zoomer/d?zoomer
coef : Valeur du zoom ? atteindre de 0.1, ? l'infini
spd : Vitesse du zoom, la variation est bas?e sur le calcul suivant:
0.2*spd
* Instructions US:
Place The Script Below the SDK and Above Main.
Use 1 of this 2 command in a script or with the event command "Call a script":
. $game_map.start_zoom(x,y,coef,spd)
. $scene.zoom(x,y,coef,spd) #with $scene a Scene_Map instance
x & y: Target Location(not inpixel)to zoom in/out
coef : Zoom value to reach from 0.1, to infinite
spd : Zoom speed, the fluctuation is based on this formula: 0.2*spd
Version 1.1
Code adapted to the new tilemap class.
==============================================================================
=end
#------------------------------------------------------------------------------
# * SDK Log Script
#------------------------------------------------------------------------------
SDK.log('Map_Zoom', 'Trebor777', 1.1, '14-06-2007')
#------------------------------------------------------------------------------
# * Begin SDK Enable Test
#------------------------------------------------------------------------------
if SDK.state('Map_Zoom') and SDK.state('Tilemap')
#==============================================================================
# ** Spriteset_Map
#==============================================================================
class Spriteset_Map
def update_character_sprites
# Update character sprites
for sprite in @character_sprites
sprite.zoom_x=$game_map.tilemap_settings.zoom_x
sprite.zoom_y=$game_map.tilemap_settings.zoom_y
sprite.update
end
end
end
#==============================================================================
# ** Scene_Map
#==============================================================================
class Scene_Map
def zoom(x,y,coef,spd)
if !$game_map.zooming?
$game_map.start_zoom(x,y,coef,spd)
end
end
end
#==============================================================================
# ** Game_Map
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
alias zoom_setup_scroll setup_scroll
def setup_scroll
setup_zoom
zoom_setup_scroll
end
#--------------------------------------------------------------------------
def setup_zoom
# Initialize scroll information
@zoom_rest = 0
@zoom_speed = 2
end
#--------------------------------------------------------------------------
# * Start Zoom
# focus : zoom value to reach
# speed : zoom speed
#--------------------------------------------------------------------------
def start_zoom(x,y,focus, speed)
@x_zoom=x
@y_zoom=y
@zoom_rest = (focus-@tilemap_settings.zoom_x).abs
@zoom_speed = speed*((focus-@tilemap_settings.zoom_x)/@zoom_rest)
end
#--------------------------------------------------------------------------
# * Determine if Scrolling
#--------------------------------------------------------------------------
def zooming?
return @zoom_rest > 0
end
#--------------------------------------------------------------------------
alias zoom_update_scrolling update_scrolling
def update_scrolling
update_zooming
zoom_update_scrolling
end
#--------------------------------------------------------------------------
def update_zooming
# If zooming
if @zoom_rest > 0
# Change from zoom speed to focus in map coordinates
focus = 0.2 * @zoom_speed
# Execute zooming
@tilemap_settings.zoom_x =focus
@tilemap_settings.zoom_y =focus
# Subtract focus zoomed
@zoom_rest -= focus.abs
$game_player.center(@x_zoom,@y_zoom)
end
end
#--------------------------------------------------------------------------
# * Scroll Down
# distance : scroll distance
#--------------------------------------------------------------------------
def scroll_down(distance)
@display_y = [@display_y - distance, (self.height*@tilemap_settings.zoom_y - 15) * 128/tilemap_settings.zoom_y].min
end
#--------------------------------------------------------------------------
# * Scroll Left
# distance : scroll distance
#--------------------------------------------------------------------------
def scroll_left(distance)
@display_x = [@display_x - distance, 0].max
end
#--------------------------------------------------------------------------
# * Scroll Right
# distance : scroll distance
#--------------------------------------------------------------------------
def scroll_right(distance)
@display_x = [@display_x - distance, (self.width*@tilemap_settings.zoom_x - 20) * 128/tilemap_settings.zoom_x].min
end
#--------------------------------------------------------------------------
# * Scroll Up
# distance : scroll distance
#--------------------------------------------------------------------------
def scroll_up(distance)
@display_y = [@display_y - distance, 0].max
end
end
#==============================================================================
# ** Game_Character
#==============================================================================
class Game_Character
#--------------------------------------------------------------------------
# * Get Screen X-Coordinates
#--------------------------------------------------------------------------
def screen_x
# Get screen coordinates from real coordinates and map display position
#return (@real_x) / 4 # 16
return (@real_x-$game_map.display_x-3*$game_map.tilemap_settings.zoom_x)/(4*$game_map.tilemap_settings.zoom_x-16*$game_map.tilemap_settings.zoom_x)
end
#--------------------------------------------------------------------------
# * Get Screen Y-Coordinates
#--------------------------------------------------------------------------
def screen_y
# Get screen coordinates from real coordinates and map display position
y = (@real_y-$game_map.display_y-3*$game_map.tilemap_settings.zoom_y)/(4*$game_map.tilemap_settings.zoom_y-32*$game_map.tilemap_settings.zoom_y)
# Make y-coordinate smaller via jump count
if @jump_count >= @jump_peak
n = @jump_count - @jump_peak
else
n = @jump_peak - @jump_count
end
return y - (@jump_peak * @jump_peak - n * n) / 2
end
#--------------------------------------------------------------------------
# * Get Screen Z-Coordinates
#--------------------------------------------------------------------------
def screen_z(height = 0)
# If display flag on closest surface is ON
if @always_on_top
# 999, unconditional
return 999
end
# Get screen coordinates from real coordinates and map display position
z = (@real_y-$game_map.display_y-3*$game_map.tilemap_settings.zoom_y)/(4*$game_map.tilemap_settings.zoom_y-32*$game_map.tilemap_settings.zoom_y)
# If tile
if @tile_id > 0
# Add tile priority * 32
return z $game_map.priorities[@tile_id] * 32*$game_map.tilemap_settings.zoom_y
# If character
else
# If height exceeds 32, then add 31
return z ((height > 32) ? 31 : 0)
end
end
end
#==============================================================================
# ** Game_Player
#==============================================================================
class Game_Player < Game_Character
@center_x= CENTER_X # Center screen x-coordinate * 4
@center_y = CENTER_Y # Center screen y-coordinate * 4
#--------------------------------------------------------------------------
# * Scroll Down
#--------------------------------------------------------------------------
def update_scroll_down(last_real_y)
# If character moves down and is positioned lower than the center
# of the screen
if @real_y > last_real_y and @real_y - $game_map.display_y > @center_y
# Scroll map down
$game_map.scroll_down(@real_y - last_real_y)
end
end
#--------------------------------------------------------------------------
# * Scroll Left
#--------------------------------------------------------------------------
def update_scroll_left(last_real_x)
# If character moves left and is positioned more let on-screen than
# center
if @real_x < last_real_x and @real_x - $game_map.display_x < @center_x
# Scroll map left
$game_map.scroll_left(last_real_x - @real_x)
end
end
#--------------------------------------------------------------------------
# * Scroll Right
#--------------------------------------------------------------------------
def update_scroll_right(last_real_x)
# If character moves right and is positioned more right on-screen than
# center
if @real_x > last_real_x and @real_x - $game_map.display_x > @center_x
# Scroll map right
$game_map.scroll_right(@real_x - last_real_x)
end
end
#--------------------------------------------------------------------------
# * Scroll Up
#--------------------------------------------------------------------------
def update_scroll_up(last_real_y)
# If character moves up and is positioned higher than the center
# of the screen
if @real_y < last_real_y and @real_y - $game_map.display_y < @center_y
# Scroll map up
$game_map.scroll_up(last_real_y - @real_y)
end
end
#--------------------------------------------------------------------------
# * Set Map Display Position to Center of Screen
#--------------------------------------------------------------------------
def center(x, y)
@center_x= (320/$game_map.tilemap_settings.zoom_x - 16) * 4 # Center screen x-coordinate * 4
@center_y = (240/$game_map.tilemap_settings.zoom_y - 16) * 4 # Center screen y-coordinate * 4
max_x = ($game_map.width*$game_map.tilemap_settings.zoom_x - 20) * 128/$game_map.tilemap_settings.zoom_x
max_y = ($game_map.height*$game_map.tilemap_settings.zoom_y - 15) * 128/$game_map.tilemap_settings.zoom_y
$game_map.display_x = ([0, [x * 128 - @center_x, max_x].min].max)
$game_map.display_y = ([0, [y * 128 - @center_y, max_y].min].max)
end
end
#--------------------------------------------------------------------------
# * End SDK Enable Test
#--------------------------------------------------------------------------
end
|
|
cantarelle -
posté le 28/11/2013 à 13:36:07 (1530 messages postés)
| Makeuse tarée et Agent du FBI... | Support : RMXP
Question :
Bonjour,
Quelle est la ligne de commande pour lire en script un event commun ?
Merci d'avance.
|
Makeuse à la crosse de street-hockey. Livestream. |
Dyeel -
posté le 28/11/2013 à 14:10:56 (200 messages postés)
| | Salut.
Tout ce qui se passe au niveau des commandes des events (et de leur interprétation) se trouve dans la série des scripts "Interpreter".
Pour appeler un event commun tu peux utiliser la commande :
$game_temp.common_event_id = id_de_l'event_commun
J'espère avoir répondu à ta question.
|
Lidagan -
posté le 06/12/2013 à 23:37:42 (3455 messages postés)
| [insert queer propaganda] | Hello,
Je sais que mes questions ont sans doute déjà été posées, mais je suis très mauvais pour chercher sur internet et j'arrive pas à trouver de réponse...
Support : RPG Maker VX Ace
Question 1 : Quelqu'un aurait-il sous le coude un script qui permettrait de faire des combats à la Advance Wars / Final Fantasy Tactics Advance ? Fourni avec un mode d'emploi pour créer ses propres attaques et tout et tout ? ^^"
Question 2 : Je sais même pas si ça relève du script, mais j'aimerais avoir un système quand on monte un niveau, qui permette de choisir quelles compétences on veut apprendre et quelles statistiques on veut augmenter, sans définir soi-même le moment où l'on monte de niveau.
Edit : Question 3 : J'aimerais faire des objets ; un qui a un effet quand on tue un ennemi, et un autre qui a un effet quand on fait une attaque normale, un autre qui a un effet quand on a fait un sort au tour précédent. J'ai pas réussi avec les events donc je suppose qu'il faut passer par les conditions "script"
|
Cleep -
posté le 21/12/2013 à 14:58:51 (60 messages postés)
| Ludophile | Bonjour tout le monde, je m'excuse par avance de ma question un peu noob, le fait étant que je suis vraiment une tanche en script
Support : RPG Maker VX Ace. [Résolu]
Voilà, quelqu'un pourrait-il m'indiquer la commande à entrer pour afficher un texte simple (sans fond ni couleur) sur une map et à choisir ses coordonnées ?
Un grand merci à celui qui pourra me répondre.
Sinon Lidagan, pour choisir les statistiques à augmenter lors d'un passage au niveau supérieur, il y a ce script de Mack qui pourrait t'intéresser :
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
| #Système de points de caractèristique au level up.
#Mack Avril 2012
# <gain_caract> [2,2,2,2,2,2,2,2]
# <cost_caract> [2,2,2,2,2,2,2,2]
#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
# This class performs the menu screen processing.
#==============================================================================
$pts = 4
class Scene_Level_Up < Scene_MenuBase
def msg
s = ["Augmente les HP Max de #{@actor.gain_caract(0)}
Coute : #{@actor.cost_caract(0)}",
"Augmente les MP Max de #{@actor.gain_caract(1)}
Coute : #{@actor.cost_caract(1)}",
"Augmente la Force de #{@actor.gain_caract(2)}
Coute : #{@actor.cost_caract(2)}",
"Augmente la Defense de #{@actor.gain_caract(3)}
Coute : #{@actor.cost_caract(3)}",
"Augmente la Magie de #{@actor.gain_caract(4)}
Coute : #{@actor.cost_caract(4)}",
"Augmente la Défense Magique de #{@actor.gain_caract(5)}
Coute : #{@actor.cost_caract(5)}",
"Augmente l'Agilité de #{@actor.gain_caract(6)}
Coute : #{@actor.cost_caract(6)}",
"Augmente la Chance de #{@actor.gain_caract(7)}
Coute : #{@actor.cost_caract(7)}"]
return s
end
#--------------------------------------------------------------------------
# * Start Processing
#--------------------------------------------------------------------------
def start
super
@actor = $game_temp.actor_level_up[0]
create_help_window
create_command_window
@help_window.set_text(msg[@command_window.index])
create_status_window
$game_temp.actor_level_up.delete_at(0)
end
#--------------------------------------------------------------------------
# * Create Command Window
#--------------------------------------------------------------------------
def create_command_window
@command_window = Window_Level_upCommand.new
@command_window.set_handler(:gain_param, method(:command_gain_param))
@command_window.set_handler(:retour, method(:command_return))
@command_window.y = @help_window.height
end
def command_return
if @actor.level_up_pts > 0
@help_window.set_text("Il vous reste des points à distribuer.")
wait(30)
@command_window.activate
else
return_scene
end
end
def create_status_window
@status_window = Window_Status_Level_up.new(@actor)
@status_window.x = @command_window.width
@status_window.y = @help_window.height
end
def command_gain_param
index = @command_window.index
@command_window.refresh
if @actor.level_up_pts >= @actor.cost_caract(index)
@actor.gain_lvl_pts(-@actor.cost_caract(index))
@actor.add_param(index,@actor.gain_caract(index))
@help_window.set_text("Caractéristique augmentée !")
else
@help_window.set_text("Vous n'avez pas assez de points.")
end
@status_window.refresh
@command_window.refresh
wait(30)
@command_window.activate
end
def wait(time)
t = 0
loop do
Graphics.update
if t == time
break
end
t += 1
end
end
def update
super
@help_window.set_text(msg[@command_window.index])
end
def on_actor_change
@status_window.actor = @actor
@status_window.refresh
@command_window.activate
end
end
class Scene_Map < Scene_Base
alias old_update update
def update
old_update
if $game_temp.actor_level_up[0]
SceneManager.call(Scene_Level_Up)
end
end
end
class Game_Actor < Game_Battler
attr_reader :level_up_pts
alias old_initialize initialize
def initialize(actor_id)
old_initialize(actor_id)
@level_up_pts = 0
end
def gain_caract(param)
tbl = [1,1,1,1,1,1,1,1]
note = $data_classes[@class_id].note
note.each_line do |line|
if line.include?("<gain_caract>")
line2 = line.gsub!("<gain_caract> ","")
tbl = eval(line2)
end
end
return tbl[param]
end
def cost_caract(param)
tbl = [1,1,1,1,1,1,1,1]
note = $data_classes[@class_id].note
note.each_line do |line|
if line.include?("<cost_caract>")
line2 = line.gsub!("<cost_caract> ","")
tbl = eval(line2)
end
end
return tbl[param]
end
def gain_lvl_pts(value)
@level_up_pts += value
if @level_up_pts < 0
@level_up_pts = 0
end
end
def param_base(param_id)
return self.class.params[param_id, 1]
end
def level_up
@level += 1
$game_temp.actor_level_up.push(self) unless $game_temp.actor_level_up.include?(self)
self.class.learnings.each do |learning|
learn_skill(learning.skill_id) if learning.level == @level
end
gain_lvl_pts($pts)
end
end
class Game_Temp
attr_accessor :actor_level_up
alias old_initialize initialize
def initialize
old_initialize
@actor_level_up = []
end
end
#==============================================================================
# ** Window_MenuCommand
#------------------------------------------------------------------------------
# This command window appears on the menu screen.
#==============================================================================
class Window_Level_upCommand < Window_Command
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@actor = $game_temp.actor_level_up[0]
super(0, 0)
@@last_command_symbol = nil
select_last
end
#--------------------------------------------------------------------------
# * Get Window Width
#--------------------------------------------------------------------------
def window_width
return 160
end
#--------------------------------------------------------------------------
# * Get Number of Lines to Show
#--------------------------------------------------------------------------
def visible_line_number
item_max
end
#--------------------------------------------------------------------------
# * Create Command List
#--------------------------------------------------------------------------
def make_command_list
add_main_commands
end
#--------------------------------------------------------------------------
# * Add Main Commands to List
#--------------------------------------------------------------------------
def add_main_commands
add_command(Vocab::param(0), :gain_param, true)
add_command(Vocab::param(1), :gain_param, true)
add_command(Vocab::param(2), :gain_param, true)
add_command(Vocab::param(3), :gain_param, true)
add_command(Vocab::param(4), :gain_param, true)
add_command(Vocab::param(5), :gain_param, true)
add_command(Vocab::param(6), :gain_param, true)
add_command(Vocab::param(7), :gain_param, true)
add_command("Suivant" , :retour , @actor.level_up_pts <= 0)
end
#--------------------------------------------------------------------------
# * Processing When OK Button Is Pressed
#--------------------------------------------------------------------------
def process_ok
@@last_command_symbol = current_symbol
super
end
def select_last
select_symbol(@@last_command_symbol)
end
end
#==============================================================================
# ** Window_Status
#------------------------------------------------------------------------------
# This window displays full status specs on the status screen.
#==============================================================================
class Window_Status_Level_up < Window_Selectable
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor)
super(0, 0, 384, 344)
@actor = actor
refresh
activate
end
#--------------------------------------------------------------------------
# * Set Actor
#--------------------------------------------------------------------------
def actor=(actor)
return if @actor == actor
@actor = actor
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_block1(line_height * 1)
draw_block2(line_height * 1)
draw_block3(line_height * 3)
draw_actor_name(@actor, 4, line_height * 0 )
end
def draw_block1(y)
draw_actor_face(@actor, 192+32, y)
#draw_actor_class(@actor, 128, y)
#draw_actor_nickname(@actor, 288, y)
end
#--------------------------------------------------------------------------
# * Draw Block 2
#--------------------------------------------------------------------------
def draw_block2(y)
draw_basic_info(32, y)
draw_exp_info(4, y+line_height * 8)
end
#--------------------------------------------------------------------------
# * Draw Block 3
#--------------------------------------------------------------------------
def draw_block3(y)
draw_parameters(32, y)
end
#--------------------------------------------------------------------------
# * Draw Horizontal Line
#--------------------------------------------------------------------------
def draw_horz_line(y)
line_y = y + line_height / 2 - 1
contents.fill_rect(0, line_y, contents_width, 2, line_color)
end
#--------------------------------------------------------------------------
# * Get Color of Horizontal Line
#--------------------------------------------------------------------------
def line_color
color = normal_color
color.alpha = 48
color
end
#--------------------------------------------------------------------------
# * Draw Experience Information
#--------------------------------------------------------------------------
def draw_exp_info(x, y)
s1 = @actor.max_level? ? "-------" : @actor.exp
s2 = @actor.max_level? ? "-------" : @actor.next_level_exp - @actor.exp
s_next = sprintf(Vocab::ExpNext, Vocab::level)
change_color(system_color)
draw_text(x, y + line_height * 0, 180, line_height, Vocab::ExpTotal)
draw_text(x, y + line_height * 2, 180, line_height, s_next)
change_color(normal_color)
draw_text(x, y + line_height * 1, 180, line_height, s1, 2)
draw_text(x, y + line_height * 3, 180, line_height, s2, 2)
end
#--------------------------------------------------------------------------
# * Draw Parameters
#--------------------------------------------------------------------------
def draw_parameters(x, y)
6.times {|i| draw_actor_param(@actor, x, y + line_height * i, i + 2) }
end
#--------------------------------------------------------------------------
# * Draw Basic Information
#--------------------------------------------------------------------------
def draw_basic_info(x, y)
draw_actor_level(@actor, x+200, y + line_height * 5)
draw_level_up_pts(x+200, y + line_height * 7)
#draw_actor_icons(@actor, x, y + line_height * 1)
draw_actor_hp(@actor, x, y + line_height * 0)
draw_actor_mp(@actor, x, y + line_height * 1)
end
def draw_level_up_pts(x,y)
draw_text(x,y,200,24,"Points : " + @actor.level_up_pts.to_s)
end
end |
Par contre pour tes autres questions je ne saurais pas t'aider, désolé
|
Grim -
posté le 21/12/2013 à 15:45:24 (251 messages postés)
| | Cleep > Il faut instancier un Sprite, lui assigner un Bitmap et écrire sur le Bitmap. Sinon tu peux te servir de ce script : http://www.biloucorp.com/levent-extender--3 et te servir de la commande picture_text dont tu peux trouver la documentation ici :
http://eventextender.gri.im/doc.pdf à la fin de la page 44
|
http://funkywork.github.io/ |
Cleep -
posté le 21/12/2013 à 17:29:19 (60 messages postés)
| Ludophile | Merci de ton aide Grim, j'ai compris comment faire !
|
Slime55 -
posté le 25/12/2013 à 01:08:04 (442 messages postés)
| | Support : RMVX Ace
Question 1 :
Bonsoir, j'utilise le script de Sideview battle system de Monos, il ne comprends aucune autre options en plus et c'est ce qui me satisfait, hormis une seule petite option ... Je voudrais que les battlers fassent une petite loop de leurs animations, rien de bien méchant, juste une animation de 3 frame. Et cela dans tous les cas, je ne demande pas de changement d'animation lorsqu'ils frappent, reçoivent des dégâts ou quoique ce soit d'autre, juste une petite boucle d'animation qui permettrait aux battlers de ne pas rester si statique. Serait-il donc possible d'intégrer cette option à ce script où faudra-t-il en faire un nouveau ? Voici le script en question.
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
| =begin
Basic Side View Battle Script
by Fomar0153
Version 1.0
----------------------
Notes
----------------------
No requirements
Displays battlers for the player's party.
----------------------
Instructions
----------------------
You will need to import battlers for the party to use
they should be named like this:
name_battler
e.g.
Ralph_battler
----------------------
Known bugs
----------------------
None
=end
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● New Method battler_name
#--------------------------------------------------------------------------
def battler_name
return actor.name + "_battler"
end
#--------------------------------------------------------------------------
# ● Rewrites use_sprite?
#--------------------------------------------------------------------------
def use_sprite?
return true
end
#--------------------------------------------------------------------------
# ● New Method screen_x
#--------------------------------------------------------------------------
def screen_x
return 450
end
#--------------------------------------------------------------------------
# ● New Method screen_y
#--------------------------------------------------------------------------
def screen_y
return 120 + self.index * 40
end
#--------------------------------------------------------------------------
# ● New Method screen_z
#--------------------------------------------------------------------------
def screen_z
return 100
end
end
class Spriteset_Battle
#--------------------------------------------------------------------------
# ● Rewrites create_actors
#--------------------------------------------------------------------------
def create_actors
@actor_sprites = $game_party.battle_members.reverse.collect do |actor|
Sprite_Battler.new(@viewport1, actor)
end
end
end |
Merci à ceux qui me répondront
|
Chaös17 -
posté le 28/12/2013 à 19:01:28 (868 messages postés)
| | Salut,
Support : RM vx Ace
Question 1 : résolu par Nagato Yuki
J'aimerai savoir s'il est possible de récupérer les coordonnées de l'ennemi dans l'onglet "troop" de la base de données ?
|
Blog of Chaos17 |
Nagato Yuki -
posté le 28/12/2013 à 21:56:36 (351 messages postés)
| | $data_troops[id].members[n].x et $data_troops[id].members[n].y
id doit certainement être l'id dans la base de données (1 pour 001) et n c'est le n[sup]ème[/sup] ennemy que tu veux, attention, tu dois vérifier que $data_troops[id].members[n] existe avant d'appeler la méthode x ou y.
«$data_troops = load_data("Data/Troops.rvdata2")»
http://puu.sh/61B1M.png
http://puu.sh/61B38.png
Si t'as l'aide en français ou en anglais, ça pourra t'être très utile dans tous ce qui est base de données du logiciel, tout y est, tout.
|
Pokémon Workshop, le site de Making Pokémon sur RPG Maker~ |
Yamashi54 -
posté le 29/12/2013 à 00:57:45 (266 messages postés)
| Germanophile en folie poétique | Coucou
Support : RPG Maker VXace
Question 1 : Résolu par Cleep Merci beaucoup!
Question 2 : J'aimerais également ajouter des icônes à côté des différentes options dans le menu pause.
Merci d'avance .
|
I want you for the bed. |
Cleep -
posté le 29/12/2013 à 12:39:54 (60 messages postés)
| Ludophile | Yamashi54 : Je ne sais pas du tout comment ajouter des icônes sur le menu, mais pour y afficher le temps de jeu il y a ce script :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| #==============================================================================
# ** Window Time
#------------------------------------------------------------------------------
# Display Game Time
#==============================================================================
class Window_PlayTime < Window_Base
def initialize(x, y)
super(x, y, 160, 60)
self.contents.font.bold = true
self.contents.font.size = 25
self.contents.font.color = normal_color
refresh
end
#--------------------------------------------------------------------------
# * Refresh
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@total_sec = Graphics.frame_count / Graphics.frame_rate
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
ptime = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.draw_text(4, 0, contents.width - 8, contents.height - 4, "Temps : " + ptime, 2)
end
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end
class Scene_Menu < Scene_MenuBase
#--------------------------------------------------------------------------
# ● start
#--------------------------------------------------------------------------
alias flip_playtime_start start
def start
flip_playtime_start
create_playtime_window
end
#--------------------------------------------------------------------------
# ● create Playtime Window
#--------------------------------------------------------------------------
def create_playtime_window
@playtime_window = Window_PlayTime.new(0, 308)
end
end |
| 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!!
|