Jump to content

EET vanilla/mod NPC continuity questions (spoilers)


Ser Elryk

Recommended Posts

Good point. I think I like the "real NPC continuity" being part of a tweak - if it is not too much work. Otoh EET is your baby, really, and if you decide that dead (and killed by the PC) NPC stay dead, then that would be ok (and somewhat cool, too).

The circus quest is a good point, though. I always thought his new personality is completely unrelated to the Quayle from BG1. But it's a tough decision what to make of Aerie if he wouldn't be there.

 

For Ajantis, I was toying with the idea of leaving him dead if he died in BG1, and making it real consistent including a remark from Keldorn. But in the end it's a question of how the NPCs are treated in EET, overall. I thought I read somewhere that e.g. Viconia stays dead etc., in this context, it would be consistent. Otherwise, I am not too fond of leaving Ajantis dead. :-)

My mod won't trigger in this case, though, since I wrote it with Ajantis as a former travel companion in mind, so I can't spawn him if he wasn't. [~<CHARNAME>! So nice to meet you again.~ - ~Er, do I know you?~]

Link to comment
For Ajantis, I was toying with the idea of leaving him dead if he died in BG1, and making it real consistent including a remark from Keldorn. But in the end it's a question of how the NPCs are treated in EET, overall. I thought I read somewhere that e.g. Viconia stays dead etc., in this context, it would be consistent. Otherwise, I am not too fond of leaving Ajantis dead. :-)

It's explained in this post. Death state in EET is respected for all NPCs that are also joinable in BG2 (and/or SoD) like Viconia. By "cameo NPC" like Quayle and Ajantis in BG2 I meant those that are not joinable in BG2.

 

Considering your mod turns cameo Ajantis reference into character with real BG2 content (and from what I understand the same DV) than I think it's worth respecting the death stance. On the other hand who would willingly kill Ajantis during BG1 in the first place with intention to bring him during BG2?

 

My mod won't trigger in this case, though, since I wrote it with Ajantis as a former travel companion in mind, so I can't spawn him if he wasn't. [~<CHARNAME>! So nice to meet you again.~ - ~Er, do I know you?~]

there is still some time between BG1 and SoD (intro mentions few weeks), so if the player didn't outright killed him during BG1 (if I remember correctly he can turn hostile during some quest, although maybe that's BG1 NPC Project content) or leave his body to rot in wilderness without resurrecting (you know kicking him outside party while he's dead - notice that all party members in Korlasz Tomb are resurrected, so in-party death doesn't matter), the companionship assumption doesn't seem to far fetched, imo. Using Dynaheir example from the linked post - in EET if you didn't kill her (for example during that initial Edwin quest) than she is still valid for continuous content in SoD where she behave like you know her and Minsc.

Link to comment

It is hard to establish consistency here (if not outright impossible). We will alwas be caught again in the fact that the original games were separated.

- Some need to come back - Imoen (even twice SoD + BG2), Edwin, Faldorn, Quayle - or it breaks the story

- Some never come back - Dynaheir, Khalid - or it at least invalidates part of the story

- Some do not die too easily - Sarevok (BG2 + ToB return), Tazok (re-appears within BG1), Irenicus (in Longer Road) - villains follow their own patterns, and as long as the story is good...

- Others follow K4thos pattern.

- Another category are probably Kivan, Xan, Coran or Ajantis (Eldoth in RE)- they come back but are not the same because their original BG1 life cycle has been extended into BG2/ToB. by mods.

 

Whatever decision you make for your NPC, you can find examples pro or con.

Link to comment

There are also theories that the Quayle in Athkatla is not really the same gnome you met in BG1 (completely different personality). When I now think about it maybe extending full NPC continuity feature for cameo NPCs would be better suited for EET_Tweaks component?

 

 

the best continuous solution would be to remove the BG1 quayle and make the BG2 one joinable via the existing mod and then have an event (perhaps something in the mod can be used) which can make him go a bit mad which transforms him into the BG1 quayle in terms of peronality. his BG1 dialogue (banters) can be recycled for BG2

:grin:

 

(unless the mod already has the BG1 personality which i don't know)

Link to comment

By "cameo NPC" like Quayle and Ajantis in BG2 I meant those that are not joinable in BG2.

 

Considering your mod turns cameo Ajantis reference into character with real BG2 content (and from what I understand the same DV) than I think it's worth respecting the death stance. On the other hand who would willingly kill Ajantis during BG1 in the first place with intention to bring him during BG2?

That made it clear, thanks. So, I will consider threee instances: Ajantis joined and was alive, then my mod will trigger. Ajantis never joined, so the original BGII cameo will play. Ajantis was killed and left for dead, then my mod will make him dead in BGII (references from Keldorn and no Ajantis knight in the Windspear Hills.)

 

 

Link to comment

I'll put my question here (I can't find the other thread any more):

If I make my BGII mod Ajantis continuous with the BG1 one with a dv = Ajantis, would this be the correct EET transition?

What I expect: Ajantis from BG1 is transferred to SoA using my mod dialogue+scripts. Ajantis from SoA is summoned in ToB, or for new ToB game the cre "c#ajatob" is spawned. The original Ajantis entry (for original game Ajantis who is supposed to be dead) at the fate spirit is deleted.


I also expect that this prepares Ajantis so he can be spawned / created with MoveGlobal() at the beginning of SoA script action. Did I get this right?

LAF ~EET_NPC_TRANSITION~
      INT_VAR
	type = 3
	default_ToB = 1
      STR_VAR
	dv = "Ajantis"
	override_BG1 = "AJANTIS"
	override_SoA = "C#AJAN"
	override_ToB = "C#AJAN25"
	dialog_ToB = "C#AJAN25"
	traFile = EVAL "AjantisBG2/tra/autotra/%LANGUAGE%/c#ajanj_pr.tra"
	cre_ToB = "c#ajatob"
	string = "@749" //Bring me Ajantis, the paladin and knight
	stringPosDV = "Alora"
	SummonedVar = "C#AjantisSummoned"
	SpawnPlaneVar = "C#AjantisSpawnPlane"
	clean_ToB_DV = "Ajantis"
END

And I have another question: my mod Ajantis can't be summoned in ToB if the PC is of evil alignment. How would I account for this? Is there any chance to make the summoning dependent on PC stats?

 

EDIT: what does "create_SoA" stand for, it's not explained in the Modder's Notes.html?

Link to comment

I'll put my question here (I can't find the other thread any more):

 

If I make my BGII mod Ajantis continuous with the BG1 one with a dv = Ajantis, would this be the correct EET transition?

 

What I expect: Ajantis from BG1 is transferred to SoA using my mod dialogue+scripts. Ajantis from SoA is summoned in ToB, or for new ToB game the cre "c#ajatob" is spawned. The original Ajantis entry (for original game Ajantis who is supposed to be dead) at the fate spirit is deleted.

 

 

I also expect that this prepares Ajantis so he can be spawned / created with MoveGlobal() at the beginning of SoA script action. Did I get this right?

 

LAF ~EET_NPC_TRANSITION~
      INT_VAR
	type = 3
	default_ToB = 1
      STR_VAR
	dv = "Ajantis"
	override_BG1 = "AJANTIS"
	override_SoA = "C#AJAN"
	override_ToB = "C#AJAN25"
	dialog_ToB = "C#AJAN25"
	traFile = EVAL "AjantisBG2/tra/autotra/%LANGUAGE%/c#ajanj_pr.tra"
	cre_ToB = "c#ajatob"
	string = "@749" //Bring me Ajantis, the paladin and knight
	stringPosDV = "Alora"
	SummonedVar = "C#AjantisSummoned"
	SpawnPlaneVar = "C#AjantisSpawnPlane"
	clean_ToB_DV = "Ajantis"
END

And I have another question: my mod Ajantis can't be summoned in ToB if the PC is of evil alignment. How would I account for this? Is there any chance to make the summoning dependent on PC stats?

 

EDIT: what does "create_SoA" stand for, it's not explained in the Modder's Notes.html?

For your case you may not want to use above code at all but make an individual entry for

EXTEND_BOTTOM FATESP 6

with four entries if Global("AjantisSummoned","GLOBAL",0)

1.continue Ajantis for good PC

2. reject Ajantis summoning for evil PC

3.spawn new Ajantis for good PC

4.reject Ajantis summoning for evil PC in a new game

+ the APPEND Fatesp for each of the cases.

 

For continuous case, i.e. Ajantis follows you from BG2 into ToB in Party, you need to check if you need to add a similar block to

Ar4000.BCS (the stonehead area at ToB start)

IF

InPartyAllowDead("O#XAN")

Global("O#XANSummoned","GLOBAL",0)

THEN

RESPONSE #100

ActionOverride("O#XAN",ChangeAIScript("O#XAN25S",OVERRIDE))

SetGlobal("AjantisSummoned","GLOBAL",2) //same global that would be 0 to trigger Fatesp options at all

END

Link to comment

I thought I nee the EET_NPC_TRANSITION to merge the dialogue files? I still don't understand half of what is needed here. :-(

The EET_end merges all joined dialogues it can associate with one NPC into one file, named adfter the entry in the pdialog.2da. This way your NPC has the right file throughout the game even if you revisit areas from a previous campaign.(unless you specify otherwise in your tp2)

The banter files are taken from the respective entries of the individual campaigns (unless you specify otherwise in your tp2).

So generally you do not need to do anything yourself with the code you used in BG2 for e.g. BGT.

 

The transitions are for NPCs if you want to use the default functionality that EET provides. In this case behaviour will be like in the modder's manual. However, you are free to do it your way and not use this. (which is what you may want to consider for Ajantis.).

The EET_NPC_TRANSITION is optional, (for example I do not use it at all for my mod and still have her at the right place and the right time with the right dialogue and script).

Link to comment

I start to understand things. Thank you!

 

EDIT: Still have a question. When does the EET_end get applied if I install my mod onto an EET install? Does it run automatically?

As the name says - it is supposed to be the last mod installed on an EET game.

- You start with two unmodded game parts BGEE+SoD and BG2EE

- You do modmerge on BGEE (if needed)

- You install those mods that need to go into the BGEE part (sse the Mod compatibility list)

- You run EET on the BG2EE part - this *imports* the modded BGEE game. and merges it into BG2EE. During this process the EET_end.tp2 is created as well.

- You install the BG2EE mods

- You run EET_end (if you forgot and try to start the game, you get a big reminder about it.)

- You can still install some mods, like GUI, portraits etc, as long as they do not add dialogues and NPC scripts.

 

Or BWS would do all of that for you automatically.

Link to comment

The transitions are for NPCs if you want to use the default functionality that EET provides. In this case behaviour will be like in the modder's manual. However, you are free to do it your way and not use this. (which is what you may want to consider for Ajantis.).

The EET_NPC_TRANSITION is optional, (for example I do not use it at all for my mod and still have her at the right place and the right time with the right dialogue and script).

even though you can manually make the changes it's HIGHLY recommended to use EET_NPC_TRANSITION. Notice that every single NPC mod in compatibility list uses it (even those mods that are installed on BG:EE uses this function during EET installation - Gavin is listed there too). This way you don't have to worry about things like manually changing NPC Override script to correct one during ToB (notice that EET doesn't use hardcoded ToB expansion implementation but CAMPAIGN.2DA system instead which means hardcoded script swap is not working), disabling CRE file when it's no longer needed, receive proper fate spirit responses fallowing EET implementation (which differs compared to vanilla game since we are not spawning new CRE files but moves original NPCs from SoA), proper alphabetical name filtering on the Fate Spirit list etc.

 

As for the Gavin, jastey are you going to use the same DV for BG1 and BG2 or completely different ones? EET_NPC_TRANSITION would look slightly different depending on your implementation. It's explained in the Modder's Notes but I can help write the code for this if something is confusing there.

 

edit: wait, I may have confused the posts since the question was about Ajantis, not Gavin. I will take a look at it later today and write additional post regarding him.

Link to comment

Thanks for your answer. I am far from understanding all this. The question would for Ajantis and Gavin both, I guess.

 

Gavin: different DVs for BG1 and BGII

Ajantis: I guess it will be different DVs for BG1 and BGII, too. I did work on a "continuous DV" version but the complications this could lead to scare me too much.

 

The problem with EET_NPC_TRANSITION is that it doesn't allow for custom triggers at the fate spirit, e.g. to spawn the friend, the lover, or maybe deny spawning for evil PCs (as I do for Ajantis because I didn't write dialogues for this case).

Unless there would be a way to change the function to be able to account for this I don't have another choice than to do it all by hand?

 

I see Gavin BG1 is included, indeed. What exactly does this do? I assume it gives the possibility to ask for Gavin be spawned but spawning is refused because he wasn't there in BGII?

/////                                                  \\\\\
///// Gavin                                            \\\\\
/////                                                  \\\\\

ACTION_IF (FILE_EXISTS ~WeiDU-BGEE.log~) AND (FILE_CONTAINS ~WeiDU-BGEE.log~ ~GAVIN\.TP2~) BEGIN
	LAF ~EET_NPC_TRANSITION~
		INT_VAR
		type = 1
		STR_VAR
		dv = "B!GAVIN"
		override_BG1 = "B!GAVIN"
		string = "@5000003"
		stringPosDV = "HaerDalis"
	END
END

What would I do with this entry if I make Gavin BG2 EET compatible, which is a different mod with different DV but supposed to be the same character content wise?

Would it be "better" to include this in the Gavin mods themselves?

Link to comment

I think I handled Gavin-BGII EET compatibility as far as I want to.

 

The only thing remaining would be the Gavin entry in EET's transition.tph. Maybe change it to something like this. What I want to achieve is "do not add BG1-Gavin to the fate spirit summoning if BGII-Gavin is installed":

 

EDIT: I think I can handle this quite easily by setting of the summoning variable for installed BG2 mod. Am I assuming correctly that the variable for Gavin would be "GavinSummoned" ?

 

 

 

///// \\\\\
///// Gavin \\\\\
///// \\\\\

ACTION_IF (FILE_EXISTS ~WeiDU-BGEE.log~) AND (FILE_CONTAINS ~WeiDU-BGEE.log~ ~GAVIN\.TP2~) AND NOT (FILE_CONTAINS ~WeiDU-BGEE.log~ ~GAVIN_BG2\.TP2~) BEGIN
LAF ~EET_NPC_TRANSITION~
INT_VAR
type
= 1
STR_VAR
dv
= "B!GAVIN"
override_BG1 = "B!GAVIN"
string = "@5000003"
stringPosDV = "HaerDalis"
END
END

Link to comment

Archived

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

×
×
  • Create New...