Objekty v cutscénách


Dabus Uživatelský avatar
Registrován: 24.9.2005 22:54
Bydliště: Sigil

Příspěvek Napsal: 7.3.2006 17:43

Objekty v cutscénách

Vytvářím další cutscénu pro Renovation a narazil jsem na problém.
V CutsceneId() je uveden jeden mnou vytvořený Ohnivý obr, který má stejný název cre i Death Variable - RZgiantf.

Takže jsem do skriptu dal CutSceneId("RZgiantf"). Ovšem ve hře se pouze spustí CutsceneMode(), dál se už nic neděje.

Zkusil jsem místo RZgiantf Player1 a vše proběhlo skoro bez problému (je tam akce ActionOverride("Ilmadia",DestroySelf()) - samozřejmě se Ilmadia nezničí).

Zkusil jsem taky psát "RZGIANTF", ale bez výsledku. Jiné cutscény v Renovation takové problémy nedělají.

Nevíte v čem by mohl být problém?

Celý skript vypadá takto
Kód: Vybrat vše, Rozšířit náhled
IF
   True()
THEN
   RESPONSE #100
      CutSceneId("RZgiantf")
      MultiPlayerSync()
      ClearAllActions()
      MultiPlayerSync()
      HideGUI()
      SmallWait(8)
      MoveViewObject(Myself,VERY_FAST)
      SmallWait(8)
      FaceObject("Ilmadia")
      SmallWait(5)
      FloatMessage(Myself,@4041)
      Wait(2)
      AttackOneRound("Ilmadia")
      SmallWait(1)
      ActionOverride("Ilmadia",PlayDead(150))
      ActionOverride("Ilmadia",DropInventory())
      ActionOverride("Ilmadia",DestroySelf())
      Wait(1)
      UnhideGUI()
      MultiPlayerSync()
      EndCutSceneMode()
END
Kód: Vybrat vše, Rozšířit náhled
IF
  Detect([SPAMMER])
THEN
    RESPONSE #100
             ReallyForceSpell(WIZARD_POWER_WORD_KILL,LastSeenBy(Myself))
END
offline  • 
Zobrazit autorovy stránkyICQ
 •  Zobrazit profil uživatele

Sigilan Uživatelský avatar
Registrován: 26.9.2005 7:56
Bydliště: Praha

Příspěvek Napsal: 7.3.2006 18:33

Raz: hmm, možná by to mohlo být tím, že je už nastavená sprite_is_dead pro rzgiantf. Ale to je jen taková střela od boku, kdybych musel na něco přijít ;-)

Osobně preferuju u jednoduchých scén, kde je pouze jedno "vlákno" činností, za cutsceneid dávat player1.

Mě spíš zaráží, jak píšeš, že se neprovede ActionOverride("Ilmadia",DestroySelf()).

Jinak taky viz. akce Kill("Ilmandia")...
Infinity forever! - Baldur's Gate II add-on CZ
Fórum plné RPG - RPG fórum


Obrázek
offline  • 
Zobrazit autorovy stránkyICQ
 •  Zobrazit profil uživatele

Dabus Uživatelský avatar
Registrován: 24.9.2005 22:54
Bydliště: Sigil

Příspěvek Napsal: 7.3.2006 18:43

sprite_is_dead ještě nastavena není a obřík je živý a zdravý.

Ono i když tam hodím Player1, tak stejně tam musím dát ActionOverride("RZgiantf",FloatMessage(Myself,@4041)), což se samozřejmě neprovede.

Kill můžu zkusit, ale pokud se neprovedou ty předchozí akce, bude to vypadat dost divně.

Edit: tak nefunguje ani Kill.
Kód: Vybrat vše, Rozšířit náhled
IF
  Detect([SPAMMER])
THEN
    RESPONSE #100
             ReallyForceSpell(WIZARD_POWER_WORD_KILL,LastSeenBy(Myself))
END
offline  • 
Zobrazit autorovy stránkyICQ
 •  Zobrazit profil uživatele

Sigilan Uživatelský avatar
Registrován: 26.9.2005 7:56
Bydliště: Praha

Příspěvek Napsal: 7.3.2006 18:54

Raz: a FloatMessage("RZgiantf",xyz) nepojede? Zvláštnosti iwd prostředí moc neznám... Nicméně opět mi přijde divné, proč ani tohle ActionOverride s msg nejede... to jsou imho standardní vzory, které by měly fungovat...
Infinity forever! - Baldur's Gate II add-on CZ
Fórum plné RPG - RPG fórum


Obrázek
offline  • 
Zobrazit autorovy stránkyICQ
 •  Zobrazit profil uživatele

Dabus Uživatelský avatar
Registrován: 24.9.2005 22:54
Bydliště: Sigil

Příspěvek Napsal: 7.3.2006 18:58

Vlasák píše:Raz: a FloatMessage("RZgiantf",xyz) nepojede?

Ne, taky nejede.
Jiné cutscény jdou naprosto v pohodě a teď mi to dělá tohle.
Kód: Vybrat vše, Rozšířit náhled
IF
  Detect([SPAMMER])
THEN
    RESPONSE #100
             ReallyForceSpell(WIZARD_POWER_WORD_KILL,LastSeenBy(Myself))
END
offline  • 
Zobrazit autorovy stránkyICQ
 •  Zobrazit profil uživatele

Sigilan Uživatelský avatar
Registrován: 26.9.2005 7:56
Bydliště: Praha

Příspěvek Napsal: 8.3.2006 9:43

Razfallow: Co tu cutscénu spouští? Script lokace, potvory, akce dialogu?

Ten obr je dělaný od čistého stolu, nebo upravený stávající?

Zkus udělat něco jiného...

Udělej se testovací potvoru (jakoukoliv; jde jen o prostředníka pro zavedení scriptu) a jí dej script, v němž bude následující logika

Kód: Vybrat vše, Rozšířit náhled
IF
Global("TestCS"."GLOBAL",1)
THEN
RESPONSE#100
SetGlobal("TestCS"."GLOBAL",0)
FloatMessage("RZgiantf",xyz)
END


IF
Global("TestCS"."GLOBAL",2)
THEN
RESPONSE#100
SetGlobal("TestCS"."GLOBAL",0)
ActionOverride("RZgiantf",FloatMessage(myself,xyz))
END

IF
Global("TestCS"."GLOBAL",3)
THEN
RESPONSE#100
SetGlobal("TestCS"."GLOBAL",0)
FloatMessage("Ilmadia",xyz)
END

IF
Global("TestCS"."GLOBAL",4)
THEN
RESPONSE#100
SetGlobal("TestCS"."GLOBAL",0)
ActionOverride("Ilmadia",FloatMessage(myself,xyz))
END

IF
Global("TestCS"."GLOBAL",5)
THEN
RESPONSE#100
SetGlobal("TestCS"."GLOBAL",0)
ActionOverride("RZgiantf",DestroySelf())
END

IF
Global("TestCS"."GLOBAL",6)
THEN
RESPONSE#100
SetGlobal("TestCS"."GLOBAL",0)
ActionOverride("Ilmadia",DestroySelf())
END

...


Potvoru pak přivolej do hry v situaci, kdy by se normálně pouštěla cutscéna. Nastavováním hodnot proměnných konzolí pak zkoušej, jak se které akce projeví mimo scénu. Imho by měly chodit všechny. Pokud např. u Ilmadie žádný způsobem nepůjde vyvolat float, tak je chyba někde v ní.
Infinity forever! - Baldur's Gate II add-on CZ
Fórum plné RPG - RPG fórum


Obrázek
offline  • 
Zobrazit autorovy stránkyICQ
 •  Zobrazit profil uživatele

Dabus Uživatelský avatar
Registrován: 24.9.2005 22:54
Bydliště: Sigil

Příspěvek Napsal: 8.3.2006 10:15

Spouštění jsem zkoušel přes dialog i skript toho obra.
Obr je upravená verze existujícího.

Dík, vyzkouším to.
Kód: Vybrat vše, Rozšířit náhled
IF
  Detect([SPAMMER])
THEN
    RESPONSE #100
             ReallyForceSpell(WIZARD_POWER_WORD_KILL,LastSeenBy(Myself))
END
offline  • 
Zobrazit autorovy stránkyICQ
 •  Zobrazit profil uživatele

Dabus Uživatelský avatar
Registrován: 24.9.2005 22:54
Bydliště: Sigil

Příspěvek Napsal: 8.3.2006 19:28

Vyzkoušeno.
Když jsem to zkoušel v Dornově hlubině v oblasti ohnivých obrů, nefungovalo to.
Upravil jsem tedy skript pro oblast východního přístavu, aby se tam objevila testovací postava, ten Ohnivý obr a Ilmadia.
Tentokrát proběhl test bez problémů, text nad obrem i Ilmadií se zobrazil v obou případech a oba taky okamžitě po nastavení patřičné proměnné zmizeli.
Kód: Vybrat vše, Rozšířit náhled
IF
  Detect([SPAMMER])
THEN
    RESPONSE #100
             ReallyForceSpell(WIZARD_POWER_WORD_KILL,LastSeenBy(Myself))
END
offline  • 
Zobrazit autorovy stránkyICQ
 •  Zobrazit profil uživatele

Sigilan Uživatelský avatar
Registrován: 26.9.2005 7:56
Bydliště: Praha

Příspěvek Napsal: 8.3.2006 23:33

Raz: hmm, dobré pozorování... každopádně to zní docela kuriózně ;-)

Ilmadia je do lokace hlubiny přidaná scriptem, nebo je přímo v are? Pokud to druhé, doporučoval bych projít nastavení Ilmadie v are, protože IWD dost často přepisuje nejrůznější nastavení potvory právě fieldy z are souboru.
Zkus to, co je s Ilmadií v are, projít a porovnat s tou její .cre.
Tím by se možná vyřešila Ilmadia - buď tam najdeš tu botu, co dělá chybu, nebo bych doporučil zkusit jí z are odstranit, přiřadit nastavení, které potenciálně bere z .are přímo postavě a přidat ji tam na její místo scriptem. To by pak mohlo chodit...

Tím se možná vyřeší Imadia a nějaké její interference s .are. Ale počítám, že svého obra tam přidáváš scriptem, tudíž žádné are, a tak je u něj docela divné, proč se to v hlubině nechytá. Nemáš tam několik exemplářů toho obra, je tam pouze ten jeden?

Nakonec se taky podívej do area scriptu - i když ten by žádné problémy dělat neměl, cut-scéna scripty dočasně "umlčuje". Ale co kdyby tam nějaké zvláštnost přece jen byla...
Infinity forever! - Baldur's Gate II add-on CZ
Fórum plné RPG - RPG fórum


Obrázek
offline  • 
Zobrazit autorovy stránkyICQ
 •  Zobrazit profil uživatele

Dabus Uživatelský avatar
Registrován: 24.9.2005 22:54
Bydliště: Sigil

Příspěvek Napsal: 9.3.2006 1:04

Ilmadia byla původní, mým obrem jsem přepsal jednoho existujícího Actora v are.

U Actorů v are jsou pouze souřadnice, natočení, čas výskytu, dialog a skripty. Nevím, zda by něco z toho mělo nějak vadit.
V Renu je i cutscéna, kde využívám původní, nijak neměněnou postavu, a probíhá to v pořádku.

Vyřešil jsem to tak, jak píšeš, zrušil jsem původní Ilmadii a obra, kterého jsem chtěl změnit a vytvořil jsem oba skriptem. Samozřejmě, že to tentokrát fungovalo bezchybně.
Kód: Vybrat vše, Rozšířit náhled
IF
  Detect([SPAMMER])
THEN
    RESPONSE #100
             ReallyForceSpell(WIZARD_POWER_WORD_KILL,LastSeenBy(Myself))
END
offline  • 
Zobrazit autorovy stránkyICQ
 •  Zobrazit profil uživatele

Sigilan Uživatelský avatar
Registrován: 26.9.2005 7:56
Bydliště: Praha

Příspěvek Napsal: 9.3.2006 8:42

Raz: Obával jsem se, jestli v .are není taky možnost přepsat death variable. Protože mám pocit, že právě v IWD jsem se potkal s něčím typu 'secondary death variable'.
Pak to asi bylo přímo v .cre a nemělo by to roli pro tohle. I když možná ano - jestli jsou ty potvory uložené do are (teď nemyslím ve smyslu přidání do lokace, ale pro účely ukládání hry při změně stavu té potvory), tj. je v .are uložená celá jejich .cre struktura, mohla by se tam ta sekundární DV nějak projevit. Nevím... I když v téhle logice by se tam pak přidala zřejmě i cre struktura té scriptem přivolané, protože když by se nějak měl měnit stav těch potvor, tak se to stane tak, jako tak - i v případě, že je potvora přidaná přes are, tak scriptem...
No, to je jedno... hlavně, že to už jde ;-)
Infinity forever! - Baldur's Gate II add-on CZ
Fórum plné RPG - RPG fórum


Obrázek
offline  • 
Zobrazit autorovy stránkyICQ
 •  Zobrazit profil uživatele

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník