Ahoj, můj další problem je v dialogu. Musím to tu rozepsat aby jste aspon trochu pochopily. Mám lokaci v chaloupce kde je babička, tu mám na dvě entity, jedna je zamrzlá a druhá je normální. Budu mluvit hlavně k normalní. Normální babička má script který sem uvedu, je poměrně hodně dlouhý tak vymažu co nejvíce dialogů. Je tam plno otázek IF. A abych je mohl dobře plnit a ptát se, použil jsem proměny VAR, který jsem si vypsal do scriptu místo global, kterých se bojím mít v budoucnu plno. VAR pokud vím platí poze pro danou scenu a pro ten jeden script. Vše funguje dobře do doby, kdy muj actor vyleze z chaloupky, vrátí se do ní a po znovu rozhovoru se mi vytratí (možná falsne) variables "rozhovor3". Jak je to možné?
SCRIPT:
#include "scripts\base.inc"
//promeny v rozhovoru
var rozhovor1;
var rozhovor2;
var rozhovor3;
var dopisy_po_rozhovoru;
on "rozbitaproteza"
{
actor.Talk("Tahle protéza je rozbitá.");
}
on "kovovaproteza"
{
actor.GoTo(737, 477);
actor.TurnTo(DI_LEFT);
Game.Interactive = false;
actor.PlayAnim("actors\molly\ll\take1.sprite");
actor.PlayAnim("actors\molly\ll\take2.sprite");
Game.DropItem("kovovaproteza");
babicky_zuby.Active = true;
rozhovor1.Active = true;
Game.Interactive = true;
}
on "dopisy"
{
actor.GoTo(737, 477);
actor.TurnTo(DI_LEFT);
Game.Interactive = false;
if(rozhovor2.Active) //babička s protezou
{
if(dopisy_po_rozhovoru.Active)
{
actor.PlayAnim("actors\molly\ll\take1.sprite");
actor.PlayAnim("actors\molly\ll\take2.sprite");
Game.DropItem("dopisy");
actor.Talk("Babičko, tyhle dopisy jste měla ve schránce. Poslali je ze sirotčince.");
actor.GoTo(760, 477);
actor.TurnTo(DI_RIGHT);
actor.Talk("Nějak se mi ta pohádka o vlkovi nezdá, ale kam se potom podělo všechno jídlo?");
rozhovor3.Active = true;
}
else
{
actor.Talk("Napřed si s babičkou promluvím.");
}
}
else//babička ještě nemá protezu
{
actor.Talk("Ještě ne.");
}
Game.Interactive = true;
}
on "leftclick"
{
actor.GoTo(737, 477);
actor.TurnTo(DI_LEFT);
Game.Interactive = false;
if(babicky_zuby.Active)
{
if(rozhovor1.Active) //prvni kloudný rozhovor s babičkou
{
rozhovor2.Active = true;
rozhovor1.Active = false;
dopisy_po_rozhovoru.Active = true;
this.Talk("Kulivočko, jsi to opravdu ty, chlapče?");
this.Talk("Dobře. Já zatím budu přemýšlet tady u krbu.");
}
else
{
if(rozhovor3.Active) /////////////////Otevřený DIALOG/////////////////////////////////////////////////////////////////////
{
this.Talk("Chlapče, co bys rád?");
//zakladni
var resp0;
var resp1;
var resp2;
var resp3;
var resp4;
var resp5;
var jednicka_a;
var jednicka_b;
var dvojka_b;
var Responses;
var Selected;
var Loop = true;
while(Loop)
{
// výběr pro hráče
Responses[0] = "Kde tady najdu nějaké jídlo, babičko?";
Responses[1] = "Můžu se vás zeptat na dědečka?";
Responses[2] = "Babičko, mohl bych tady zůstat napořád?";
Responses[3] = "Jak je to dlouho, co spadla ta lavina venku?";
Responses[4] = "Babičko, nepamatujete si kombinaci trezoru?";
Responses[5] = "Už musím jít.";
// Zbarveni a nabidka
if(resp0.Active)
{
Game.AddResponse(0, Responses[0], null, null, null, "fonts\pouzite_responses.font");
}
else
{
Game.AddResponse(0, Responses[0]);
}
if(resp1.Active)
{
Game.AddResponse(1, Responses[1], null, null, null, "fonts\pouzite_responses.font");
}
else
{
Game.AddResponse(1, Responses[1]);
}
if(resp2.Active)
{
Game.AddResponse(2, Responses[2], null, null, null, "fonts\pouzite_responses.font");
}
else
{
Game.AddResponse(2, Responses[2]);
}
if(resp3.Active)
{
Game.AddResponse(3, Responses[3], null, null, null, "fonts\pouzite_responses.font");
}
else
{
Game.AddResponse(3, Responses[3]);
}
if(jednicka_b.Active)
{
if(resp4.Active)
{
Game.AddResponse(4, Responses[4], null, null, null, "fonts\pouzite_responses.font");
}
else
{
Game.AddResponse(4, Responses[4]);
}
}
if(resp5.Active)
{
Game.AddResponse(5, Responses[5], null, null, null, "fonts\pouzite_responses.font");
}
else
{
Game.AddResponse(5, Responses[5]);
}
// let the player choose one //DULEŽIT