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:
Slime55 -
posté le 24/10/2012 à 18:00:25 (442 messages postés)
| | Merci du lien elfangor malheureusement il ne marche pas, enfin quand je le met dans la partie Main, je reteste avec une autre manip et je te dit quoi
| Suite du sujet:
Crystal -
posté le 24/10/2012 à 21:58:53 (2146 messages postés)
- | | $game_event tu l'as défini avant d'écrire ça ?
Parce que sinon, pour vulgariser, c'est comme dire video.odeur, le programme ne sait pas ce qu'est video, et même s'il le sait, ça ne veut pas dire qu'il peut lui attribuer une odeur.
|
Motoki -
posté le 25/10/2012 à 16:38:32 (111 messages postés)
| | Support : RMXP
Normalement le script 2D isométrique fonctionne bien avec le script de base de RMXP. Mais lorsque je me téléporte d'une map à une autre, j'ai ce message là :
NoMethodError occured while runnig script
Undefined Method 'enemies' for # <Game_Temps : 0x1500298>
Pour tester seulement des variables, j'ai que les scripts de bases et le script 2D ISO.
Pourquoi cette erreur?
En faite, j'ai mal tapé l'erreur désolé.
|
Grand fan de makai et de jeu Tactique rpg |
Cantarelle -
posté le 25/10/2012 à 16:50:07 (1530 messages postés)
| Makeuse tarée et Agent du FBI... | Pourquoi cette erreur ? La méthode 'ennemies' qui n'est pas définie. En prog, si ça pointe sur rien, bah, erreur.
Poste ton script, même si je suis persuadée que c'est simplement une erreur d'orthographe de ennemies qui devraient être enemies...
|
Makeuse à la crosse de street-hockey. Livestream. |
cortez -
posté le 25/10/2012 à 22:21:27 (524 messages postés)
| | @Crystal :
En effet la methode n'est pas définie. Mais j'ai laissé tombé.
Merci quand même ^^
|
Slime55 -
posté le 26/10/2012 à 00:00:12 (442 messages postés)
| | Support : RMXP
Question 1 :
Bonsoir, mon problème concerne le script pour le combat vue de coté.
Dans mon projet, j'ai essayé un skill qui permet la transformation, j'arrive à changer le sprite de mon perso en l'image que je veux le problème est qu'en fait l'image n'est représenté que partiellement pour être exact le côté haut gauche
J'ai essayé de bidouiller à mainte reprises le script et j'ai changé ces lignes là :
self.bitmap = RPG::Cache.character(@character_name, @character_hue)
cw = self.bitmap.width / 4
ch = self.bitmap.height / 4
Voilà un screen de comment l'image est représenté : http://imageshack.us/photo/my-images/17/sanstitre1xb.jpg/
La partie bleue est celle qui est par défaut dans le script du combat vue de coté c'est à dire quand les valeurs sont 4 et 4
Le maximum de partie visible que je suis arrivé à obtenir est celle en rouge ( la partie avec les jambes ) en mettant comme valeur 1 et 2
Donc en fait je voulais savoir comment faire pour avoir toute l'image dans le combat ?
Merci d'avance
|
Crystal -
posté le 26/10/2012 à 02:10:09 (2146 messages postés)
- | |
1
2
| cw = self.bitmap.width
ch = self.bitmap.height |
|
Slime55 -
posté le 26/10/2012 à 14:24:41 (442 messages postés)
| | Sa ne marche pas :/ avec ces 2 lignes changées je n'ai carrément plus de sprite dans le combat
Je ne sais pas si sa peut aider mais voici tout le script pour le combat vue de coté
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
| #==============================================================================
#++?????????(?????????)ver. 1.14++
#Script by ???
#http://rpg.para.s3p.net/
#------------------------------------------------------------------------------
# ????????????????????????
#==============================================================================
module SDVA
X_LINE = 500 # ????????????
Y_LINE = 200 # ????????????
X_SPACE = 15 # ?????????????
Y_SPACE = 40 # ?????????????
X_POSITION = 25 # ??[????????]????
Y_POSITION = 0 # ??[????????]????
ATTACK_MOVE = true # ???????????( true / false )
SKILL_MOVE = true # ??????????????( true / false )
ITEM_MOVE = false # ???????????????( true / false )
MOVE_STEP = 1 # ????
MOVE_PIXEL = 10 # ???????????
PARTY_POS = 1 # ?????????( 0:? / 1:? / 2:? / 3:? )
WINDOWPOS_CHANGE = true # ??????????????????????( true / false )
end
#==============================================================================
# ? Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ? ????? X ?????
#--------------------------------------------------------------------------
def screen_x
if self.index != nil
# ?????
pos = $data_classes[self.class_id].position
x_pos = pos * SDVA::X_POSITION
scr_x = self.index * SDVA::X_SPACE + SDVA::X_LINE + x_pos
# ??????????
if self.current_action.move_action == true
# ????
scr_x += @shift_x
end
return scr_x
else
return 0
end
end
#--------------------------------------------------------------------------
# ? ????? Y ?????
#--------------------------------------------------------------------------
def screen_y
if self.index != nil
# ?????
pos = $data_classes[self.class_id].position
y_pos = pos * SDVA::Y_POSITION
scr_y = self.index * SDVA::Y_SPACE + SDVA::Y_LINE + y_pos
# ??????????
if self.current_action.move_action == true
# ????
scr_y += @shift_y
end
return scr_y
else
return 0
end
end
#--------------------------------------------------------------------------
# ? ????? Z ?????
#--------------------------------------------------------------------------
def screen_z
if self.index != nil
return self.index
else
return 0
end
end
end
#==============================================================================
# ? Game_Battler (???? 1)
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
attr_reader :pattern # ??????
attr_reader :trans_x # X???????
attr_reader :moving # ??????
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
alias initialize_sdva initialize
def initialize
initialize_sdva
move_reset
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def move
@moving = 1
if @step < SDVA::MOVE_STEP
# ??????????
@pattern = (@pattern + 1) % 4
@step += 1
move_step
else
# ????
@pattern = 1
@moving = 2
end
end
#--------------------------------------------------------------------------
# ? ????
#--------------------------------------------------------------------------
def move_step
# ???????????????????
case SDVA::PARTY_POS
when 0
@shift_y = @step * SDVA::MOVE_PIXEL
when 1
@shift_x = -(@step * SDVA::MOVE_PIXEL)
when 2
@shift_x = @step * SDVA::MOVE_PIXEL
when 3
@shift_y = -(@step * SDVA::MOVE_PIXEL)
end
end
#--------------------------------------------------------------------------
# ? ???????
#--------------------------------------------------------------------------
def move_reset
@moving = 0
@pattern = 0
@step = 0
@shift_x = 0
@shift_y = 0
end
end
#==============================================================================
# ? Game_BattleAction
#==============================================================================
class Game_BattleAction
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
attr_accessor :move_action # ??????????
#--------------------------------------------------------------------------
# ? ???
#--------------------------------------------------------------------------
alias clear_sdva clear
def clear
clear_sdva
@move_action = false
end
end
#==============================================================================
# ? Sprite_Battler
#==============================================================================
class Sprite_Battler < RPG::Sprite
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
alias update_sdva update
def update
# ????????????????
if @battler.is_a?(Game_Actor)
# ????????????????????
# ??????
if @battler.battler_name != @battler_name or
@battler.battler_hue != @battler_hue or
@battler.current_action.basic == 0 or
@battler.current_action.kind != 3
# ????????????
@character_name = @battler.character_name
@character_hue = @battler.character_hue
# ???????????
self.bitmap = RPG::Cache.character(@character_name, @character_hue)
cw = self.bitmap.width / 1
ch = self.bitmap.height / 2
@width = cw
@height = ch
if @battler.current_action.move_action == true
# ????
@battler.move
else
@battler.move_reset
end
# ?????????
sx = @battler.pattern * cw
sy = SDVA::PARTY_POS * ch
self.src_rect.set(sx, sy, cw, ch)
self.ox = @width / 2
self.oy = @height
# ??????????? 0 ???
if @battler.hidden
self.opacity = 0
end
end
end
update_sdva
end
end
#==============================================================================
# ? Scene_Battle
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ? ????????????????????
#--------------------------------------------------------------------------
alias phase3_setup_command_window_sdva phase3_setup_command_window
def phase3_setup_command_window
phase3_setup_command_window_sdva
if SDVA::WINDOWPOS_CHANGE
# ???????????????????
case SDVA::PARTY_POS
when 0
x_pos = @active_battler.screen_x - (@actor_command_window.width/2)
y_pos = @active_battler.screen_y
when 1
x_pos = @active_battler.screen_x - @actor_command_window.width - 16
y_pos = @active_battler.screen_y - @actor_command_window.height
when 2
x_pos = @active_battler.screen_x + 16
y_pos = @active_battler.screen_y - @actor_command_window.height
when 3
x_pos = @active_battler.screen_x - (@actor_command_window.width/2)
y_pos = @active_battler.screen_y - @actor_command_window.height - 48
end
@actor_command_window.x = x_pos >= 0 ? x_pos : 0
@actor_command_window.x = x_pos+@actor_command_window.width <= 640 ? x_pos : 640-@actor_command_window.width
@actor_command_window.y = y_pos >= 0 ? y_pos : 0
@actor_command_window.y = y_pos+@actor_command_window.height <= 480 ? y_pos : 480-@actor_command_window.height
# ??????????????????
@actor_command_window.z = 9999
end
end
#--------------------------------------------------------------------------
# ? ?????? (??????? ???? 3 : ??????????)
#--------------------------------------------------------------------------
alias update_phase4_step3_sdva update_phase4_step3
def update_phase4_step3
if SDVA::ATTACK_MOVE
if @active_battler.current_action.basic == 0
@active_battler.current_action.move_action = true
end
end
if SDVA::SKILL_MOVE
if @active_battler.current_action.kind == 1
@active_battler.current_action.move_action = true
end
end
if SDVA::ITEM_MOVE
if @active_battler.current_action.kind == 2
@active_battler.current_action.move_action = true
end
end
# ??????????????????????
if @active_battler.is_a?(Game_Actor) and
@active_battler.current_action.move_action
# ?????
if @active_battler.moving == 2
update_phase4_step3_sdva
end
elsif @active_battler.moving == 0
update_phase4_step3_sdva
end
end
#--------------------------------------------------------------------------
# ? ?????? (??????? ???? 6 : ??????)
#--------------------------------------------------------------------------
alias update_phase4_step6_sdva update_phase4_step6
def update_phase4_step6
@active_battler.current_action.move_action = false
@active_battler.move_reset
update_phase4_step6_sdva
end
end
#==============================================================================
# ? Spriteset_Battle
#==============================================================================
class Spriteset_Battle
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
alias initialize_sdva initialize
def initialize
initialize_sdva
@viewport2.z = 1
end
end
#==============================================================================
# ? Arrow_Actor
#==============================================================================
class Arrow_Actor < Arrow_Base
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
alias update_sdva update
def update
update_sdva
# ?????
if Input.repeat?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
@index += 1
@index %= $game_party.actors.size
end
# ?????
if Input.repeat?(Input::UP)
$game_system.se_play($data_system.cursor_se)
@index += $game_party.actors.size - 1
@index %= $game_party.actors.size
end
end
end
#==============================================================================
# ? Arrow_Enemy
#==============================================================================
class Arrow_Enemy < Arrow_Base
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
alias update_sdva update
def update
update_sdva
# ?????
if Input.repeat?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
$game_troop.enemies.size.times do
@index += 1
@index %= $game_troop.enemies.size
break if self.enemy.exist?
end
end
# ?????
if Input.repeat?(Input::UP)
$game_system.se_play($data_system.cursor_se)
$game_troop.enemies.size.times do
@index += $game_troop.enemies.size - 1
@index %= $game_troop.enemies.size
break if self.enemy.exist?
end
end
end
end |
|
cortez -
posté le 26/10/2012 à 16:38:40 (524 messages postés)
| | Slime55 a dit:
Support : RMXP
Question 1 :
Bonsoir, mon problème concerne le script pour le combat vue de coté.
Dans mon projet, j'ai essayé un skill qui permet la transformation, j'arrive à changer le sprite de mon perso en l'image que je veux le problème est qu'en fait l'image n'est représenté que partiellement pour être exact le côté haut gauche
J'ai essayé de bidouiller à mainte reprises le script et j'ai changé ces lignes là :
self.bitmap = RPG::Cache.character(@character_name, @character_hue)
cw = self.bitmap.width / 4
ch = self.bitmap.height / 4
Voilà un screen de comment l'image est représenté : http://imageshack.us/photo/my-images/17/sanstitre1xb.jpg/
La partie bleue est celle qui est par défaut dans le script du combat vue de coté c'est à dire quand les valeurs sont 4 et 4
Le maximum de partie visible que je suis arrivé à obtenir est celle en rouge ( la partie avec les jambes ) en mettant comme valeur 1 et 2
Donc en fait je voulais savoir comment faire pour avoir toute l'image dans le combat ?
Merci d'avance
|
C'est ultra simple, tu vas agrandir ton image pour la copier 4 fois en largeur et 4 fois en longueur (comme un character en fait). et tu remet les lignes de script avec 4 et 4.
L'erreur vient que le script affiche un character (donc découpe ton image en 16 morceaux)
|
Slime55 -
posté le 26/10/2012 à 17:09:23 (442 messages postés)
| | Mais si je fais comme tu dit, la taille de mon sprite de transformation sera la même que celle d'un character ?
Si oui bah c'est surtout sa que j'aimerais changer en fait, enlever la limite de ce que le script peut "montrer"
|
Crystal -
posté le 26/10/2012 à 20:58:42 (2146 messages postés)
- | | Remplace ces lignes:
1
2
3
| sx = @battler.pattern * cw
sy = SDVA::PARTY_POS * ch
self.src_rect.set(sx, sy, cw, ch) |
Par ça:
1
2
3
| #sx = @battler.pattern * cw
#sy = SDVA::PARTY_POS * ch
#self.src_rect.set(sx, sy, cw, ch) |
Et fais la première instruction que je t'ai dite plus tôt.
|
Slime55 -
posté le 26/10/2012 à 21:37:40 (442 messages postés)
| | Magnifique, sa marche !!
Mille mercis, sa fait quand même 2 jours que je change sans arrêt ce script pour essayer d'avoir le bon sprite et je le vois enfin en entier.
Encore merci
|
Grim -
posté le 26/10/2012 à 22:34:47 (251 messages postés)
| | Bonjour, je voudrais savoir quelle est la différence entre Input.trigger?, Input.press? et Input.repeat?
enfin plutot, comment est représenté leur comportement ?
Parce que j'ai beau essayer de le "définir" j'ai vraiment du mal.
Merci beaucoup !
|
http://funkywork.github.io/ |
Cantarelle -
posté le 27/10/2012 à 09:03:58 (1530 messages postés)
| Makeuse tarée et Agent du FBI... | Input.trigger : au déclenchement de la touche
Input.press : pareil, mais dans les scripts de base, cette methode est plus utilisée pour les boutons qu'on n'utilise pas souvent (genre, Shift, Ctrl etc... Je viens de vérifier avec Ctrl+Shift+F). Si bien utilisée, elle peut avoir les mêmes propriétés que Input.repeat (je l'utilise dans mon script de course perso car Input.trigger ne fonctionnait pas).
Input.repeat : quand la touche pressée pressée reste pressée (par exemple, tu appuies sur bas mais tu ne le relâches pas)
|
Makeuse à la crosse de street-hockey. Livestream. |
Nagato Yuki -
posté le 27/10/2012 à 09:42:26 (351 messages postés)
| | D'ailleurs pour faire simple voici des chronogrammes purement théoriques (il y a quelques différences avec la réalité) :
repeat ne reste pas à true quand la touche reste pressée sinon ton curseur se déplacerait de 40 cases par secondes ce qui n'est pas le cas en réalité et trigger ne devrait s'activer que si elle voit un front montant puis descendant sur une certaine durée mais comme j'ai dit c'est théorique donc il y a peut être des différences.
|
Pokémon Workshop, le site de Making Pokémon sur RPG Maker~ |
Grim -
posté le 27/10/2012 à 11:48:02 (251 messages postés)
| | Merci beaucoup pour le schéma Nagato (ainsi que l'explication), merci aussi Cantarelle.
J'avais beau faire de test j'étais incapable de définir "formellement" leur comportement.
|
http://funkywork.github.io/ |
Slime55 -
posté le 27/10/2012 à 17:56:31 (442 messages postés)
| | Je pense que ton message fais allusion au mien
Oui désolé je ne connaissais pas encore la balise ce jour là
Sinon est ce que quelqu'un connait quelle partie du script "Combat vue de coté " il faut changer pour que les apparences en combats ne se superposent pas ?
J'ai réussi à faire en sorte que le script montre les apparences en combats et non les apparences en map mais le problèmes est qu'ils se superposent donc je voulais savoir si quelque part dans le script il y a une valeur x/y à changer pour que cette opération se fasse ?
|
Slime55 -
posté le 27/10/2012 à 19:37:34 (442 messages postés)
| | Ce n'est pas vraiment sa en fait
Voilà à quoi ressemble un combat avec les apparences de combats par défaut
http://imageshack.us/photo/my-images/543/sanstitre2za.jpg/
Voici une autre image mais avec quelques unes de mes transfo
http://imageshack.us/photo/my-images/402/sanstitre1qjh.jpg/
Edit : Ce que je veux dire c'est que les battle char set ne superposent pas comme toi tu le vois
|
Slime55 -
posté le 27/10/2012 à 20:14:00 (442 messages postés)
| | Oui justement c'est sa que je cherche x)
J'ai essayer de changer un peu le script mais je n'arrive toujours pas à trouver l'endroit ou se trouvent le x et y à changer, je sens que je vais essayer d'engager un scripteur
|
elfangor -
posté le 27/10/2012 à 21:20:06 (55 messages postés)
| [Reprise de RM. Lentement] | Bon, j'ai pas assez de temps pour bosser à temps plein comme scripteur sur un autre projetque le mien... Déjà qu'il avance pas trop avec mes examens ! Mais je peux tout de même aider un peu ;
Je te conseil d'utiliser des images plus petites, ça évitera la superposition et les battlers qui sortent de l'écran le cas échéant ;
Ensuite, les lignes à changer sont celles-là :
1
2
| X_SPACE = XXX # ?????????????
Y_SPACE = XXX # ????????????? |
Remplace les XXX par les valeurs que tu veux, fais des expériences avec ton image la plus grosse
PS : Edit ton post avec l'ensemble du code, et mets celui-ci *entre* les balises [code ][/code ]
|
Bon... Si je m'y mets une heure tous les six mois, j'aurais fini... Avec mon arrière petit-fils ! Bien ! |
Zeus81 -
posté le 27/10/2012 à 21:46:32 (11071 messages postés)
| | Ton schéma est faux Yuki.
|
Grim -
posté le 27/10/2012 à 23:23:38 (251 messages postés)
| | Erf, alors je peux te demander (une fois de plus ^^') à toi des précisions xD ?
|
http://funkywork.github.io/ |
Tasslehoff -
posté le 27/10/2012 à 23:37:23 (5274 messages postés)
| Disciple de Pythagolf | Le Input.press? est vrai tant que la touche est enfoncée.
Le trigger? est vrai au moment où tu enfonces la touche.
Le repeat? est vrai au moment où tu enfonces la touche, 0.4 secondes plus tard si la touche n'a pas été relâchée entre temps, puis tous les dixièmes de secondes tant que la touche n'est pas relâchée. C'est pratique dans un menu par exemple : si tu restes appuyé le curseur va d'abord changer de position, puis encore une fois 0.4 secondes plus tard et ensuite va faire défiler ton truc plus vite jusqu'à ce que tu relâche la touche.
|
~~ |
Grim -
posté le 27/10/2012 à 23:38:11 (251 messages postés)
| | Ok ! Merci !
|
http://funkywork.github.io/ |
Hermoni -
posté le 28/10/2012 à 14:37:17 (279 messages postés)
| Shano | Yop
Support : VX
Question 1 :
En fait c'est "tout con" (tellement que j'ai pas trouvé en fouillant), je cherche juste la ligne pour pouvoir dire "si l'index du statut est entre X et Y".
Me le faut pour definir certains statuts que je souhaite ne pas afficher en combat (servent juste a gerer certains details qui ne necessite pas d'etre visible a cet endroit).
Question 2 :
Lié a la 1ere, l'index des statut commence a 0 ou a 1 ? (pour definir le X et le Y, meme si ca se verif facilement)
|
Ni da an shindu, doral'dieb an thera. |
arttroy -
posté le 28/10/2012 à 15:30:23 (2394 messages postés)
| Just working | En réponse à ta deuxième question, l'index (peut importe lequel) commence à 0
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? | 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!!
|