A ver, intento explicarlo, no es tan simple como poner un script, necesitas hacer una ventana, sus correspondientes scripts, graficos, etc. Te comento como esta hecho en nuestro juego
En primer lugar haces una ventana, en esa ventana tienes que poner una etiqueta de texto para los elementos que quieras sacar, en nuestro caso hay tres, el nombre del actor que habla, el texto que dice y la imagen, que esta montada tambien como una etiqueta de texto, aunque lo podrías hacer tambien con una entity.
Además, en esa ventana, tambien ponemos un textarea, al text area le puedes dar un grafico en la propiedad TiledImage que es la que usa para montar la caja.
A estos objetos de la ventana los he llamado asi en el codigo de ejemplo:
ImgActor: etiqueta de texto para la imagen del actor.
TxtArea: TextArea para el recuadro.
Txt: Texto del dialogo.
TxtName: Texto con el nombre del actor.
Luego creamos un script y en el un metodo del tipo Habla(texto,actor,duracion)
method Habla(Texto, Actor, Duracion)
{
var ImgActor = this.GetControl("Actor");
var TxtArea = this.GetControl("TextArea");
var Txt = this.GetControl("Text");
var TxtName = this.GetControl("ActorName");
var Time=1;
switch (Actor)
{
case "actor1":
ImgActor.SetImage("imagen_actor1.jpg");
break;
case "actor2":
ImgActor.SetImage("imagen_actor2.jpg");
break;
case "actor3":
ImgActor.SetImage("imagen_actor3.jpg");
break;
default:
ImgActor.SetImage("imagen_por_defecto.jpg");
break;
}
TxtName.Text = Actor ;
Txt.Text = Text;
Txt.HeightToFit();
if (Txt.Height > 50)
{
TxtArea.Height = Txt.Height + 80;
}
else
{
TxtArea.Height = 160;
}
this.Visible = true;
Game.Interactive = true;
Sleep(Duracion);
this.Visible = false;
}
Como ves lo que se hace en este script es poner la imagen en funcion del actor, poner su nombre y el texto que dice, ademas cambiamos el tamaño del area de texto, que es el recuadro en funcion del tamaño del texto, eso hace que la ventana crezca en funcion de lo que escribes.
Luego la llamas tal que asi
Ventana.Hablar("Lo que quieres decir", "Quein lo dice", tiempo);
Previamente has tenido que cargar la ventana, en el game.script, por ejemplo, porque si te fijas, cuando tu dices Ventana.Habla() la ventana ya esta cargada y lo que hace es rellenar los textos, poner las imagenes, mostrarse, esperar y ocultarse. Este seria el código del game.script
Ventana = Game.LoadWindow("ventana_de_dialogo.window");
Ventana.Visible = false;
Esta sería la base, aunque luego la cosa se complica un poco mas, ya que por ejemplo, nosotros añadimos soporte para interrumpir el dialogo, el tiempo de espera es relativo en funciónd e la velocidad de los subtitulos que el jugador indica en la pantalla de opciones, el texto que se muestra es recogido del fichero de strings para la traducción, el audio se busca tambien y se reproduce en función de las opciones, etc. pero la base la tienes aquí.
SI tienes dudas pregunta.