1
Technické fórum / Dialogy
« on: December 04, 2008, 11:24:05 PM »
Zdravíčko,
v prvé řadě chci poděkovat tvůrcům WME a lidem zde pomáhajícím ostatním. Bohužel jsem se ve vývoji ale zaseknul na začátku u dialogů.
Mám scénu, ve které není actor, ale je tam pouze entita Strážce. Kliknu na Strážce a jemu se nad hlavou objeví pozdrav. Objeví se dialogové okno (response box), ve kterém mám otázky od actora. Ale
1) Když kliknu na otázku, Strážce odpoví textem nad jeho hlavou a hned za ním má mluvit actor, jehož text se nikde neobjeví, pak opět mluví Strážce a Strážcův text se normálně nad ním objeví. Nějak blbě jsem se v tom pohrabal a actor nemluví (resp. mluví pouze tehdy, když tam dám actor.Active = true; , ale to je zase vidět). Ve skriptu iniciujícím scénu (scene_init.script) mám
Script entity Strážce je následující:
Bohužel jsem se hrabal ve všem možném a už nevím, kde je chyba :-(( Response box jsem vrátil na defaultní a pořád stejný problém - actor nemluví.
2) Rád bych udělal to, aby mi v Response boxu mluvila entita Strážce a actor (který na scéně není) - aby se jejich větičky střídaly a když by domluvily, objevilo by se mi tam dialogové okno s otázkama. Pak bych zase kliknul na otázku a v tomto samém okně by opět probíhal rozhovor.
Nějak jsem se v tom zaseknul a prosím tedy o pomoc...
v prvé řadě chci poděkovat tvůrcům WME a lidem zde pomáhajícím ostatním. Bohužel jsem se ve vývoji ale zaseknul na začátku u dialogů.
Mám scénu, ve které není actor, ale je tam pouze entita Strážce. Kliknu na Strážce a jemu se nad hlavou objeví pozdrav. Objeví se dialogové okno (response box), ve kterém mám otázky od actora. Ale
1) Když kliknu na otázku, Strážce odpoví textem nad jeho hlavou a hned za ním má mluvit actor, jehož text se nikde neobjeví, pak opět mluví Strážce a Strážcův text se normálně nad ním objeví. Nějak blbě jsem se v tom pohrabal a actor nemluví (resp. mluví pouze tehdy, když tam dám actor.Active = true; , ale to je zase vidět). Ve skriptu iniciujícím scénu (scene_init.script) mám
Code: [Select]
#include "scripts\base.inc"
var Strazce = Scene.LoadEntity("entities\Strazce\Strazce.entity");
Strazce.Active = true;
global EmptyActor;
actor.Active = false;
global StateSchody;
Script entity Strážce je následující:
Code: [Select]
#include "scripts\base.inc"
function StrazceDialogue()
{
var Responses;
var Selected;
var Loop = true;
while(Loop)
{
// prepare the sentences
Responses[0] = "Kdo jsi?";
Responses[1] = "Jak jsem se tady ocitnul?";
Responses[2] = "Co mi můžeš říct o tom, kdo jsem?";
Responses[3] = "Jsem připravený ať už půjde o cokoli.";
Responses[4] = "Myslím, že ještě nejsem na tuto cestu připravený.";
// fill the response box
Game.AddResponseOnceGame(0, Responses[0]);
Game.AddResponse(1, Responses[1]);
Selected = Game.GetResponse();
if(Selected==0)
{
this.Talk("Test 1");
actor.Talk("Actor mluvi 1a");
this.Talk("Strazce mluvi 1");
actor.Talk("Actor mluvi 1b");
}
else if(Selected==1)
{
this.Talk("Test 2");
actor.Talk("Actor mluvi 2a");
this.Talk("Strazce mluvi 2");
actor.Talk("Actor mluvi 2b");
}
}
}
on "LeftClick"
{
this.Talk("Vítej, už jsem tě očekával!");
StrazceDialogue();
}
Bohužel jsem se hrabal ve všem možném a už nevím, kde je chyba :-(( Response box jsem vrátil na defaultní a pořád stejný problém - actor nemluví.
2) Rád bych udělal to, aby mi v Response boxu mluvila entita Strážce a actor (který na scéně není) - aby se jejich větičky střídaly a když by domluvily, objevilo by se mi tam dialogové okno s otázkama. Pak bych zase kliknul na otázku a v tomto samém okně by opět probíhal rozhovor.
Nějak jsem se v tom zaseknul a prosím tedy o pomoc...