Jump to content

Dialogue triggering: InMyArea() vs. See()?


jastey

Recommended Posts

I have a question to dialogue triggering. In my (Ajantis) mod I use InMyArea(Player1) to check for the PC's presence. I did this on purpose because I didn't want dialogues to be skipped because Player1 wasn't visible. This lead to players complain that he initiates dialogue although the PC just went hiding / invisible. (It also initiates dialogues across areas).

 

So, I am thinking about replacing InMyArea(Player1) with See(Player1), but before I do something like this, I would like to know your opinion on this. Which see()/detect() trigger would you suggest that doesn't spoil CHARNAME's fight preparation but doesn't lead to a mute NPC because he never sees the PC to initiate dialogue?

Link to comment

Most NPCs (mod or vanilla) use the InMyArea(Player1) check only for banters with other NPCs

Like e.g.

InParty("Tiax")

InMyArea(Player1)

To make sure that the NPC with Tiax banter does not trigger when the PC is in another area.

 

Using InMyArea(Player1) to trigger a dialogue with PC might result in the NPC running across a large map to the PC to initiate some dialogue that is due.

So most commonly the See(Player1) or Detect(Player1) is used for talks to the PC.

 

But there will always be exceptions that may be required by special circumstances depending on the dialogue that is due. E.g a case where a dialogue is triggered during a fight (which is normally excluded by the CombatCounter(0) condition).

 

So Radio Yerewan's answer is - it all depends.

Link to comment
Using InMyArea(Player1) to trigger a dialogue with PC might result in the NPC running across a large map to the PC to initiate some dialogue that is due.

 

Well, just use StartDialogNoSet() and not the endless supply of bugs that Dialog() is... for pretty much any purpose, really.

 

That said, I'd go with Detect(), because if PC carries Staff of Magi on regular basis, all the banters are gonna get screwed.

Link to comment
Well, just use StartDialogNoSet() and not the endless supply of bugs that Dialog() is... for pretty much any purpose, really.

 

But? Without a trigger like See() or Detect() would they not just shout at each other from different edges of the Cloakwood?

Link to comment

Archived

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

×
×
  • Create New...