Jump to content


Photo

Solafein death variable search - besides SOLA


  • Please log in to reply
22 replies to this topic

#1 cmorgan

cmorgan
  • Modder
  • 2301 posts

Posted 28 July 2015 - 08:46 PM

Ok, I am trying to run down what mods deal with Solaufein as a joinable NPC.

Standard Weimer Solaufein and jolyth's Solaufein Flirt Pack use "SOLA" as the DV. But I am seeing both Solafein and Solaufein used in existing mods as death vars as well; usually with an OR(2) to catch both sola and the alternate.

Does anyone know what other Sola mods there are out there that might use dv's other than SOLA?

#2 Cahir

Cahir
  • Modder
  • 133 posts

Posted 28 July 2015 - 08:59 PM

cmorgan that might be Jastey's Solaufein, but that's a wild guess.

#3 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 28 July 2015 - 11:34 PM

DV Sola is for the NPC (Sola5 - 17 cre) and Solaufein is the DV for his role in Underdark.(UDSola01 + 02 creatures)

Trying to write some crossmod banter with him I also found the issue that his banter file may be differently named in different installations, I did not find which mod(s) did that. I think it should be BSola and BSola25 while all his PDialog files (J, P etc) are just one: Sola.


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#4 cmorgan

cmorgan
  • Modder
  • 2301 posts

Posted 29 July 2015 - 04:21 AM

Ah, got it.. thank you - so the Solafein is probably a typo; check against the UDSOLA[01-02]. I will poke Jasty and see what she says/has dealing with Solaufein as well, thanks!
 
I can help on the banter file; Crossmod Banter Pack builds and adds the banter file if it doesn't exist
 
As Solaufein was the first (or one of the first) mods it has approaches that were based on existing knowledge and workarounds, things for him are decidedly "non-standard". I will look at the code, but I bet it will be fine to add the banter to either file; the conditions to trigger probably do need to be for either SOLA or SOLAUFEIN (hence the OR(2))
// Giving Solaufein a banter file
ACTION_IF FILE_EXISTS_IN_GAME ~sola.dlg~
THEN BEGIN
	APPEND ~interdia.2da~ ~SOLA BSOLA SOLAUFEIN BSOLA~
		UNLESS ~SOLAUFEIN~
		UNLESS ~25FILE~
	APPEND ~interdia.2da~ ~SOLA BSOLA BSOLA25 SOLAUFEIN BSOLA BSOLA25~
		UNLESS ~SOLAUFEIN~
		IF ~25FILE~
END

ACTION_IF FILE_EXISTS_IN_GAME ~sola.dlg~ AND NOT FILE_EXISTS_IN_GAME ~bsola.dlg~
THEN BEGIN
PRINT @8 /* Adding Solaufein's SoA banter file... */
APPEND_OUTER ~crossmodbg2/crossmod_0_debug.log~ ~Adding Solaufein's SoA banter file...~
<<<<<<<< CrossmodBG2/Inlined/BSOLA.d
BEGIN BSOLA
>>>>>>>>
COMPILE ~CrossmodBG2/Inlined/BSOLA.d~
END
As yours is a "last in install order" mod too, Roxanne, you could modify that code and use the banter file; it only builds the banter file if it doesn't already exist.

It also confirms that we only know of two dvs for this NPC: may need to split that APPEND into two lines...

Edited by cmorgan, 29 July 2015 - 04:23 AM.


#5 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 29 July 2015 - 06:40 AM

Ah, got it.. thank you - so the Solafein is probably a typo; check against the UDSOLA[01-02]. I will poke Jasty and see what she says/has dealing with Solaufein as well, thanks!
 
I can help on the banter file; Crossmod Banter Pack builds and adds the banter file if it doesn't exist
 
As Solaufein was the first (or one of the first) mods it has approaches that were based on existing knowledge and workarounds, things for him are decidedly "non-standard". I will look at the code, but I bet it will be fine to add the banter to either file; the conditions to trigger probably do need to be for either SOLA or SOLAUFEIN (hence the OR(2))

// Giving Solaufein a banter file
ACTION_IF FILE_EXISTS_IN_GAME ~sola.dlg~
THEN BEGIN
	APPEND ~interdia.2da~ ~SOLA BSOLA SOLAUFEIN BSOLA~
		UNLESS ~SOLAUFEIN~
		UNLESS ~25FILE~
	APPEND ~interdia.2da~ ~SOLA BSOLA BSOLA25 SOLAUFEIN BSOLA BSOLA25~
		UNLESS ~SOLAUFEIN~
		IF ~25FILE~
END

ACTION_IF FILE_EXISTS_IN_GAME ~sola.dlg~ AND NOT FILE_EXISTS_IN_GAME ~bsola.dlg~
THEN BEGIN
PRINT @8 /* Adding Solaufein's SoA banter file... */
APPEND_OUTER ~crossmodbg2/crossmod_0_debug.log~ ~Adding Solaufein's SoA banter file...~
<<<<<<<< CrossmodBG2/Inlined/BSOLA.d
BEGIN BSOLA
>>>>>>>>
COMPILE ~CrossmodBG2/Inlined/BSOLA.d~
END
As yours is a "last in install order" mod too, Roxanne, you could modify that code and use the banter file; it only builds the banter file if it doesn't already exist.

It also confirms that we only know of two dvs for this NPC: may need to split that APPEND into two lines...

Thanks for confirmation - I think that is what my mod does with

ACTION_IF NOT FILE_EXISTS_IN_GAME ~BSola.dlg~ THEN BEGIN
APPEND ~interdia.2da~
~Sola BSola BSola25 ~
UNLESS ~Sola~
APPEND ~interdia.2da~
~Solaufein BSola BSola25 ~
UNLESS ~Solaufein~
COMPILE ~SandrahNPC/Mods/BSola.d~
END

BSola.d here is just containing BEGIN BSOLA to which I append my stuff, otherwise it appends to existing BSola dialogues.


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#6 cmorgan

cmorgan
  • Modder
  • 2301 posts

Posted 29 July 2015 - 08:10 AM

Looks great!
 
Side note - Jastey's Solaufein is German-only, and uses C#Solaufein as a dv, but most importantly has independent banter file and J/P/X files, so no worries on that one. Her mod will be independent of the multiple attempts to put S in the game.
 
I actually just moved our code to behave more like yours.

You don't need the extra stuff for SoA only installs, because yours requires ToB to be installed, so you are all good :)

Edited by cmorgan, 29 July 2015 - 08:12 AM.


#7 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 29 July 2015 - 08:35 AM

Looks great!
 
Side note - Jastey's Solaufein is German-only, and uses C#Solaufein as a dv, but most importantly has independent banter file and J/P/X files, so no worries on that one. Her mod will be independent of the multiple attempts to put S in the game.

Another Solaufein??? And I thought I finally managed the multiple Kivans....

 
I actually just moved our code to behave more like yours.

You don't need the extra stuff for SoA only installs, because yours requires ToB to be installed, so you are all good :)

The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#8 jastey

jastey
  • Administrator
  • 3218 posts

Posted 29 July 2015 - 11:06 PM

Sorry... ;-)
But as cmorgan said, my mod is currently beta and German only (the English install is a fake), but for German players, it might be important to consider. Let me know if you need any info.

#9 -Gast-

-Gast-
  • Guest

Posted 01 August 2015 - 03:08 AM

I may be wrong, cmorgan, but Eilistraee's Song from Lava helds the option for Solaufein to join your party. Never tried this myself.



#10 cmorgan

cmorgan
  • Modder
  • 2301 posts

Posted 01 August 2015 - 07:04 AM

Thanks - I will go take a look!



#11 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 01 August 2015 - 07:49 AM

Thanks - I will go take a look!

 

Thanks - I will go take a look!

 

 

I may be wrong, cmorgan, but Eilistraee's Song from Lava helds the option for Solaufein to join your party. Never tried this myself.

I think this is not the joinable Solaufein.

When Solaufein (the Weimer NPC) has joined you, he will leave your party for the encounter with Elthan to meet you in the North of the elven area later on. There is an (Eilistrraee) Solaufein appearing in the ruins towards the surface that gives you the clue to Eilistraee's Song and then disappears. Lava's mod cleverly makes him compliant with Solaufein NPC but he is not another joinable NPC.

PS his cre and dv name is *esxsola*


Edited by Roxanne, 01 August 2015 - 07:53 AM.

The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#12 Mad Mate

Mad Mate
  • Member
  • 191 posts

Posted 01 August 2015 - 08:14 AM

In my game I don't have any of Solaufein NPCs installed, yet banters from crossmod for Solaufein installs.
Tortured Souls adds SOLA.CRE (Sola), his DV is "Sola" and uses SOLA.DLG as dialog file. I think it is not joinable.
 


#13 micbaldur

micbaldur

    Retired Perkele, Ultimate BWP player

  • Member
  • 1692 posts

Posted 01 August 2015 - 08:28 AM

In my game I don't have any of Solaufein NPCs installed, yet banters from crossmod for Solaufein installs.
Tortured Souls adds SOLA.CRE (Sola), his DV is "Sola" and uses SOLA.DLG as dialog file. I think it is not joinable.

That TS Sola is vampire and part of Sime romance quest. BWP Fixpack chamges his file name and script name to SolaTS. And no he's not joinable.


CHARNAMEs excellent adventures in the world of BWP expert-install here

 

Thanks to Leonardo Watson for making this possible


#14 Mad Mate

Mad Mate
  • Member
  • 191 posts

Posted 01 August 2015 - 09:11 AM

That TS Sola is vampire and part of Sime romance quest. BWP Fixpack chamges his file name and script name to SolaTS. And no he's not joinable.
I know that and I don't use that fix, as it is old (from 2009 for TS-BP 6 and should be revisited for new versions), and, I assume it was some conflict with NPCs, which I don't use.

Anyway, Crossmod checks for SOLA.DLG, which is not changed with BWP Fixpack's fix, and as it is added by TS, Crossmod appends it with banters.
Perhaps it should be some other way to check for NPC mods.

Edited by Mad Mate, 01 August 2015 - 09:22 AM.


#15 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 01 August 2015 - 09:47 AM

That TS Sola is vampire and part of Sime romance quest. BWP Fixpack chamges his file name and script name to SolaTS. And no he's not joinable.
I know that and I don't use that fix, as it is old (from 2009 for TS-BP 6 and should be revisited for new versions), and, I assume it was some conflict with NPCs, which I don't use.

Anyway, Crossmod checks for SOLA.DLG, which is not changed with BWP Fixpack's fix, and as it is added by TS, Crossmod appends it with banters.
Perhaps it should be some other way to check for NPC mods.

From a modders point of view (and who else would be interested in this issue???) I prefer cmorgans and lava's and my own approach which is

- to leave existing Solaufeins as they are

- look at the existing ones and their dv's and dlg's

- decide which one(s) is/are of interest for your own crossmod context

- code your scripts and banters to match your expected results

Any attempt to make *ONE Solaufein* would require all others to adapt to it and make things worse than they are. It is a bit of extra work for the modder,( but no one forces you to deal with the topic if you do not want it).


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#16 Mad Mate

Mad Mate
  • Member
  • 191 posts

Posted 01 August 2015 - 10:27 AM

From a modders point of view (and who else would be interested in this issue???) I prefer cmorgans and lava's and my own approach which is
- to leave existing Solaufeins as they are
- look at the existing ones and their dv's and dlg's
- decide which one(s) is/are of interest for your own crossmod context
- code your scripts and banters to match your expected results
Any attempt to make *ONE Solaufein* would require all others to adapt to it and make things worse than they are. It is a bit of extra work for the modder,( but no one forces you to deal with the topic if you do not want it).

I agree with you, but this doesn't have anything with what I reported in my post.
I don't play with ANY Solaufein NPC and yet, all stuff from this post gets installed in my game.

Just because I have SOLA.DLG in my game doesn't mean I have Solaufein's banter file.

I'm just suggesting some other check for Weimer-Solaufein Mod instead :

ACTION_IF FILE_EXISTS_IN_GAME ~sola.dlg~

Maybe add this to that:

ACTION_IF FILE_EXISTS_IN_GAME ~sola5.cre~

or use Weidu's ACTION_IF MOD_IS_INSTALLED

 



#17 cmorgan

cmorgan
  • Modder
  • 2301 posts

Posted 02 August 2015 - 05:39 AM

Well, good information and good ideas. I will see what we can do, but the easy answer is not to worry too much about it. The banters are set to fire if the associated death var returns true for both InParty and CD_S_NV. The OCD in me wants to fix this, but the realist in me says do due diligence and then move on. This npc and Drizzt are the only ones that have this king of trouble- both popular as characters and some parts/mods coded before we had a community approach.

#18 micbaldur

micbaldur

    Retired Perkele, Ultimate BWP player

  • Member
  • 1692 posts

Posted 02 August 2015 - 02:59 PM

Sorry for off topic answer.

 

That TS Sola is vampire and part of Sime romance quest. BWP Fixpack chamges his file name and script name to SolaTS. And no he's not joinable.
I know that and I don't use that fix, as it is old (from 2009 for TS-BP 6 and should be revisited for new versions), and, I assume it was some conflict with NPCs, which I don't use.

That fix is valid in TS 7.04 too. Without it Sime Romance breaks Eilistraee's Song mod. Solaufein doesn't appear at To the Surface (AR2401.ARE) because that dv "sola". If you don't romance Sime or don't use Eilistraee's Song mod then there's no problem.


CHARNAMEs excellent adventures in the world of BWP expert-install here

 

Thanks to Leonardo Watson for making this possible


#19 Mad Mate

Mad Mate
  • Member
  • 191 posts

Posted 02 August 2015 - 03:41 PM

That fix is valid in TS 7.04 too. Without it Sime Romance breaks Eilistraee's Song mod. Solaufein doesn't appear at To the Surface (AR2401.ARE) because that dv "sola". If you don't romance Sime or don't use Eilistraee's Song mod then there's no problem.
Thanks Micbaldur! Will check it out.
Sorry for OT, cmorgan!

#20 cmorgan

cmorgan
  • Modder
  • 2301 posts

Posted 03 August 2015 - 01:05 PM

Nope, no worries - it is on topic, as it is dealing with the various incarnations of Solaufein, and dealing with them!

 

The simplest fix for detecting what we want to add to is MOD_IS_INSTALLED. It does expect the mod folder and requested component to remain stable, which *usually* doesn't change over time, but for most mods and modders this is a great way to go. For Crossmod Banter Pack, we are using it to detect materials that have no unique materials to detect, extending existing canonical NPCs without adding something unique and unchangeable

 

ACTION_IF MOD_IS_INSTALLED ~YOSHIMOROMANCE/YOSHIMOROMANCE.TP2~ ~0~ AND MOD_IS_INSTALLED ~HAERDALISROMANCE/HAERDALISROMANCE.TP2~ ~0~

 

 

Unfortunately, if multiple mods are expected to be included/detected/screened out, that means multiple OR and ELSE statements. So we retain old skool "unique items" or "unique .cres" but mostly "do both the dialogue files we add content to both exist", and rely on the banter engine to not call those banters as valid, as it expects the InParty and CD_S_NV to both be true in oder to fire the banter.

 

So... the only condition under which this might be a problem for another mod is if the added (useless) banters interfere with weighted states in that file. I took a look, and we have no problems. If someone installs a future joinable NPC with "sola" or "solaufein" using the SOLA.dlg we are fine because we do what Roxanne does: check for a banter file and create it if it doesn't exist, and add all our content to that one - if it exists, we toss ours on unweighted. Suprisingly, the only mod that might may need to keep an eye out for install orders is... Roxanne's! :shifty: Crossmod is usually a last-after-all-npcs, but Sandrah NPC is a "last of the last of all mods added onto a Mega/BWP install".  I don't have a BWP installed right now that even remotely covers the contents in your mod, Roxanne, and my bet is there will still be no issue, but just to check, you might want to peek at the file. Check to see what the weighting is - if it is just random banters you are adding, nothing matters at all, but if you are expecting a quest related dialog being fired off the Baner file instead of the Joined file, then that might be something to look at.


At least you know which mod might be doing something in that file. Worst case scenario, you just weight your materials adding to the banter file to put them at the top of the stack, and make sure thy are fully conditioned, and you are all good.


Edited by cmorgan, 03 August 2015 - 01:08 PM.