Help - Search - Members - Calendar
Full Version: PLAYER1 dialogue
The Black Wyrm's Lair - Forums > Mod development resources & discussion > Tutorials, hints & tips
nullset
I have found the following:

- You cannot use == PLAYER1 in a CHAIN (understandable once I thought about it)

- ++ at the end of a dialogue does not support multiple lines (not refering to multiple options here)

I have not found:

- How or if you can create a dialogue block in which you SAY nothing and do not just introduce a null line

I want to have my PC (mod in development) have multiple lines of dialogue without intervening NPC chatter a la CHAIN. Is it even possible?

HELP!

nullset
Found it!

APPEND PLAYER1

IF ~~ thisdialog
~say something~
++ ~say comething #1~ gosomewhere
++ ~say something #2~ gosomewhereelse
END

END

Both sides of this dialogue are PLAYER1. It DOES allow PLAYER1 to have multiple consequtive lines of dialogue.
nullset
Sorry, but I still need help. That construct does not work for me. I have seen it used in other mods but, when I try, the EXTERN PLAYER1 xxx goes nowhere. I must be doing SOMETHING wrong, but I can't (yet) see what that might be.

Any help on this issue would be greatly appreciated.
Vlad
EXTERN PLAYER1 in your construction never works. You may launch PLAYER1 dialogue from a script though.

I'll give you the following example. When you click on a portal, the portal script triggers the dialogue of Player 1:

CODE
APPEND ~PLAYER1~

IF WEIGHT #0 ~Global("VP_SoW_Portal_Talk","GLOBAL",2)~ THEN BEGIN NEJ62 // from:
  SAY ~So, once again we are destined to take the unknown road. Let us ready ourselves for what lies ahead.~ [mute]
  IF ~True()~ THEN GOTO NEJ63
  IF ~InParty("Dar")~ THEN GOTO NEJ64
  IF ~InParty("Accalia")~ THEN EXTERN ~ACCALIJ~ 1
  IF ~InParty("Imoen")~ THEN EXTERN ~IMOENJ~ NEJ72
  IF ~InParty("Imoen2")~ THEN EXTERN ~IMOEN2J~ VP_FIX2
  IF ~InParty("Minsc")~ THEN EXTERN ~MINSCJ~ NEJ244
  IF ~InParty("Jaheira")~ THEN EXTERN ~JAHEIRAJ~ NEJ532
END


Now from each of the individual NPCs dialogues, you can return to PLAYER1 dialogue. For example, Jaheira answers:

CODE
IF ~~ THEN BEGIN NEJ532
SAY ~It will be good to see our world again <CHARNAME>. We must get back as quickly as possible, for we are surely upsetting the balance by being in a place that we should not be.~
IF ~Global("VP_End_IWD","GLOBAL",2)~ THEN EXTERN ~PLAYER1~ NEJ63
IF ~!Global("VP_End_IWD","GLOBAL",2)~ THEN EXTERN ~HROTHJ~ 403
IF ~InParty("Dar")~ THEN EXTERN ~PLAYER1~ NEJ64
IF ~InParty("Accalia")
!Global("VP_End_IWD","GLOBAL",2)~ THEN EXTERN ~ACCALIJ~ 1
IF ~InParty("Accalia")
Global("VP_End_IWD","GLOBAL",2)~ THEN EXTERN ~ACCALIJ~ 66
IF ~InParty("Sharteel")~ THEN EXTERN ~SHARTJ~ nearportal
IF ~InParty("Imoen")~ THEN EXTERN ~IMOENJ~ NEJ72
IF ~InParty("Imoen2")~ THEN EXTERN ~IMOEN2J~ VP_FIX2
IF ~InParty("Minsc")~ THEN EXTERN ~MINSCJ~ NEJ244
END


This is the only way you can do that, in my opinion. You cannot CHAIN PLAYER1, you cannot EXTERN from the different dialogue and so on.
nullset
Thanx, Vlad. That explains why, whenever I saw an EXTERN PLAYER1, the dialogue traced back to an initial PLAYER1 dialogue at the root of the tree. I still haven't wrapped my mind around WHY this is so, but at least I grasp the mechanics now. I have spent quite a few decades psychoanalysing procedural language compilers, and this is my first venture into AI and state languages.

Your last name wouldn't just happen to be Tepes, would it?
Vlad
You're welcome and good luck.

No. laugh.gif My first name is Vladislav. biggrin.gif
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2024 Invision Power Services, Inc.