Jump to content

Solar sequence


Domi

Recommended Posts

It was reported as a bug to me that ivan 'high-jacks' the interjections in the Solar sequence.

 

I have investigated the vanilla Solar sequence. The code is as follows:

 

IF ~~ THEN BEGIN 27 // from: 26.0 22.0 19.0
 SAY #67865 /* ~The choice is difficult, but these are your two options, Bhaalspawn.  This is where your destiny is realized, and your future begins.~ [SOLAR101] */
 IF ~True()~ THEN GOTO 28
 IF ~IsValidForPartyDialog("Valygar")
Global("ValygarRomanceActive","GLOBAL",2)~ THEN EXTERN ~VALYG25J~ 3
 IF ~IsValidForPartyDialog("Anomen")
Global("AnomenRomanceActive","GLOBAL",2)~ THEN EXTERN ~ANOME25J~ 11
 IF ~IsValidForPartyDialog("Viconia")
Global("ViconiaRomanceActive","GLOBAL",2)~ THEN EXTERN ~VICON25J~ 8
 IF ~IsValidForPartyDialog("Aerie")
Global("AerieRomanceActive","GLOBAL",2)~ THEN EXTERN ~AERIE25J~ 9
 IF ~IsValidForPartyDialog("Jaheira")
Global("JaheiraRomanceActive","GLOBAL",2)~ THEN EXTERN ~JAHEI25J~ 9
 IF ~IsValidForPartyDialog("Valygar")
!Global("ValygarRomanceActive","GLOBAL",2)~ THEN EXTERN ~VALYG25J~ 2
 IF ~IsValidForPartyDialog("Anomen")
!Global("AnomenRomanceActive","GLOBAL",2)~ THEN EXTERN ~ANOME25J~ 10
 IF ~IsValidForPartyDialog("Viconia")
!Global("ViconiaRomanceActive","GLOBAL",2)~ THEN EXTERN ~VICON25J~ 6
 IF ~IsValidForPartyDialog("Aerie")
!Global("AerieRomanceActive","GLOBAL",2)~ THEN EXTERN ~AERIE25J~ 7
 IF ~IsValidForPartyDialog("Jaheira")
!Global("JaheiraRomanceActive","GLOBAL",2)~ THEN EXTERN ~JAHEI25J~ 7
 IF ~IsValidForPartyDialog("Imoen2")~ THEN EXTERN ~IMOEN25J~ 15
 IF ~IsValidForPartyDialog("Sarevok")
!Alignment("Sarevok",MASK_EVIL)~ THEN EXTERN ~SAREV25J~ 2
 IF ~IsValidForPartyDialog("Sarevok")
Alignment("Sarevok",MASK_EVIL)~ THEN EXTERN ~SAREV25J~ 3
 IF ~IsValidForPartyDialog("Minsc")~ THEN EXTERN ~MINSC25J~ 0
 IF ~IsValidForPartyDialog("Nalia")~ THEN EXTERN ~NALIA25J~ 1
 IF ~IsValidForPartyDialog("HaerDalis")~ THEN EXTERN ~HAERD25J~ 1
 IF ~IsValidForPartyDialog("Jan")~ THEN EXTERN ~JAN25J~ 3
 IF ~IsValidForPartyDialog("Cernd")~ THEN EXTERN ~CERND25J~ 0
 IF ~IsValidForPartyDialog("Mazzy")~ THEN EXTERN ~MAZZY25J~ 0
 IF ~IsValidForPartyDialog("Edwin")~ THEN EXTERN ~EDWIN25J~ 0
 IF ~IsValidForPartyDialog("Korgan")~ THEN EXTERN ~KORGA25J~ 2
 IF ~IsValidForPartyDialog("Keldorn")~ THEN EXTERN ~KELDO25J~ 0
 IF ~Global("Sola_TOB_End","GLOBAL",0)
InParty("Sola")
!Global("SolaTalk","GLOBAL",-1)
~ THEN DO ~SetGlobal("Sola_TOB_End","GLOBAL",1)~ EXTERN ~SOLA~ 616
END

...

IF ~~ THEN BEGIN 29 // from: 28.2
 SAY #68068 /* ~As you wish, though it brings me no pleasure to unleash such an evil onto the cosmos.  You are wicked, Bhaalspawn, and your time as a power will be a difficult one, I swear.~ [SOLAR103] */
 IF ~True()~ THEN GOTO 33
 IF ~IsValidForPartyDialog("Valygar")
Global("ValygarRomanceActive","GLOBAL",2)~ THEN EXTERN ~VALYG25J~ 11
 IF ~IsValidForPartyDialog("Anomen")
Global("AnomenRomanceActive","GLOBAL",2)~ THEN EXTERN ~ANOME25J~ 20
 IF ~IsValidForPartyDialog("Viconia")
Global("ViconiaRomanceActive","GLOBAL",2)~ THEN EXTERN ~VICON25J~ 18
 IF ~IsValidForPartyDialog("Aerie")
Global("AerieRomanceActive","GLOBAL",2)~ THEN EXTERN ~AERIE25J~ 20
 IF ~IsValidForPartyDialog("Jaheira")
Global("JaheiraRomanceActive","GLOBAL",2)~ THEN EXTERN ~JAHEI25J~ 18
 IF ~IsValidForPartyDialog("Imoen2")~ THEN EXTERN ~IMOEN25J~ 18
 IF ~IsValidForPartyDialog("Sarevok")
Alignment("Sarevok",MASK_EVIL)~ THEN EXTERN ~SAREV25J~ 4
 IF ~IsValidForPartyDialog("Sarevok")
!Alignment("Sarevok",MASK_EVIL)~ THEN EXTERN ~SAREV25J~ 6
END

IF ~~ THEN BEGIN 30 // from: 28.1
 SAY #68069 /* ~As you wish... though the thought of you succumbing to the temptations of Bhaal's foul taint brings me no pleasure.  We shall see what manner of power you become, in time.~ [SOLAR104] */
 IF ~True()~ THEN GOTO 33
 IF ~IsValidForPartyDialog("Valygar")
Global("ValygarRomanceActive","GLOBAL",2)~ THEN EXTERN ~VALYG25J~ 11
 IF ~IsValidForPartyDialog("Anomen")
Global("AnomenRomanceActive","GLOBAL",2)~ THEN EXTERN ~ANOME25J~ 20
 IF ~IsValidForPartyDialog("Viconia")
Global("ViconiaRomanceActive","GLOBAL",2)~ THEN EXTERN ~VICON25J~ 18
 IF ~IsValidForPartyDialog("Aerie")
Global("AerieRomanceActive","GLOBAL",2)~ THEN EXTERN ~AERIE25J~ 20
 IF ~IsValidForPartyDialog("Jaheira")
Global("JaheiraRomanceActive","GLOBAL",2)~ THEN EXTERN ~JAHEI25J~ 18
 IF ~IsValidForPartyDialog("Imoen2")~ THEN EXTERN ~IMOEN25J~ 18
 IF ~IsValidForPartyDialog("Sarevok")
Alignment("Sarevok",MASK_EVIL)~ THEN EXTERN ~SAREV25J~ 4
 IF ~IsValidForPartyDialog("Sarevok")
!Alignment("Sarevok",MASK_EVIL)~ THEN EXTERN ~SAREV25J~ 6
END

IF ~~ THEN BEGIN 31 // from: 28.0
 SAY #68070 /* ~As you wish.  You have proven to us all that the power in your blood is yours to command... it does not command you.  I shall be proud to stand by you in a place of power among the heavens.~ [SOLAR105] */
 IF ~True()~ THEN GOTO 33
 IF ~IsValidForPartyDialog("Valygar")
Global("ValygarRomanceActive","GLOBAL",2)~ THEN EXTERN ~VALYG25J~ 11
 IF ~IsValidForPartyDialog("Anomen")
Global("AnomenRomanceActive","GLOBAL",2)~ THEN EXTERN ~ANOME25J~ 20
 IF ~IsValidForPartyDialog("Viconia")
Global("ViconiaRomanceActive","GLOBAL",2)~ THEN EXTERN ~VICON25J~ 18
 IF ~IsValidForPartyDialog("Aerie")
Global("AerieRomanceActive","GLOBAL",2)~ THEN EXTERN ~AERIE25J~ 20
 IF ~IsValidForPartyDialog("Jaheira")
Global("JaheiraRomanceActive","GLOBAL",2)~ THEN EXTERN ~JAHEI25J~ 18
 IF ~IsValidForPartyDialog("Imoen2")~ THEN EXTERN ~IMOEN25J~ 18
 IF ~IsValidForPartyDialog("Sarevok")
Alignment("Sarevok",MASK_EVIL)~ THEN EXTERN ~SAREV25J~ 4
 IF ~IsValidForPartyDialog("Sarevok")
!Alignment("Sarevok",MASK_EVIL)~ THEN EXTERN ~SAREV25J~ 6
END

IF ~~ THEN BEGIN 32 // from: 28.3
 SAY #68071 /* ~Then you shall begin life anew, mortal, without the taint of your sire upon your soul... and the essence of Bhaal shall forever be hidden.  You have done well, and freedom shall be your reward.~ [SOLAR106] */
 IF ~True()~ THEN GOTO 33
 IF ~IsValidForPartyDialog("Valygar")
Global("ValygarRomanceActive","GLOBAL",2)~ THEN EXTERN ~VALYG25J~ 12
 IF ~IsValidForPartyDialog("Anomen")
Global("AnomenRomanceActive","GLOBAL",2)~ THEN EXTERN ~ANOME25J~ 21
 IF ~IsValidForPartyDialog("Viconia")
Global("ViconiaRomanceActive","GLOBAL",2)~ THEN EXTERN ~VICON25J~ 19
 IF ~IsValidForPartyDialog("Aerie")
Global("AerieRomanceActive","GLOBAL",2)~ THEN EXTERN ~AERIE25J~ 21
 IF ~IsValidForPartyDialog("Jaheira")
Global("JaheiraRomanceActive","GLOBAL",2)~ THEN EXTERN ~JAHEI25J~ 19
 IF ~IsValidForPartyDialog("Imoen2")~ THEN EXTERN ~IMOEN25J~ 19
 IF ~IsValidForPartyDialog("Sarevok")
Alignment("Sarevok",MASK_EVIL)~ THEN EXTERN ~SAREV25J~ 5
 IF ~IsValidForPartyDialog("Sarevok")
!Alignment("Sarevok",MASK_EVIL)~ THEN EXTERN ~SAREV25J~ 7
END

 

In other words, only one NPC has the chance to interject, the one who is in the party and who is the LAST in the sequence, instead of all of them saying their tidbit.

 

In other words, if you have Sarevok in the party, he'll always be the one to interject, and no other NPC will have a chance to say anything. So, really, I am just duplicating the same action with Kivan. Obviously, he ends up as the one who says his piece, since he is a modded NPC, and his reply goes last.

 

I can either remove Kivan's interjection, keep it consistent withthe original game (ie no change), or 'correct' the game and add a 'chain' sequence to include all the NPC remarks so they will all comment before/after Kivan. That last will potentially put me into a conflict with the other mods, which might want to try to do the same (?) - I see that Solaufein for one does not, he is doing the same thing that Kivan does presently.

 

So, opinions?

Link to comment

Not quite... Sarevok's state would then filter through the same sequence, e.g.,

IF ~~ THEN BEGIN whatever // from: SOLAR:whatever
 SAY #blah /* ~I am Sarevok! RAHHHRRR!~ [HICCUP] */
 IF ~True()~ THEN EXTERN SOLAR 33
 IF ~IsValidForPartyDialog("Valygar")
Global("ValygarRomanceActive","GLOBAL",2)~ THEN EXTERN ~VALYG25J~ 12
 IF ~IsValidForPartyDialog("Anomen")
Global("AnomenRomanceActive","GLOBAL",2)~ THEN EXTERN ~ANOME25J~ 21
 IF ~IsValidForPartyDialog("Viconia")
Global("ViconiaRomanceActive","GLOBAL",2)~ THEN EXTERN ~VICON25J~ 19
 IF ~IsValidForPartyDialog("Aerie")
Global("AerieRomanceActive","GLOBAL",2)~ THEN EXTERN ~AERIE25J~ 21
 IF ~IsValidForPartyDialog("Jaheira")
Global("JaheiraRomanceActive","GLOBAL",2)~ THEN EXTERN ~JAHEI25J~ 19
 IF ~IsValidForPartyDialog("Imoen2")~ THEN EXTERN ~IMOEN25J~ 19
END

This should be true for all the interjections here, and Kivan should do the same?

 

Except for Kivan, it's gonna be a really long list (Sarevok is VIP so his dialogue comes near the end; the losers always go first).

Link to comment

(I was wondering for a minute which Ivan mod Domi is working on.)

 

It's like devSin pointed out, if you look at the NPC states, the other NPC's interjections are repeated. Sola was coded using I_C_T, and that is what Kivan should use, too.

(That is what I would expect even if in the original game only one NPC would get to speak, btw. Since it's a mod NPC, the one who gets the last line would be the one last installed, that doesn't make sense to me.)

Link to comment

I can't use a simple I_C_T 'cause I have the PC replies on Kiv's states. Somebody posted Kelsey's code, abnd it seems to have a combo of the EB and CT at the end of the states a-la TOL (though ToL used a split I and CT). I will try that out, and hopefully it does the trick. I think that back in the day I tried the ToL way and it resulted in the character repeating stuff twice.

Link to comment

Archived

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

×
×
  • Create New...