Pocket Plane Group

Miscellany, Inc. => Infinity Engine Modding Q&A => Topic started by: cmorgan on July 07, 2006, 03:01:13 PM

Title: Forcing a pause within dialogue
Post by: cmorgan on July 07, 2006, 03:01:13 PM
OK, ran into something that I have no idea how to approach.

Code: [Select]
I_C_T2 ~_SILKE~ 4 SharSilke
== ~_SHARTJ~ IF~InParty("sharteel") !Dead("sharteel") !StateCheck("sharteel",CD_STATE_NOTVALID)~ THEN ~I don't care a fig for what they did to you, actress, but I am always ready to bash men's heads.~
END

interjects into _SILKE.DLG

Code: [Select]
IF ~~ THEN BEGIN 4 // from: 3.0 2.1
  SAY #75030 /* ~Well then, I assume that Garrick has explained what your duties are.  You must simply dispose of the ruffians when they come to threaten me.  They shouldn't be too hard to deal with, but I would advise you to strike fast.  Whatever you do: don't speak with them.  One of them is a mage whose mystic words can sway even the wisest of men.~ */
  IF ~~ THEN DO ~SetGlobal("SilkeJob","GLOBAL",1)
CreateCreature("_MERSIL",[3834.1755],0)
CreateCreature("_MERSIL2",[3793.1723],0)
CreateCreature("_MERSIL3",[3876.1774],0)
ClearAllActions()
StartCutSceneMode()
StartCutScene("_ILKECUT")
~ EXIT
END

Shar-Teel finishes her interjection, but it appears only for about two seconds in the text window, and the cut scene with the three "thugs" (Faltis, Glayde, Tessilan) starts immediately. This steps on the dialogue, and unless the player acts quickly the cutscene blocks the player form ever terminating the conversation.

The interjection works fine, and since it is a rare bug report, I suspect that having the Pause All Dialogue component of Tweaks fixes this, but not everyone uses that, so:

How would I create either a single-dialogue pause for that interjection, or delay the cutscene start?


Title: Re: Forcing a pause within dialogue
Post by: jcompton on July 07, 2006, 04:48:47 PM
This might be one of those "Don't Do This" type of things. You could patch the cutscene script. You could enqueue Shar-Teel to say that as a stringhead using EXTEND and/or ADD_TRANS_ACTION instead of a dialogue line, which might work better with the cutscene being hot on its tail.

Is this a place where you may actually want I_C_T instead of 2?
Title: Re: Forcing a pause within dialogue
Post by: cmorgan on July 07, 2006, 05:14:37 PM
I might be inclined to the 1st option, by moving Shar-Teel's interjection (if I can get author permission).

If not, then the fix I understand better is to place it as a DisplayStringHead call. Not elegant, but better than trying to patch the cutscene.

Although...
I guess I could R_T patch the state to

IF ~~ THEN BEGIN 4 // from: 3.0 2.1
  SAY #75030 /* ~Well then, I assume that Garrick has explained what your duties are.  You must simply dispose of the ruffians when they come to threaten me.  They shouldn't be too hard to deal with, but I would advise you to strike fast.  Whatever you do: don't speak with them.  One of them is a mage whose mystic words can sway even the wisest of men.~ */
  IF ~~ THEN DO ~SetGlobal("SilkeJob","GLOBAL",1) SetGlobal("X#SilkeSharInt","GLOBAL",1)~ EXIT
END

and then add to the area script
IF
Global("SilkeJob","GLOBAL",1)
Global("X#SilkeSharInt","GLOBAL",1)
THEN
RESPONSE #100
SetGlobal("X#SilkeSharInt","GLOBAL",2)
CreateCreature("_MERSIL",[3834.1755],0)
CreateCreature("_MERSIL2",[3793.1723],0)
CreateCreature("_MERSIL3",[3876.1774],0)
ClearAllActions()
StartCutSceneMode()
StartCutScene("_ILKECUT")
END

EDIT: Or, of course, I could read your post carefully, think, and then go duh...
changing this to I_T_C might fix the problem. Perhaps I should go test this out before starting to take everything apart ;D