Jump to content

Protection from Projectile: 187 (Cloudkill) - why doesn't this work?


Ieldra

Recommended Posts

The title says it all - I'm trying to make a spell protecting from any cloud effects (currently only two - Stinking Cloud and Cloudkill). So I'm adding the effect "Immunity from Projectile" with parameters 187 and 95, which are the projectile types these spells use. Just for good measure, I also add Protection from types 186, 188, 94 and 96, to be sure I'm not a victim of any starting index inconsistencies. And it doesn't work. That is, the Cloudkill protection doesn't work while the Stinking Cloud protection does.

 

Does anyone have an explanation?

How can I get this to work? Adding poison immunity works, but that would also protect from magical poisoned melee weapons, which is not intended and inconsistent with the story behind the spell.

Link to comment
Actually, there might be a way.

Try to add projectile immunity against projectile #79. (or 78 or 80, i'm not sure about these either).

If it works, i will explain ;)

Well, it does work :(

I can't wait for your explanation. Will there be any side effects?

 

BTW, an observation: when I tried protection vs Stinking Cloud (#0x5f), then the character walking into the Cloud always makes his save and is thus protected from the main effect of the spell, but he still must make the saving throw, it seems. When trying #0x4f (your method), no save must be made. It also seems to protect against both spells.

Link to comment

Yeah, you did not know how much you helped :(

I could have done this test myself, but i'm so lazy.

So, you helped me in some small parts of my own projectile research.

 

The explanation:

The projectiles of area effects contain a field which is actually a reference to another projectile.

This secondary projectile could be a travel projectile (or another area projectile).

The secondary projectile is fired at every actor in the effective area of an exploded area projectile.

And you might have one guess what is its value for cloudkill?

Yeah, 79 (invisible traveling projectile).

Now, i believe, all area projectiles (at least not just the ones you wanted) use 79 as this secondary projectile, so an immunity against 79 might make lots of undesired immunities.

The good news is that you can create your own invisible traveling projectile, and change cloudkill to use that one.

Lots of work, and this is an untested field. But it seems it is possible to do exactly what you want.

Link to comment
Yeah, you did not know how much you helped :(

I could have done this test myself, but i'm so lazy.

So, you helped me in some small parts of my own projectile research.

;) Heh, lazy indeed. It took me exactly three minutes to test this. But now we both have what we want...

 

The explanation:

The projectiles of area effects contain a field which is actually a reference to another projectile.

This secondary projectile could be a travel projectile (or another area projectile).

The secondary projectile is fired at every actor in the effective area of an exploded area projectile.

And you might have one guess what is its value for cloudkill?

Yeah, 79 (invisible traveling projectile).

Now, i believe, all area projectiles (at least not just the ones you wanted) use 79 as this secondary projectile, so an immunity against 79 might make lots of undesired immunities.

The good news is that you can create your own invisible traveling projectile, and change cloudkill to use that one.

Lots of work, and this is an untested field. But it seems it is possible to do exactly what you want.

Ah, that's very interesting. Thanks for the explanation. I can imagine how it works on the code-level. BTW, it seems that projectile 79 is used for all persistent area effects like Web, Stinking Cloud, Cloudkill etc. I didn't test Ice Storm and Incendiary Cloud, but I suppose they're also affected. On the other side, there's no protection against instant area effects like Fireball or Skull Trap.

 

Edit:

I've just looked into the projectile files - the only 79 I can find is under "explosion effect" - NI shows "None (79)" there, and it's in almost all area projectiles. That's inconsistent with my test results. Is it that field you refer to, or have I overlooked something?

Link to comment

That is the field. There's one projectile for traveling to point and another for impact in area effect projectiles.

 

I can't remember if projectiles keep track of the parent spell in memory or not (Avenger?). You could try using the "immunity to spell" effect for the spells you want to block.

Link to comment

I believe that would work too, but i didn't research area projectiles extensively, yet.

 

Ice storm is 'exploding' 4 times, each time using the invisible projectile.

Fireball and skull trap convey their effects differently.

They use fragments (which are not projectiles, but 'character' animations), this is why you can change someone's animation to a single flame tongue. Anim ID:0x100

Link to comment

What can I say...your proposed method works, Avenger. I'll still have to work out all the projectile details, but in principle it works, and isn't particularly hard to to:

 

(1) Copy one of the regular non-area pro files to something new

(2) Append PROJECTL.IDS with an entry for it

(3) Change CLOUDKIL.PRO's area extension to use your new projectile

(4) Set your protective spell to protect against it, using the new IDS number -1 or +1 (I always forget this).

 

The result is as intended - protection vs. Cloudkill, but not the other tested spells. As a nice side effect, it will also protect against the various innates that use the Cloudkill projectile #187. Which is just as I would wish, since it includes things like the Iron Golem's poison cloud.

 

There are still a few details to work out - I don't know if the details of the .pro file I'm using will have any influence of their own, except for the obvious invisible flag. There is no .pro file for the original invisible travelling projectile, so I don't know what should go into the data fields (I wonder where DLTCEP gets the text description from). If anyone has any insight into this, I'd appreciate it. Otherwise, I'll experiment.

 

Edit:

Getting this to be installed by WeiDU could be tricky - some other mods add to projectl.ids (my multi-mega-mod install has entries up to 318 instead of 275), so I guess the new number needs to be variable.

 

Edit2:

Your method also works, devSin, which means that the projectiles keep track of their parent spell. This is easier to do, but has the disadvantage that it won't protect from Cloudkill copies added by mods, and you need to include every single spell that uses CLOUDKIL.PRO for a projectile.

Link to comment

I believe devsin's method is easier, but only because weidu doesn't really support dynamic projectile assignments.

It could still be done by some tp2-fu, but a static spell resref is just easier.

 

dltcep gets the description from missile.ids/projectl.ids

Link to comment
I believe devsin's method is easier, but only because weidu doesn't really support dynamic projectile assignments.
I think also because it's probably going to be difficult to exactly replicate the hardcoded impact projectile they're all using now (if it really is hardcoded; can't remember) -- you're never going to know if you have it exactly right (but if you can't tell the difference, how many people are really going to care?).

 

WeiDU can dynamically add projectiles using ADD_PRO (it appends the IDS and tracks the new projectile value in a variable), but I wouldn't really rely on it.

Link to comment

I found this thread in a search on "secondary projectile", and this seems like an incompletely inappropriate place to ask this question: DLTCEP lists fields in the area effects tab of a PRO file for "explosion projectile" and "secondary projectile." I can't recally offhand seeing the "secondary projectile" field actually used, though. What exactly is the difference between the two?

Link to comment

The cloudkill projectile is a good example for secondary projectile use.

IIRC there are other area projectiles which use sparkling traveling projectiles as secondary projectile.

 

The explosion is a traveling projectile which hits everyone in the affected area.

I don't know much about the secondary projectile, but i know it could be area projectile.

 

See spklarpu.pro

Link to comment
The cloudkill projectile is a good example for secondary projectile use.

IIRC there are other area projectiles which use sparkling traveling projectiles as secondary projectile.

 

The explosion is a traveling projectile which hits everyone in the affected area.

I don't know much about the secondary projectile, but i know it could be area projectile.

 

See spklarpu.pro

 

Hmm. Looking at it in DLTCEP it uses "SPARKLPU" for "explosion projectile" and "Hit Conjure Area" for "secondary projectile." Based on this, it seems that DLTCEP has a slightly odd way of labeling graphical and spell-effect area-extension projectiles, respectively.

Link to comment

Archived

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

×
×
  • Create New...