Translations of this page:

This is an old revision of the document!
—-

FAQ

Q: Ako nastavím prvú scénu v hre?

A: Nájdite riadok v data/scripts/game.script ktorý začína s Game.ChangeScene. Zmeňte tento riadok tak, aby sa zhodo val so správnou scénou.

Q: Moja scéna funguje v ProjectMan, ale nie v zkompilovánom formáte?

A: Je to najviac pravdepodobne, že je to problém s cestou k súboru. Pamätaj, že mali by ste používať relatívnu cestu k balíku (package). Teda ak máš napríklad vo WME demo
balík s názvom data, vynecháš data v ceste. Takže v deme máš Game.ChangeScene("scenes\room\room.scene"); a nie
Game.ChangeScene("data\scenes\room\room.scene");
Ďalší problém môže nastať vtedy, keď sa presúvajú scény do alebo z včlenených priečinkoch. Musíte skontrolovať súbor so scénou pre presunutú scénu a okrem toho zo správnych ciest, dvakrát pozor na to, že či sa $EDITOR_PROJECT_ROOT_DIR$ skutočne vymieňa za koreňový priečinok.

Taktiež je dôležite vedieť, že všetok gfx, hudba atď. musia byť vo vašom projektovom priečinku inak sa to neskompiluje do balíkov.

Q: Ako zakázať inventár v scéne?

A: Normálne by bolo vhodné nastaviť Game.InventoryVisible = false; ale WME demo má posúvací inventár, takže my budeme potrebovať trocha viac.

Choďte do data/scripts/game_daemon.script súbora na riadok, ktorý číta

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

a zmeňte ho na

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

Pridajte do data/scripts/base.inc riadok global InventoryActive; a nakoniec v data/scripts/game.script vložte na začiatok riadka InventoryActive = true;
Od teraz môžete jednoducho povoliť / zakázať inventár nastavením globálnej premennej InventoryActive vo vašich scene_init.script súboroch.

Q: Ako rozdeliť riadok v string tab?

A: Jednoducho vložte | na miesto, kde chcete mať riadok rozdelený.
Napríklad:
TXT000001[TAB]Hi, I would like to speak with you about | somereallystrangeandincomprehensible thing.

Q: Ako pracovať s riadkami zo string tab v skriptoch?

A: Ak potrebuješ priradiť tvoj lokalizovaný string na nejakú premennú, musíš zavolať Game.ExpandString() funkciu.
Tak napríklad:

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

Q: How to work with automated speech files?

A: WME has a great capability to play automatically voice files associated with your string.tab key. There are a few catches
you need to avoid though.

First you must tell WME where those speech files are located (by default it looks into speech directory).
this can be done through for example:

Game.AddSpeechDir("Town");

Your sound files should be named according to your keys in the string.tab file so for example if your line there reads

TOWN0010001 Hi, my name is Armitage! 

your sound file will be named town0010001.ogg

Last thing which can happen to you is that if you use any extended properties of Talk, you must simply supply null as the second parameter. So for example more complex line can read:

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

(where this.talign is a variable storing the alignment of your text)

Q: Ako zapísať špeciálne znaky vo WME stringov?

A:
pre " použi ~"
pre nový riadok použi ~n

actor.Talk("Ahoj ~"neznáma~" osoba.~nAko sa máte?");


Výstup bude takýto:
Ahoj "neznáma" osoba.
Ako sa máte?

Q: How to work with Arrays as a member class of a custom object?

A:

Thanks to dot notation limitation to one level, you have to trick this through temporary variable. Here's the example:

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; 
}


 
cs/faq.1234982348.txt.gz · Last modified: 2009/02/18 19:39 by Yuraj
Recent changes RSS feed Creative Commons License Driven by DokuWiki