Jump to content

Arkanis Gath


Recommended Posts

From BD:

 

The files MVALLY.BCS, MVALLY2.BCS and STDEATH.BCS are edited versions of the Baldur's Gate II: Throne Of Bhaal AI script files that control the appearance of Arkanis Gath if the player attacks the thieves or otherwise makes an enemy in Mae'Var's Guildhall while on a quest there. This causes Arkanis Gath to appear, and he will kill the player character instantly, ending the game, unless the player character has cast Protection From Magical Weapons on himself. These files are intended as bugfixes.

 

They resolve a bug where Arkanis Gath would continually respawn until there were literally hundreds of copies of him. The reason for this is that as he is designed to kill the protagonist instantly, and it was not planned that the protagonist might cast Protection From Magical Weapons thus becoming immune to Arkanis Gath's attacks, so there was no check done that he had already been spawned, therefore would spawn repeatedly.

 

They also resolve an error whereby he spawns even when the protagonist has not started officially working for Aran but is doing the thief stronghold quest, but then decides to work for Bodhi. He will even spawn after being killed in one of Bodhi's quests. As he is only present to prevent both avenues to Spellhold from being closed, he should not appear if the protagonist decides to wipe out Mae'Var's guildhall for whatever reason at this point.

 

Also note that although Arkanis Gath was designed to be unkillable, he can be killed by shapechanging into a Mind Flayer with the scroll of Shapechange or Limited Wish's "I wish to be anything..." option, then casting Protection From Magical Weapons and summoning, then attacking him. However, you could be unable to finish the game by doing this!

 

BD does this by modifying three scripts, mvally, mvally2, and stdeath. I've disabled the Gath spawns by adding False()s and then extended scripts as appropriate.

 

// disables Gath spawn from mvally
COPY_EXISTING ~mvally.BCS~ ~override~
 DECOMPILE_BCS_TO_BAF
   REPLACE_TEXTUALLY ~OR(2)~
                     ~False()~
 COMPILE_BAF_TO_BCS
EXTEND_TOP ~mvally.bcs~ ~bg2fixpack/baf/mvally.baf~

// disables Gath spawn from mvally2
COPY_EXISTING ~mvally2.BCS~ ~override~
 DECOMPILE_BCS_TO_BAF
   REPLACE_TEXTUALLY ~AttackedBy([GOODCUTOFF],DEFAULT)~
                     ~False()~
 COMPILE_BAF_TO_BCS
EXTEND_TOP ~mvally2.bcs~ ~bg2fixpack/baf/mvally2.baf~

// disables Gath spawn from stdeath
COPY_EXISTING ~stdeath.BCS~ ~override~
 DECOMPILE_BCS_TO_BAF
   REPLACE_TEXTUALLY ~Delay(1)~
                     ~False()~
 COMPILE_BAF_TO_BCS

 

mvally.baf:

 

IF
 OR(2)
   AttackedBy([GOODCUTOFF],DEFAULT)
   Allegiance(Myself,ENEMY)
 !Global("MaeVarExposed","GLOBAL",1)
 !Global("ArkanisComes","GLOBAL",1)
THEN
 RESPONSE #100
   SetGlobal("AttackedThieves","GLOBAL",1)
   Continue()
END

IF
 Global("ArkanisComes","GLOBAL",0)
 Global("AttackedThieves","GLOBAL",1)
 Global("WorkingForBodhi","GLOBAL",0)
THEN
 RESPONSE #100
   CreateCreatureObject("STDEATH",Player1,0,0,0) // Arkanis Gath
   SetGlobal("ArkanisComes","GLOBAL",1)
END

 

mvally2.baf:

 

IF
 OR(2)
   AttackedBy([GOODCUTOFF],DEFAULT)
   Allegiance(Myself,ENEMY)
 !Global("MaeVarExposed","GLOBAL",1)
 !Global("ArkanisComes","GLOBAL",1)
THEN
 RESPONSE #100
   SetGlobal("AttackedThieves","GLOBAL",1)
   Continue()
END

IF
 Global("ArkanisComes","GLOBAL",0)
 Global("AttackedThieves","GLOBAL",1)
 Global("WorkingForBodhi","GLOBAL",0)
THEN
 RESPONSE #100
   CreateCreatureObject("STDEATH",Player1,0,0,0) // Arkanis Gath
   SetGlobal("ArkanisComes","GLOBAL",1)
END

Link to comment

Will Arkanis Gath still attack in Chapters > 3? I'd say he shouldn't, since alienating the Shadow Thieves post-Brynnlaw isn't going to break the game and there's no reason crusader-types shouldn't be able to wipe out the Shadow Thieves after accepting their help.

Link to comment

Yeah, good call. Arkanis uses killpc.bcs as his override; rather than tracking down every instance where he's summoned we can EXTEND_TOP killpc:

 

IF
 GlobalGT("Chapter","GLOBAL",5)
THEN
 RESPONSE #100
   DestroySelf()
END

Link to comment

Archived

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

×
×
  • Create New...