"Varium et mutabile semper femina"
JAHEIRA
Introduction
I think that this name is familiar for all BG players. Some people hates her some almost love her - there are many opinions about this NPC.
Personally I'm one of her fans and that is why I spent so many time trying to resolve her script. I thing that she is the most improved NPC in BG2. Bioware's developers have done very good work (nevertheless her bugged script) - she has the best romance, the most interesting character and story. Someone else could disagree because he prefers Viconia or whining little Aerie but this is just MHO.
She is integral part of my PC's story - I really didn't know how many adventures my PC will spend with her after I saw her first time in Friendly Arm Inn. She acted firstly as guardian and friend when she was traveling with her husband Khalid and my PC - Manveru (at this stage I believe my PC had to prove that he is real leader of his party - J. is bossy hard girl that should know her place in hierarchy) , and later in BG2 after her life tragedy she became my PC's love . Now I'm again going through BG1 in aim to conclude the story.................
Sabre's Happy Romance scripts : HappyScriptv4-1.zip (For ToB and SoA)
Here is my patch for Jaheira's romance and Harpers quests : JaheiraRomance&HarpersPlotPatchV21.zip (available also in Baldurdash patch)
Here is the source script file of this patch (jaheira.baf) : SourceJaheiraScript.zip
Here are my modified Jaheira's pictures (I just like girls with darker hair) : JaheiraDark.zip
Here is greater version of JaheiraDark : LargeJaheiraDark.zip
They are compatible with ToB
News and description of my patch
:
2001 - July -06
Update of Sabre's multiromance/happy patch.
2001 - May - 30
Baldurdash patch contains of mine fixed Jaheira script.
2001 - April - 17
1) Fixed next loop in script : e.g. if Jaheira is really hard injured (below 15hp) after "dawning our day" dialogue, if Aerie is hard injured (below 10hp), if Jaheira wants to poke Edwina. I simply removed one condition for 3rd Dermin meeting and now he will appear just after Jaheira finishes talk with PC ("dawning our day") or after this dialogue and leaving any building.
2001 - April - 16
I've spent a lot of time testing this
patch. There are some important changes in comparison to original version or
Kevin Dorner's patch that was originally used by me to modify Jaheira's romance
and Harper quests. Changes are important for example in case of this fiend -
Dermin - he bear the blame for almost all loops in Jaheira's script. It will be
stuff of legend that I cannot count how many times I killed him and his band of
fools during tests (as well as mercenaries in Harper Hold) - my pit fiend
performs his work very nicely. However now this bad boy is
improved.
I) The changes are as follows :
Original Kevin Dorner's fixes :
{from his readme}
1. If she was involved in the "Harper Plot"
it was possible for one of two groups of Harpers to challenge her as she exited
from the Underdark to forest area AR2500. This would cause the elves visible in
the area to go hostile, including the leader Elhan, and the game could no longer
be completed as Elhan is required to admit the party to Suldanessellar. I
resolved this by placing missing area checks in the script that will prevent
this from occurring in this area and several others where the skitterish elves
are present, as well as the graveyard district so that the party is not
confronted by both the Harpers and vampires simultaneously.
2. Halved the
time between romance "Love Talks" from 3600 seconds to 1800 seconds. I did this
based on the average finish time for party players not rushing through the game
being 60-70 days, and for people trying to finish the Jaheira romance, their
average was 90-130 days.
3. Fixed a dialog error where, if she was
restored from vampirism, she would react as though she had been kicked out of
the party rather than being grateful.
4. Fixed a dialog error where if
she was kicked out of the party after the romance had concluded, she would react
as though the Harper Plot was still unfinished and say that the party had to go
to the Harper Hold.
5. Fixed "Terminsel" not appearing after the
romance's/Harper plot's conclusion, as the timer was originally defined as five
days REAL time, which is a long time!
My fixes :
1) Eliminated problem with
too many Terminsels appearing on the screen after romance conclusion and "Good
morning" dialogue loop - now we receive Harper pin only one time as well as
there is only one "Good morning" dialogue (or this second one if we don't sleep
with Jaheira). The highest LoveTalk value is now 71.
2) Eliminated
problem with not appearing "Dawning our day" dialogue - I enabled one more
dialogue that connect events after 1st visit of Terminsel and rejoining with
Jaheira in Harper Hold with mentioned "Dawning our day...".
3) Now Dermin
could appear only in certain moments of romance. (1st meeting after "There is an
ill wind" dialogue, 2nd meeting after "How.. how did your last battle", 3rd
meeting after "Dawning our day" dialogue) It means that everyone could sleep
even 1000 game days and romance still will be OK.
4) If we romance
Jaheira all events in Harper quests depends on real time.
5) If our
romance is over in any time then Harpers quests continue, so one could obtain
Harper pin even if he stopped his romance at very advanced stage (e.g. after
some small nookie with Phaere in Underdark). Actually I had to write separate
conditions for romance and for playing without it. Game developers tried to do
it in one condition what caused all this mess with too early appearing Dermin or
Reviane.
II) Known problems that may occur (with possible
solutions) :
1) One loop that I wasn't able to fix in script :
e.g. If Jaheira is really hard injured (below 15hp) after "dawning our day"
dialogue, If Aerie is hard injured (below 10hp), If Jaheira wants to poke
Edwina. But there is solution : Just sleep somewhere outside dungeons and after
one or two rests you should meet Dermin 3rd time. After killing him everything
should be ok. (now it is fixed in my
patch)
2) If user tries to force suddenly some action after party
rest several dialogues may be looped (e.g. not appearing "Good morning" dialogue
if we end rest movie too suddenly) - only good solution for this is to load
earlier savegame.
3) If there are still any problems with not appearing
Dermin, Reviane or Terminsel (nevertheless proper romance dialogues) then use
the following CLUAConsole commands :
(These solutions are also good for
Harper quests without romance)
But here is one warning : Do not use this
codes when you haven't proper dialogues before it - If you use these commands
too early it will mess both romance and Harpers quests
If Dermin hasn't
appeared first time
:
CLUAConsole:SetGlobal("DerminSpawn","GLOBAL",1)
CLUAConsole:SetGlobal("DerminAppear","GLOBAL",1)
If
he hasn't met with Jaheira 2nd time
:
CLUAConsole:SetGlobal("DerminSpawn","GLOBAL",3)
CLUAConsole:SetGlobal("DerminAppear","GLOBAL",1)
If
he hasn't appeared 3rd time
:
CLUAConsole:SetGlobal("DerminSpawn","GLOBAL",5)
CLUAConsole:SetGlobal("DerminAppear","GLOBAL",1)
Not
appearing Reviane :
She should appear after dialogue
lovetalk=34
CLUAConsole:SetGlobal("RevianeSpawn","LOCALS",1)
CLUAConsole:SetGlobal("RevianeAppear","GLOBAL",1)
Not
appearing Terminsel (2nd time)
:
CLUAConsole:SetGlobal("TerminselSpawn","GLOBAL",4)
CLUAConsole:SetGlobal("TerminselAppear","GLOBAL",1)
4)
Possible problem with Harper Hold closed doors - I haven't this problem during
my games. Everything in scripts seems to be logical and correct.. (but for 90%
I'm mistaken)
III) Not appearing next romance
dialogues :
It could be caused by :
- You have finished the whole
romance (LoveTalk=71 in my patch or 70 originally)
- There are other
conditions that should be satisfied (rest, to be outside city, meet certain
person etc.)
- User somehow interrupted dialogue appearance. There is the
following solution
:
CLUAConsole:SetGlobal("JaheiraRomance","Global",1)
forces next
dialogue to appear (but if there are more conditions than time then it will not
appear until everything is satisfied)
IV) Fixing
already bugged romances :
There are several cases when using
CLUAConsole is necessary to move on the romance :
-If someone killed
Dermin before he had Dawning our day then he should use the following
:
CLUAConsole:SetGlobal("Lovetalk","LOCALS",59) enter this in CLUAConsole and
press enter when pointer indicates Jaheira.
You will loose some
dialogues but romance will progress further.
-Too may Terminsels on the
screen : CLUAConsole:SetGlobal("Lovetalk","LOCALS",71) enter this in CLUAConsole
and press enter when pointer indicates Jaheira.
If it doesn't work
write also : CLUAConsole:SetGlobal("TerminselSpawn","GLOBAL",5)
Manveru's musings about Jaheira's script
Other information that I have gathered during Jaheira's script analysis :
Files description with respect to Jaheira's story
:
Scripts :
AR0300.bcs - script that controls Rylock and probably the
Harper Hold doors
AR0308.bcs - script that puts Galvarey in Harper Hold
as well as mercenaries that are there when we go for Jaheira after 1st meeting
with Terminsel.
Renfeld.bcs - script that controls Renfeld (guy that starts
Harper quests - we have to take him to Rylock that guards the doors to Harper
Hold).
Jaheira.bcs - script that generally controls Jaheira's romance
progression and Harper quests.
Jaheirad.bcs - script that controls two
important moments in romance (dialogue : "It is about time we rested. I have
seen enough waking hours, thank you very much." lt=58 - JaheiraRomanceActive
changed to 2, and " Can I... I would... *ahem* Hear my words while I have the
nerve." lt=68 - sleep or not to sleep with her)
Vampjah.bcs - script that
controls Jaheira during fight in Bodhi's lair
Dialogues
:
bodhiamb.dlg - dialogue with Bodhi before we loose romance
interest.
bjaheir.dlg - romance dialogues, interactions
dialogues
jahaboam.dlg - locket dialogues
dshop02.dlg - dialogue with guy
that sells locket
jaheira.dlg - dialogues at the beginning of the game
(Irenicus's dungeon)
jaheiraj.dlg - Dermin/Ployer/Khalid/reverse
vampirism/Phaere/ bandit plot dialogues
jaheirap.dlg - rejoin in Harper
hold/joining or kicking from the party dialogues
jamerona.dlg - dialogue with
Meronia
jameroni.dlg - dialogue with Meronia
jagalvar.dlg - dialogue with
Galvarey
jaertof.dlg - dialogue with bandits
jarevia.dlg - dialogue with
Reviane
jatermin.dlg - dialogues with Termisel
jadermin.dlg - 2nd dialogue
with Dermin
player1.dlg - dialogues with Jaheira after PC attacks her in
slayer form in Asylum and dialogues before 2nd battle with Irenicus (generally
dialogues and information concerned around the PC as child of Bhaal)
baronp.dlg - dialogues with Baron Ployer.
Meaning of variables and their values (valid
for Kevin Dorner's patch and original files - there are some more changes in my
patch) :
Of course all mentioned variables values can be changed using CLUAConsole in form : CLUAConsole("variablename","GLOBAL",value)
JaheiraHarperPlot : controls Jaheira's Harper quests.
0 -
no Harper plot
1 - set when Xzar's / Rylock's quests are finished and in case
of romance additionally Bandit plot is finished
2 - Jaheira returns to
the party (after Meronia's call)
3 - set after she returned to the
party
CloseHarperDoors : value 1 for opened doors value 0 for closed
(that is as I think)
HarperHold : timer for Jaheira's reminding about
going to Harper Hold
ReturnToHarpers : Jaheira reminds PC to go to Harper
Hold. When it reaches value
JaheiraBanditPlot :
1 - bandits
appears outside the city after rest.
2 - after bandits appearance.
9
- after dialogue with Jaheira
10 - bandit plot finished
GalvareySpawn
:
1 - Galvarey and his lackeys appeared in Harper Hold
(AR308.bcs)
JaheiraAbandoned : used to check if she left the party during
the battle with Galvarey (because of low reputation or we told her that she was
blame of this situation).
1 - she left
JaheiraTraitor : used to
determine if she fought with PC vs Galvarey
1 - she fought with
PC
RevieneAppear - timer for Reviane
RevieneSpawn : (local
variable)
1 - after Galvarey's death
2 - Reviane
appeared
DerminAppear - timer variable for Dermin (in game
time)
DerminSpawn :
1 - set after death of Galvarey with counter 5
days of game time (if there are no romance), or after lovetalk=40 dialogue
2
- change to this value after 5 days + 1st dialogue with Dermin or after
lovetalk=40 (Jaheiraj.dlg file with this dialogue)
3 - value after dialogue -
2nd meeting with Dermin after 6 days of game time
4 - after 6 days + 2nd
dialogue with Dermin (jadermin.dlg)
5 - value after 1st meeting with
Termisel. (jatermin.dlg)
6 - change to this value after 2 days of gametime.
3rd meeting with Dermin.
7 - after dialogue with Dermin during 3rd meeting
(Jaheiraj.dlg)
8 - when we kill Dermin and co.
9 - After dialogue with
Jaheira (Jaheiraj.dlg). Condition for 2nd Terminsel's appearance.
10 - After
2nd Termisel visit
TerminselAppear - timer variable for Termisel (in game
time)
TerminselSpawn:
1 - set after 2nd meeting with Dermin
(jadermin.dlg)
2 - set if party rests outside the city (Jaheira goes to
Harper Hold)
3 - set after we rejoin with Jaheira in Harper Hold.
4
- set when Dermin was killed and JaheiraRomanceActive=2 (lovetalk>58).
Terminsel will appear after 5 days of game time.
JaheiraNookie :
1 -
PC had night of pleasure with Jaheira.
0 - PC was fool and didn't sleep with
her.
JaheiraVampire :
1 - Jaheira kidnapped by Bodhi.
2 -
Jaheira fights vs PC
3 - Jaheira vampire died (vampjah.bcs)
4 - dialogue
when Jaheira is resurrected and her vampirism is removed.
5 - after
dialogue
JaheiraHunt : strange variable that has value 1 if at the very
beginning you will tell her not to join the group after releasing her from cage.
(Jaheira.dlg)
JaheiraReleased : checks whether Jaheira was released from
her cage (value 1) or not (value 0). (Jaheira.dlg)
JaheiraJerk : set to 1
if we tell Jaheira that we take new path in life (in meaning to be more evil) or
something unpleasant and then we release her and join to the party.
(Jaheira.dlg)
EndangerLovedOne : set after 1st slayer change (player1.dlg
)
1- for Jaheira
2- for Aerie
3- for Viconia
4- for
Anomen
JaheiraMad1 :
JaheiraMad2 :
JaheiraMad3 :
one
of these variables is set to one after Phaere tries to seduce PC. It depends on
what result she obtained (variable PhaereInneuendo value)
(Jaheiraj.dlg)
KickedOut :
Jaheira kicked out of the party by PC
(value 1) or not (value 0). If it is 1 it always ends the romance.