Jump to content


Photo

Avoid stacking rest banters


No replies to this topic

#1 berelinde

berelinde

    The Typo Queen

  • Gibberlings
  • 8594 posts
  • Location:New Jersey, USA

Posted 09 January 2010 - 10:06 AM

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

Must. Write. Faster.

cmorgan: "None of us get old around here, just more proficient at doing more stuff with less braincells!"

berelinde's mods
TolkienAcrossTheWater website
TolkienAcrossTheWater Forum



Reply to this topic



  


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users