Jump to content

[LE] Make a "Hello" Topic run only upon dialog start with Npc


sornan

Recommended Posts

Hi guys :smile:

 

Been having a bit of a problem, trying to get what should be a simple thing done - a single unique 'Hello' topic be said by an Npc only upon dialog start with him (by the player initiating dialog that is).

 

I have the Topic in Misc as a Hello topic:

 

Priority 90

 

Say Once checked

On Activation Checked (don't know if it really helps or not)

 

And, in game She says the 'Hello" topic when player is in close range to her *and* then says it once the player initiates dialog with her.

 

I'm wanting her to only say it upon dialog start.

 

Any help appreciated, I must be missing something, as I'm pretty sure this type of Hello topic is common in game.

Edited by sornan
Link to comment
Share on other sites

Hi guys :smile:

 

Been having a bit of a problem, trying to get what should be a simple thing done - a single unique 'Hello' topic be said by an Npc only upon dialog start with him (by the player initiating dialog that is).

 

I have the Topic in Misc as a Hello topic:

 

Priority 90

 

Say Once checked

On Activation Checked (don't know if it really helps or not)

 

And, in game She says the 'Hello" topic when player is in close range to her *and* then says it once the player initiates dialog with her.

 

I'm wanting her to only say it upon dialog start.

 

Any help appreciated, I must be missing something, as I'm pretty sure this type of Hello topic is common in game.

 

If I am understanding you, you want the npc to have the hello topic but never say it until the player first initiates dialogue and Then "thereafter" say it?

 

If that is the case I would add a condition to the hello topic to only speak on a certain stage.

 

So the player initiates dialogue, eventually that discussion moves to a certain stage. That is the stage I would use.

 

I do this for one of my npc's and it works.

 

For the condition, I believe it's "getstage" then use the quest name and then you would put either "=" or >= or whatever you choose.

Edited by Sovrath
Link to comment
Share on other sites

Thanks for the response Sovrath

 

Your interpretation of what I'm wanting is close, but I actually want the 'Hello' to be said immediately at the start of the dialog with the Npc, yet never said outside of a dialog session. So to use a quest stage or a global variable really wouldn't work, because by the time it's set, the first topic has already fired in the dialog and the initial 'Hello' point has already passed.

 

In Oblivion, if I recall correctly, there were actually 'Hello's' and then 'Greeting' topics, one of them was for the 'close range' activation outside of actual dialog, and the other was strictly for dialog, executing only once upon dialog initialization.

 

An example from my BladeSong quest mod in Oblivion (which used a lot of Hello and Greeting topics):

 

The player returns to a quest npc after completing a dangerous task..

 

Player walks in close range of Captain Grenaw..

'Hello' - Grenaw: "You made it back, you did it!"

 

Player initiates dialog with Grenaw:

'Greeting' - Grenaw: "Somehow I knew you'd make it back alive"

 

And then the normal topics in the dialog session kick in.

 

Player: "I barely survived the ritual."

 

Grenaw: "I know, I didn't tell you everything.." (Etc, etc)

 

________________________

 

So, in Oblivion there is a reliable specific 'Greeting' topic that fires at the very start of the dialog session, where the Npc may talk about potentially the current situation of things, and then the next dialog topic content can actually reflect what the Npc said, and things go on from there. Yet, that 'Greeting' topic was never said outside of dialog.

 

If Skyrim only uses strictly 'Hello' topics that fire both outside of and inside of dialog, and there is no way to refine it, honestly that limits usage, as dialog topics really can't be attached in content to that 'Hello', because you'll never know if it fired outside of dialog - in which case it seems odd to try to have the player respond in dialog to it - and also that a potentially generic Hello may have fired upon dialog too lol - ahh.. Anyhow, if the Hello topics are like that, I can work with it, it's just too bad that feature was not moved into Skyrim from Oblivion.

 

/Edit

 

Stumbled on this condition in the listing:

 

IsInDialogWithPlayer

 

I'll have to do some testing, don't even know if it's a bool or a value 1 if true function, there is no description.

 

 

 

Cheers and thanks :smile:

Edited by sornan
Link to comment
Share on other sites

 

Hi guys :smile:

 

Been having a bit of a problem, trying to get what should be a simple thing done - a single unique 'Hello' topic be said by an Npc only upon dialog start with him (by the player initiating dialog that is).

 

I have the Topic in Misc as a Hello topic:

 

Priority 90

 

Say Once checked

On Activation Checked (don't know if it really helps or not)

 

And, in game She says the 'Hello" topic when player is in close range to her *and* then says it once the player initiates dialog with her.

 

I'm wanting her to only say it upon dialog start.

 

Any help appreciated, I must be missing something, as I'm pretty sure this type of Hello topic is common in game.

 

If I am understanding you, you want the npc to have the hello topic but never say it until the player first initiates dialogue and Then "thereafter" say it?

 

If that is the case I would add a condition to the hello topic to only speak on a certain stage.

 

So the player initiates dialogue, eventually that discussion moves to a certain stage. That is the stage I would use.

 

I do this for one of my npc's and it works.

 

For the condition, I believe it's "getstage" then use the quest name and then you would put either "=" or >= or whatever you choose.

 

So if I'm understanding you try this, set the "hello" for quest stage 0

 

Stage0 Player walks in close range of Captain Grenaw..

'Greeting' - Grenaw: "You made it back, you did it!"

 

 

still Stage0 Player initiates dialogue with Grenaw:

'Hello' - Grenaw: "Somehow I knew you'd make it back alive"

 

now set the stage to 10

 

Stage 10 And then the normal topics in the dialog session kick in...

 

Player: "I barely survived the ritual."

 

Grenaw: "I know, I didn't tell you everything.." (Etc, etc)

 

 

How about that? So essentially the "hello" and initial dialog are at a low stage. Everything else is higher. You can even include additional "hello" dialog that can only sound off at those higher stages.

 

I do a similar thing in my mod. Player gets close to a prisoner and the prisoner says bug off. But then I have a trigger later on that changes the quest to a later stage. Now the npc only "hellos" the later stage "hello" which is "get me out of here. As soon as the player opens the door the quest stage is set later and regular dialogue ensues.

 

Not exactly the same but you can see that the quest stages can be utilized in a similar fashion.

 

Another example, same mod, player is looking for some evidence. He forgets what he is looking for so he goes close to the ghost, ghost says its "hello" dialogue and then his dialogue is what the player should look for. Once the player has the items, one of them, on activation/player has it will up the stage so that when the player returns to the ghost he continues the dialogue.

 

Does this work for you?

Edited by Sovrath
Link to comment
Share on other sites

Surely what you are describing is just the first line of dialogue in a sequence, so it's not what Skyrim refers to as a "hello" Topic. If you want it to appear first in a dialogue sequence (triggered by a prompt) you will just have to repeat that line as you opening line in every dialogue with that NPC that requiries it.

Link to comment
Share on other sites

Okay, first off, thank you guys for all of the input and help. :smile:

 

Next, after quite a bit of testing, let me sum up what I have found here:

 

 

For the method of just using conditions strictly for 'Hello' topics, by stage or by global, I personally have found it to be semi-reliable, as part of the problem is you can actually trigger all of the 'Hellos' before even getting into dialog by moving close to the npc and backing away and then moving close again, and therefore by the time you actually engage in dialog, the desired 'Hello' topic may have already fired, and you may end up with just a generic greeting (or a duplicate greeting).

 

I tried using the 'Normal' setting on the initial branch with the "greeting" topic in the dialog view, connected to the main 'Top level' branch, and the Npc upon activation would only say the greeting, and nothing more would happen.

 

Here are the two things that did work:

 

 

To replicate the Oblivion style greeting upon dialog initialization:

 

In Dialog View, a Blocking Branch is made - the response content is put in, and in the Topic conditions : IsInDialogWithPlayer == 1 . Any other conditions can be put in of course that would pertain to allowing the greeting to happen. The Blocking Branch is connected to a Top Level Branch, where the main dialog conversation happens. In game, the greeting will show up first upon dialog activation, and the voice length must complete before dialog selections will show up *unless* the player clicks past the greeting where in this case the first dialog selection will show up immediately.

The Beth description of the Blocking Branch indicates it can do hellos and greetings, depending on conditions: Dialog Branch Data

 

 

 

Using Hello Topics in dialog strictly:

 

I personally don't like this option as much, but it is an option nonetheless.

You can just take a 'Hello' topic (under Misc), and add the IsInDialogWithPlayer == 1 condition to it, and it will only fire upon dialog initialization with the Npc. The downside is, that the further dialog options will show up immediately while the greeting is shown, so there is no progression from the greeting content into the dialog selection, it all happens at once. Still though, it is an option.

 

_______________________________________________________________________

 

There are a few seeming bugs to the whole Hello/Greeting thing in Skyrim though.. at least on my end. Although initially, all Hello's and Greeting's seem to work reliably, upon the end of/backing out of conversation with an Npc and then talking to them again, the greetings do not always fire, it seems quite random. I did a number of tests, with the Hello's and Greetings set to priority 90, conditions set to allow them to fire endlessly, and still beyond the reliability in the first interaction with the npc, beyond this it was constantly random, often with the Npc not saying the greeting numerous times after the first interaction. I personally don't mind this that much, as I probably would never want a specific unique greeting to fire more than once anyhow, but still this certainly looks like some kind of bug.

 

In the end, I'm happy, the Blocking Branch with IsInDialogWithPlayer condition works, and it's simple to put in!

 

 

Thanks everyone :smile:

 

(think I'll enjoy lawn mowing tomorrow after all this testing lol)

Edited by sornan
Link to comment
Share on other sites

  • Recently Browsing   0 members

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