Jump to content

[Discussion] Opcodes 109, 175, 185 (Paralyze and Hold)


DavidW

Recommended Posts

21 hours ago, subtledoctor said:
  • op109 is "paralysis," i.e. some kind of biological reaction or mechanism, often delivered by touch attacks like from ghouls and carrion crawlers
  • op175 is a purely magical "Hold" effect which I tend to think of as a physically immobilizing force
  • op185 I think of as similar to Hold, i.e. magical immobilization, except nothing can be allowed to be immune to it as it is only ever used in special cases like Otiluke's Sphere and cut scenes (and I agree the Implosion HLA should use it)

I see, so basically op175 is very similar to a Force Power (from Star Wars 🤓)...

Having said that, should things like BARBARIAN_RAGE, CLERIC_CHAOTIC_COMMANDS, etc... block both of them or just one...?

19 hours ago, DavidW said:

(3) basilisks, for technical reasons that I don't think are relevant.

This does sound like a bug.

Basilisks (f.i. "basill1.itm") should only apply op134 (Petrification) and not also op109 (Paralyze)...

19 hours ago, DavidW said:

- 185 is being used as a bespoke hold-in-place.

If that's indeed the case, then also things like "spcl415.spl" (snares) should use op185...?

Link to comment
12 minutes ago, Luke said:

This does sound like a bug.

Basilisks (f.i. "basill1.itm") should only apply op134 (Petrification) and not also op109 (Paralyze)...

I don't think so - it applies only to inanimate objects. I'm not sure what it's for to be honest, but it's obviously there deliberately so I'm reluctant to remove it without understanding why it was there.

13 minutes ago, Luke said:

 

20 hours ago, DavidW said:

- 185 is being used as a bespoke hold-in-place.

If that's indeed the case, then also things like "spcl415.spl" (snares) should use op185...?

It's explicitly described as 'hold' in the text. And shifting it to 185 elides the difference between Snare at that level and at the level when it casts Otiluke's Resilient Sphere.

Link to comment

Is it possible to change op185 so that it wouldn't set STATE_HELPLESS?

This way I can safely use op232 with para2 = 5 to trigger certain behaviors, without having to worry about characters breaking free from cutscene hold.

Or is opcode editing outside of the scope of the fixpack?

PS. we will probably need separate icons for op109 and op175/185 as already suggested previously.

Link to comment
11 hours ago, guyudennis said:

Is it possible to change op185 so that it wouldn't set STATE_HELPLESS?

This way I can safely use op232 with para2 = 5 to trigger certain behaviors, without having to worry about characters breaking free from cutscene hold.

You could just do a global patch to any spell that uses op185, and have them apply immunity to your contingent effect.

Lots of ways to skin cats these days...

Link to comment
On 1/26/2023 at 5:02 PM, guyudennis said:

Is it possible to change op185 so that it wouldn't set STATE_HELPLESS?

This way I can safely use op232 with para2 = 5 to trigger certain behaviors, without having to worry about characters breaking free from cutscene hold.

Why not just use opcode #165 - pause target, and its obverse #270 unpause target?

Paused creatures appear frozen in place and can't take actions, but are not STATE_HELPLESS and oddly retain normal armor class (irrelevant during a cutscene or sequence of the game where only the protagonist is supposed to be able to act).

Link to comment
4 hours ago, polytope said:

Why not just use opcode #165 - pause target, and its obverse #270 unpause target?

Paused creatures appear frozen in place and can't take actions, but are not STATE_HELPLESS and oddly retain normal armor class (irrelevant during a cutscene or sequence of the game where only the protagonist is supposed to be able to act).

You misunderstood me: I wanted to make an ability that allows my character to “break free” if he is rendered helpless, but I didn’t want him to break free from a forced hold like during a cutscene.

 I believe what subtledoctor suggested will achieve just that.

Link to comment
15 hours ago, guyudennis said:

You misunderstood me: I wanted to make an ability that allows my character to “break free” if he is rendered helpless, but I didn’t want him to break free from a forced hold like during a cutscene.

Yes, I knew you were talking about adding an ability only triggered by STATE_HELPLESS.

The pause target opcode (#165) doesn't set STATE_HELPLESS, so if it were used for cutscene spells like spin769 & spin863 (in place of the usual hold effect) it wouldn't trigger your special ability. Of course, spin862 then needs to be an unpause (#270) not a remove paralysis (#162).

Edited by polytope
Link to comment

@Galactygon

As far as this topic is concerned, is it correct that

1) opcode #109 should only be used by creatures/items that can naturally cause paralysis (f.i. liches, ghasts, carrion crawlers, etc...)?

2) opcode #175 should only be used by spells/items that are supposed to impose a mental control (f.i. all spells/items flagged as primary_type=4|ENCHANTER)?

3) opcode #185 should only be used for special cases such as Otiluke, Bigby, Hold Undead, ... ?

Edited by Luke
Link to comment

I don't have any strong views on this and generally agree with the points being mentioned in this thread so far. Web effects need to be changed to only rely on the Web opcode.

For the sake of consistency, it might be a good idea to have Hold Undead use 175 and change Hold Monster to affect everything but Undead as well as remove protection from 175 from undead immunities (i.e. RING95.itm). This way, they are affected by Free Action as well.

Link to comment
11 hours ago, Galactygon said:

Web effects need to be changed to only rely on the Web opcode.

Yes, I think we can all agree on that.

11 hours ago, Galactygon said:

For the sake of consistency, it might be a good idea to have Hold Undead use 175 and change Hold Monster to affect everything but Undead as well as remove protection from 175 from undead immunities (i.e. RING95.itm)

Yes, I (partially) agree.

Let's say that if you decide to implement this feature, then there's no need to strip the immunity to 175 from RING95.itm and the like...

Also, Hold Monsters and the like (which use op175) do seem to belong to the so called mind-affecting sphere, so I think it is correct for Undead (among others) to be immune to op175...

Edited by Luke
Link to comment
11 hours ago, Galactygon said:

For the sake of consistency, it might be a good idea to have Hold Undead use 175 and change Hold Monster to affect everything but Undead as well as remove protection from 175 from undead immunities (i.e. RING95.itm). This way, they are affected by Free Action as well.

Would that not break compatibility with mods that introduce #175 dependent hold effects which were only intended to work on living things? Of course #175 respects ids targeting so multiple instances of the opcode could be applied against HUMANOID, GIANTHUMANOD, MONSTER, ANIMAL with the exclusion of UNDEAD but why would a modder have set it up that way if the assumption has always been that they're immune?

Some non-undead have the RING95 immunity package, anyway, and not all undead have it, most vampires get their immunities from a different item, as do most liches (which are immune to 3rd and 5th level spells anyway, so irrelevant for Hold Undead and Hold Monster).

Edited by polytope
Link to comment
4 hours ago, Luke said:

Also, Hold Monsters and the like (which use op175) do seem to belong to the so called mind-affecting sphere, so I think it is correct for Undead (among others) to be immune to op175...

Actually, this might be incorrect...

I asked ChatGPT (lol) about that, and it depicted hold monsters as "a spell that affects a creature's physical movements by magically paralyzing them. It doesn't directly target the mind, but rather the body."

  • OK, nevermind, ChatGPT also states that the "Hold Monsters" spell is considered a mind-affecting spell. Mind-affecting spells are spells that target a creature's mind, influencing their thoughts, emotions, or mental faculties. "Hold Monsters" falls under this category because it affects the physical actions and movements of creatures by magically paralyzing them.

The fact that it is an Enchantment spell is kinda misleading...

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

Let's say that if you decide to implement this feature, then there's no need to strip the immunity to 175 from RING95.itm and the like...

Also, Hold Monsters and the like (which use op175) do seem to belong to the so called mind-affecting sphere, so I think it is correct for Undead (among others) to be immune to op175...

Yes, the "bypass opcode 101" flag is preferrable over removing those immunities from RING95.itm for the sake of mod compatibility. You'd need to then add a 206/318 to Free Action to defend against SPWI324.spl since that opcode immunity isn't meant to be bypassed. Does your implementation work if the flag is set inside an external .eff?

1 hour ago, polytope said:

Would that not break compatibility with mods that introduce #175 dependent hold effects which were only intended to work on living things? Of course #175 respects ids targeting so multiple instances of the opcode could be applied against HUMANOID, GIANTHUMANOD, MONSTER, ANIMAL with the exclusion of UNDEAD but why would a modder have set it up that way if the assumption has always been that they're immune?

Some non-undead have the RING95 immunity package, anyway, and not all undead have it, most vampires get their immunities from a different item, as do most liches (which are immune to 3rd and 5th level spells anyway, so irrelevant for Hold Undead and Hold Monster).

Without the above flag implemented you could also change the HOLD and similar projectiles to exclude undead to avoid changing the spells, assuming mod spells use those projectiles. But yes, the "bypass opcode 101" flag is preferrable from a mod compatibility point of view.

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...