Jump to content

Un-Breachable lich and other enemies - possible bug


damgo

Recommended Posts

Hi,

 

I'm playing through BG2 with SCSII for the first time and really enjoying it. Unfortunately I've started to come across a really nasty bug; I'm not certain whether it's due to SCSII but I thought I'd ask here first because it seems to be.

 

The issue is that some enemies are not Breachable. So far, I've verified this with the lich in the Crooked Crane, and with DW#LICH1 from the console. But there've been a couple others that seemed to be doing it -- the human mage in the Guarded Compound, and Kuroisan from Tactics. I strip them of their spell protections, which works fine -- dw#lich1 always seems to precast Spell Turning+SI:Divination, and True Sight won't reveal him until after I wipe out both spell protections. At that point, Breach should work, but it doesn't. I cast the spell, but get no message (no "combat protections removed") and his stoneskin, fireshield, etc stay up.

 

I've tested further by adding him to the party with ctrl-Q, and he does indeed have all his non-spell prots up, with no others, and Breach won't remove then. Oddly, though, if I clear him out with ctrl-R and *then* have him recast some combat protections, Breach WILL remove those. (He still maintains his builtin immunity to lvl 1-4 spells and lvl 5 spells except breach.)

 

This is rather annoying, as it makes such enemies very difficult to legitimately beat, short of just waiting for their protections to expire. Can anyone help?

 

-----

 

One further issue I've noted, which may or not be related. Spell Shield seems bugged in my game... it seems unremovable. When my PC casts spell protections + spell shield, spell protection removals seem to do nothing to him. I've had him take multiple Spellstrikes and and still have his spell protections functioning. This is less annoying, since I've not run into anyone using SS yet, and I can just avoid using it myself.

 

(I thought at first that DW#Lich1 and Kuroisan were using Spell Shield, because the icon showed up when I ctrl-Q'd them. But it turns out it was just the wrong icon showing up for protection from magical energy. I have the component from the Fixpack that's supposed to fix a bug with the icon mixup installed, and I'm assuming there's some weird issue with that causing the mixup here.)

Link to comment

Aha! I seem to have found the source of the problem, at least for this case. The lich's script, dw#LconL.bcs, starts out with a block

 

IF
!Global("LichImmunities","LOCALS",1)
THEN
RESPONSE #100
	SetGlobal("LichImmunities","LOCALS",1)
	ApplySpellRES("dw#licim",Myself) // No such index
	Continue()
END

 

When I looked at dw#licim.spl, it includes a slew of immunities, including immunities to spell levels 1-5. Deleting the immunity to spell level 5 cleared the problem up.

 

As far as I can tell, there's no reason to call dw#licim.spl at all. Those immunities seem to all be already included via lich.itm (which is changed by the "more consistent breach" component.)

 

Can someone confirm whether this is a bug in SCSII? Or is it just a problem with my install? Thanks,

 

-damgo

Link to comment

I can confirm it's a bug in SCSII and that your diagnosis is correct. (Specifically, if indirectly, it's a bug in the "systematise breach" component.)

 

When RL lets up enough for me to finish off the new version, I'll sort it out. Till then, apologies.

 

(The reason for calling "dw#licim" is mostly to do with clones and the like. Note that liches are supposed to be immune to L5 spells - it's just that with the SCSII "systematise breach" component, breach is supposed to be an exception, and isn't.)

Link to comment

David, Jarno,

 

Thanks! It's pleasant to know that I hadn't just screwed my install somehow. :suspect: I'll let you know if I see this issue anyplace else.

 

-damgo

 

BTW, on calling dw#licim, shouldn't clones spawn with their ancestor's items (and hence immunities)? Or is this to take into account the fact that saved/reloaded clones seem to lose their items?

Link to comment
Guest persocom01

I have the spellcasting demiliches component and it seems that I can't breach him either. I didn't actually install the most consistent breach component but I tried multiple castings of remove magic. (which used to be the only way to breach liches in an unmodded game) Is that a bug too?

Link to comment

Another player have complained on liches, so I'll post a fix till the next version.

 

 

1) Make a txt file in your game directory, copy the code inside and save as setup-mymod.tp2

2) Download the latest version of WeiDU from www.weidu.org, put weidu.exe into your game directory

3) Rename weidu.exe to setup-mymod.exe and run

Mymod - you can use any other name, if you please

BACKUP ~scs_fix~
AUTHOR ~Gibberlings3~
BEGIN ~Breach fix~
INSTALL_BY_DEFAULT

COPY_EXISTING dw#licim.spl override
 i=0
 GET_OFFSET_ARRAY eff 0x6a 4 0x90 2 0 0 0x30
 PHP_EACH eff AS ind => res BEGIN
PATCH_IF SHORT_AT res = 102 && LONG_AT (res+4) = 5 BEGIN
  SET $delete("%i%")=res
  i+=1
END
 END
 WRITE_SHORT 0x90 SHORT_AT 0x90 - i
 PHP_EACH delete AS ind => res BEGIN
DELETE_BYTES res 0x30
 END
 PATCH_FOR_EACH spell IN SPDR501 SPWI508 SPWI503 SPWI506 SPWI514 SPWI523 SPPR503 SPPR517 SPPR505D BEGIN
LPF ADD_SPELL_EFFECT INT_VAR opcode=206 target=1 timing=1 parameter1=~-1~ STR_VAR resource=EVAL ~%spell%~ END
 END

Link to comment
Another player have complained on liches, so I'll post a fix till the next version.

 

That should be in about 24 hours.

 

Cool. May I ask then two things?

 

1. Have you included the check we were discussing here? If yes, do you use the "dvitem_main.mrk" or Mike's suggestion?

 

2. Will SCSII still overwrites SIMULACR.SPL or you're opting for aVENGER's suggestion?

 

Sorry to bother you, but I think it's better now than after the release. :suspect:

Link to comment
Another player have complained on liches, so I'll post a fix till the next version.

 

That should be in about 24 hours.

 

Cool. May I ask then two things?

 

Sure, though the files have gone to Ace already.

 

1. Have you included the check we were discussing here? If yes, do you use the "dvitem_main.mrk" or Mike's suggestion?

 

Yes; Mike's suggestion.

 

2. Will SCSII still overwrites SIMULACR.SPL or you're opting for aVENGER's suggestion?

 

Still overwriting. I didn't see this till I'd already packaged SCSII, but even if that hadn't been the case, I'm loath to put lots of effort and testing into changing an aspect of SCSII that took quite a lot of work to get correct but is now stable. I'm also concerned that getting Avenger's method to work will be quite fiddly if glitchiness is to be avoided. If you or someone else wants to do the work, I'll consider including it. Failing which, if you want to constrain Simulacrum I suggest doing it at script level.EXTEND_TOPping d0simul.bcs to cast a custom spell would probably do it (though I'm writing from work so I'm not 100% certain).

Link to comment

A question about Spell Revisions compatibility. After

ACTION_IF FILE_EXISTS_IN_GAME ~dvdeathk.cre~ THEN BEGIN

there is

REPLACE_TEXTUALLY ~dvdeathk~ ~dw#demiv~ (8)

This results in non-existing item named DW#NABSU.ITM for DW#NABSU.CRE (source - Miloch's CRE Fixer). Shouldn't

COPY_EXISTING ~dvdeathk.itm~ ~override/dw#demiv.itm~

be added to this check?

The same situation with DW#DVEFR ITM and CRE.

Link to comment
A question about Spell Revisions compatibility. After
ACTION_IF FILE_EXISTS_IN_GAME ~dvdeathk.cre~ THEN BEGIN

there is

REPLACE_TEXTUALLY ~dvdeathk~ ~dw#demiv~ (8)

This results in non-existing item named DW#NABSU.ITM for DW#NABSU.CRE (source - Miloch's CRE Fixer). Shouldn't

COPY_EXISTING ~dvdeathk.itm~ ~override/dw#demiv.itm~

be added to this check?

The same situation with DW#DVEFR ITM and CRE.

 

Okay, this puzzled me for a while, but I think you've mistyped (if not, I haven't a clue). I think you meant to say "a non-existent item named DW#DEMIV.

 

If so, then that's highly plausible, assuming Demi's death knight uses the same name for its script as for its item. I don't usually test compatibility requests extensively, I just do as I'm told :suspect: Your fix isn't the ideal way to correct it (though it will work).

Link to comment

Archived

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

×
×
  • Create New...