Translations of this page:

Preguntas y respuestas

P: ¿Cómo configuro la primera escena del juego?

R: Busca la línea en data/scripts/game.script que comienza con Game.ChangeScene. Cambia esta línea para mostrar la escena correcta.

P: Mi escena funciona en Project Manager pero no una vez compilado

R: Probablemente sea un problema de rutas. Recuerda que debes usar rutas relativas en los paquetes. Si en la demo incluída en WME tienes un paquete llamado data, no incluyas data en la ruta de los archivos. Por ejemplo, usa la instrucción

  Game.ChangeScene("scenes\room\room.scene");


y no

  Game.ChangeScene("data\scenes\room\room.scene");


Otros problemas pueden ocurrir al mover escenas a carpetas anidadas. Tienes que comprobar el archivo de escena que has movido y, además de que la ruta sea correcta, asegurarte de que la variable $EDITOR_PROJECT_ROOT_DIR$ apunte realmente al directorio raíz.

También es importante saber que todos tus efectos, música, etc. deben estar presentes en la carpeta del proyecto o no se incluirán en los paquetes compilados.

P: ¿Cómo desactivo el inventario en una escena?

R: Normalmente es suficiente con configurar Game.InventoryVisible = false; pero la demo de WME tiene un inventario móvil, entonces necesitaremos hacer algo más.

Ve a la siguiente línea en data/scripts/game_daemon.script:

  if(Game.Interactive && Game.MouseY < 45 &&! Game.ResponsesVisible &&! WinMenu.Visible) 
    Game.InventoryVisible = true;

y cambialo por:

  if(Game.Interactive && Game.MouseY < 45 &&! Game.ResponsesVisible &&! WinMenu.Visible && InventoryActive) 
    Game.InventoryVisible = true;

Añade la línea global InventoryActive en data/scripts/base.inc; y para finalizar inserta al principio de data/scripts/game.script la línea InventoryActive = true;
Desde ahora puedes activar/desactivar fácilmente el inventario con la variable InventoryActive en tus archivos scene_init.script.

P: ¿Cómo se ajustan las líneas de string.tab?

R: Sólo pon | en el sitio que quieras dividir el texto.
Ejemplo:
TXT000001[TAB]Hola, me gustaría hablar contigo sobre | algunacosarealmenteextrañaeincomprensible.

P: ¿Cómo funcionan los scripts con el texto de string.tab?

R: Si necesitas asignar un texto a una variable, tienes que llamar a la función Game.ExpandString().
Por ejemplo:

var txt = Game.ExpandString("/TXT000001/"); 
Game.Msg(txt);

R: WME tiene la capacidad de reproducir automáticamente archivos de sonido asociados a los códigos de string.tab. Aunque hay algunos detalles que debes evitar.

Primero, debes decirle a WME dónde están esos archivos (por defecto, se buscan en la carpeta speech).
Esto se hace de la siguiente manera:

Game.AddSpeechDir("Ciudad");

Tus archivos de sonido deben nombrarse igual que los códigos del archivo string.tab, por ejemplo, si tienes la siguiente línea:

CIUDAD0010001 Hola, ¡Me llamo Armitage! 

tu archivo de sonido se llamará ciudad0010001.ogg

Lo último a tener en cuenta es que, si usas las propiedades avanzadas de Talk, debes indicar null como segundo parámetro. Por ejemplo, una línea compleja podría ser:

actor.Talk("/CIUDAD0010001/", null, 0, "", this.talign);

(donde this.talign es una variable que almacena el alineamiento del texto)

P: ¿Cómo se escriben caracteres especiales en las cadenas de texto de WME?

R: para escribir dobles comillas " usa los siguientes caracteres ~"
para escribir una nueva línea usa los siguientes caracteres ~n

actor.Talk("Hola, persona ~"rara~".~n¿Cómo te va?");

P: ¿Cómo funcionan los Arrays como clase miembro de un objeto propio?

R: Debido a la limitación de un nivel de la notación con puntos, necesitas un truco con una variable temporal. Aquí tienes un ejemplo:

file Arrayclass.script?

#include "scripts\base.inc" 
 
this.Field = new Array(10); 
 
method SetNumber(position,number) 
{ 
  var tmp = this.Field; 
  tmp[position] = number; 
  this.Field = tmp; 
}



 
es/faq.txt · Last modified: 2010/03/17 14:11 by saboteur
Recent changes RSS feed Creative Commons License Driven by DokuWiki