Bon, visiblement, ça n'est pas possible d'agir sur les objets visibles d'une Room, depuis un dialogue.
La solution, contourner le problème en faisant autrement et en évitant le dialogue
C'est nul, mais je n'ai rien trouvé de mieux.
Le problème du dialogue, c'est que même dans une suites d'actions, celui-ci sera exécuté à la fin de toutes les actions. Je m'explique:
On veut faire une sorte de suite d'animations avec des objets qui apparaissent et disparaissent et l'on veut aussi introduire un dialogue au milieu avec choix:
Allez savoir pourquoi, même si l'on écrit dans l'ordre:
O1.visible = true;
O2.visible =false;
dDialogue1.Start();
O3.visible = true;
etc...
D'une manière totalement anarchique, le dialgue sera exécuté APRÈS l'action O3.visible = true;
Ce qui visuellement n'aura aucun sens vu que vous vouliez naivement donner l'illusion que le dialogue permettait de faire apparaitre le l'objet O3...
Si quelqu'un connait la solution pour permettre suite à un dialogue de faire apparaitre un objet dans une pièce ... Qu'il la donne
Sinon, pendant que j'y suis, j'ai quelques questions :
Est-ce que ce code fonctionne ? En gros, faire en sorte qu'une animation fonctionne uniquement si le view du personnage == 3
Ça pourrait servir pour les déguisements ou bien pour une arme. le coup de bâton fonctionne si le personnage porte un bâton... etc
- Code:
-
If (cEgo.View == 3)
{ blablablablabla}
Je me demandais aussi, est-ce qu'il est possible de changer de Speech style, pendant le jeu ?
Notamment dans function room_AfterFadeIn() d'une room ...
Un truc du genre :
Game.speechstyle = SierreWithBackground ;
Et après modifier en
Game.speechstyle = Lucasarts;
C'est possible ?
Et changer l’apparence d'un objet dans l'inventaire ?
On change de monde, on change de style graphique , les objets de inventaires sont visuellement modifiés. Car sinon, il y a bien la solution de créer une copie de l'objet avec un autre visuel et d'en supprimer un, pour le remplacer par l'autre... Mais bon.
Et enfin, dernière question , Une sorte de room qui serait une carte, une fois rangée dans sa poche, il faudrait que le personne se retrouve au même endroit qu'il était en activant l'objet.
J'avais déjà utilisé quelque chose d'un peu similaire avec un téléphone dans mon ancien jeu.
Est-ce que le code comme ça fonctionne :
Ajouter une fonction :
- Code:
-
cEgo.ChangeRoom(cEgo.PreviousRoom,previousx, previousy);
Sur la carte dans le bouton "retour"
Et l'objet "carte" dans function Interact ()
Mettre un truc du genre :
- Code:
-
previousx = cEgo.x;
previousy = cEgo.y;
cEgo.ChangeRoomAutoPosition(N de la room carte);