Jump to content

'Special' Abilities vs Regular Spellcasting


Domi

Recommended Posts

Umm, lets skip the torture rack :) i swear it works ;)

 

And well, we resumed work on dltc, but only time will tell if it will be a successful resurrection.

Probably, the scarcity of women (we got Ana!) in the team makes this project sluggish :)

Link to comment

We were discussing this just the other day in the fixpack forum. The general consensus (so far) seems to be that all SpellCastRES() triggers do *not* work, and the innate spell level needs to be correct in order to detect innate spells with SpellCastInnate() (meaning you get to choose between either crashing with HaveSpell(), or not being able to detect innate spells > level 1). The salient part of my original post is below.

 

As for Domi's original issue way back when, SpellCastInnate([GOODCUTOFF],3101) works fine (or 3102, 3103, etc.). The spells don't even need to be in the IDS if you use the right integer.

 

----

 

I finally got a moment to check why Odren's scroll fails if the spell level is set to 1, and made some boring observations. We append triggers to the IDS files and include scriptable spells, so I'm posting this here for none to see.

 

It turns out that SpellCastInnate() will *only* return true if the spell level is correct (i.e., the spell number / 100). If the spell is any other level, the SpellCastInnate() trigger will return false. Additionally, SpellCastInnate() is the only trigger that will return true when an innate spell is cast, so it has to be used.

 

APPEND ~TRIGGER.IDS~ ~0x00A1 SpellCastOnMeRES(S:Spell*,O:Caster*)~
APPEND ~TRIGGER.IDS~ ~0x0091 SpellCastRES(S:Spell*,O:Object*)~
APPEND ~TRIGGER.IDS~ ~0x00A6 SpellCastPriestRES(S:Spell*,O:Object*)~
APPEND ~TRIGGER.IDS~ ~0x00A7 SpellCastInnateRES(S:Spell*,O:Object*)~
APPEND ~TRIGGER.IDS~ ~0x4031 HaveSpellRES(S:Spell*)~

I am unable to verify that most of these actually work. HaveSpellRES() does work, as from the following script:

IF
 HaveSpellRES("CAMDAWG")
THEN
 RESPONSE #100
   DisplayStringHead(Myself,67787) // I'd say it's time to die, demon.
   Continue()
END

IF
 HaveSpellRES("SPWI406") // Minor Globe of Invulneribility
 Global("SexBomb","LOCALS",0)
THEN
 RESPONSE #100
   CreateVisualEffectObject("SPFIREPI",Myself)
   SetGlobal("SexBomb","LOCALS",1)
END

When loaded, Imoen will never run the string, and will always play the effect (any spell she has can be substituted for 2406).

 

SpellCastInnateRES() doesn't seem to work at all. It looks like the resource reference is ignored entirely, and the game is just treating it as SpellCastInnate(O:O,I:0), from the following code:

IF
 SpellCastInnateRES("DING0",[GOODCUTOFF])
THEN
 RESPONSE #100
   DisplayStringHead(Player1,21792) // What if I'm not interested in having my eyes removed?
   Continue()
END

Any innate spell of any level can be cast, and the string will always run over Player1 (regardless of the reference specified). The behavior is the same whether a generic object ([30], [0], etc.), or an explicit object (e.g., "IMOEN", Player1) is used (although, that aspect does work as expected). The same continues to be true if SpellCastPriestRES() or SpellCastRES() are used in place of SpellCastInnateRES() (again, the matching to spell type and the caster still works, it just picks up any spell).

 

I didn't check HaveSpellPartyRES() or SpellCastOnMeRES(). I don't care.

 

I did a very brief check of the actions; they all work except for the two RangeRES() actions (I don't even know if the normal ones work, though).

 

I didn't check RemoveSpellRES(). I don't care.

Link to comment

Yes, SpellCastInnate() works fine, but only for the 'real' innates with numbers 3xxx.

SpellCastInnateRES() = SpellCastInnate(Object, 0)

 

So, not being able to detect those by any of Spell... triggers, I made them still detectable (their casting moment) but with another technique - by setting GLOBAL (= spell name) for a short period of time, as original Fireball does. That requires SPL patching of course and a different scripting.

Link to comment

Archived

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

×
×
  • Create New...