Spell Durations, Continuous Effects

I have spells that remain in effect, as long as certain conditions are met, by recasting themselves when their durations have expired. For example, one spell affects the PC as long as he stands on a certain tile, and one spell affects the PC as long as he has a certain item equipped. I have run into two problems:

No more than one such self perpetuating spell seems to be able to work at a time.

Spells with a duration of 1 do not work at all.

Are these known bugs/engine limitations that I missed? Both spells are defensive, castor affecting, no animation. They work fine seperately, but I would like to have the option of several effects working at a time. Also, they work fine with a duration of 2, but this causes the effect to linger for a few seconds after its required condition has ceased to be met.

Before I came up with a new plan I thought I'd check to see if anyone had any experience with this. Thanks...

myshkyn

------------------
"I'll give the fans just what they want, and nothing else at all."

This is a known bug. What I believe is happening is the spell queue gets all screwed up. You cast a spell and its duration is queued, then when you cast another it over-writes that first spell.

It is kind of funky/random too. If you cast 5 or 6 duration spells, most will work just fine. Typically it is the very first spell cast that gets "forgotten."

The only workaround I've found is to completely by-pass the Coldstone duration code and make yourself an actual timer and let it deal with spell durations/effects. If you use this method your spell will simply trigger an event which will perform the actions you want done and add the spell to your timer. When the spell "expires" your timer will call another event to undo the spell(or do whatever you want to happen when the spell wears off).

I'm hoping that the spell durations are fixed; while the timers are very nice, I hate reinventing the wheel over and over again.

------------------
(url="http://"http://stark.evula.net/pogwalkthrough.htm")PoG Walkthrough and Compendium(/url) | (url="http://"http://stark.evula.net/plugins/dev_tools.htm")PoG Dev Tools(/url) | (url="http://"http://stark.evula.net/plugins/spells_expander.htm")Spells Expander(/url)
(url="http://"http://stark.evula.net")Stark.evula.net(/url) | (url="http://"http://www.evula.net")EVula.net(/url) | (url="http://"http://mail.ambrosiasw.com/mailman/listinfo/coldstone_dev")Coldstone-dev mailing list(/url) | (url="http://"http://ucplugs.evula.net/pog.html")PoG Upcoming Plug-Ins Directory(/url)

Okay, thanks.

To lessen the waste of a new topic spent on old problems, I will share a discovery I made that may or may not be useful. If you give the PC a casting animation and set a spell to constantly recast itself, the PC will do a little dance every few seconds when left alone. With a little work, this might be turned into a breathing/shifting animation. I haven't tested this theory yet.

myshkyn

------------------
"I'll give the fans just what they want, and nothing else at all."

Quote

Originally posted by myshkyn:
To lessen the waste of a new topic spent on old problems, I will share a discovery I made that may or may not be useful. If you give the PC a casting animation and set a spell to constantly recast itself, the PC will do a little dance every few seconds when left alone. With a little work, this might be turned into a breathing/shifting animation. I haven't tested this theory yet.

Yeah, I call this the "jumping jack" effect. I find it quite humorous, personally. 🙂

I'm sure there are things that can be accomplished by this, but I haven't given it much thought(I originally discovered this due to conjecture between Celchu and I on theorizing methods to allow for an ally system).

------------------
(url="http://"http://stark.evula.net/pogwalkthrough.htm")PoG Walkthrough and Compendium(/url) | (url="http://"http://stark.evula.net/plugins/dev_tools.htm")PoG Dev Tools(/url) | (url="http://"http://stark.evula.net/plugins/spells_expander.htm")Spells Expander(/url)
(url="http://"http://stark.evula.net")Stark.evula.net(/url) | (url="http://"http://www.evula.net")EVula.net(/url) | (url="http://"http://mail.ambrosiasw.com/mailman/listinfo/coldstone_dev")Coldstone-dev mailing list(/url) | (url="http://"http://ucplugs.evula.net/pog.html")PoG Upcoming Plug-Ins Directory(/url)