Partagez
Aller en bas
avatar
k-simodo
Membre

Nombre de messages : 4
Distinction : aucune
Date d'inscription : 24/01/2018

RPG Maker VX Ace Forcer la fin du tour

le Mer 24 Jan 2018 - 2:00
Bonjour,  Very Happy

J'ai installé pour mon jeu les trois scripts suivants de Hime, afin de créer des batailles en chaîne :
-End phase triggers ;
-Custom page condition (pour faire marcher le premier) ;
-Ennemy reinforcements.

Le principe est simple : "End phase triggers" permet d'appeler des évènements après la mort des adversaires. Ensuite, "Ennemy reinforcements" permet d'appeler une nouvelle troupe d'ennemis, à la place de la première, ce qui permet de lancer autant de combats que possibles.

Le script fonctionne très bien : pour chaque évènement lancé, il est possible d'appeler un nouveau groupe d'ennemi. Un seul bug persiste : une fois qu'un nouveau groupe d'ennemi arrive, les acteurs qui n'ont pas encore attaqués continuent de réaliser leurs actions sur les nouveaux ennemis. En gros,  il n'y a pas de fin du tour qui s'exécute entre les deux groupes de monstres. C'est plutôt avantageux pour le joueur, surtout s'il doit affronter un bon gros boss après, mais bon ce n'est pas le but non plus.  Neutral

Je précise que j'utilise le "Ace Battle Engine" de Yanfly et d'autres plugins à lui. Je ne sais pas si ça peut causer une incompatibilité.

Existe-il un moyen de sauter le tour des personnages ou de forcer le passage au tour suivant, via un script, une commande ou n'importe quoi d'autre ?

Merci d'avance,
avatar
Kingdommangas
Membre

Nombre de messages : 1165
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
https://www.youtube.com/channel/UCqGFuGrzm7jim1o5QJ4lKvg

RPG Maker VX Ace Re: Forcer la fin du tour

le Mer 24 Jan 2018 - 21:13
Mon ordi est en panne alors je ne peu vérifier ce que je vais dire mais il me semble que sur les action lié aux combats il y a forcer l'action mais aussi terminer l'action je crois.
avatar
k-simodo
Membre

Nombre de messages : 4
Distinction : aucune
Date d'inscription : 24/01/2018

RPG Maker VX Ace Re: Forcer la fin du tour

le Jeu 25 Jan 2018 - 0:36
@Kingdommangas : Comme le dit Boubou, il est impossible de faire ça en évènements. Il existe bien une touche "Forcer l'action", mais elle réalise une action "en plus". Quant à la seconde, c'est "Terminer le combat". Merci quand même en tout cas.

@Boubou : Merci Boubou pour tes recherches Smile
Je ne connais rien aux scripts malheureusement. C'est pourquoi je me tourne vers vous. Je suis comme un garagiste qui n'aurait pour réparer sa voiture qu'une spatule et une cuillère en bois.

Note : perso j'ai trouvé ça dans le script "Ace battle engine", mais j'ignore quel peut en être l'utilité ou pas :

script:


 #--------------------------------------------------------------------------
 # overwrite method: turn_end
 #--------------------------------------------------------------------------
 def turn_end
   all_battle_members.each do |battler|
     battler.on_turn_end
     status_redraw_target(battler)
     @log_window.display_auto_affected_status(battler)
     @log_window.wait_and_clear
   end
   update_party_cooldowns if $imported["YEA-CommandParty"]
   BattleManager.turn_end
   process_event
   start_party_command_selection
   return if end_battle_conditions?
   return unless YEA::BATTLE::SKIP_PARTY_COMMAND
   if BattleManager.input_start
     @party_command_window.deactivate
     command_fight
   else
     @party_command_window.deactivate
     turn_start
   end
 end

et plus loin :

 #--------------------------------------------------------------------------
 # overwrite method: process_action_end
 #--------------------------------------------------------------------------
 def process_action_end
   @subject.on_action_end
   status_redraw_target(@subject)
   @log_window.display_auto_affected_status(@subject)
   @log_window.wait_and_clear
   @log_window.display_current_state(@subject)
   @log_window.wait_and_clear
   BattleManager.judge_win_loss
 end

Lien du script :https://github.com/Archeia/YEARepo/blob/master/Ace_Battle_Engine.rb


Peut-être aurais-je du commencer par là, mais il me semble que le script "Ace battle engine" change un certain nombre de méthodes. Mais comme j'y comprends trop rien... :/

Peut-être que ça peut amener des solutions... Peut-être que ça complique encore le chmilblick, je l'ignore.

En tout cas merci à vous.
avatar
Dany
Membre

Nombre de messages : 764
Age : 22
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

RPG Maker VX Ace Re: Forcer la fin du tour

le Jeu 25 Jan 2018 - 8:52
Pourquoi ne pas recréer la méthode en enlevant la victoire?
Code:
def process_next_battle
  @subject.on_action_end
  status_redraw_target(@subject)
  @log_window.display_auto_affected_status(@subject)
  @log_window.wait_and_clear
  @log_window.display_current_state(@subject)
  @log_window.wait_and_clear
 end

Et de l'appeler dans appel de script en combat.
Bon je peux pas te donner plus d'info vue que je suis pas chez moi.
avatar
k-simodo
Membre

Nombre de messages : 4
Distinction : aucune
Date d'inscription : 24/01/2018

RPG Maker VX Ace Re: Forcer la fin du tour

le Ven 26 Jan 2018 - 1:27
Re,

et merci de la réactivité Wink

@dany : J'ai mis du temps à capter l'idée :/. Mais je crois que j'ai compris au final...
L'idée a l'air toute bête effectivement : supprimer seulement le processus qui peut mettre fin au combat et l'appeler manuellement par script.

Je te dit si j'arrive à en faire quelque chose.

@boubou : je viens de tester ta démo. Là aussi ça a pas l'air trop compliqué à mettre en place. Bon ! Je m'en vais tester tout ça sur mon bout de jeu et je vous tiens au jus.

P.S: Tu prends quoi au petit déjeuner ? o-O

spoil:


https://www.noelshack.com/2018-04-5-1516926203-wtf.png


P.S.2 : Je crois que je viens de comprendre comment on appelle des scripts au passage. C'est fou ! Lvl up !!!
avatar
Zaris
Membre

Nombre de messages : 58
Age : 24
Localisation : dans le gard :)
Distinction : aucune
Date d'inscription : 04/10/2009

RPG Maker VX Ace Re: Forcer la fin du tour

le Ven 26 Jan 2018 - 12:54
arf dommage que tu sois sur VX ACE, ce script m'interesse grandement
avatar
k-simodo
Membre

Nombre de messages : 4
Distinction : aucune
Date d'inscription : 24/01/2018

RPG Maker VX Ace Re: Forcer la fin du tour

le Mer 31 Jan 2018 - 7:43
Re,

Et désolé pour l'attente...

Donc pour info, le truc de dany ne fonctionne pas pour moi.

J'ai testé le script de Boubou sur mon jeu, sans succès une fois de plus. Du coup, vu que ça marche sur la démo, je me suis dit qu'il devait y avoir une incompatibilité avec un des scripts que je possède déjà. Pour voir lequel, j'ai simplement ajouter les scripts de base de mon jeu à ta démo, un par un, pour voir lequel déconnait. Au final, j'ai réussi à ajouter tous les scripts obligés du jeu et le système de combat infini fonctionne toujours. J'ai juste supprimé RME.

Vu que ça fonctionne, je vais pas me casser la tête et je vais sans doute passer d'un projet à l'autre en passant par des c/c ou revoir le projet initial, s'il peut refonctionner (de toute façon je n'avais pas touché ou presque à la base de donnée pour l'instant). De plus, il y avait un bug avec la vitesse initiale du héros dont j'ignorais la source et dont je pourrais me débarrasser de cette manière.

J'ai juste une question pour @Boubou. Quand tu dis que tu as "patché" le bug, tu veux dire que tu as touché au 'BattleManager' ou à un autre script du jeu ?

Merci encore !

K-simodo
Contenu sponsorisé

RPG Maker VX Ace Re: Forcer la fin du tour

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum