Ok alors plusieurs choses.
Tout d'abord, tu as mis toutes ces commandes dans la fonction
game_start, qui est exécutée lots du tout premier cycle de jeu uniquement (avant tout le reste, donc). En gros, à ce moment-là, tu te trouves avant le Big Bang, donc il est impossible que ton personnage principal soit
en train de parler. Dès lors la condition qui sera remplie sera
if (!player.Speaking) et le code effectivement exécuté sera celui qui se trouve dans cette condition.
Comme le suggère
Billbis, il faut donc passer par
repeatedly_execute_always : cela nous permettra de consulter le personnage à chaque cycle de jeu de façon à déterminer s'il parle ou non.
- Code:
-
function repeatedly_execute_always() {
if (player.Speaking) // Le personnage principal est en train de parler durant ce cycle
else // Le personnage principal n'est pas en train de parler durant ce cycle
}
Mais se pose de suite un problème (insoluble ?) : ce script te permet de déterminer quand le personnage est
déjà en train de parler et non pas quand il
s'apprête à parler. Cela signifie que quel que soit le code que tu mets dans la condition, celui-ci ne sera exécuté qu'une fois le discours entamé, et donc ses effets ne seront visibles (au mieux) que pendant le discours (à vrai dire ils ne seront visibles qu'après la première ligne prononcée par le joueur principal). Imaginons que tu places malgré tout tes instructions dans la condition et qu'à un moment dans le jeu, ton personnage principal prend la parole dans un dialogue pour prononcer deux lignes : la première ligne sera prononcée avant l'exécution du code (donc sera affichée avec un certain aspect) et la deuxième ligne après l'exécution de ce code (donc sera affichée avec un autre aspect). Le raisonnement est similaire pour la partie
else.
Je ne vois donc pas de bonne solution actuellement, mais j'y réfléchis
(Peut-être faudrait-il regarder du côté des
modules de remplacement du système de dialogue natif)
_________________
Ga is Ga
Vous pouvez consulter l'
aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !