Jump to content

Avoid stacking rest banters


Recommended Posts

With more and more people playing with mod NPCs, it's possible to have several rest banters trigger on the same night. If there are morning talks involved, as well, this can be a bit of a mess.

 

This is crossposted from TolkienAcrossTheWater.

 

Back when we were doing Romantic Encounters, we ran into a problem where a dream sequence was interfering with Laran's Saradush encounter... or maybe it was the other way around. Anyway, the solution was to simulate rest. This served two purposes. First, it prevented dreams fom spoiling the mood after significant nighttime talks, and second, it prevented rest banters from stacking. I don't remember who wrote the particular cutscene in Laran this is based on. I might have, but I doubt it. I wasn't terribly comfortable working with cutcenes, at that point, so it was probably Kulyok.

 

I'd advise judicious use of all of this. Sometimes, the window of opportunity to get certain dreams is kind of small, and it isn't unreasonable to think that a character might have a rough night's sleep, even after an evening of torrid passion. Also, some NPCs have rest banters every night, so if you're overusing these scripts, it might break somebody else's mod, or at least cause a few hiccups.

 

To cue any of these in game, you'd use your preferred method of starting a cutcene. I usually use

 

IF ~~ THEN BEGIN StateLabel
SAY @75
IF ~~ THEN DO ~ClearAllActions() StartCutSceneMode() StartCutScene("MyCut")~ EXIT
END

You can easily modify any of these to start a morning conversation by setting a global before the ClearAllActions(), replacing the EndCutSceneMode() with StartDialogueNoSet(Player1), and using the global you set as a trigger for your morning after talk.

 

b! is my prefix, though, so get your own. :)

 

Use this one in combination with AreaType(CITY) if the party is staying at an inn.

 

// b!rest1.baf - INN - cutscene "rest" that runs after a night talk, preventing dreams or other rest banters from kicking in when the usual RestParty() events aren't wanted

IF 
True() 
THEN 
RESPONSE #100 
	CutSceneId(Player1) 
	Rest() 
	ActionOverride(Player2,Rest()) 
	ActionOverride(Player3,Rest()) 
	ActionOverride(Player4,Rest()) 
	ActionOverride(Player5,Rest()) 
	ActionOverride(Player6,Rest()) 
	StartMovie("RESTINN") 
	MoveViewObject(Player1,INSTANT)
	Wait(1) 
	EndCutSceneMode() 
END

 

Use this one in combination with AreaType(OUTDOOR) if the player is camping out.

// b!rest2.baf - CAMP - cutscene "rest" that runs after a night talk, preventing dreams or other rest banters from kicking in when the usual RestParty() events aren't wanted

IF 
True() 
THEN 
RESPONSE #100 
	CutSceneId(Player1) 
	Rest() 
	ActionOverride(Player2,Rest()) 
	ActionOverride(Player3,Rest()) 
	ActionOverride(Player4,Rest()) 
	ActionOverride(Player5,Rest()) 
	ActionOverride(Player6,Rest()) 
	StartMovie("RESTCAMP") 
	MoveViewObject(Player1,INSTANT)
	Wait(1) 
	EndCutSceneMode() 
END

 

Use this one in combination with AreaType(DUNGEON) !AreaCheck("AR4500") for dungeon rest banters.

 

// b!rest3.baf - DUNGEON - cutscene "rest" that runs after a night talk, preventing dreams or other rest banters from kicking in when the usual RestParty() events aren't wanted

IF 
True() 
THEN 
RESPONSE #100 
	CutSceneId(Player1) 
	Rest() 
	ActionOverride(Player2,Rest()) 
	ActionOverride(Player3,Rest()) 
	ActionOverride(Player4,Rest()) 
	ActionOverride(Player5,Rest()) 
	ActionOverride(Player6,Rest()) 
	StartMovie("RESTDUNG") 
	MoveViewObject(Player1,INSTANT)
	Wait(1) 
	EndCutSceneMode() 
END

 

And finally, this one works in the Pocket Plane. I'm advising caution here because I'm not sure if the Pocket Plane challenges are cued after certain game events, whether they're cued by physically traveling to the Pocket Plane, or whether they're cued by resting once you're there. It would be a real bummer to have to stay an extra night just because a challenge was missed. I *think* the challenges are cued by game events, and that the party is returned to the Pocket Plane to face the challenges after travel is initiated, but I would check, just to be safe.

 

// b!rest4.baf - POCKET PLANE - cutscene "rest" that runs after a night talk, preventing dreams or other rest banters from kicking in when the usual RestParty() events aren't wanted - be careful with this one! 

IF 
True() 
THEN 
RESPONSE #100 
	CutSceneId(Player1) 
	Rest() 
	ActionOverride(Player2,Rest()) 
	ActionOverride(Player3,Rest()) 
	ActionOverride(Player4,Rest()) 
	ActionOverride(Player5,Rest()) 
	ActionOverride(Player6,Rest()) 
	StartMovie("POCKETZZ") 
	MoveViewObject(Player1,INSTANT)
	Wait(1) 
	EndCutSceneMode() 
END

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...