Jump to content

Scriptable Spells v3


Recommended Posts

I set this fine package up over two years ago, in the hopes of making a community standard for imporved scripting. The system of Kensai Ryu was the base of this, but due to some discoveries made by both Avenger and I, we saw that changes would have to be made.

 

At the time, I had very little feedback or expessed interest in this. I thought it would just be unique to BP, and otherwise left in the dust.

 

Were it not for the revamping of my primitive weidu code into modern magic, by weidu ninja King Diamond--it likely would have.

 

I cannot tell you how glad I was when pouring through the eSeries, and seeing my system put to great funtional use. It is not the only mod using it, either. It looks like my plan has finally come to fruition, and scripting as a whole is elevating.

 

Now that it has become a community standard, I think it's time to do some reworking and refining. I set this up all by myself originally, with almost zero outside input. I was doing it for BP at first, and thus you see things like CLERIC_HALLOW (a TDD exclusive). Now that several of us are using it, it's time to put our heads together and make it all we want it to be (or as best as it "can" be).

 

I've been looking through the identifier entries, and I'm proposing we cut a few out. More recent finding have shown that several are redundant. Others are not being used--if so, very rarely. These are the ones I was considering:

 

109 CLERIC_HALLOW (let's not waste precious slots on one mod!)

120 CLERIC_INSECT_PLAGUE (we can detect it by SPELLFAILURE(mage/priest)

123 CLERIC_SHIELD_OF_THE_ARCHONS (combine this with SPELL_TRAP stat, diff value)

127 WIZARD_MISLEAD (we can do this with PUPPETTYPE and PUPPETMASTERTYPE. No, that wasn't a typo. Yes, I've read IEDSP. We can discuss this in a different thread)

129 WIZARD_SPELL_TURNING (covered by HasBounceEffects)

165 WIZARD_IMPROVED_ALACRITY (covered by AURACLEANSING)

180 WIZARD_GREATER_MALISON (haven't found much use for this. I already piggybacked valuable cloud detection on this effect. Maybe switch this to just cloud detection?)

 

 

Another small thing, from looking through others' scripts:

 

CheckStat(Myself,3,SCRIPTINGSTATE4)

 

The only spell i've seen any scripting for with this is mazzy's INVOKE_COURAGE. Should we perhaps move any other spells to another value, and make this a clear definer?

 

IF we decide to cut any/all of these out, we'll have to put the recovered slots up to vote--for what we fill them with. I suppose this thread is as good as any place to debate about it. Unless our friendly moderator wishes otherwise. :down:

 

Also, think about any value changes that you'd wish to see in a different order, and try to explain why you would like it so. This includes splitting up existing value setting, whatever. KD's 2DA system made moving things around a snap. Nothing like the old days, when I was wrestling with NI to add effects to spells without corrupting the file (it corrupted about 1 in 3 back then).

 

 

 

Please, fellow users of the Scriptable Spells (formerly BP DetectStats) -- give some input, if not some man-hours (minutes?), towards this. It is a worthy goal, and we all will benefit from it. If I have to give up the name, the least you guys can do is help out a bit! :devil:

Link to comment

From the wiki

 

Talk:Detectable Affects final ids

----------------------------------------------

Hmm, perhaps a condensed list of which spells (name and resref) are detectable by which stat and value, together with the theoric meaning of each .ids entry would be more useful by this crude list. Sadly, tp2 is my business (and business is good) and somebody more expert than me should clarify  :) 

The bigg 05:38, 18 Oct 2005 (PDT) 

----------------------------------------------

With this version of DS, there are at least 2 glaring repeats. 

1) WIZARD_IMPROVED_ALACRITY can be detected using AURACLEANSING 2) LEVEL_DRAIN has 2 entries, 136, IIRC and 200. 

There seems to be a need for detection of "Penalty Effects" such as Doom, Curse, etc.,. Seems like one of the repeats would be a good candidate for turning into a stat that tracks Penalty Effects. 

Next topic, 

I don't have a really thorough good reason for this, but why CLERIC_ and WIZARD_? I know the original intent was so they would be like the spells and thus easier to remember, but there is so much cross-over, it seems like a waste of typing. 

INSECT_PLAGUE, SPELL_DEFLECTION, etc., would surely suffice and would not be confused with the SPELL.IDS name. 

--Cirerrek 10:54, 22 Nov 2005 (PST) 

----------------------------------------------

Unfortunately, it's a very bad idea to change this, as we'd be breaking backwards compatibility with most mods (Ascension, Kelsey, RTW and God knows what else). 

The bigg 06:05, 25 Nov 2005 (PST) 

----------------------------------------------

Talk:Detectable Affects documentation

Xyx had some comments about some of the IDS entries: 
118 TRUE_SIGHT 
I vaguely recall there being a TRUESEEING stat for this. 
120 CLERIC_INSECT_PLAGUE 
Why? Casting failure 100% is practical enough. 
127 WIZARD_MISLEAD 
Just checking for invisibility not good enough? 
130 WIZARD_PROTECTION_FROM_THE_ELEMENTS 
Checking for damage resistance not enough? 
156 SCRIPTINGSTATE1 
157 SCRIPTINGSTATE2 
158 SCRIPTINGSTATE3 
159 SCRIPTINGSTATE4 
160 SCRIPTINGSTATE5 
161 SCRIPTINGSTATE6 
Are these still required after you make their individual effects detectable? 
162 WIZARD_SPELL_IMMUNITY 
The type of immunity is VERY important AND can be cumulative. It would be useful to have every type available separately. People (possibly including me) might want to mess around with immunity to abjuration and one other (like divination). 
That said... since I found out Detect Illusions kills everything right through spell immunity, I stopped bothering. >\ 
163 WIZARD_PROTECTION_FROM_ENERGY 
Damage resistance checks not enough? 
165 WIZARD_IMPROVED_ALACRITY 
Has a stat called AURACLEANSING that works fine. 
179 WIZARD_PROTECTION_FROM_NORMAL_MISSILES 
Has a stat called SHIELDGLOBE that works fine. 

comments Xyx, posted by The bigg

----------------------------------------------

Can some resident scriptor reply more in detail? For now, I told him that they're needed for backwards compatibility issues.

The bigg

----------------------------------------------

2nd try since the wiki didn't accept my first post. Sigh. 

My main question is, can backwards compatibility truly be maintained? I mean we're changing some of the stats. That would seem to have the effect of breaking backwards compatibility to me. 

Xyx's take is valid in that he wants to cover the important things like Spell Immunity. After that, we're left with X number of free slots. Should we just leave them alone? 

Ideally, every spell would set its own specific stat/state, but as usual, we're not dealing with ideal. 

That means you have to pick and choose, which spells are 'detectable stat' worthy. 

1 Reason is detectability for dispelling/targeting etc.,. 

2 Reason is for convenience. I use them a lot in lieu of setting timers in scripts. Specifically timers for spells that don't have a fixed duration or the duration changes at various levels. 

Duplicate entries. There are a couple. I think I've mentioned Improved Alacrity/Auracleansing and Level Drain before. 

I'd dump at least one of those for spells that cause penalities such as Curse, Doom, Faerie Fire, etc.,. (although two of these are mod spells, hopefully it conveys the idea). 

Entries where there is an alternative such as another stat/state. There are some such as Shield Globe. Shield Globe is somewhat non-specific in that there are couple of things that will cause that to return true. I'm sure some would say fine and others would say, no we need to be as specific as possible. 

If we're breaking backwards compatibility, then we are looking at maintaining compatability with BP/BGT/et al. 

The BGT team is ahead of this effort in at least two ways that I can think of. According to a relatively recent post by Horred, they've already started using the Area Effect Spells detection and they've got a bug fixed, BP Detectable Spells compatibile version of Ascencion. 

Don't know that I've answered any questions, but hopefully I've provided some turnips for thought. 

Thanks, 

--Cirerrek 20:36, 14 February 2006 (PST)

Link to comment

List of Mods that use Detectable Spells (So we can cajole the controlling modder into switching if we do make some changes to Detectable Spells or shall we now call it Scriptable Spells? or offer to do it for them if they are no longer active or interested).

 

These are the ones that I know of. Please feel free to add to the list

 

eSeries (cirerrek)

Kelsey (jcompton)

Oversight (Kish)

Quest Pack (SimDing0)

Ascension (old version and WeiDU, various modders)

 

various iterations of The Big Picture and I think the Baldur's Gate Trilogy.

Link to comment
127 WIZARD_MISLEAD (we can do this with PUPPETTYPE and PUPPETMASTERTYPE. No, that wasn't a typo. Yes, I've read IEDSP. We can discuss this in a different thread)

 

 

No need to discuss. IEDSP isn't correct. I did some additional research to confirm that statement. I knew it was repeating what you had already done, but you were MIA or playing it low profile at the time. Plus it helped me to test it myself. Gotsta 'roll around in the data' myself.

 

http://forums.gibberlings3.net/index.php?showtopic=5061

Link to comment

I remain vastly unclear on what the hell is going on. We appear to still have separation between the versions in BP and on the G3 wiki (which I gather Mr. Bigg has now combined with RtW's). I will be using whichever version appears in the BG2 Fixpack, because my mods will require the BG2 Fixpack. However, they should not be different things. Are they?

Link to comment
I remain vastly unclear on what the hell is going on. We appear to still have separation between the versions in BP and on the G3 wiki (which I gather Mr. Bigg has now combined with RtW's). I will be using whichever version appears in the BG2 Fixpack, because my mods will require the BG2 Fixpack. However, they should not be different things. Are they?

 

Well, that's one of the reasons I started this thread, Mr Ding0. To organize this, and get the desired unity. By making this better, maybe we can conbince other modders to "join the band wagon."I am willing to sacrifice for the greater good--though it seems that my suggestions are roughly in line with other ppl's opinions already.

 

As far as "backward compatability" goes--how much rewriting are we really talking about. I have ~ 500 scripts I'd have to check, if we make changes. My text editor "does" have this little set of features called "find", "replace", and "replace all". Too bad it cannot do 500 scripts at once, AFAIK. Does somebody have more than this to take care of? Possibly, but likely not.

Link to comment
I remain vastly unclear on what the hell is going on. We appear to still have separation between the versions in BP and on the G3 wiki (which I gather Mr. Bigg has now combined with RtW's). I will be using whichever version appears in the BG2 Fixpack, because my mods will require the BG2 Fixpack. However, they should not be different things. Are they?

 

Sim,

 

From what I can tell, they are at a cusp where they may begin (have begun?) to diverge again.

 

After seeing how it is being used, at least in regards to Player AI Scripting, Horred is saying that "Hey there are some things here that could probably use some fixing. So lets talk about it and come out with the best version that we can collectively come up with."

 

Thanks,

Link to comment

As a result of an errant finger, I accidentally deleted Horred's post. Hopefully, it can be retrieved from electron hell and restored.

 

If that is not possible, Horred, could you re-post, pretty please. I'll even ask Cam if we can add a bludgeoning with a fish smilie for just this particular instance of stupidity.

 

 

:devil: Cirerrek :down:

Link to comment

And also managed to delete the post I was typing at the time I killed Horred's post. Sigh...

 

Physical Mirror is covered by (albeit a bit broadly):

 

HasBounceEffects(O:Object*)

Minor Spell Turning 
Physical Mirror 
Spell Turning 
(Item: Cloak of Mirroring) 
(Item: Shield of Reflection +1)

 

Protection from Normal Missiles is covered by:

 

CheckStat(O:Object*,1,SHIELDGLOBE)

Protection from Normal Missiles (also HasImmunityEffects) 
(Not Shield)

 

After that I agree with Horred's summary...if it ever comes back.

 

Thanks,

Cirerrek

Link to comment
If that is not possible, Horred, could you re-post, pretty please. I'll even ask Cam if we can add a bludgeoning with a fish smilie for just this particular instance of stupidity.

 

 

Did someone call for a halibut? :down:

Link to comment
If that is not possible, Horred, could you re-post, pretty please. I'll even ask Cam if we can add a bludgeoning with a fish smilie for just this particular instance of stupidity.

 

 

Did someone call for a halibut? :down:

 

Holy moly, were was someone hiding a halibut? Ahhhhh, might be that big shiny blue Show All button.

 

I think Icelus intended to give me this one :devil:

 

Or OMG, there isn't a special Baned smiley...is there?

Link to comment

dag nabbit! I was just coming back, cause I forgot to put down CLERIC_HALLOW.

 

If I could somehow put physical mirror on the shield globe, we'd be all set.

 

We're already using HasBounceEffects to detect spell turning...hmm. I'll have to mull over that one. I wouldn't dream of substituting ImmunityEfects trigger for any clear-cut stat, but that one isn't too crowded.

 

I'm too sleepy to sum it up tonight--staring at scripts for 3 days can do that. :down:

 

I'll try to type it (again) in (my) morning. :down::devil:

Link to comment

(Yawn.. )

 

Okay, let's try this again.

 

109 CLERIC_HALLOW mod stat, gotta go...

118 TRUE_SIGHT necessary. SEEINVISIBLE does not detect True Sight, and detecting it on others is a useful thing

120 INSECT_PLAGUE: SPELLFAILURE [PRIEST/MAGE] works fine. No spells to directly counter it, so pitch it.

123 SHIELD_OF_THE_ARCHONS lump this with SPELL_TRAP, at a different value. I don't know if spells like Ruby Ray, etc. Affect it differently or not.

127 MISLEAD recent discovery of PUPPETTYPE/PUPPETMASTERTYPE makes this redundant. The in-game stats are better.

129 SPELL_TURNING can be done with HasBounceEffects() almost as effectively. I have uses for it seperately, as I'll demonstrate below. Majority decision however...

130 PROTECTION_FROM_THE_ELEMENTS can be done just as effectively with RESISTxxxx. Just takes more lines. I say we drop it

 

SCRIPTINGSTATE's should stay. BPDetectStats didn't add many of these values, they were already hardcoded. I just built around them. The other ones, I assembled intentionally. More than yours truly find them useful.

 

165 IMPROVED_ALACRITY just use AURACLEANSING instead. Pitch it!

180 GREATER_MALISON I say we move g malison to a differetn new stat (the one for Doom sounds like a winner), and leave this slot for the new piggybacked clooud detection. This code is very useful, if you haven't tried it out yet. :down:

 

PHYSICAL_MIRROR: I have some spots in my script I'm definitely looking for this spell, and not SPELL_TURNING. And vice cersa. AS in, within the same block of code. I vote we keep both, but if I'm outvoted I'll just have to suffer.

 

like this example: (from upcoming BPMULTI.bs). This is a safety check for a spell with a long casting time:

 

  OR(3)
   !Range(NearestEnemyOf(Myself),8)                                         // and I have space to cast
   CheckStatGT(Myself,0,STONESKINS)                                      // or we're protected against them
   CheckStatGT(Myself,0,WIZARD_PROTECTION_FROM_MAGIC_WEAPONS)
 OR(5)
   !AttackedBy([ANYONE],RANGED)                                           // either we're NOT being attacked by archers, slingers, and dart throwers 
   CheckStatGT(Myself,0,SHIELDGLOBE)                                      // or we're protected against them
   CheckStatGT(Myself,0,CLERIC_PHYSICAL_MIRROR)
   CheckStatGT(Myself,0,STONESKINS)                                      // or we're protected against them
   CheckStatGT(Myself,0,WIZARD_PROTECTION_FROM_MAGIC_WEAPONS)

 

In some cases, I'm using SPELL_TURNING up top in the same script. Like for Spell Trap:

 

  CheckStat(Myself,0,WIZARD_SPELL_TURNING)
 CheckStat(Myself,0,WIZARD_SPELL_DEFLECTION)
 !CheckStat(Myself,1,WIZARD_SPELL_IMMUNITY)
 CheckStatLT(Myself,1,WIZARD_SPELL_TRAP)                                  // and I am not already under the effects of the spell

 

A positive Physical mirror or Spell Turning spell can actually break my script (both a True and False check) unless I use both SPELL_TURNING and PHYSICAL_MIRROR. Why they lumped arrow bouncing and spell bouncing together, I cannot say.

 

I'll leave the final decision on this up to the group, but that's my case for keeping them.

 

 

 

I agree on the names being shortened---not sure what I was thinking > 2 years ago. Not about my fingertips, that much I know...

 

 

So, if we vote my way here, we have 5 slots left over. That's with one being filled up by Doom effects (Greater Malison, mod Curses, etc), and leaving clouds to thier own slot. I'm not against giving a couple to the more common SPEL_IMMUNITY's, like abjuration, divination, necromancy, and maybe invocation--but let's see what other ideas people have first.

 

Hope I didn't forget anything in this recap; can't think of anything...

Link to comment

Archived

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

×
×
  • Create New...