Please login or register.

Login with username, password and session length
Advanced search  

News:

IRC channel - server: waelisch.de  channel: #wme (read more)

Author Topic: Přechody scén  (Read 5201 times)

0 Members and 1 Guest are viewing this topic.

Jack of all Trades

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 5
    • View Profile
Přechody scén
« on: June 06, 2008, 11:52:03 AM »

Zdravim všechny,

     mám takový problém. V jedné scéně provedu všechny potřebné rozhovory a splnim podmínku pro vstup do další scény. Když se ale potom vrátim zpět do první scény, rozhovory probíhají úplně od začátku.

Používám jen levé tlačítko na prohlížení a právé na rozhovory a předměty.

Potřebuji tedy zjistit, jak docílit toho, aby když se vrátim do určité scény, ve které už jsem byl, program sám rozpoznal, že už jsem tam byl. Snad jsem se vyjádřil jasně. Ale když to teď po sobě čtu tak nevim...
Logged

metamorphium

  • Global Moderator
  • Addicted to WME forum
  • *
  • Karma: 12
  • Offline Offline
  • Gender: Male
  • Posts: 1511
  • Vampires!
    • View Profile
    • CBE  software s.r.o.
Re: Přechody scén
« Reply #1 on: June 06, 2008, 02:19:06 PM »

kdyz prohlednes scene_init.script uvidis, ze se tam nastavuje globalni promenna. Napriklad:

StateSklep.Visited = true;

v tom scriptu kde to chces otestovat:

global StateSklep;

if (StateSklep.Visited)
{
  // byl jsem tam
}
else
{
  // jeste jsem tam nebyl
}
Logged
J.U.L.I.A. Enhanced Edition, Vampires!, J.U.L.I.A., J.U.L.I.A. Untold, Ghost in the Sheet

Jack of all Trades

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 5
    • View Profile
Re: Přechody scén
« Reply #2 on: June 10, 2008, 10:24:15 AM »

Tak jinak... Ve scéně mám Region Entity Kytka. Při RightCliku

actor.Talk("Brej den!");
Kytka.Talk("Zdravíčko");

atd. atd., poté entitu schovám, jelikož už je nežádoucí, aby se projevovala:

   var EntKytka = Scene.GetNode("Kytka");
   EntKytka.Active = false;

Jestliže ale opustim scénu a vrátim se zpátky, probíhá celý rozhovor znovu.
Dá se nějak docílit toho, aby Kytka už nebyla nikdy aktivní?



Logged

Mnemonic

  • WME developer
  • Administrator
  • Addicted to WME forum
  • *
  • Karma: 41
  • Offline Offline
  • Gender: Male
  • Posts: 5683
    • View Profile
    • Dead:Code Site
Re: Přechody scén
« Reply #3 on: June 10, 2008, 10:31:34 AM »

Kdyz ve SceneEditu zaskrtnes "Remember node states", tak si scena bude pamatovat, ktere entity maji byt od posledne aktivni/neaktivni.
Ale jinak pres promennou to jde samozrejme taky. V nejake promenne si zapamatujes stav, a ve scene_init.script (ktery se spousti vzdy po vstupu do mistnosti) si na zaklade tech promennych zastavis entity jak potrebujes.
Logged
Yes, I do have a twitter account
Please don't send me technical questions in private messages, use the forum. ::wave

Jack of all Trades

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 5
    • View Profile
Re: Přechody scén
« Reply #4 on: June 10, 2008, 10:58:34 AM »

Moc děkuju, tohle bylo ONO!!!
Logged

Iranicus

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Gender: Male
  • Posts: 45
  • .. something is wrong ..
    • View Profile
Re: Přechody scén
« Reply #5 on: June 10, 2008, 02:04:03 PM »

Potřebuji tedy zjistit, jak docílit toho, aby když se vrátim do určité scény, ve které už jsem byl, program sám rozpoznal, že už jsem tam byl. Snad jsem se vyjádřil jasně. Ale když to teď po sobě čtu tak nevim...

Snaď len taká menšia poznámka ako docieliť tohto efektu. Vo scene_init.script každej scény je globálna premenná, ktorá určuje, resp. nastavuje stav scény. Zoberme si scénu z WME Demo, nazavnú Room.

scene_init.script
Code: [Select]
if(StateRoom.Visited==false)
{
  Game.Interactive = false;

  actor.GoTo(461, 685);
  actor.TurnTo(DI_DOWN);
  actor.Talk("Welcome to the Wintermute Engine demo!");
  actor.Talk("Click the hint icons to learn more.");

  StateRoom.Visited = true;
  Game.Interactive = true;
}

Po spustení skriptu sa nastaví globálna premenná StateRoom.Visited na hodnotu true, takže keď hráč opustí scénu, a vráti sa sem spat, kod, ktorý je ukrytý v podmienke if(StateRoom.Visited==false) sa už nemože vykonať, pretože logický výraz sa vyhodnotí za neplatný.
« Last Edit: June 10, 2008, 02:05:58 PM by Inaricus »
Logged
Where is the will, there is the way.

Jack of all Trades

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 5
    • View Profile
Re: Přechody scén
« Reply #6 on: June 10, 2008, 02:21:30 PM »

Přesně takhle jsem to zkusil, ale mě šlo hlavně o ten script u entity. Ten se pořád opakoval, a vlastně správně, protože RightClick je RightClick a trvá, i když se vrátim z jiné scény. Mnemonicova rada byla k nezaplacení. A Vám (Inaricus a Metamorphium) taky díky!
Logged
 

Page created in 0.119 seconds with 24 queries.