Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / News: Quoi de neuf sur Oniromancie (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

356 connectés actuellement

29375202 visiteurs
depuis l'ouverture

4569 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Planète Glutko

Le Temple de Valor

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [Rpg Maker Xp] Chain Commands v1.0


Menma-Uzumaki - posté le 07/06/2013 à 06:59:54 (20 messages postés)

❤ 0

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 (523 messages postés)

❤ 0

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 :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 #--------------------------------------------------------------------------
 # ● 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)

❤ 0

Salut je viens de test ce la ne marche pas d’ailleurs la barre du temps ce taille d'un coup vers la droit XD et que même si elle est partie y a temps infini XD 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 (523 messages postés)

❤ 0

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

Portion de code : Tout sélectionner

1
# ● wrong_command

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)

❤ 0

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)

❤ 0

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 (1522 messages postés)

❤ 0

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 || TowerClimb cé bien || Rang Master sur TGM3.


Widoo - posté le 08/06/2013 à 11:02:30 (86 messages postés)

❤ 0

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 (523 messages postés)

❤ 0

@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)

❤ 0

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)

❤ 0

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)

❤ 0

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)

❤ 0

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)

❤ 0

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 :

image

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)

❤ 0

donc le scripte Chain_Commands

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
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 !

Portion de code : Tout sélectionner

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

image

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 (523 messages postés)

❤ 0

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 (2288 messages postés) - staff

❤ 0

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)

❤ 0

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 XD 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 (2288 messages postés) - staff

❤ 0

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)

❤ 0

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

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

repondre up

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

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers