Jump to content

Companion/NPC Dialogue mod help


Jumonji

Recommended Posts

I've hit a problem with Rhianna hanging while talking with other NPCs. I suspect it was always there but I've just become very aware of it during my rebuild testing. Here's the problem:

 

1) I want to leave "skip fallout behavior" turned off on all non-combat AI packages, for realism.

2) Rhianna initiates a dialogue with another NPC.

3) On random occasions, they stop talking and just stare at each other, but never break away. This doesn't always happen, sometimes they finish normally and go about their business.

4) From the console, when this does happen they are both in package 6, procedure 4 (dialogue) and Rhianna.istalking is always true, while npc.istalking is false. But no one is saying anything!

 

Any ideas here? I'm considering just checking for this situation and forcing a reset on Rhianna's package, but I really don't want a brute force solution. What's going on?

 

Oh - more info: Rhianna is now in a custom race but with an imperial voice, a custom class and custom combat style. She's pretty much custom all over.

 

-Jumonji

Link to comment
Share on other sites

Great news about the rebuild Jumonji

I can't wait :)

 

 

As for your problem I have noticed that if two NPCs are in dialog and if at the same time you (as the player) are doing something more importand (like brwsing your inventory tab for example) some not so importand things stops.

For example in my new plugin, the sound events stops if you open a chest or a book or something like that...

I had to type the usual "enable/disable" (sound source-X Reference) command in my quest script to fix that.

I believe that your problem has something to do with sound as well unter similar events.

I can't be sure thought.

Link to comment
Share on other sites

Thanks, Priest.

 

Well, enable/disable is better than nothing. I just wish I knew how to prevent this from happening, instead of patching it after it happens.

 

-Jumonji

Are they still playng the idles while durring the silence?

When they do freeze up, does it ever resolve itself, or does it just hang there?

Do you have custom dialogues, and have ensured that they have a finishing response?

Have you tried moving close to initate a reaction, or move far enough away to retrigger a follow?

Have you tried using "evp" (evaluatepackage) instead of enable/disable to free up the lock?

 

If evp works, but you cannot find the cause, you could probably just use some scripting which detects if the companion is in conversation, and if they're the one talking for too long, it just initiates the evp, automatically kicking them out. They may still end up having a conversation afterward, but this might lead to one that finishes, and may allow for a bit of character as the companion stares uncomfortably at who they're talking to for a brief period of time before saying something else. You may even want it like this.

Link to comment
Share on other sites

Are they still playng the idles while durring the silence?

When they do freeze up, does it ever resolve itself, or does it just hang there?

Do you have custom dialogues, and have ensured that they have a finishing response?

Have you tried moving close to initate a reaction, or move far enough away to retrigger a follow?

Have you tried using "evp" (evaluatepackage) instead of enable/disable to free up the lock?

 

If evp works, but you cannot find the cause, you could probably just use some scripting which detects if the companion is in conversation, and if they're the one talking for too long, it just initiates the evp, automatically kicking them out. They may still end up having a conversation afterward, but this might lead to one that finishes, and may allow for a bit of character as the companion stares uncomfortably at who they're talking to for a brief period of time before saying something else. You may even want it like this.

 

No idles.

Once they freeze, they're frozen.

No custom dialogues - nothing custom whatsoever at this point in my rebuild.. Rhianna is a custom race and class, but with stock imperial voice.

Evp can work I think, but still messy. I would really prefer that it didn't happen instead of having to fix it. :(

 

Thanks for any ideas...

 

-Jumonji

Link to comment
Share on other sites

No idles.

Once they freeze, they're frozen.

No custom dialogues - nothing custom whatsoever at this point in my rebuild.. Rhianna is a custom race and class, but with stock imperial voice.

Evp can work I think, but still messy. I would really prefer that it didn't happen instead of having to fix it. :(

 

Thanks for any ideas...

 

-Jumonji

See if it happens only after a certain topic or topics. The lack of idles would hint to something wrong with the transitions or the scripting involved. It could even be a response to a topic which isn't getting linked due to lack of a race, disposition or faction connection. Might even want to try switching to a different voice set to see if it clears up. NPCs tend to say the same things to the same people. If it clears up with one voice set, you might be able to figure out if it's a dialogue which isn't being said. Might also want to look at what other mods you might have installed. Since this mod is being loaded last, it might be doing something which wasn't happening when other mods were being loaded after.

Link to comment
Share on other sites

I haven't figured out what's causing it, but this seems to fix it:

 

	if fTalkTimer > 0
	set fTalkTimer to fTalkTimer - fSecondsPassed
endif
if GetDisabled
	Enable
endif
if GetCurrentAIPackage == 6 && GetCurrentAIProcedure == 4
	if fTalkTimer <= 0.0
							if a1jDebug
								Message "Talking too much reset"
							endif
		set fTalkTimer to 10.0
		disable
		set rNPC to GetPackageTarget
		rNPC.EvaluatePackage
	endif
else
	set fTalkTimer to 10.0
endif

Link to comment
Share on other sites

I haven't figured out what's causing it, but this seems to fix it:

 

	if fTalkTimer > 0
	set fTalkTimer to fTalkTimer - fSecondsPassed
endif
if GetDisabled
	Enable
endif
if GetCurrentAIPackage == 6 && GetCurrentAIProcedure == 4
	if fTalkTimer <= 0.0
							if a1jDebug
								Message "Talking too much reset"
							endif
		set fTalkTimer to 10.0
		disable
		set rNPC to GetPackageTarget
		rNPC.EvaluatePackage
	endif
else
	set fTalkTimer to 10.0
endif

Try doing it with a evp on both the NPC and the companion, instead of a disable, it might make things look a bit smoother.

 

You may even try just forcing the companion to say a dialogue and then initiates a package (addscriptpackage) with "skip fallout behavior" checked, then have a evp triggered on that companion 10 seconds later. If that works, you could set it up so that if the freeze happens, the companion says "good bye" and starts a wander package which doesn't allow conversation. When the script, or the game has the companion evaluate their package, that wander package will be cleared, and they will be conversable again. It's a bit more complicated, but should end up looking a bit more natural.

Link to comment
Share on other sites

Try doing it with a evp on both the NPC and the companion, instead of a disable, it might make things look a bit smoother.

 

You may even try just forcing the companion to say a dialogue and then initiates a package (addscriptpackage) with "skip fallout behavior" checked, then have a evp triggered on that companion 10 seconds later. If that works, you could set it up so that if the freeze happens, the companion says "good bye" and starts a wander package which doesn't allow conversation. When the script, or the game has the companion evaluate their package, that wander package will be cleared, and they will be conversable again. It's a bit more complicated, but should end up looking a bit more natural.

 

The trouble with evp on the companion is that I have her running a specific package and I don't want her choosing her own. I may try a force reset (removepackage/addpackage) and see how that works. Right now, she often blinks a bit on enable, sometimes reappearing a few feet away. But at least the game goes on without hanging.

 

I saw this happen between unrelated NPC's yesterday - which leads me to suspect it's something caused by another mod I'm running or that something in my companion code is creating issues with script priorities. I'm going to spend a little time digging into that as well.

 

-Jumonji

Link to comment
Share on other sites

Archived

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...