Jump to content

Scriptable Spells v3


Recommended Posts

*wades through the mounds of confetti*

 

I had a pretty busy week this week, not much progress was made. I got a bit into the NEEDS_BREACH stat--it's bigger than I thought it was. Almost as big as the DISPEL_(xxx) set! :)

 

SPELLFAILUREINNATE and DEAD_MAGIC, the latest findings by Avenger, were also added to the stack. I'm sure we all can find uses for SPELLFAILUREINNATE; anyone making custom scripts for Watcher's Keep (esp demons) will possibly have use for the DEAD_MAGIC stat (perhaps a block or 2 in player scripts as well?).

 

EDIT: This next week will probably be a busy one as well, but I'll do my best to set some time aside for further progress.

Link to comment

You didn't get your check from G3? The Q1 bonus checks went out a few weeks ago. Maybe there's a mixup in payroll. You might want to contact that department, just in case: payroll@gibberlings3.net

Link to comment

Payroll dept. directed me to the donations link...doesn't figure... :p

 

Well, I got a little progress done, until I had to rescue my kitten from 30' or so up a skinny tree. He is unscathed, I'm scratched to bits! (by the tree, not the cat). I'll stop typing soon, as it hurts to type. But NEEDS_BREACH is done, and I got a start on DISPEL_BAD

 

I found a spell that cannot be accounted for properly by the CheckStat DISPEL_ (good or bad). Chant spell. If you are concerned about chant in your scripts for dispelling matters, you'll simply have to use StateCheck(xxx,CHANT [/ _BAD]).

 

I'm also setting up dispel-type spells as numerical entries based on their spell level (as per "...somebody's" :p request). Those who are familiar with how scripting state effects work will realize this is far from foolproof. The last entry recorded is the only one that sticks. But it may work "some of the time", which is better than none at all, and perhaps some scriptor or another might appreciate this. A standard, generic check will be done by a CheckStatGT(xxx,0,DISPEL_ [GOOD/BAD]).

 

Okay, enough typing; time for some more antibiotic cream. :D

Link to comment

Hello!

 

I don't know what the status of your Detectable Effects v3 is but I'd like to report here the detectable spells table that Enhanced Creatures uses. Unfortunately I am no modder and the author can't work on it now. I just really wish that there wouldn't be incompatibilities in the future and I am asking you for help, if you can.

 

Here's the content:

 

 NAME                             SPELL 	        VALUE   STAT            CLONE_OP
Barbarian Rage                   SPCL152.SPL	1	SCRIPTINGSTATE4	142
Remove Fear                      SPCL222.SPL	2	WIZARD_RESIST_FEAR	142
True Sight                       SPCL232.SPL	1	TRUE_SIGHT	142
Enrage                           SPCL321.SPL	1	SCRIPTINGSTATE4	142
Poison Weapon                    SPCL423.SPL	4	SCRIPTINGSTATE4	142
Offensive Spin                   SPCL521.SPL	2	SCRIPTINGSTATE4	142
Defensive Spin                   SPCL522.SPL	2	SCRIPTINGSTATE4	142
True Sight                       SPCL732.SPL	1	TRUE_SIGHT	142
Boon of Lathander                SPCL741.SPL	3	SCRIPTINGSTATE4	142
Draw Upon Holy Might             SPIN103.SPL	4	SCRIPTINGSTATE5	142
Berserk                          SPIN117.SPL	1	SCRIPTINGSTATE4	142
True Sight                       SPIN684.SPL	1	TRUE_SIGHT	142
Protection from Magical Weapongs SPIN686.SPL	4	WIZARD_PROTECTION_FROM_MAGIC_WEAPONS	142
Moon Dog Sight                   SPIN696.SPL	1	TRUE_SIGHT	220
Remove Fear                      SPPR108.SPL	2	WIZARD_RESIST_FEAR	142
Armor of Faith                   SPPR111.SPL	1	CLERIC_ARMOR_OF_FAITH	142
Draw Upon Holy Might             SPPR214.SPL	4	SCRIPTINGSTATE5	142
Summon Insects                   SPPR319.SPL	1	CLERIC_INSECT_PLAGUE	60
Free Action                      SPPR403.SPL	1	CLERIC_FREE_ACTION	142
Defensive Harmony                SPPR406.SPL	1	CLERIC_DEFENSIVE_HARMONY	142
Holy Power                       SPPR412.SPL	3	SCRIPTINGSTATE5	142
True Seeing                      SPPR505.SPL	1	TRUE_SIGHT	142
Chaotic Commands                 SPPR508.SPL	1	CLERIC_CHAOTIC_COMMANDS	142
Righteous Magic                  SPPR513.SPL	6	SCRIPTINGSTATE5	142
Insect Plague                    SPPR517.SPL	2	CLERIC_INSECT_PLAGUE	60
Creeping Doom                    SPPR717.SPL	3	CLERIC_INSECT_PLAGUE	60
True Sight                       SPPR950.SPL	1	TRUE_SIGHT	221
Shield                           SPWI114.SPL	2	SCRIPTINGSTATE3	142
Resist Fear                      SPWI210.SPL	1	WIZARD_RESIST_FEAR	142
Strenght                         SPWI214.SPL	2	SCRIPTINGSTATE5	142
Protection from Normal Missiles  SPWI311.SPL	1	WIZARD_PROTECTION_FROM_NORMAL_MISSILES	142
Fire Shield (Blue)               SPWI403.SPL	2	WIZARD_FIRE_SHIELD	142
Greater Malison                  SPWI412.SPL	1	WIZARD_GREATER_MALISON	142
Polymorph Self                   SPWI416.SPL	1	POLYMORPH_SELF	142
Fire Shield (Red)                SPWI418.SPL	1	WIZARD_FIRE_SHIELD	142
Protection from Normal Weapons   SPWI511.SPL	1	WIZARD_PROTECTION_FROM_NORMAL_WEAPONS	142
Minor Spell Turning              SPWI522.SPL	1	WIZARD_SPELL_TURNING	200
Immunity: Abiuration             SPWI590.SPL	1	SCRIPTINGSTATE6	142
Immunity: Conjuration            SPWI591.SPL	2	SCRIPTINGSTATE6	142
Immunity: Divination             SPWI592.SPL	3	SCRIPTINGSTATE6	142
Immunity: Enchantment            SPWI593.SPL	4	SCRIPTINGSTATE6	142
Immunity: Illusion               SPWI594.SPL	5	SCRIPTINGSTATE6	142
Immunity: Evocation              SPWI595.SPL	6	SCRIPTINGSTATE6	142
Immunity: Necromancy             SPWI596.SPL	7	SCRIPTINGSTATE6	142
Immunity: Alteration             SPWI597.SPL	8	SCRIPTINGSTATE6	142
Tenser's Transformation          SPWI603.SPL	1	SCRIPTINGSTATE3	142
True Sight                       SPWI609.SPL	1	TRUE_SIGHT	142
Protection from Magical Weapons  SPWI611.SPL	1	WIZARD_PROTECTION_FROM_MAGIC_WEAPONS	142
Mantle                           SPWI708.SPL	2	WIZARD_PROTECTION_FROM_MAGIC_WEAPONS	142
Improved Mantle                  SPWI808.SPL	2	WIZARD_PROTECTION_FROM_MAGIC_WEAPONS	142
Mislead                          SPWI607.SPL	1	WIZARD_MISLEAD	20
Protection from Evil             SPWI113.SPL	3	SCRIPTINGSTATE3	142
Protection from Evil             SPPR107.SPL	3	SCRIPTINGSTATE3	142
Protection from Evil             SPCL213.SPL	3	SCRIPTINGSTATE3	142
Protection from Magic            _SCRL07.itm	1	PROTECTION_FROM_MAGIC	142
Potion of Magic Blocking         _POTN33.itm	1	POTION_OF_MAGIC_BLOCKING	142
Potion of Magic Protection       _POTN34.itm	1	POTION_OF_MAGIC_PROTECTION	142
Potion of Magic Shielding        _POTN35.itm	1	POTION_OF_MAGIC_SHIELDING	142
Strangle                         JA#B8-32.ITM	1	SERVANT_STRANGLE	6
Holy Power                       a#tem07.spl	3	SCRIPTINGSTATE5	142

Link to comment
Hello!

 

I don't know what the status of your Detectable Effects v3 is but I'd like to report here the detectable spells table that Enhanced Creatures uses. Unfortunately I am no modder and the author can't work on it now. I just really wish that there wouldn't be incompatibilities in the future and I am asking you for help, if you can.

 

 

The only one that isn't covered, of course, is that item strangling. This could also be done with a LOCALS global, very likely (maybe two--one for user, one for victim).

 

Some of the others have changed, and are perhaps more effective in their new incarnation (e.g. -- the various spell immunities now have seperate stats). Look back further in the post for exact details. Just like everybody else that previously used the system, there will be some adaptation work. But if EC makes this effort, it should blend in relatively seamlessly with the rest of the mods.

 

P.S: What is this "CLONE_OP" you are referring to? And why do they all say 142?

Link to comment

Clone op is just for coding purpose. To copy the duration of that opcode for the script variable.

 

About strangle, I can code this special detectable effect in my mod. Because I don't know how to do it with global.

 

The way it is used:

Aerial servant hit something, strangling variable is set in the item.

Then, I can check in script to release a special effect (Strangle)

 

The only one that isn't covered, of course, is that item strangling. This could also be done with a LOCALS global, very likely (maybe two--one for user, one for victim).

 

Some of the others have changed, and are perhaps more effective in their new incarnation (e.g. -- the various spell immunities now have seperate stats). Look back further in the post for exact details. Just like everybody else that previously used the system, there will be some adaptation work. But if EC makes this effort, it should blend in relatively seamlessly with the rest of the mods.

 

P.S: What is this "CLONE_OP" you are referring to? And why do they all say 142?

Link to comment

I just came across a slight setback while coding the DISPEL_BAD stats. I don't think I can use this to account for any of the IDS-targetted spells, like Hold Person, Hold Undead, Charm Person/Mammal, and so on. So far, I think only charm and hold will be affected. There may be others I'm not thinking about at this time.

 

What does this mean, in layman's terms? The checks for DISPEL_BAD are going to also have to include the following checks, to be accurate:

 

CheckStatGT(LastSeenBy(Myself),0,HELD)
StateCheck(LastSeenBy(Myself),STATE_CHARMED)

 

So, three checks instead of 30 or so... :party:

 

The plus side: you could leave these checks out, if desired.

 

Note that you can also use negative checks to delete other effects you don't want included in your dispel ensemble (e.g.):

CheckStatGT(LastSeenBy(Myself),0,DISPEL_BAD)
NotStateCheck(LastSeenBy(Myself),STATE_SLOWED)

 

And while it is not reliable due to overwriting, I have included Stars to equal the power (level) of the dispel. A fifth level spell (e.g., Insect Plague) will actually set the following as true:

CheckStat(LastSeenBy(Myself),5,DISPEL_BAD)

 

Unreliable, yes. The next spell that comes along (e.g., a web spell) will set the Stat to its value (2, in our example). Some people requested this feature, however. :)

 

Anyways...the priest spells are done, I'm about 1/3 of the way through the wizard spells. DISPEL_GOOD has roughly twice as many spells as DISPEL_BAD. And, a handful of items that have dispellable effects (most are things like SGRASP, CHILLT, etc--spells that make magical weapons appear in the inventory). WEAPON_ENCHANTMENT stat will most likely be done weidu-automated with a REG_EXP_GLOB, so that won't take too long. So, in short---a prototype is only a few hours-at-work away. Now, to find time to actually do this.... :)

 

I'll be looking for some brave testers to help me out, before I unleash this on the public-at-large. Obviously, it will have to be people that know what is going on, and why this is an important project.

 

:beer:

Horred

 

EDIT: Looks like we could add POLYMORPHED stat to the checklist; it has some weird IDS targetting. (Object IDS/FourthNearestEnemyOf) :bday::beer: Maybe we should fix the spell instead?

 

EDIT 2: DISPEL_BAD finished. Only additional problem that rose was with SPWI715 (Power Word, Stun). This is a hardcoded effect, to apply random time blocks according to hit points. This is the only stun-based spell that causes any issues, so I didn't make all stun require StateCheck's. I set its timer for the maximum amount (96 seconds), and gave it a Max Hit Dice of 12. Not at all accurate, but some sort of approximation. Open to suggestions on this one... :band:

 

EDIT 3: Add Chant spell to the list of "things best not detected by a DISPEL_(xxx) stat. I forgot to list it earlier; also a hardcoded effect, it would have to apply both DISPEL_GOOD and _BAD, depending on who cast it and whom was affected.

I doubt this will worry many modders much, as (IMO) casting dispel to rid a chant bonus/penalty is a wasted spell.

Link to comment
EDIT: Looks like we could add POLYMORPHED stat to the checklist; it has some weird IDS targetting. (Object IDS/FourthNearestEnemyOf)  ???  ??? Maybe we should fix the spell instead?
This is actually EA.IDS - NotGood. The party cannot be affected by Polymorph Other (not even the enemy-only innate in ToB). Not sure what they were thinking...
Link to comment
EDIT: Looks like we could add POLYMORPHED stat to the checklist; it has some weird IDS targetting. (Object IDS/FourthNearestEnemyOf)  :)  :) Maybe we should fix the spell instead?
This is actually EA.IDS - NotGood. The party cannot be affected by Polymorph Other (not even the enemy-only innate in ToB). Not sure what they were thinking...

 

Okay; I knew I should've double-checked the targetting in DLTCEP; NI is innaccurate on this. And I now definitely think we should fix this spell (and its variants). Maybe in the G3 fix package instead?

Link to comment

I think they wanted the PC version to not affect PCs (something you can't do without AoE projectiles) when cast by a PC, leading to the stupid implementation. All the other variants are simply copied from the base spell (itself adapted from TotSC, I think). It'll probably get looked at for fixes or tweaks somewhere else.

 

For the Power word, stun effect, I'd pick the middle duration instead of the max duration.

 

In BG2, Chant is only ever a bonus to allies of the casters. The Negative chant is never used in the default files (but it is a separate effect, and would need to be used if you wanted penalties to enemies; Positive chant is only ever a bonus).

Link to comment

Archived

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

×
×
  • Create New...