- k-simodoMembre
- Nombre de messages : 4
Distinction : aucune
Date d'inscription : 24/01/2018
Forcer la fin du tour
Mer 24 Jan 2018 - 2:00
Bonjour,
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.
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,
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.
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,
- KingdommangasMembre
- Nombre de messages : 1403
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
Re: Forcer la fin du tour
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.
- k-simodoMembre
- Nombre de messages : 4
Distinction : aucune
Date d'inscription : 24/01/2018
Re: Forcer la fin du tour
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
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 :
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.
@Boubou : Merci Boubou pour tes recherches
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.
Re: Forcer la fin du tour
Jeu 25 Jan 2018 - 8:52
Pourquoi ne pas recréer la méthode en enlevant la victoire?
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.
- 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.
- k-simodoMembre
- Nombre de messages : 4
Distinction : aucune
Date d'inscription : 24/01/2018
Re: Forcer la fin du tour
Ven 26 Jan 2018 - 1:27
Re,
et merci de la réactivité
@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
P.S.2 : Je crois que je viens de comprendre comment on appelle des scripts au passage. C'est fou ! Lvl up !!!
et merci de la réactivité
@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:
P.S.2 : Je crois que je viens de comprendre comment on appelle des scripts au passage. C'est fou ! Lvl up !!!
- ZarisMembre
- Nombre de messages : 64
Age : 30
Localisation : dans le gard :)
Distinction : aucune
Date d'inscription : 04/10/2009
Re: Forcer la fin du tour
Ven 26 Jan 2018 - 12:54
arf dommage que tu sois sur VX ACE, ce script m'interesse grandement
- k-simodoMembre
- Nombre de messages : 4
Distinction : aucune
Date d'inscription : 24/01/2018
Re: Forcer la fin du tour
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
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
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum