I am setting out to fix mindfox for my first foray into modding... yay! First, I must ask, what is actually broken? I have raised an issue to the exact nature of the spell here: http://www.giantitp.com/forums/showthread.php?t=150209 and here: http://brilliantgameologists.com/boards/index.php?topic=7904.0 Secondly, I can say what IS definitely broken... 1. Casting mindfog I am shown fortitude saves. However according to its description it should be will save (both the description in SRD and in TOEE). Solution: I would first attempt to modify the spell so that it requires a will save instead of a fort save. 2. Mind fog should last 2d6 rounds after leaving the fog, it currently has a duration of 300 (the duration of the actual fog is 300, the duration of the effect on a target should be 2d6 rounds). 3. The TOEE description says that the save is only attempted once, and a success makes you immune to that particular spell for a day (only matters if permanent since duration is 30 minutes) The SRD description makes no such mention. So it needs to be verified how often you should be making the check... Regardless the current implementation contradicts the in game help, because you make the save every time you enter the mindfog, not only once. 4. The spell needs to overcome SR when you first enter it, and a second time when you leave it (removing its effect if it fails the second SR check). that should not happen. Back to what I am not sure is broken: 1. -10 competence penalty to all wisdom checks doesn't do anything in TOEE, is that meant to apply to skills such as survival? if so it needs to be implemented.
If you're not making the save every round, or every time you enter, I don't see the point. "Curses, his Will save is too high: cast Mind Fog! O damn, he saved..." As you say, just launch the Save-or-Lose in the first place and hope for the best. 1. should be straight-forward.
Code: from toee import * def OnBeginSpellCast( spell ): print "Mind Fog OnBeginSpellCast" print "spell.target_list=", spell.target_list print "spell.caster=", spell.caster, " caster.level= ", spell.caster_level game.particles( "sp-enchantment-conjure", spell.caster ) def OnSpellEffect( spell ): print "Mind Fog OnSpellEffect" spell.duration = 300 # spawn one spell_object object spell_obj = game.obj_create( OBJECT_SPELL_GENERIC, spell.target_loc ) # add to d20initiative caster_init_value = spell.caster.get_initiative() spell_obj.d20_status_init() spell_obj.set_initiative( caster_init_value ) # put sp-Invisibility Sphere condition on obj spell_obj_partsys_id = game.particles( 'sp-Mind Fog', spell_obj ) spell_obj.condition_add_with_args( 'sp-Mind Fog', spell.id, spell.duration, 0, spell_obj_partsys_id ) #spell_obj.condition_add_arg_x( 3, spell_obj_partsys_id ) #objectevent_id = spell_obj.condition_get_arg_x( 2 ) def OnBeginRound( spell ): print "Mind Fog OnBeginRound" def OnEndSpellCast( spell ): print "Mind Fog OnEndSpellCast" def OnAreaOfEffectHit( spell ): print "Mind Fog OnAreaOfEffectHit" def OnSpellStruck( spell ): print "Mind Fog OnSpellStruck" Fort instead of Will - Might sound simple at first, but unfortunately it seems it's hardcoded. The spell script merely creates an invisible spell object, and applies a "mindfog" condition to it. To substantially alter its behavior, it appears you would have to alter the the hard-coded "mindfog" condition that is applied. Either that, or find an alternate way to script a persistent AoE spell - good luck with that. See 1. (the spell duration in the script affects the fog itself only) See 1. See 1. Also, I think the SR check is irrelevant - doesn't simply exiting the cloud remove the condition? On a side note, since it requires a fort save instead of a will save, it could actually come in handy!
I don't see the point either, it is a really bad spell... the only reason to cast it is if you are with other casts who intend to spam will save or lose, or have a much higher level will save or lose Ex: cast mind fog followed by an SL9 level will save or lose. But as its written, you only make one will save, and if you succeed that the spell can no longer affect you... if you fail you lose 10 points of will and 10 points to all skills based off of wisdom (wisdom itself is not reduced though)... oh, so yea, you are also unable to spot, listen, survival, etc... yes, yes it can... at least in CRPG like toee... Since everything seems to be hard coded... I will look into altering its in game description to correctly describe what it does. Some uses for mindfog as written were pointed out to me... when facing a group of enemies with very good will, drop a mindfog on the entire group, only a few will fail, target those with single target spells that target will.. such as dominate. Alternative, vs a group of regular save levels, hit them with mind fog followed by mass hold person. hold person allows a save every round to escape. so destroying their will save is important for long term holding.
mmm, what you posted there doesn't look like any of the .mes files... what file is it from? I have a feeling I am looking at completely the wrong place
All the spell script files are in data / scr. At least, all the ones Co8 has modded. For the complete set, you'll need to look in the dats: ToEE4.dat then data / scr.
thank for clarifying shiningted. So, Since the spell is entirely hardcoded, Would the best (for now at least) solution be to just alter the description of mindfog in TOEE to read "fort save" instead of "will save" and change the part about "save only once" to "save every time you enter the fog"? Oh, and remove the line that says it drops wisdom based skills (it doesn't affect those in TOEE)... TOEE mindfog is basically: every time you enter the cloud, make a fort save or suffer -10 to will save. nothing more, nothing less.