How to you get an NPC to have multiple ForceGreets?

Post » Wed Jun 20, 2012 12:29 pm

I have an NPC with a ForceGreet package that runs no matter what and has say once. That one works fine.
The problem comes later, when I try to get him to forcegreet in response to triggers. Basically, I have a quest for each forcegreet, and these quests are started by the trigger (one is on OnOpen() event on a door for example) and then the ForceGreet package is valid to run. Do I have to "Update" the AI package manager or something? It's weird. Oh, also in response to the trigger I can start the dialogue manually, but he just doesn't want to walk up to the player and engage in convo.

Oh also, since I want the NPC to start the talking, I don't have dialogue for the Player to say in the first topic. In response, Skyrim is printing the words "ForceGreet" as what the player is saying.
User avatar
Taylah Illies
 
Posts: 3369
Joined: Fri Feb 09, 2007 7:13 am

Post » Wed Jun 20, 2012 5:44 pm

Actor.evaluatePackage() will force an actor to use new packages that might have been added to the stack

I've found the travel part of ForceGreet to be very tricky to get right. If they're already inside the destination area, the travel part never seems to complete, and so the dialogue never starts. If you know the NPC is going to be in range when this happens, try making your own package and leaving out the travel part. I find that worked for me

For the player part of the opening topic, just leave the prompt/topic text blank and it should be fine
User avatar
David Chambers
 
Posts: 3333
Joined: Fri May 18, 2007 4:30 am

Post » Wed Jun 20, 2012 12:21 pm

Okay, I'm using evaluatePackage now, and this is how I have my package set up: http://imgur.com/feKHC

It still isn't working, any ideas?
User avatar
Kitana Lucas
 
Posts: 3421
Joined: Sat Aug 12, 2006 1:24 pm

Post » Wed Jun 20, 2012 11:13 pm

Is it beneath another package in the stack that has no conditions on it, or conditions that are being met? Packages are evaluated from the top down, and only the first package whose conditions are met will be used.
User avatar
sas
 
Posts: 3435
Joined: Thu Aug 03, 2006 8:40 am

Post » Wed Jun 20, 2012 2:54 pm

It is beneath a package that has a condition MorteDeader !=1, and after performing the first forcegreet, the game sets the value of MorteDeader to equal 1.
Also, I can walk up to him and initiate the dialogue after the triggering event that starts the quest, he just doesn't actually walk up to the player and start talking.
User avatar
Sandeep Khatkar
 
Posts: 3364
Joined: Wed Jul 18, 2007 11:02 am

Post » Wed Jun 20, 2012 9:37 am

Weird thing. If I attack the NPC after his forcegreet should start, then at the moment that he leaves my service (he's a follower) he starts the dialogue for just an instant...I can see the topic options...
Maybe Forcegreets don't work on followers or something?
User avatar
Emmie Cate
 
Posts: 3372
Joined: Sun Mar 11, 2007 12:01 am

Post » Wed Jun 20, 2012 9:18 pm

Perhaps 1) increase the radius in the forcegreet procedure and 2) make sure your quest's priority is higher than the follower quest priority.
User avatar
Ricky Rayner
 
Posts: 3339
Joined: Fri Jul 13, 2007 2:13 am

Post » Wed Jun 20, 2012 5:12 pm

I increased the radius to 500 and did the priority thing. Still nothing doing.
User avatar
Jamie Moysey
 
Posts: 3452
Joined: Sun May 13, 2007 6:31 am

Post » Wed Jun 20, 2012 9:10 pm

This might be important; I don't actually have the packages in the little window for them, I have them in a FormList and added as Package List.
User avatar
Tamara Dost
 
Posts: 3445
Joined: Mon Mar 12, 2007 12:20 pm

Post » Wed Jun 20, 2012 6:52 pm

It is definitely DialogueFollower interfering. If I remove him from service before the package evaluates, it works perfectly. I'll have to make my own version of DialogueFollower to handle Torment's diverse characters (and five companion limit) anyway, so this just means I have to do it sooner.
User avatar
Zach Hunter
 
Posts: 3444
Joined: Wed Aug 08, 2007 3:26 pm


Return to V - Skyrim