Avenger Posted August 8, 2005 Share Posted August 8, 2005 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
Domi Posted August 8, 2005 Author Share Posted August 8, 2005 Good luck with ressurection then Link to comment
King Diamond Posted February 18, 2006 Share Posted February 18, 2006 0x00A7 SpellCastInnateRES(O:Object*,S:ResRef*) That works and that is the only way to detect SPCL spells casting. At least I didn't find another way - none of other SpellCast_ triggers work, including SpellCastInnate with a direct numerical 4... constant. Link to comment
Domi Posted February 18, 2006 Author Share Posted February 18, 2006 Thanks, I *think* I tried that, and it did not work but I will give it another shot. Link to comment
devSin Posted February 18, 2006 Share Posted February 18, 2006 Since the thread was resurrected, SpellCastObjectRES(O:O,S:S) is identical to SpellCastRES(S:S,O:O) if used via script (the order of the arguments doesn't matter). The story may be different if used via dialogue, but likely not. Link to comment
King Diamond Posted February 20, 2006 Share Posted February 20, 2006 0x00A7 SpellCastInnateRES(O:Object*,S:ResRef*) That works and that is the only way to detect SPCL spells casting. At least I didn't find another way - none of other SpellCast_ triggers work, including SpellCastInnate with a direct numerical 4... constant. <{POST_SNAPBACK}> And it works on any spell cast from the innate slot, not necessary SPCL prefixed. TDD has plenty of them... Link to comment
King Diamond Posted February 23, 2006 Share Posted February 23, 2006 Unfortunately 0x00A7 SpellCastInnateRES(O:Object*,S:ResRef*) doesnt work.... It detects ANY spell cast from the innate slot regardless of given ResRef. Link to comment
devSin Posted February 23, 2006 Share Posted February 23, 2006 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
King Diamond Posted February 23, 2006 Share Posted February 23, 2006 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
Recommended Posts
Archived
This topic is now archived and is closed to further replies.