Jump to content

SR Revised V1.3.900 (2022 August 8th)


Recommended Posts

47 minutes ago, Bartimaeus said:

even though the invisibility-dispelling literally function via the same opcode (...I'm fairly sure, anyways - if it's not, it might as well be for all the difference between the two different invisibility-dispelling opcodes

Neither here nor there but there are actually three invisibility-dispelling opcodes. :p  47 and 116 are identical, while 136 is slightly weaker. Plus you can dispel the ILLUSIONARYPROTECTION sectype with opcode 221. And for good measure, there is opcode 160 to remove Sanctuary. 

Link to comment
18 minutes ago, subtledoctor said:

Neither here nor there but there are actually three invisibility-dispelling opcodes. :p  47 and 116 are identical, while 136 is slightly weaker. Plus you can dispel the ILLUSIONARYPROTECTION sectype with opcode 221. And for good measure, there is opcode 160 to remove Sanctuary. 

I should be able to run tests tonight to see how scripts react to SRs invisibility with Tome & Blood revised invisibility and True Sight installed. Fingers crossed it provides useful information.

Link to comment

@Bartimaeus @subtledoctor Okay, so I ran a test against Kahrk in the Firewine Bridge, and scripts were not able to target him with spells. 

Per SCS and SRR, he casts the following spells: Mirror Images, Haste, Minor Globe of Invulnerability, Shield, Stoneskin, Non-Detection, and PfMW. Mods installed are: EET, IRR, SRR, SCS, and Tome and Blood w/ Invisibility & True Sight improvements.

I expected, that with the spells present that my characters would cast Breach, then begin attacking. Instead my characters sat around because the spell targeting wasn't working and they were not able to damage Kahrk with physical weapons yet (as I scripted). I had to manually cast Breach to take down PfMW, and then they began attacking automatically via the scripts. Spells available to my characters to cast were: Spell Thrust, Secret Word, Breach, Pierce Magic, KWW, RRR, and Pierce Shield. 

I suspect with high certainty now that Non-Detection is causing some issues with script targeting of spells. Please note, no invisibility spells were cast, so there should be no reason why my characters did not target Kahrk with spells. I also manually deleted opcode 69 for testing and that also didn't remediate the issue.

UPDATE 1: Uninstalled Tome and Blood, and attempts to target Kahrk with SRR non-detection were unsuccessful. Attempts were made both with and without opcode 69 with no success.

UPDATE 2: Removed Modify Script State (282) and that had no effect either.

Edited by morpheus562
Link to comment

Wait, hold on a second: he didn't cast any kind of invisibility, and also you removed the opcode 69, and your scripts still wouldn't target him? Uh...what other opcodes are on your Non-Detection? Oh wait, hold on, now that I think about it, I'm pretty sure if Non-Detection is pre-cast, then SCS uses a special instant cast version (or something) of the spell under its own resource name - try locating that and removing opcode 69 from it as well and try again. Shouldn't be too difficult to find by just searching for "Non-Detection" via DLTCEP or Near Infinity.

Edited by Bartimaeus
Link to comment
13 minutes ago, Bartimaeus said:

Wait, hold on a second: he didn't cast any kind of invisibility, and also you removed the opcode 69, and your scripts still wouldn't target him? Uh...what other opcodes are on your Non-Detection? Oh wait, hold on, now that I think about it, I'm pretty sure if Non-Detection is pre-cast, then SCS uses a special instant cast version (or something) of the spell under its own resource name - try locating that and removing opcode 69 from it as well and try again. Shouldn't be too difficult to find by just searching for "Non-Detection" via DLTCEP or Near Infinity.

You actually read my mind and those were going to be my first steps next morning. SCS does have a number of them, I think three. I am going to go into the character file tomorrow, go into the script, and grab the exact one being used by SCS. Will post more results tomorrow when I have them.

Edited by morpheus562
Link to comment
6 hours ago, morpheus562 said:

Mods installed are: EET, IRR, SRR, SCS, and Tome and Blood w/ Invisibility & True Sight improvements.

Sorry to undercut the premise of the test, but I think install order is wrong here. Tome & Blood only modifies SPWI310... not DW#310 or whatever SCS’ clone is. I’m pretty sure Kahrk casts the SCS cloned version. I think. Which means Kahrk was under the effect of opcode 69 in your test. So we still don’t know if the issue is opcode 69 or opcode 193  

If TnB is installed before SCS, it will clone the modified version of SPWI310 which has the opcode 69 effect removed. 

Sorry I didn’t make that clear. If you still have that set up, I don’t think it needs a reinstall; just manually removing the opcode 69 effect from the DW#___ version of Nondetection will probably do the trick. 

EDIT - okay, you guys got there before I finished typing this...

Edited by subtledoctor
Link to comment
1 hour ago, subtledoctor said:

Sorry to undercut the premise of the test, but I think install order is wrong here. Tome & Blood only modifies SPWI310... not DW#310 or whatever SCS’ clone is. I’m pretty sure Kahrk casts the SCS cloned version. I think. Which means Kahrk was under the effect of opcode 69 in your test. So we still don’t know if the issue is opcode 69 or opcode 193  

If TnB is installed before SCS, it will clone the modified version of SPWI310 which has the opcode 69 effect removed. 

Sorry I didn’t make that clear. If you still have that set up, I don’t think it needs a reinstall; just manually removing the opcode 69 effect from the DW#___ version of Nondetection will probably do the trick. 

EDIT - okay, you guys got there before I finished typing this...

Tome and Blood was my very last install, is that not correct? I'll get to testing here shortly and post what I find out.

Link to comment
13 minutes ago, morpheus562 said:

Tome and Blood was my very last install, is that not correct? 

No, generally it needs to be installed before SCS, so that the changes it makes will be adopted by SCS mechanisms. 

Like I say though, rather than reinstall SCS, in this case you can probably just do a search in NI for spells called “nondetection” and open the ones with a “DW” prefix, and manually remove any opcode 69 effects they have. 

Link to comment

Well that's interesting. But I'm a bit confused about a couple things:

1) Why did Kahrk cast Nondetection if he was not invisible? That makes little sense... though I guess ND is a long-duration buff, so SCS is likely to have it pre-cast, and if he decides to go invisible during the fight it would be helpful. But as things stand, it is of no value.  (Though, with Tome & Blood installed, Nondetection will actually protect his Mirror Images from being removed. So it's almost like SCS works better with my mod than without! :O )

That's nothing to do with your scripts, I just found it interesting.

2) More on-topic: you didn't mention what effects your party was under during the test. If Kahrk was totally visible, then what was stopping your casters from taking action? Like, in your second test Kahrk is not invisible, and not under Nondetection... so I don't understand what the problem is.

Maybe, can I presume that you had cast True Seeing on your party? Even though Kahrk did not end up being invisible?

So if you want to do a follow-up test, it would be to look at two the scripts handle a visible enemy. First, with SR True Seeing active - my assumption is, that is the test you just reported. Now, edit the True Seeing spell to remove any opcode 193 effects, and run the test again with everything else as it is now (i.e. with the opcode 69 and 282 effects removed from DWSW310.spl).

If opcode 193 prevents scripted spellcasting against visible opponents... that seems important to know!  Certainly something that should probably go in the IESDP

Link to comment

My characters both had True Seeing and Detect Invisibility available, but neither were cast because Kahrk was visible. The only spells my two characters had cast were stoneskin and mirror images (pre-fight).

UPDATE 1: Attempted with True Seeing active and no luck. 

UPDATE 2: Removed opcode 193 from True Seeing with no luck.

Edited by morpheus562
Link to comment
38 minutes ago, morpheus562 said:

My characters both had True Seeing and Detect Invisibility available, but neither were cast because Kahrk was visible. The only spells my two characters had cast were stoneskin and mirror images (pre-fight).

UPDATE 1: Attempted with True Seeing active and no luck. 

Whoa. This started out as "casters don't target Improved Invisible targets when they should" (IIRC?) but I think something else entirely is going on. Here is a simple case of a mage with Shield, MI, Haste, SS, MGOI, and PfMW up. I'd have to guess it's down to either a) something about the Breach targeting conditions of the script itself, or b) something about one of those defenses, maybe a script state applied by SR or SCS or something like that. Harder to pin down now, but those six spells are what I would look at.

In fact, I have ST/TnB/SCS installed in a game right now, so I can take a peek. Huh. Only thing that jumps out at me is Shield, which has an opcode 282 'Modify Script State' effect.

EDIT - that 282 effect on Shield is not added by SR, though...

EDIT 2 - or perhaps it's something about Kahrk in particular that is throwing the test off... man, I like m aking mods but testing stuff in this engine is super annoying.

EDIT 3 - interesting, I never bothered to inspect Kahrk's .CRE file before. He wears MAGEAMUL.itm, which auto-casts MGOI, and MAGEBRAC.itm, which auto-casts a custom version of Pro Normal Missiles... I guess Beamdog's half-hearted attempt to replicate SCS-style pre-buffing. Also MAGE06.itm, which has a while-equipped Haste effect.  Also his class is "ogre_mage," which I didn't know was a class. (Why not just make him a fighter/mage?)

But I don't see any applied effects - at all - so nothing that would mess up the test as far as I can tell.

Edited by subtledoctor
Link to comment

I wonder if SCS not installing the component when SR is detected to allow anti-magic spells to always be able to always pierce through improved invisibility is causing an impact? Does it only pierce just improved invisibility or does it impact other aspects too? I wonder if adding it in will resolve the issue.

Edited by morpheus562
Link to comment
8 minutes ago, morpheus562 said:

I wonder if SCS not installing the component when SR is detected to allow anti-magic spells to always be able to always pierce through improved invisibility is causing an impact? Does it only pierce just improved invisibility or does it impact other aspects too? I wonder if adding it in will resolve the issue.

No, if SR is detected then SCS does not change player versions of the MAGICATTACK spells to target invisible characters. But IIRC enemy mages will use versions that can target invisible players.  But, also IIRC, even without SR  those SCS changes only affect Spell Thrust, Secret Word, Pierce Magic, etc. Not Breach.

And anyway Kahrk wasn't invisible in your test (or improved invisible). So your scripts refusing to cast Breach seems to be unrelated to invisibility or improved invisibility.

Edited by subtledoctor
Link to comment

Here is the script component that I am using for Breach. I have this cycle 6 times to see the 6 nearest enemies. I am in the process of updating these to tailor it specifically to SRR, so expect to see checks for spell turning and spell deflection to be updated since this was changed around. These do work 100% without SRR installed. Please note: I normally do a check to only cast if the enemy is visible; however, for this testing I removed it. Want to get rid of as many variables as possible.

IF
	IfValidForPartyDialog(Myself)
	!GlobalTimerNotExpired("MO_SpellCast","LOCALS")
	HaveSpell(WIZARD_BREACH)  // SPWI513.SPL (Breach)
	See([EVILCUTOFF])
	OR(4)
		CheckSpellState(LastSeenBy(Myself),PROTECTION_FROM_MAGICAL_WEAPONS)
		CheckSpellState(LastSeenBy(Myself),ABSOLUTE_IMMUNITY)
		CheckSpellState(LastSeenBy(Myself),IMPROVED_MANTLE)
		CheckSpellState(LastSeenBy(Myself),MANTLE)
	!CheckSpellState(LastSeenBy(Myself),SPELL_SHIELD)
	CheckStatLT(LastSeenBy(Myself),1,SANCTUARY)
	CheckStatLT(LastSeenBy(Myself),1,WIZARD_SPELL_TURNING)
	CheckStatLT(LastSeenBy(Myself),1,WIZARD_SPELL_DEFLECTION)
	CheckStatLT(LastSeenBy(Myself),1,WIZARD_SPELL_TRAP)
	CheckStatLT(Myself,20,SPELLFAILUREMAGE)
	!StateCheck(Myself,STATE_SILENCED)
	!CheckStatGT(Myself,0,CLERIC_INSECT_PLAGUE)
	Global("MO_CastAthkatla","LOCALS",1)
	!CheckSpellState(Myself,WILD_MAGIC_AREA)
	!CheckSpellState(Myself,DEAD_MAGIC_AREA)
THEN
	RESPONSE #100
		SetGlobalTimer("MO_SpellCast","LOCALS",ONE_ROUND)
		SetInterrupt(FALSE)
		Spell(LastSeenBy(Myself),WIZARD_BREACH)  // SPWI513.SPL (Breach)
		SetInterrupt(TRUE)
END

 

Edited by morpheus562
Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...