Bienvenue visiteur !
|
![publicité RPG Maker!](interface/pub/hivernal.gif)
Statistiques
Liste des membres
Contact
Mentions légales
276 connectés actuellement
30989289 visiteurs depuis l'ouverture
3067 visiteurs aujourd'hui
![Barre de séparation](interfacev2/fondgauchesepara.png)
Partenaires
![Indiexpo](https://www.rpg-maker.fr/interface/partenaires/freankexpo.gif)
![Akademiya RPG Maker](https://www.rpg-maker.fr/interface/partenaires/rmru.gif)
![Blog Alioune Fall](interface/partenaires/quest_fantasy.png)
![Fairy Tail Constellations](interface/partenaires/fairy_tail_constellations.png)
![Alex d'Or](https://www.rpg-maker.fr/interface/partenaires/alexdor.gif)
![Zarok](https://www.rpg-maker.fr/interface/partenaires/zarok.png)
![RPG Maker Détente](https://www.rpg-maker.fr/interface/partenaires/rpgmakerdetente.png)
![Tashiroworld](https://www.rpg-maker.fr/interface/partenaires/tashiroworld.png)
Tous nos partenaires
Devenir partenaire
|
Menma-Uzumaki -
posté le 07/06/2013 à 06:59:54 (20 messages postés)
| | Domaine concerné: Scripte
Logiciel utilisé: Rpg Maker Xp
Bonjour a tous !
Me revoilà j'ai un besoin d'aide énorme, enfin pour moi c'est énorme.
la dernier foi Widoo m'avez aidés et j'avais grâce a son aide réussi a contourné la modification du scripte mais la j'ai un soucie, quand je dit énorme c'est que pour moi c'est énorme
Info :
voila comme a mes habitude j'utilise des scriptes Moghunter
aujourd'hui le scripte est ce lui la http://www.atelier-rgss.com/RGSS/System/XP_SYS11.html
question :
voila ce scripte fait en sorte que quand on réussi les touches indiqué ou que l'on réussi pas
cela déclenche un interrupteur.
J'ai alors essayeé de le faire en plein combat dans la programmation du groupe ennemis je voulais faire en sorte d’achevé mon ennemis avec une touche comme dans naruto shippuden ultimate storme 3 le soucie c'est que sa me ramène sur la map alors que je voudrez que le combat continue si le monstre n'est pas mort.
le problème c'est que si on modifie le scripte pour que l'on puisse continuer le combat "je pense que sa ne marchera plus sur la map !"
Il fraudait donc faire 2 scriptes.
1 ou c'est le combat avec insert un scripte différent et 2 que l'autre serrais normal en map
|
j'écri mal, je fait des efforts et si tes pas content me parle pas |
Cortez -
posté le 07/06/2013 à 11:49:36 (527 messages postés)
- ![A publié une image dans sa galerie lors des 3 derniers mois](images/trophees/crayon.png) | | Il faut modifier le script un petit peu pour que cela fonctionne.
En gros tu veux que lorsque l'on est en combat on y reste.
Et que autrement le script ne soit pas modifié sur les maps du jeu.
Donc tu vas remplacer la même partie du script par celle-ci :
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
| #--------------------------------------------------------------------------
# ● Next Command
#--------------------------------------------------------------------------
def next_command
@com_index += 1
$game_system.se_play(CHAIN_RIGHT_SE)
if @com_index == @chain_command.size
if @xas
$game_temp.chain_active = true
$game_temp.chain_action_id = @action_id
else
$game_switches[@action_id] = true
end
if $game_temp.in_battle == false
$scene = Scene_Map.new
$game_map.need_refresh = true
else
refresh_command
refresh_text(0)
end
end
refresh_command
refresh_text(0)
end
#--------------------------------------------------------------------------
# ● wrong_command
#--------------------------------------------------------------------------
def wrong_command
$game_system.se_play(CHAIN_WRONG_SE)
if @xas
$game_temp.chain_action_id = 0
$game_temp.chain_active = false
end
if $game_temp.in_battle == false
refresh_text(1)
$scene = Scene_Map.new
$game_player.jump(0,0)
else
refresh_text(1)
end
end |
Voilà normalement ça devrais marcher, mais je n'ai pas testé.
Si tu constates un ou plusieurs bug poste-les ici et pense à recopier la ligne qui foire.
/!\ Je suis débutant dans les script, il se peut fortement que je me soit trompé, cependant je pense avoir cerné le problème du retour de map avec les 2 $scene_map.new
|
Menma-Uzumaki -
posté le 07/06/2013 à 13:13:28 (20 messages postés)
| | Salut je viens de test ce la ne marche pas d’ailleurs la barre du temps ce taille d'un coup vers la droit et que même si elle est partie y a temps infini et que j’appuie plusieurs fois sur la touche sa me met ratée et sa bouge pas je ré-appuie toujours ratée,par contre en map sa marche toujour
|
j'écri mal, je fait des efforts et si tes pas content me parle pas |
Cortez -
posté le 07/06/2013 à 21:58:24 (527 messages postés)
- ![A publié une image dans sa galerie lors des 3 derniers mois](images/trophees/crayon.png) | | Ok je comprend un peu mieux, mais cependant je ne sais pas encore comment réparer tout.
Ce que tu peux faire par contre, c'est de reprendre le script de base et de modifier que la partie
cela devrait régler le problème de la barre qui se vide super vite. (lié au double update)
Sinon pour m'aider un peu, tu pourrais me dire quand-est-ce que tes personnages utilisent ce script dans les combats (un skill, une attaque, un overdrive ?)
Pour les scripteurs qui passe par là, je leur serait reconnaissants de m'aider sur l'arrêt du script de Mog par une commande.
Parce que là, si le joueur est en combat, le script triche en relançant le $scene.map afin de stopper le script, or dans un combat si on mets $scene_battle.new on recommence le combat !
|
Widoo -
posté le 07/06/2013 à 23:34:48 (86 messages postés)
| I ♥ RMXP | Tu peux essayer pour l'histoire de l'update d'enregistrer la scene en cours (Scene_Battle) juste avant de lancer le script de QTE:
$qte = $scene
et ensuite un $scene = ClasseQTE.new
et au moment du retour, à la fin du QTE, tu fais un $scene = $qte
enfin j'ai utilisé des variables globales ($), cce qui est pas super propre, c'est juste un exemple ne sachant pas ce à quoi tu peux accéder côté classes et propriétés.
Je pense que ça devrait marcher
|
Menma-Uzumaki -
posté le 08/06/2013 à 04:24:03 (20 messages postés)
| | Désolé widoo je suis très nul en scripte c'est quoi une qte ?
plus précisément que doit je faire ?
Cortez
sur la map on arrive a un endroit ou on doit sauté une rivière très grand donc on fait appelle au scripte puis on fait les touches.Une fois de l'autre coté de la rive un homme vient nous parler et un combat commence, dans les prog du groupe j'ai mis en condition si l'ennemis a c'est pv -= a 70 %
on ce bat puit on arrive au moins 70 % et la on insert le scripte pour appuyé sur la touche pour l’achevé ou si l'ennemis a encore la vie on continue le combat mais je bloc au moment d’inséré le scripte sa beug je reviens en map j’espère que c'étais sa que tu demandé et j’espère t'avoir aidés.
|
j'écri mal, je fait des efforts et si tes pas content me parle pas |
Anton_ -
posté le 08/06/2013 à 10:36:31 (1538 messages postés)
| | un QTE, c'est pas forcément du script... ya une explication courte ici (et c'est même dans la rubrique entraide) [/HS]
|
Raetribution | Megamike || tutos : 1 2 || Une bonne dose de maths pour la route |
Widoo -
posté le 08/06/2013 à 11:02:30 (86 messages postés)
| I ♥ RMXP | QTE, ou Quick Time Event, c'est le principe du chain command, c'est la même chose. En bref, tu appuies sur des boutons dès que c'est demandé avec une barre qui défile. En gros tu dois faire des actions avant que le temps imparti soit passé.
Bref, c'est qu'un détail, j'ai appelé ça QTE mais c'est le système que tu essayes de nous demande de corriger...
Un QTE c'est un système, alors oui bien sur un système de QTE peut être fait en event ou autre.
Bref, je répondais seulement à Cortez qui demandais un coup de main, merci de mieux lire la prochaine fois, je prendrais pas à chaque fois de mon temps pour répondre à ce genre de choses merci =)
|
Cortez -
posté le 08/06/2013 à 11:32:14 (527 messages postés)
- ![A publié une image dans sa galerie lors des 3 derniers mois](images/trophees/crayon.png) | | @Menma : J'ai compris le principe pour ton jeu, et le moment ou tu insères le script.
@Widoo : Ton aide est bienvenue, cependant, ce que tu indique est hors de porté pour moi ...
Je sais faire des modifications et des ajouts mais pour ce qui est de la syntaxe je galère et pour la gestion des classes, je débute.
Donc je pense arrêter là pour l'aide, je n'ais pas encore les compétences requises.
Mais je surveille ce sujet afin de voir et comprendre les solutions apportés par les autres.
Sur ce, je vous laisse la main, je passe mon tour.
|
Widoo -
posté le 08/06/2013 à 11:40:07 (86 messages postés)
| I ♥ RMXP | Pas de soucis Cortez.
Juste pour la petite explication de mon message précédent, en gros, ce qui est affiché à l'écran, comme la mappe, le menu etc, ce sont des classes. La classe en cours est jouée à partir de la variable globale $scene. C'est pour ca que lorsque tu veux afficher la mappe, tu fais juste un $scene = Scene_Map.new. Toutes info relative au combat est stockée dans Scene_Battle. Si tu appelles à nouveau la classe Scene_Battle, il passe par le constructeur, la méthode initialize. Ce qui fait que tout le combat est réinitialisé! Donc le combat lorsque tu es en combat est stocké dans $scene. Il suffit donc que tu récupère la scene de combat dans une variable afin d'en sauvegarder le contenu.
Donc tu fais genre $sauvegardecombat = $scene
Ensuite, tu appelles la scene de QTE en faisant $scene = ChainCommand.new
et dès que tu as besoin que le combat soit rejoué, tu utilise la sauvegarde
$scene = $sauvegardecombat.
Bref, rien de compliqué!
|
Menma-Uzumaki -
posté le 08/06/2013 à 14:34:52 (20 messages postés)
| | donc je doit mètre en variable en haut du scripte je présume
$sauvegardecombat = $scene_Scene_Battle
est je met $scene = $sauvegardecombat dans le wong et dans next command
|
j'écri mal, je fait des efforts et si tes pas content me parle pas |
Widoo -
posté le 08/06/2013 à 18:18:45 (86 messages postés)
| I ♥ RMXP | A peu près:
$scene_Scene_Battle n'existe pas, elle n'a jamais été déclarée (comme variable globale), en revanche $scene existe.
Donc ce que je te conseille de faire, c'est de créer un script
class LaunchQte
def initialize
$sauvegardeQte = $scene
$scene = tacommandequilanceleqte
end
end
et dans ton script de qte la ou il y avais $scene = Scene_Map.new, tu remplaces par $scene = $sauvegardeQte
et pour lancer ton QTE, tu utilises maintenant dans insérer un script:
LaunchQte.new à la place de ChainCommand.new par exemple.
Enfin y a toujours le problème de variable globale qui est pas propre (on utilise en dernier recours les $mavariable, c'est pas super propre).
J'ai pas vraiment le temps en ce moment de chercher d'autre solutions plus propres, c'est la première qui m'est venue, et ca devrait faire l'affaire
|
Menma-Uzumaki -
posté le 09/06/2013 à 02:46:17 (20 messages postés)
| | donc je crée un nouveau scripte et je met ce que tu ma dit ?
edite apres test : il y a une erreur mais ou ? je lance le combat le monstre et touche sa vie a -= 50% et la erreur " ArgumentError occurred while running scripte wong number of arguments(1 for 0)
|
j'écri mal, je fait des efforts et si tes pas content me parle pas |
arttroy -
posté le 10/06/2013 à 09:28:50 (2394 messages postés)
| Just working | Ben normalement là tu as une ligne de script indiqué dans ton message d'erreur. Le souci c'est que sur la ligne en question, tu as un argument en trop (donc une parenthèse qui ne devrait pas être là... Tu pourrais nous mettre le morceau de code en question et le message d'erreur complet stp?
Il te suffit d'aller dans le script qui t'intéresse, ctrl+a pour tout sélectionner, ctrl+c pour copier. Tu reviens sur oniro, tu insère une balise code dans ton message et un petit ctrl+v entre les deux parties de la balise pour copier ton code dedans. Pour le message d'erreur je te conseille de le screener (touche "impécr Syst" de ton clavier) et ensuite tu utilise paint pour recadrer et ne garder que le message d'erreur comme ça :
Voilà avec tout ces conseils tu es paré à faire des topics d'entraide d'anthologie !!
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
Menma-Uzumaki -
posté le 10/06/2013 à 11:37:27 (20 messages postés)
| | donc le scripte Chain_Commands
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
|
# +++ Chain Commands v1.0 +++ (2011/03/10)
#===============================================================================
# By Moghunter
# http://www.atelier-rgss.com
#===============================================================================
# Sistema de sequência de botões para ativar switchs ou skills caso você estiver
# usando o sistema XAS.(Opcional, não é obrigatório usar o XAS)
#
# Serão necessárias as seguintes imagens. (Graphics/Windowskins)
#
# Cursor.png
# Chain_Command.png
# Chain_Layout.png
# Chain_Timer_Layout.png
# Chain_Timer_Meter.png
#
#===============================================================================
#
# Para ativar o script use o comando abaixo. (*Call Script)
#
# $scene = Chain_Commands.new(ID)
#
# ID - Id da switch, essa switch será ativada caso jogador tiver sucesso na
# sequência de comandos.
#
#===============================================================================
module MOG_CHAIN_COMMANDS
#==============================================================================
# CHAIN_COMMAND = { SWITCH_ID => [COMMAND] }
#
# SWITCH_ID = ID da switch (ou habilidade no sistema XAS)
# COMMANDS = Defina aqui a sequência de botões.
# (Para fazer a sequência use os comandos abaixo)
#
# "Down" ,"Up" ,"Left" ,"Right" ,"C" ,"D" ,"S" ,"A" ,"Z" ,"X" ,"Q" ,"W"
#
#--------------------#
# A B C X Y Z L R # < Input
#--------------------#
# Z X C A S D Q W # < Keyboard/Joystick
#--------------------#
#
# Exenplo de utilização
#
# CHAIN_SWITCH_COMMAND = {
# 25=>["Down","D","S","Right"],
# 59=>["Down","Up","Left","Right","C","D","S","A","Z","X","Q","W"],
# 80=>["C","D"]
# }
#==============================================================================
CHAIN_SWITCH_COMMAND = {
26=>["Up","Up",],
27=>["Up",]
}
# A função abaixo só serve se você estiver usando o sistema XAS.
CHAIN_ACTION_COMMAND = {
}
#Duração para colocar os comandos. (A duração é multiplicado pela quantidade
#de comandos) *40 = 1 sec
CHAIN_INPUT_DURATION = 10
#Som ao acertar.
CHAIN_RIGHT_SE = RPG::AudioFile.new("055-Right01", 100, 100)
#Som ao errar.
CHAIN_WRONG_SE = RPG::AudioFile.new("057-Wrong01", 100, 100)
#Switch que ativa o modo automático.
CHAIN_AUTOMATIC_MODE_SWITCH_ID = 25
end
#===============================================================================
# ■ Chain Commands
#===============================================================================
class Chain_Commands
include MOG_CHAIN_COMMANDS
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize(action_id,xas = false)
@xas = xas
@action_id = action_id
if @xas
$game_temp.chain_action_id = 0
$game_temp.chain_active = false
@chain_command = CHAIN_ACTION_COMMAND[@action_id]
else
@chain_command = CHAIN_SWITCH_COMMAND[@action_id]
end
@chain_command = ["?"] if @chain_command == nil
duration = [[CHAIN_INPUT_DURATION, 1].max, 9999].min
@timer_max = duration * @chain_command.size
@timer = @timer_max
@slide_time = [[40 / duration, 5].max, 40].min
@change_time = 0
if $game_switches[CHAIN_AUTOMATIC_MODE_SWITCH_ID]
@auto = true
else
@auto = false
end
@com = 0
end
#--------------------------------------------------------------------------
# ● Main
#--------------------------------------------------------------------------
def main
@spriteset = Spriteset_Map.new
create_chain_command
create_cusrsor
create_layout
create_meter
create_text
create_number
Graphics.transition
loop do
Graphics.update
Input.update
update
break if $scene != self
end
pre_dispose
Graphics.freeze
dispose
end
#--------------------------------------------------------------------------
# ● Create Cursor
#--------------------------------------------------------------------------
def create_cusrsor
@fy_time = 0
@fy = 0
@com_index = 0
@cursor = Sprite.new
@cursor.bitmap = RPG::Cache.windowskin("Cursor")
@cursor.z = 4
@cursor_space = ((@bitmap_cw + 5) * @chain_command.size) / 2
if @chain_command.size <= 20
@cursor.x = (640 / 2) - @cursor_space + @cursor_space * @com_index
else
@cursor.x = (640 / 2)
end
@cursor.y = 480 / 2
end
#--------------------------------------------------------------------------
# ● Create Chain Command
#--------------------------------------------------------------------------
def create_chain_command
@image = RPG::Cache.windowskin("Chain_Command")
width_max = ((@image.width / 13) + 5) * @chain_command.size
@bitmap = Bitmap.new(width_max,@image.height * 2)
@bitmap_cw = @image.width / 13
@bitmap_ch = @image.height
index = 0
for i in @chain_command
command_list_check(i)
bitmap_src_rect = Rect.new(@com * @bitmap_cw, 0, @bitmap_cw, @bitmap_ch)
if index == 0
@bitmap.blt(index * (@bitmap_cw + 5) , 0, @image, bitmap_src_rect)
else
@bitmap.blt(index * (@bitmap_cw + 5) , @bitmap_ch, @image, bitmap_src_rect)
end
index += 1
end
@sprite = Sprite.new
@sprite.bitmap = @bitmap
if @chain_command.size <= 20
@sprite.x = (640 / 2) - ((@bitmap_cw + 5) * @chain_command.size) / 2
@new_x = 0
else
@sprite.x = (640 / 2)
@new_x = @sprite.x
end
@sprite.y = (480 / 2) - @bitmap_ch - 15
@sprite.z = 3
@sprite.zoom_x = 1.5
@sprite.zoom_y = 1.5
end
#--------------------------------------------------------------------------
# * create_layout
#--------------------------------------------------------------------------
def create_layout
@back = Plane.new
@back.bitmap = RPG::Cache.windowskin("Chain_Layout")
@back.z = 0
@layout = Sprite.new
@layout.bitmap = RPG::Cache.windowskin("Chain_Timer_Layout")
@layout.z = 1
@layout.x = 180
@layout.y = 150
end
#--------------------------------------------------------------------------
# * create_meter
#--------------------------------------------------------------------------
def create_meter
@meter_flow = 0
@meter_image = RPG::Cache.windowskin("Chain_Timer_Meter")
@meter_bitmap = Bitmap.new(@meter_image.width,@meter_image.height)
@meter_range = @meter_image.width / 3
@meter_width = @meter_range * @timer / @timer_max
@meter_height = @meter_image.height
@meter_src_rect = Rect.new(@meter_range, 0, @meter_width, @meter_height)
@meter_bitmap.blt(0,0, @meter_image, @meter_src_rect)
@meter_sprite = Sprite.new
@meter_sprite.bitmap = @meter_bitmap
@meter_sprite.z = 2
@meter_sprite.x = 240
@meter_sprite.y = 159
update_flow
end
#--------------------------------------------------------------------------
# ● Create Text
#--------------------------------------------------------------------------
def create_text
@text = Sprite.new
@text.bitmap = Bitmap.new(200,32)
@text.z = 2
@text.bitmap.font.name = "Georgia"
@text.bitmap.font.size = 30
@text.bitmap.font.bold = true
@text.bitmap.font.italic = true
@text.x = 240
@text.y = 100
end
#--------------------------------------------------------------------------
# ● Create Number
#--------------------------------------------------------------------------
def create_number
@combo = 0
@number = Sprite.new
@number.bitmap = Bitmap.new(200,64)
@number.z = 2
@number.bitmap.font.name = "Arial"
@number.bitmap.font.size = 24
@number.bitmap.font.bold = true
@number.bitmap.font.color.set(0, 255, 255,200)
@number.bitmap.draw_text(0, 0, 200, 32, "Prét",1)
@number.x = 40
@number.y = 120
end
#--------------------------------------------------------------------------
# ● Pre Dispose
#--------------------------------------------------------------------------
def pre_dispose
for i in 0..25
@sprite.x += 5
@sprite.opacity -= 25
@layout.x -= 5
@meter_sprite.x -= 5
@layout.opacity -= 25
@meter_sprite.opacity -= 25
@text.x -= 2
if i < 10 and @text.zoom_x < 1.5
@text.zoom_x += 0.1
@text.zoom_y += 0.1
end
@cursor.visible = false
if @number.zoom_x > 1
@number.zoom_x -= 0.1
@number.zoom_y -= 0.1
end
Graphics.update
end
end
#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
def dispose
@spriteset.dispose
@bitmap.dispose
@sprite.bitmap.dispose
@sprite.dispose
@cursor.bitmap.dispose
@cursor.dispose
@meter_image.dispose
@meter_bitmap.dispose
@meter_sprite.bitmap.dispose
@meter_sprite.dispose
@layout.bitmap.dispose
@layout.dispose
@back.bitmap.dispose
@back.dispose
@text.bitmap.dispose
@text.dispose
@number.bitmap.dispose
@number.dispose
@image.dispose
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
update_command
update_cursor_slide
update_flow
update_change_time
end
#--------------------------------------------------------------------------
# ● Change_Time
#--------------------------------------------------------------------------
def update_change_time
return unless @auto
@change_time += 1
check_command(-1) if @change_time >= CHAIN_INPUT_DURATION - 1
end
#--------------------------------------------------------------------------
# ● Update Flow
#--------------------------------------------------------------------------
def update_flow
@timer -= 1
@meter_sprite.bitmap.clear
@meter_width = @meter_range * @timer / @timer_max
@meter_src_rect = Rect.new(@meter_flow, 0, @meter_width, @meter_height)
@meter_bitmap.blt(0,0, @meter_image, @meter_src_rect)
@meter_flow += 20
@meter_flow = 0 if @meter_flow >= @meter_image.width - @meter_range
wrong_command if @timer == 0 and @auto == false
end
#--------------------------------------------------------------------------
# ● Update Command
#--------------------------------------------------------------------------
def update_command
return if @auto
if Input.trigger?(Input::X)
check_command(0)
elsif Input.trigger?(Input::Z)
check_command(1)
elsif Input.trigger?(Input::Y)
check_command(2)
elsif Input.trigger?(Input::A)
check_command(3)
elsif Input.trigger?(Input::C)
check_command(4)
elsif Input.trigger?(Input::B)
check_command(5)
elsif Input.trigger?(Input::L)
check_command(6)
elsif Input.trigger?(Input::R)
check_command(7)
elsif Input.trigger?(Input::RIGHT)
check_command(8)
elsif Input.trigger?(Input::LEFT)
check_command(9)
elsif Input.trigger?(Input::DOWN)
check_command(10)
elsif Input.trigger?(Input::UP)
check_command(11)
end
end
#--------------------------------------------------------------------------
# ● command_list_check
#--------------------------------------------------------------------------
def command_list_check(command)
case command
when "A"
@com = 0
when "D"
@com = 1
when "S"
@com = 2
when "Z"
@com = 3
when "C"
@com = 4
when "X"
@com = 5
when "Q"
@com = 6
when "W"
@com = 7
when "Right"
@com = 8
when "Left"
@com = 9
when "Down"
@com = 10
when "Up"
@com = 11
else
@com = 12
end
end
#--------------------------------------------------------------------------
# ● check_command
#--------------------------------------------------------------------------
def check_command(com)
index = 0
if com != -1
right_input = false
for i in @chain_command
if index == @com_index
command_list_check(i)
right_input = true if @com == com
end
index += 1
end
else
command_list_check(@com_index)
@change_time = 0
right_input = true
end
if right_input
refresh_number
next_command
else
wrong_command
end
end
#--------------------------------------------------------------------------
# ● Next Command
#--------------------------------------------------------------------------
def next_command
@com_index += 1
$game_system.se_play(CHAIN_RIGHT_SE)
if @com_index == @chain_command.size
if @xas
$game_temp.chain_active = true
$game_temp.chain_action_id = @action_id
else
$game_switches[@action_id] = true
end
$scene = $sauvegardeQte
$game_map.need_refresh = true
end
refresh_command
refresh_text(0)
end
#--------------------------------------------------------------------------
# ● wrong_command
#--------------------------------------------------------------------------
def wrong_command
$game_system.se_play(CHAIN_WRONG_SE)
if @xas
$game_temp.chain_action_id = 0
$game_temp.chain_active = false
end
refresh_text(1)
$scene = $sauvegardeQte
end
#--------------------------------------------------------------------------
# ● Refresh Command
#--------------------------------------------------------------------------
def refresh_command
@sprite.bitmap.clear
index = 0
for i in @chain_command
command_list_check(i)
bitmap_src_rect = Rect.new(@com * @bitmap_cw, 0, @bitmap_cw, @bitmap_ch)
if @com_index == index
@bitmap.blt(index * (@bitmap_cw + 5) , 0, @image, bitmap_src_rect)
else
@bitmap.blt(index * (@bitmap_cw + 5) , @bitmap_ch, @image, bitmap_src_rect)
end
index += 1
end
if @chain_command.size > 20
@new_x = (640 / 2) - ((@bitmap_cw + 5) * @com_index)
else
@cursor.x = (640 / 2) - @cursor_space + ((@bitmap_cw + 5) * @com_index)
end
end
#--------------------------------------------------------------------------
# ● Refresh Text
#--------------------------------------------------------------------------
def refresh_text(type)
@text.bitmap.clear
if type == 0
@text.bitmap.font.color.set(255, 255, 255,255)
if @com_index == @chain_command.size
@text.bitmap.draw_text(0, 0, 200, 32, "Parfer!",1)
else
@text.bitmap.draw_text(0, 0, 200, 32, "Bien!",1)
end
else
@text.bitmap.font.color.set(255, 155, 55,255)
if @timer == 0
@text.bitmap.draw_text(0, 0, 200, 32, "plus de temps!",1)
else
@text.bitmap.draw_text(0, 0, 200, 32, "Raté!",1)
end
end
@text.x = 240
@text.opacity = 255
end
#--------------------------------------------------------------------------
# ● Refresh Number
#--------------------------------------------------------------------------
def refresh_number
@combo += 1
@number.bitmap.clear
@number.bitmap.font.size = 38
@number.bitmap.font.color.set(255, 255, 255,200)
@number.bitmap.draw_text(0, 0, 200, 32, @combo.to_s,1)
@number.opacity = 255
@number.zoom_x = 2
@number.zoom_y = 2
end
#--------------------------------------------------------------------------
# ● Update Cursor Slide
#--------------------------------------------------------------------------
def update_cursor_slide
@sprite.zoom_x -= 0.1 if @sprite.zoom_x > 1
@sprite.zoom_y -= 0.1 if @sprite.zoom_y > 1
@text.x -= 2 if @text.x > 220
@text.opacity -= 4 if @text.opacity > 0
@sprite.x -= @slide_time if @sprite.x > @new_x and @chain_command.size > 20
if @number.zoom_x > 1
@number.zoom_x -= 0.1
@number.zoom_y -= 0.1
end
if @fy_time > 15
@fy += 1
elsif @fy_time > 0
@fy -= 1
else
@fy = 0
@fy_time = 30
end
@fy_time -= 1
@cursor.oy = @fy
end
end
if $xrxs_xas != nil
#===============================================================================
# ■ Game_Character
#===============================================================================
class Game_Temp
attr_accessor :chain_active
attr_accessor :chain_action_id
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
alias chain_command_initialize initialize
def initialize
chain_command_initialize
@chain_active = false
@chain_action_id = 0
end
end
#===============================================================================
# ■ XAS_ACTION
#===============================================================================
module XAS_ACTION
#--------------------------------------------------------------------------
# ● Shoot Effect
#--------------------------------------------------------------------------
alias mog_chain_command_can_shoot can_shoot?
def can_shoot?(action_id,skill)
if self.battler.is_a?(Game_Actor)
if MOG_CHAIN_COMMANDS::CHAIN_ACTION_COMMAND.include?(action_id) and
$game_temp.chain_active == false
$scene = Chain_Commands.new(action_id,true)
return true
end
end
$game_temp.chain_active = false
mog_chain_command_can_shoot(action_id,skill)
end
end
#===============================================================================
# ■ Game_Player
#===============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ● update_force_action
#--------------------------------------------------------------------------
alias chain_command_update_force_action update_force_action
def update_force_action
chain_command_update_force_action
if $game_temp.chain_action_id != 0 and not
(self.knockbacking? or @actor.state_sleep or @actor.stop)
if seal_state?(0)
seal_text
return false
end
action_id = $game_temp.chain_action_id
self.shoot(action_id)
$game_temp.chain_action_id = 0
end
end
end
end
$mog_rgss_chain_commands = true |
le scripte que Widoo ma dit de crée !
1
2
3
4
5
6
7
8
9
10
11
12
| class LaunchQte
def initialize
$sauvegardeQte = $scene
$scene = Chain_Commands
end
end
|
donc dans le groupe ennemis j'ai programmé a -=50 de pv insert scripte
$scene = LaunchQte.new(26)
en deuxième page j'ai programme si l'interupteur 26 est active
j'ai mis inflige des dégât a tout ennemis dégât 666
donc on fait le combat et on arrive au moment des -=50 de pv
est sa fait sa
ps : en map la même erreur je crée un évent j'insert le scripte $scene = LaunchQte.new(27)
en condition si interrupteur 27 active
affichez message : yo
quand je clic sur le pnj cela me fait l'erreur du dessus (image)
|
j'écri mal, je fait des efforts et si tes pas content me parle pas |
Cortez -
posté le 10/06/2013 à 17:06:13 (527 messages postés)
- ![A publié une image dans sa galerie lors des 3 derniers mois](images/trophees/crayon.png) | | T'as essayé de ne pas mettre
$scene = LaunchQte.new(27)
mais juste
$scene = LaunchQte.new
|
Mack -
posté le 10/06/2013 à 17:11:50 (2314 messages postés)
- ![staff](interface/rangs/staff.png) | | Nan, mais essayer d'utiliser un script fait pour la map, dans un combat avec des évents c'est juste débile.
( Désoler de le dire hein, m'enfin bon ... C'est comme utiliser les clé de sa voiture et un trombone pour ouvrir sa maison ^^ )
J'vais essayer de voir c'que je peux y faire, j'promet rien, m'enfin bon ;D.
( Et une chose de plus à faire sur ma liste \o/ )
Sinon, ouais fais rien mettre entre les parenthèses.
M'enfin, y a de très forte chance pour que ça t'envoie sur la map, tu fais ton QTE, et tu reviens en combat. Pas super donc.
EDIT :
Bon, grosso modo j'ai refait le système ( qui marche en combat et hors combat ).
Il me manque juste l'activation, comment le QTE doit être appelé ? A chaque fois qu'un monstre meurt ? ( Et si on rate le QTE le mob revient à la vie avec peu de PV, sinon il disparait ? ).
En lançant un sort spécial ?
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Menma-Uzumaki -
posté le 11/06/2013 à 09:14:14 (20 messages postés)
| | Salut
Citation: Nan, mais essayer d'utiliser un script fait pour la map, dans un combat avec des évents c'est juste débile. |
Oui ma femme me le dit !
Citation: J'vais essayer de voir c'que je peux y faire, j'promet rien, m'enfin bon ;D. |
Je te remercie de donner toi aussi ton coup de main.
Citation: Sinon, ouais fais rien mettre entre les parenthèses. |
Je suis oblige de mètre les chiffre en parenthèse l’interrupteur qui s'activera si on réussi les touche et sa sérre aussi a dire les quel touches doit être préssé voir en haut du scripte
Citation: #=============================================
# CHAIN_COMMAND = { SWITCH_ID => [COMMAND] }
#
# SWITCH_ID = ID da switch (ou habilidade no sistema XAS)
# COMMANDS = Defina aqui a sequência de botões.
# (Para fazer a sequência use os comandos abaixo)
#
#"Down" ,"Up" ,"Left" ,"Right" ,"C" ,"D" ,"S" ,"A" ,"Z" ,"X" ,"Q","W"
#
#--------------------#
# A B C X Y Z L R # < Input
#--------------------#
# Z X C A S D Q W # < Keyboard/Joystick
#--------------------#
#
# Exenplo de utilização
#
# CHAIN_SWITCH_COMMAND = {
# 25=>["Down","D","S","Right"],
#59=>["Down","Up","Left","Right","C","D","S","A","Z","X","Q","W"],
# 80=>["C","D"]
# }
#=============================================
CHAIN_SWITCH_COMMAND = {
26=>["Up","Up",],
27=>["Up",]
}
# A função abaixo só serve se você estiver usando o sistema XAS.
CHAIN_ACTION_COMMAND = {
} |
Citation: Bon, grosso modo j'ai refait le système ( qui marche en combat et hors combat ).
Il me manque juste l'activation, comment le QTE doit être appelé ? |
appel le comme sa te chante du moment qui est pas complique a s'en souvenir
Citation: A chaque fois qu'un monstre meurt ? |
une fin de combat normal a la rmxp quoi xp,argent,objet
Citation: ( Et si on rate le QTE le mob revient à la vie avec peu de PV, sinon il disparait ? ). |
et si on rate le qte le mob recupere un peut de pv tout en continuent le combat et puits pour quoi pas en enlevé a tout l’équipe de heros un peut de PV
Citation: En lançant un sort spécial ? |
non vue que on a juste a programme dans le groupe de monstre, des que les PV du monstre son - ou = a (exemple : 30%) et la on insert la commande qui appel le QTE
|
j'écri mal, je fait des efforts et si tes pas content me parle pas |
Mack -
posté le 13/06/2013 à 11:13:30 (2314 messages postés)
- ![staff](interface/rangs/staff.png) | | Bon alors si tu débrouilles toi même pour l'appel voila le bouzin :
http://www.mediafire.com/?aazfr58715afssj
Tu copies les ressources, le script Interpreter 8, et tu regardes comment j'ai fait pour appeler les QTE.
|
( Je prend note de tout les commentaires, même si je n'y répond pas ) |
Menma-Uzumaki -
posté le 13/06/2013 à 11:38:29 (20 messages postés)
| | Je vais test
edit : Merci pour ce scripte il est géniale comme il le faut.
Juste un micro détaille les image son pas a la bonne place je te met un screen et l'image chain_layout n'apparais pas si non a pars sa merci cela est génial
![image](https://img4.hostingpics.net/pics/535901Sanstitre203.png)
|
j'écri mal, je fait des efforts et si tes pas content me parle pas | Index du forum > Entraide > [Rpg Maker Xp] Chain Commands v1.0
![up](interface/forum/up.jpg)
![](interface/titres/reprapide.jpg)
|
|
|