Jump to content


Photo

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


5 replies to this topic

#1 jastey

jastey
  • Gibberlings
  • 6893 posts
  • Gender:Female

Posted 11 March 2017 - 05:56 AM

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?



#2 Roxanne

Roxanne
  • Modders
  • 1571 posts
  • Gender:Not Telling

Posted 11 March 2017 - 06:37 AM

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.


Edited by Roxanne, 11 March 2017 - 06:40 AM.

The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*


#3 Ardanis

Ardanis

    A very GAR character

  • Modders
  • 2550 posts
  • Gender:Male
  • Location:Saint-Petersburg, Russia

Posted 11 March 2017 - 12:40 PM

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.


"Uguu~ Boku Ayu."

Before you start breaking wall tiles with your bare fists, ask yourself first - do you truly need it?

#4 Roxanne

Roxanne
  • Modders
  • 1571 posts
  • Gender:Not Telling

Posted 11 March 2017 - 01:01 PM

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?


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*


#5 Ardanis

Ardanis

    A very GAR character

  • Modders
  • 2550 posts
  • Gender:Male
  • Location:Saint-Petersburg, Russia

Posted 11 March 2017 - 02:20 PM

They would... But unlike Dialog(), it won't have a chance to actually break anything beside the immersion. Other than that, I do agree it should go along with Detect() :)


"Uguu~ Boku Ayu."

Before you start breaking wall tiles with your bare fists, ask yourself first - do you truly need it?

#6 jastey

jastey
  • Gibberlings
  • 6893 posts
  • Gender:Female

Posted 12 March 2017 - 03:09 AM

Thank you for your answers.





Reply to this topic



  


1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users