Jump to content

Scriptable Spells v3


Recommended Posts

Thanks for the recap, Horred :down: My my recollection, you covered everything that you did in the original post.

 

You've made a case for Physical Mirror. I just wanted to point it out and start that sort of discussion.

 

Again, I agree with everything else that you've got there.

Link to comment
Spell bouncing and arrow bouncing are lumped together because it is projectile bouncing in engine level.

 

A reasonable answer, from an engineer's perspective. Certainly not from a scriptor's end. :down:

 

Avenger, have you turned up any new data about the stats that flow over into the effects? (e.g., Stat.ids #169 = Foot Circle Removal). Have any of the omitted slots (166 to 175) proven to be okay to use as scripting states, or are they all still on the "funny side effect" list?

 

@ Cirerrek: TBH, I was trying to make a case for both SPELL_TURNING and PHYSICAL_MIRROR. I was demonstrating why it is valuable to detect both "as such", and not as a lump sum effect. Now, if I can track Xyx down and get him over to this thread in time...

Link to comment
@ Cirerrek: TBH, I was trying to make a case for both SPELL_TURNING and PHYSICAL_MIRROR. I was demonstrating why it is valuable to detect both "as such", and not as a lump sum effect. Now, if I can track Xyx down and get him over to this thread in time...

 

Ah, that little subtlty escaped me during my post deleting rampaged. Noted.

 

Thanks,

Link to comment

Here is the STATS.IDS list as I currently have it :

 

109 CURSED [Doom, Greater Malison, Curse, etc]

110 RESIST_PHYSICAL_DAMAGE [set up as % instead of binary] 

116 SPELL_DEFLECTION   

117 BLOCK_ALIGNMENT   

118 TRUE_SIGHT   

119 MIND_SHIELD [Formerly CHAOTIC_COMMANDS]   

120 BLOCK_SPELLS

121 BLADE_BARRIER   

122 PHYSICAL_MIRROR   

123 IMMUNITY_ABJURATION 

124 REGENERATION   

125 FIRE_SHIELD   

126 IMMUNITY_ALTERATION   

127 IMMUNITY_CONJURATION 

128 BLOCK_MAGIC_WEAPONS   

129 SPELL_TURNING   

130 IMMUNITY_DIVINATION

131 FREE_ACTION   

132 KHELBENS_WHIP   

133 IMMUNITY_GENERAL [iLLUSION and ENCHANTMENT: 0-1-2]

134 LEVEL_DRAIN

 

156 SCRIPTINGSTATE1 [still don't know what this does]

157 DEATH_WARD                  

158 BLOCK_NEGATIVE        

159 COMBAT_BUFF                  

160 MAGIC_ARMOR                  

161 STRENGTH_BUFF                  

162 IMMUNITY_INVOCATION                 

163 NEEDS_BREACH [everything that Breach can dispel]                 

164 SPELL_TRAP                  

165 IMMUNITY_NECROMANCY

 

176 GAZE_REFLECTION

177 SPELL_SHIELD

178 RESIST_FEAR

179 DISPEL_BAD [Many Spells]

180 INSIDE_CLOUD [and take 10 off of each current value]

181 BLOCK_NORMAL_WEAPONS

182 DISPEL_GOOD [Many Spells]

 

 

Changes/Additions:

 

I guess I did miss a couple in my recap. Even with SPELLTURNING and PHYSICALMIRROR left in, and a slot for CURSED, we have seven (7) slots remaining. Plus more, if Avenger has managed to find us a couple.

 

EDIT: After looking around and considering it a bit, I also think that TENSERSTRANSFORMATION is a waste. It's already covered by ScriptingState4, value 1, in a proper grouping of "things that allow you to attack only" (berserk, tensers, champion's strength, etc). If you have the spell cast, you won't be able to recast it anyways. So why the extra check? Add the SS4 condition to your spell block instead, and all is well.

 

Now here's a question that this raises. Does the effect 145:Disable Spellcasting Abilities actually set the stats SPELLFAILUREPRIEST and SPELLFAILUREMAGE to 100, as it should? Or, at least--have you seen a caster use Tensers from a script, and he doesn't even attempt to cast any spells (because of the SPELLFAILURE check in the spell conditions, like all of eSeries has)?

 

Why is this so important?

If the CheckStat is not working, we would have to put the SS4 condition in every spell block in a script that contains such a "berserking" effect, or we'd have a lot of wasted spell castings.

 

I set up BP's scripts on this assumption (that, and I put a "quick-fire" attack block w/ checks just after the targetting section, --after non-combative item use (most potions, buffing items), but before any spells)

 

 

EDIT: Updating the list, placing some potential uses in it as well. Only a couple days left to request any features!!!

 

EDIT: Added DISPELLABLE to the list, took useless magic enrgy check off. it can be done with MAGICDAMAGERESISTANCE. Though I'll actually leave it in place, because it is DISPELLABLE :down:. Also yanked protection_enrgy, because it was about the same thing as protection_elements. A slot is open.

 

179 CALL_LIGHTNING is not going to work either. I checked the spell, and it won't be an accurate check. So...another slot reopens.

 

Two slots to fill now. Also, named the scriptingstates that are used.

 

EDIT: I gobbled up one of the two slots, deciding that DISPELLABLE should be split up into GOOD and BAD as well. I can already see these two overwriting each other, and giving us a bushel-basketfull of false readings.

 

Here's a small sample of what this will look like, scriptwise, when finished:

 

IF
 HaveSpell(WIZARD_DISPEL_MAGIC)
 OR(2)
   StateCheck(Player1,STATE_DISPEL_BAD)  // all those bad states
   CheckStat(Player1,1,DISPEL_BAD)           // anything that wasn't covered by states
 NotStateCheck(Player1,STATE_DISPEL_GOOD) // not under good effects
 CheckStat(Player1,0,DISPEL_GOOD)  // same as above
 OR(3)
   !Range(Player1,15)          // He's out of my range
   CheckStat(Myself,0,DISPEL_GOOD)  // Or I don't have good stats
   NotStateCheck(Myself,STATE_DISPEL_GOOD) //or I don't have good states
 NotStateCheck(Player1,STATE_NOT_VISIBLE) // still should be checked seperately
 NotStateCheck(Myself,STATE_SILENCED) // this, as well
 CheckStatLT(Myself,51,SPELLFAILUREMAGE) // don't waste if you have < 50/50 odds
THEN
 RESPONSE #100
   Spell(Player1,WIZARD_DISPEL_MAGIC)
END

 

This small block will detect more than most huge blocks trying this spell could dream of!

 

I'm debating on moving all the states to the stat, as well. More work, but it will be more precise scripting. (I at least have proper notes on the states usage, as well).

 

I'm sure you can see where the error lies up above (in that OR(3) block). Having either a good state, or a good stat, will let you slide by and cast the spell. You really should be looking for both at once. NTM, it eliminates "yet another line" per person.

 

EDIT: Added the NEEDS_BREACH stat, filling the last slot. Abbreviated the values even more, because I've been typing the old ones for days and I really appreciate the directness of these.

Link to comment
Here is the STATS.IDS list as I currently have it :

 

109 [CURSED: Doom, Greater Malison, Curse, etc]

110 [RESISTPHYSICALDAMAGE:set up as % instead of binary like ARMOROFFAITH] 

116 SPELLDEFLECTION   

117 PROTECTIONEVIL   

118 TRUESIGHT   

119 CHAOTICCOMMANDS   

120 [FILLME]  -- [Formerly INSECTPLAGUE] 

121 BLADEBARRIER   

122 PHYSICALMIRROR   

123 [FILLME]  -- [Formerly SHIELDOFARCHONS--moved to SPELLTRAP]

124 REGENERATION   

125 FIRESHIELD   

126 PROTECTIONMAGICENERGY   

127 [FILLME]  -- [Formerly MISLEAD] 

128 PROTECTIONMAGICWEAPONS   

129 SPELLTURNING   

130 [FILLME]  -- [Formerly PROTECTIONELEMENTS] 

131 FREEACTION   

132 KHELBANSWARDINGWHIP   

133 [FILLME] -- [Formerly DEFENSIVEHARMONY (use 36-second timer in script)]

134 LEVELDRAIN

 

156 SCRIPTINGSTATE1

157 SCRIPTINGSTATE2                  

158 SCRIPTINGSTATE3        [Do we want names for these instead?]          

159 SCRIPTINGSTATE4                  

160 SCRIPTINGSTATE5                  

161 SCRIPTINGSTATE6                  

162 SPELLIMMUNITY                  

163 PROTECTIONENERGY                  

164 SPELLTRAP                  

165 [FILLME] -- [Formerly IMPROVEDALACRITY]             

 

176 GAZEREFLECTION

177 SPELLSHIELD

178 RESISTFEAR

179 [FILLME] -- [Formerly PROTECTIONNORMALMISSILES]

180 INSIDEOFCLOUD [and take 10 off of each current value]

181 PROTECTIONNORMALWEAPONS

182 TENSERSTRANSFORMATION

 

I guess I did miss a couple in my recap. Even with SPELLTURNING and PHYSICALMIRROR left in, and a slot for CURSED, we have seven (7) slots remaining. Plus more, if Avenger has managed to find us a couple.

 

EDIT: After looking around and considering it a bit, I also think that TENSERSTRANSFORMATION is a waste. It's already covered by ScriptingState4, value 1, in a proper grouping of "things that allow you to attack only" (berserk, tensers, champion's strength, etc). If you have the spell cast, you won't be able to recast it anyways. So why the extra check? Add the SS4 condition to your spell block instead, and all is well.

 

Now here's a question that this raises. Does the effect 145:Disable Spellcasting Abilities actually set the stats SPELLFAILUREPRIEST and SPELLFAILUREMAGE to 100, as it should? Or, at least--have you seen a caster use Tensers from a script, and he doesn't even attempt to cast any spells (because of the SPELLFAILURE check in the spell conditions, like all of eSeries has)?

 

Heck we've almost got enough free to give Spell Immunity each their own slot.

 

One of the things that I've never tested is does Spell Failure effect Innates or Class spells? I'd guess not, but one never knows.

 

Horred, thanks for giving this some serious thought. I think we are making good progress towards an equitable an efficient solution.

 

Cheers,

Cirerrrek

Link to comment
Heck we've almost got enough free to give Spell Immunity each their own slot. 

 

One of the things that I've never tested is does Spell Failure effect Innates or Class spells?  I'd guess not, but one never knows. 

 

Horred, thanks for giving this some serious thought.  I think we are making good progress towards an equitable an efficient solution. 

 

Cheers,

Cirerrrek

 

I was wondering that as well, and also...can they be disrupted by a successful hit in combat? Subject to silence?

 

I also tested another in-game stat set out, and found that they are broken:

 

142 CHECKFORBERSERK           

143 BERSERKSTAGE1             

144 BERSERKSTAGE2

 

I tested in the usual "class script full of displaystringhead()" fashion, and not a single one sounded a string throughout 3 uses of Berserker Berserk (SPCL321). This includes the "afterglow" fatigue time.

Link to comment
Heck we've almost got enough free to give Spell Immunity each their own slot. 

 

One of the things that I've never tested is does Spell Failure effect Innates or Class spells?  I'd guess not, but one never knows. 

 

Horred, thanks for giving this some serious thought.  I think we are making good progress towards an equitable an efficient solution. 

 

Cheers,

Cirerrrek

 

I was wondering that as well, and also...can they be disrupted by a successful hit in combat? Subject to silence?

 

I also tested another in-game stat set out, and found that they are broken:

 

142 CHECKFORBERSERK           

143 BERSERKSTAGE1             

144 BERSERKSTAGE2

 

I tested in the usual "class script full of displaystringhead()" fashion, and not a single one sounded a string throughout 3 uses of Berserker Berserk (SPCL321). This includes the "afterglow" fatigue time.

 

What about Minsc's version of the Berserk spell? I think his spell actually has the Beserk Effect in place. Then again. Wasn't that detectable through one of the Scripting States in an out-of-the box install? I could have sworn that the cool down effect of Berserker Berserk was detectable. Something to do with SPCLsomethingD, maybe?

 

Sorry if I'm not thinking too adroitly. Just got back from a Scotch tasting. Wheeee!

:down:

Link to comment

I just thought of a stat that "might" be handy: CALLLIGHTNING

 

Detecting for it would be handy for any Prot/Electricity spell/scroll, or potion of absorption, etc.

 

Just a thought...

 

Hopefully some other people start taking an active role in this thread. That's what "community project" ia all about! :down:

 

I've gone to all the places I can think of, where good scriptors still lurk, and passed the word.

Link to comment

Going once, going twice,....

 

Seriously though, I've got no complaints about what has been discussed. And a little BirdDawg has told me that this discussion is potentially holding up G3's BG2 Fix Pack Public Beta :down:

 

So, if you want to have a say, now is the time to step up to the mic and get your 2 cents on record.

 

Thank ya. Thank ya, very much.

Link to comment

Oh yeah, forgot about this one.

 

117 PROTECTIONEVIL

 

How about we make it

 

117 PROTECTIONFROMALIGN

or

117 PROTECTIONFORMALIGNMENT

 

Divine Remix has offered up a Protection from Good spell and a Protection from Good 10' radius.

 

To be equitable, seems like we should as those happy chaps to also include a

 

Protection from Neutral and a Protection from Neutral 10' radius spell.

 

Thanks,

Cirerrek

Link to comment
Going once, going twice,....

 

Seriously though, I've got no complaints about what has been discussed.  And a little BirdDawg has told me that this discussion is potentially holding up G3's BG2 Fix Pack Public Beta :devil:

 

So, if you want to have a say, now is the time to step up to the mic and get your 2 cents on record. 

 

Thank ya.  Thank ya, very much.

 

 

Well, ample time has been given. People have been notified.

 

I guess we give it a couple more days, and wrap it up. Since it's just you and me so far, Cirerrek--think of any you might want. :down:

Link to comment
Well, ample time has been given. People have been notified.

 

I guess we give it a couple more days, and wrap it up. Since it's just you and me so far, Cirerrek--think of any you might want.  :down:

 

I agree. Give it a few more days then see if can get someone to code everything up.

 

Sigh, that means another re-install to get rid of the mods that are using the older version of DS.

 

1) Lets's call it Detectable Effects, Scriptable Spells used to mean something else. Detectable Effects is close enough to the old Detectable Spells that it shouldn't result in too much confusion.

 

2) The 117 thing I mentioned above as a suggestion.

 

3) I'd also like to continue usage of the _ inbetween words.

 

e.g.

 

117 PROTECTIONALIGNMENT

 

to

 

117 PROTECTION_ALIGNMENT

 

or e.g.

 

128 PROTECTION_MAGIC_WEAPONS

 

I'm all for shortening what I have to type, but I also want to be able to read it at a glance :devil:

 

4) Oh, is it KHELBEN or KHELBAN?

 

5) Should we break Spell Immunity up a bit to utilize the remaining slots? I don't really have a preference either way other than SPELL_IMMUNITY_1 and SPELL_IMMUNITY_2 seems like an inelegant nomenclature.

 

6) SCRIPTINGSTATES

 

They all seem like there is a high probability that they might be doing some things that we don't know about. Should we move things like Combat Protections out to one of the Proficiency slots?

 

Okay, I'll quit now.

 

Thanks,

Cirerrek

Link to comment
3) I'd also like to continue usage of the _ inbetween words. 

 

e.g.

 

117 PROTECTIONALIGNMENT

 

to

 

117 PROTECTION_ALIGNMENT

Keep in mind, duplicate IDS entries for the same value won't hurt anything--having both will allow folks to use whichever they prefer without loss of functionality.

Link to comment

Archived

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

×
×
  • Create New...