Another update. Mod is now v1.3.
No change to the core component.
Added a new component: Standard vampire encounters fix.
Some more info on this new component; here is a, admittedly copied almost verbatim, post of mine from the
G3 fixpack forums. I posted there some time ago, but there was no reply and there generally does not seem to be much activity there at the time of writing, so I took it upon myself to make the small change required to create this 'fix':
I've very recently started to try and learn to mod BG2, and my first idea was about an additional shadow thief/vampire encounter. Someone suggested looking up VAMPSTTP.BCS to see how the events already in the game work out.
Upon further examination I think there's something a little odd going on here. The problem does not break anything but it limits options for the player needlessly. Or, rather, if the player picks a particular route, he loses out on content he shouldn't.
The following is the format that the code takes for each of the 5 encounters, and taking the 4th such encounter in particular:
IF
Detect([PC])
Range([PC],20)
OR(3)
Global("AmaWaukeen","GLOBAL",0)
Dead("shthass1") // Ama
!AreaCheck("AR0700")
CombatCounter(0)
GlobalLT("Chapter","GLOBAL",4)
Global("VampShadWar","GLOBAL",4)
Global("WorkingForBodhi","GLOBAL",0)
GlobalTimerExpired("VampShadTimer","GLOBAL")
OR(2)
TimeGT(24)
TimeLT(DAWN_START)
THEN
RESPONSE #100
SetGlobal("VampShadWar","GLOBAL",5)
SetGlobalTimer("VampShadTimer","GLOBAL",3600)
CreateCreatureObject("VVTANOV",Myself,0,0,0) // Tanova
CreateCreatureObject("VVMALE3",Myself,0,0,0) // Vampire
CreateCreatureObject("VVMALE4",Myself,0,0,0) // Vampire
ActionOverride("VVTANOV",MoveToObject([PC]))
ActionOverride("VVMALE3",MoveToObject([PC]))
ActionOverride("VVMALE4",MoveToObject([PC]))
END
The Workingforbodhi being checked to be 0 should not be there. That whole line, i think, should be removed. There is actually dialogue that deals with the case that the player may be aligned with bodhi.
Again, taking the dialogue relevant to the above event:
BEGIN ~VVTANOV~
IF ~NumTimesTalkedTo(0)~ THEN BEGIN 0 // from:
SAY #41348 /* ~You! Stand and declare your allegiance! Are you Shadow Thief?~ */
IF ~~ THEN REPLY #41350 /* ~What? Why are you asking?~ */ GOTO 1
IF ~~ THEN REPLY #41351 /* ~Out of my way. I have no time for this.~ */ GOTO 1
END
IF ~~ THEN BEGIN 1 // from: 0.1 0.0
SAY #41352 /* ~A yes or no is all that is required! Declare your allegiance! Are you Shadow Thief?~ */
IF ~Global("WorkingForBodhi","GLOBAL",1)~ THEN REPLY #41354 /* ~Yes, I currently work for the Shadow Thieves~ */ GOTO 2
IF ~Global("WorkingForBodhi","GLOBAL",0)
Global("WorkingForAran","GLOBAL",0)~ THEN REPLY #41355 /* ~Yes, I currently work for the Shadow Thieves~ */ GOTO 3
IF ~Global("WorkingForAran","GLOBAL",1)~ THEN REPLY #41356 /* ~Yes, I currently work for the Shadow Thieves~ */ GOTO 3
IF ~Global("WorkingForBodhi","GLOBAL",1)~ THEN REPLY #41358 /* ~I do not have allegiance to any such guild.~ */ GOTO 4
IF ~Global("WorkingForBodhi","GLOBAL",0)
Global("WorkingForAran","GLOBAL",0)~ THEN REPLY #41359 /* ~I do not have allegiance to any such guild.~ */ GOTO 5
IF ~Global("WorkingForAran","GLOBAL",1)~ THEN REPLY #41360 /* ~I do not have allegiance to any such guild.~ */ GOTO 7
IF ~Global("WorkingForBodhi","GLOBAL",1)~ THEN REPLY #41361 /* ~I work for Mistress Bodhi. Are you threatening me?~ */ GOTO 8
END
I have omitted the rest of the dialogue for brevity, but you can clearly see that just in case "WorkingForBodhi" is 1, the game still works it all out fine.
As it stands, if and once you side with Bodhi, these events will cease to happen, and I can't see any reason why they should; clearly niether did the developers since they included the dialogue lines.
In fact, the 'unfinished business' mod adds 2 more encounters to these original 5, and omits this very line i'm talking about within its conditons, whilst including all the rest, just as I do.
The same problem exists in all 5 of the original encounters, and it seems to me that all you need to do is remove that variable check.
So I went ahead and removed that variable check. Not much more to it than that, despite my verbose explanations.
I just want to be clear though. So, if anyone sees a flaw in either my justification, or in my code, if you care to look, let me know. And of course post if something goes wrong in-game.