Jump to content

SR Revised V1.3.900 (2022 August 8th)


Recommended Posts

I think I changed my spell deflection numbers from 6/9/12 to 6/10/14 (each double their own level at 3, 5, and 7 respectively, to at least maintain comparative spell level efficiency), though it's not in SRR.

 

For Chain Lightning AoE's effect, it seems to me that the secondary spell with the AoE projectile (spwi615e, and spdr601e) is the one that actually needs to be selected by the AoE spell deflection subcomponent, but I don't think it would currently work with it due to how the cloning function works regarding names. The cloning function seems to use the base name of the file (in this case spwi615e), and then add another letter on it. This is fine for spells with only 7 characters (e.g. spwi615), but for secondary effects that already have 8 characters (as 8 characters is the maximum), it wouldn't look to work.

 

(e):

For subtledoctor again:

  1. skelgrsu appears to be set to the wrong gender in SR (i.e. not summoned).
  2. Greater Command appears to be a little broken? I was trawling through all of its secondary spells, and I noticed that SPPR512C has its first effect, which is casting the next part of the spell SPPR512D, set to happen at 0%-0%, which means the spell ends its saving throw checks only a few rounds in (i.e. if a creature fails its saving throws the first few rounds, it will not be given another chance, which it's supposed to every round). And I think the subsequent secondary spells have the same issue (e.g. SPPR512D).
  3. Wail of the Banshee is missing its distinctive wailing sound when using the AoE spell deflection component. This is because the spell's projectile targets only enemies in an area of effect, while the sound effect tries to target the caster, and with the base spell's effects being branched off into a subspell via this component, it cannot seem to figure out how to target the original caster with that degree of separation. The two possible solutions I can think of for this are making the sound effect target enemies...but that would mean for every enemy that is hit with this, it's going to play the sound, which could be defeaning depending on how many that is (I THINK?)...and the other is to make the casting completion sound be this instead of the normal necromancer casting completion sound (and instead making the necromancer casting completion sound the secondary sound in the spell's effects, which won't play in games with that subcomponent installed, but will in those that don't). I personally prefer its distinctive sound effect to play rather than the generic casting completion sound, so that's probably the route I'm going to go unless somebody knows of an alternative fix. I guess you could put the AoE effect into a secondary effect to begin with, but that'll just create the same problem as above with Chain Lightning.
  4. Imprisonment doesn't seem to have a graphical effect used? It defines one in its effects, but gives it a 0 duration so that it doesn't actually play. So...when you cast Imprisonment, there's no indication that it did anything until the targeted character just suddenly disappears some seconds later.

 

@Wyrd: I cannot confirm the Meteor Swarm issue. (e): UNLESS it doesn't hit anybody. Huh. Well, I think that's normal due to how the projectile works (as the projectile itself doesn't seem to have an animation, but rather plays one upon one for each character hit). Are you saying it doesn't have any graphical effect even if it hits somebody?

Edited by Bartimaeus
Link to comment

V1.0.1 released:

  1. Greater Skeleton (Animate Dead), Greater Wolfwere (MS9), Efreeti, and Djinni are now correctly marked as summonables.
  2. Prismatic Mantle revision again: protects up to +3 weapons, but its prismatic effect will only trigger once per round per enemy. The description has been updated to match, and also now lists the different prismatic effects that can occur (taken from Prismatic Spray). Still unsure if this is good enough - it's a difficult spell to "fix". In other words, you need a +4 weapon, and if you do, prepare to be burned but PROBABLY be able to kill the mage if they don't have other protections like Stoneskin up.
  3. (Minor) Globe of Invulnerability now has a settings.ini check to ignore Dispel and Remove Magic for those who want it. It is obviously defaulted to off. A special option just for Hicuty (that I thought might be worth experimenting with), it is probably overpowered against SCS.
  4. Combat log spam in the form of Invisibility Purge triggering every round et al. have been killed. There's really no need for those to be spamming it up.
  5. Wail of the Banshee now plays its distinctive wailing sound even when using the AoE spell deflections component (though at the cost of the normal casting completion sound).
  6. Imprisonment now shows its graphical effect.
  7. Greater Command now properly gives a saving throw every round instead of just the few first.
  8. Banishment will now correctly banish summoned creatures even when using Anthology Tweaks' removed summoning cap component. Banishment will also now attempt to dismiss "gated" creatures such as fiends, celestials, and elemental princes, but unlike normal summons, they will be granted a save vs. spell at a -4 penalty (which sounds more severe than it is, because they all have crazy good saving throws and are still likely to resist - though I'm open to changing it to -2 if necessary).
  9. Additional spells now handled by SR's AoE Spell Deflection subcomponent: Faerie Fire, Silence, Fire Trap, druids' Ice Storm, Banishment (both clerics' and mages'), Earthquake, and Burning Hands. Ones still not handled are Dragon's Breath, Comet, Gust of Wind, Repulsion, Chain Lightning, Priest of Lathanders' Halt Undead, and Bhaalspawn's Horror. Gust of Wind, Repulsion, and Chain Lightning cannot be handled by this subcomponent in their current form, while it's debatable that innate abilities and HLAs *should* be stopped by the Spell Deflections. I tested every spell out of those newly added and they all seemed to work correctly, but of course more thorough testing is welcome.
  10. Mazzy's Haste now correctly cancels slow (had forgotten to add it to the sectype patcher).
  11. Greater Skeleton (Animate Dead) was accidentally named "Bastard Sword +1" - whoops! Forgot to change .cre to .itm.

 

The different version number format is at ALIENQuake's request. V1.0.1 is later than V1.00x.

Edited by Bartimaeus
Link to comment

It would be immensely helpful if, when you add changes like tbese, ypi could also add a very brief description of what you did to effect the change. E.g. for Wail of the Banshee: "I replaced the spell completion sound effect in the main spell with the wailing spund, and removed the wailing sound from the subspells." Or whatever - I assume that's what you did but I'm not sure, which is why I mention it. ;) EDIT - whoops I see that you discussed WotB at length, but just generally I would find it edifying and helpful.

 

Regarding animations playing only when the projectile hits someone: that might be inherited from the unmodded game. I found out recently that Earthquake works this way: the more people affected, the more your screen will shake. (When I made a party-friendly version and tested it without any enemies around, I thought it was broken... the reason why was annoyingly non-obvious.) Needless to say I think that's pretty dumb, the visual intensity of earthquakes and meteor showers should not increase with the number of observers/victims - unless you move them to the illusion/phantasm school ;)

 

Regarding Greater Command: a couple of my psionic abilities use that kind of save-every-round-to-break-free method. It requires a bunch if subspells but the end result is fantastic in-game. I really think every Fear, Charm, Confusion, and Hold spell should work that way.

Link to comment

I did specifically discuss the Wail of the Banshee, Greater Command, and Imprisonment bugs because they're weird ones that seemed to affect base SR. I didn't think anything else I wrote in my patch notes needed explanation - either they don't apply to SR (e.g. fixing Greater Skeleton's name, as SR doesn't even bother to properly name its creatures or their weapons, whereas I specifically do so for compatibility's sake with BG1EE...or Mazzy's Haste, which SR doesn't handle at all to begin with), or I thought the solution was obvious.

 

I noticed that with Earthquake as well, that it looked like everyone affected by the projectile would effect screen shaking, and I started thinking, "Hey, this should probably be broken off into subspells for self-targeting stuff vs. affected creatures...", but again, like Wail of the Banshee and Chain Lightning, it would just cause the AoE Spell Deflection subcomponent to break with them. I imagine the screen shaking is quite absurd if you hit a big group of kobolds.

 

Meteor Swarm in particular is weird. It has a custom projectile, but the projectile has no graphic - instead, the spell plays a custom graphic (that's actually pretty good) upon those affected. I would've preferred it worked like other AoE graphic effects like Fireball and Horrid Wilting, but I would not have the foggiest as to how to do that, so it's staying how it is, :p.

 

As for Greater Command, I'm not sure *why* it needs all those subspells, to be honest. It seems like there's a much easier way of doing it*:

1.The base spell causes unconsciousness for 60 seconds, then casts a single subspell every 6 seconds thereafter for the entire spell (aka 9 times for 54 seconds, since we're ignoring the initial 6 seconds as we're assuming the creature fails its initial save to not fall asleep - if they succeed it, nothing else happens anyways).

2. The subspell then grants immunity to itself (the subspell, not the base spell) with a new saving throw granted for duration 1-5 seconds (anything greater than 0 but less than 6 should work). The second effect is then waking the creature up with no saving throw. If the creature succeeds its saving throw, the protection against itself is resisted, and so the rest of the spell is executed - in other words, the wake-up opcode is called and they then wake up. If they fail the saving throw, the rest of the spell is nulled by the self-protection, and so they don't wake.

 

Why were all the copies of almost the same exact subspell necessary? Just use the same one.

 

*And boy, if you're making EE-only mods, this is an especially convenient method for spell mechanisms like this, because you can just use the "remove effects by spell resource" opcode for other types of spells that aren't going to use the cure sleep opcode, can't you?

Edited by Bartimaeus
Link to comment

I didn't think anything else I wrote in my patch notes needed explanation - either they don't apply to SR (e.g. ... Mazzy's Haste, which SR doesn't handle at all to begin with), or I thought the solution was obvious.

 

I think Mazzy's ability not interacting with the SR Haste/Slow system is a problem that needs to be fixed. The solution might be obvious to you since you seems ot have been through the mod's code with a fine-tooth comb. But I really don't have time to learn how everything was done here, especially if someone already knows how to do stuff. Let's fix whatever seems to need fixing here, and let Mike and kreso decide which fixes they will or won't accept.

 

I noticed that with Earthquake as well, that it looked like everyone affected by the projectile would effect screen shaking, and I started thinking, "Hey, this should probably be broken off into subspells for self-targeting stuff vs. affected creatures...", but again, like Wail of the Banshee and Chain Lightning, it would just cause the AoE Spell Deflection subcomponent to break with them. I imagine the screen shaking is quite absurd if you hit a big group of kobolds.

 

Meteor Swarm in particular is weird. It has a custom projectile, but the projectile has no graphic - instead, the spell plays a custom graphic (that's actually pretty good) upon those affected. I would've preferred it worked like other AoE graphic effects like Fireball and Horrid Wilting, but I would not have the foggiest as to how to do that, so it's staying how it is, :p.

I think it's worth fixing these spells so the graphic effect is divorced from the targets being hit by the projectile. I consider it tantamount to being a bug. The AoE Deflection code can surely be adapted to subspells of this sort. Worth investigating, anyway.

 

As for Greater Command, I'm not sure *why* it needs all those subspells, to be honest. It seems like there's a much easier way of doing it*:

1.The base spell causes unconsciousness for 60 seconds, then casts a single subspell every 6 seconds thereafter for the entire spell (aka 9 times for 54 seconds, since we're ignoring the initial 6 seconds as we're assuming the creature fails its initial save to not fall asleep - if they succeed it, nothing else happens anyways).

2. The subspell then grants immunity to itself (the subspell, not the base spell) with a new saving throw granted for duration 1-5 seconds (anything greater than 0 but less than 6 should work). The second effect is then waking the creature up with no saving throw. If the creature succeeds its saving throw, the protection against itself is resisted, and so the rest of the spell is executed - in other words, the wake-up opcode is called and they then wake up. If they fail the saving throw, the rest of the spell is nulled by the self-protection, and so they don't wake.

Off the top of my head I don't see a great way to do that with a single subspell. What would you use to "wake up" in the pre-EE engine? How would you cancel the sleep effect? How could you implement it without it interfering with other spells that also involve sleep? The reverse-saving throw thing is a nice idea... I used that to recreate IWD's Spell Evasion in the BG games. I suppose in the EEs at least you could just repeat a single "wake up" subspell every round forever, and give the original spell a 321+206 effect delayed to whatever you want the max duration to be.

 

But using multiple subspells just seems more bulletproof. It creates a slight bit of extra clutter (+9 files in a override folder that already has 30,000 files... not losing sleep over that), but in Weidu at least it is quite easy to set up:

 

COPY ~will_to_power/data/d5ps107b.spl~ ~override~
    LPF ADD_SPELL_EFFECT INT_VAR opcode = 146 target = 2 parameter1 = 0 parameter2 = 1 timing = 4 duration = 6 STR_VAR resource = ~d5ps107c~ END
COPY ~will_to_power/data/d5ps107b.spl~ ~override/d5ps107c.spl~
    LPF ALTER_EFFECT INT_VAR silent = 1 match_opcode = 146 STR_VAR resource = ~d5ps107d~ END
COPY ~will_to_power/data/d5ps107b.spl~ ~override/d5ps107d.spl~
    LPF ALTER_EFFECT INT_VAR silent = 1 match_opcode = 146 STR_VAR resource = ~d5ps107e~ END
COPY ~will_to_power/data/d5ps107b.spl~ ~override/d5ps107e.spl~
    LPF ALTER_EFFECT INT_VAR silent = 1 match_opcode = 146 STR_VAR resource = ~d5ps107f~ END
COPY ~will_to_power/data/d5ps107b.spl~ ~override/d5ps107f.spl~
    LPF ALTER_EFFECT INT_VAR silent = 1 match_opcode = 146 STR_VAR resource = ~d5ps107g~ END
COPY ~will_to_power/data/d5ps107b.spl~ ~override/d5ps107g.spl~
    LPF ALTER_EFFECT INT_VAR silent = 1 match_opcode = 146 STR_VAR resource = ~d5ps107h~ END
COPY ~will_to_power/data/d5ps107b.spl~ ~override/d5ps107h.spl~
    LPF ALTER_EFFECT INT_VAR silent = 1 match_opcode = 146 STR_VAR resource = ~d5ps107i~ END
COPY ~will_to_power/data/d5ps107b.spl~ ~override/d5ps107i.spl~
    LPF DELETE_EFFECT INT_VAR silent = 1 match_opcode = 146 END
Link to comment

For Chain Lightning AoE's effect, it seems to me that the secondary spell with the AoE projectile (spwi615e, and spdr601e) is the one that actually needs to be selected by the AoE spell deflection subcomponent, but I don't think it would currently work with it due to how the cloning function works regarding names. The cloning function seems to use the base name of the file (in this case spwi615e), and then add another letter on it. This is fine for spells with only 7 characters (e.g. spwi615), but for secondary effects that already have 8 characters (as 8 characters is the maximum), it wouldn't look to work.

Obvious solution would probably be to simply change the method of naming the secondary subspells. Frankly Demi had a bad habit of adding files with suffixes rather than using his modding prefix. Like, instead of calling a subspell "spwi615e" shouldn't it be something like "DVWI615?" That scheme would work for any vanilla SPxx spell. And it could be more complex - call it "DVW2615" for secondary subspells, and "DVW3615 for tertiary subspells, or something like that.

Link to comment

You can force a save every round in the EE with opcode 333 (Static Charge).

It forces a new saving throw for every trigger, terminating if it is successful.

The subspell would just be 6-second effects with no-save.

Oooooooh, interesting.

 

But, once you save, do you have to save again the next round to avoid being affected by the spell again? If so it would be necessary to do a reverse-save to stop it. (but that might interfere with repeated castings...)

 

Is there a vanilla spell that uses this?

Link to comment

But, once you save, do you have to save again the next round to avoid being affected by the spell again? If so it would be necessary to do a reverse-save to stop it. (but that might interfere with repeated castings...)

When successful, the saving throw on opcode 333 both blocks the spell it would apply, and removes the opcode 333 effect, preventing further triggers.

 

Beltyn's Burning Blood and Shroud of Flame function this way (both IWDEE).

Link to comment

Greater Command: There's a "cure sleep" opcode that you can use in the pre-EE engine. That's what the subspell already uses.

 

Secondary spell names: Yeah, I already had that exact thought with the dv prefix, or even an alternative one like "sd" (spell deflection). Two problems, though: 1. Not all spells handled by nwn_spell_deflection.tpa have the sp prefix (especially other mods' additions). 2. Even if that wasn't an issue, I'm not certain how to take the name of spell (variable i2 in nwn_spell_deflection) and remove the first two characters of spells that have it.

 

Mazzy's Haste: Simply a matter of creating a self-targeting version of it with no AoE projectile, then adding an entry in lib/kreso_haste_slow.tpa like the other Haste entries, and of course, main_component.tpa. Mazzy's Haste filename is spin828.

 

Graphic effects: Definitely, but I have almost absolutely no knowledge here to do so. I'm assuming that something has to be changed within the graphic effect itself, otherwise it would presumably already be used this way, but I really don't actually know.

Edited by Bartimaeus
Link to comment

Simulacrum :in my game the clone have access to all HLA and triggers/sequencers of the original caster . Edit : for triggers/sequencer, nothing happens when I use them with the clone so it's ok.

 

It would be interesting also to assign a basic attack script to the clone because he's standing here doing nothing. It is especiallly annoying with item revisions when using simulacrum ability of helmet Shadow Veil (generally on a fighter ) : you need to micro everytime your clone coz he have no scripts to attack.

 

 

Mestil Acid's SHeath : it is a level 5 spell in my game, is it normal ? (because Edwin had it already memorized as a level 4 spell)

 

 

Resurection level 7 : I don't exploit it but it is possible to heal someone with long range of the spell. Maybe Heal effect should apply only if there is a resurection.

 

 

Also I find that gated monsters (death knight, Glabrezu, pit fiend) to be extremely more powerfull in comparaison to monster summuning ( 7,8,9)

Edited by DrAzTiK
Link to comment

Simulacrums: Uh, what level are you that your Simulacrum has HLAs? Unless it's a bug, I guess. As for a script, that's unfortunately kind of unfixable. Since the simulacrum is not part of the party, you couldn't disable its script via the Party AI button, which means for people who want to carefully orchestrate their simulacrum, it would basically take away control from them.

 

Mestil's Acid Sheath: Yes, it's supposed to be a 5th level spell. I spotted this bug already a few versions back, though, so it's already been fixed.

 

Resurrection: Ha! That's a funny bug/feature from SR. I'm not immediately sure how to fix that (probably filter the effects through an effect but with what condition, I wonder?), and I'm kind of tempted to just let it be. If you want to use a 7th level slot for a ranged full heal, well, alright.

 

Fiends: That's how it's supposed to be, I guess, since you don't have actual control over them. I did not make them any stronger from standard SR.

Edited by Bartimaeus
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...