Jump to content

character level vs. caster level vs. spell header "min level" field


Recommended Posts

This is a bit in the weeds, but:

My understanding is that wizard spells are cast at your wizards class level, priest spells are cast at your priest class level, and innate spells are cast at the mean value of your class levels (which is your class level for single-class character, but can be quite different for multi- and especially dual-class characters.

On this assumption, I have a wizard spell that has 50 ability headers, each one with a different "min level" value. This applies opcode 233 effects to simulate "spell slots." E.g. as a 3rd-level mage, you get one 2nd-level "spell slot."

But there seems to be a bug:

On 5/16/2021 at 11:41 AM, Guest Modtester said:

Caster level vs. Character level:  For single class casters this is not an issue because for those the formula is that Caster level = Character level. But for multiclass characters it doesnt seem that simple in the IE as far as i know. If you create for example a cleric/illusionist multiclass and give it enough xp to get to level to lvl 3 cleric and level 2 illusionist the arcane casting slots you get are as if you were a level 3 illusionist. That means that you can cast an illusion spell of spell lvl 2 even though you shouldnt be able to. It seems that the castings slots are determined by your overall character level and not by your level of the illusionist class. Like this example shows that can result in some inconsistencies with your casting slots regarding your mage level in case of multiclass casters.

A cleric 3/mage 2 is getting op233 effects applied as a 3rd-level mage.  My solution to this was to simple make the spell that applies the op233 effect a wizard spell - now it should only be responsive to your wizard class level, right? But that doesn't seem to be the case. And I'm not sure how to fix it.

The wizard spell with the op233 effects is cast by opcode 326 from an innate ability. Could that be scrambling the effective caster level in the wizard spell?

Link to comment

Yes, op326 overrides the casting level of the spell it casts

Quote

The spell specified by the resource field is cast at the same level as the current effect, regardless of Spell type.
Note: If this effect is applied through opcode #177, the spell specified by the resource key is cast at the level specified at offset 0xc8 of the EFF.

Since op326 came from an innate, it will use your innate/character level.

Link to comment
26 minutes ago, kjeron said:

Since op326 came from an innate, it will use your innate/character level.

That's an issue. Does this imply that I could make 50 different .eff files, and selectively apply the effect?

Actually no, the min level being used for those 177 effects would be in an innate ability, and so would also use average character level. Damn.  Maybe I need to... completely separate the divine and arcane versions of the system? That would be problematic.

I do have a script being applied... maybe I could trigger the arcane and divine casting slot spells directly from the script, instead of from within the applied innate ability. Script triggers could take the place of the 326 filters. I'll look into it.

Separately, the issue of preventing casting with armor equipped (but allowing it if a "cast in armor" mod is installed, and correctly applying any casting speed penalties from mods like YARAS) is turning out to be way, WAY trickier than I had hoped it would be. Next update might take a while...

Link to comment
2 hours ago, subtledoctor said:

That's an issue. Does this imply that I could make 50 different .eff files, and selectively apply the effect?

Don't need 50 EFF files, just an extra SPL file:

Resource 1: Op326 (filter) -> Resource2.

Resource2(Just one ability header, Minlev 1): Op146 (p2=1) -> Resource3.

Resource3(Abilities with proper Minlev field): Casting level based on spell type (wizard/priest/innate).

Edited by kjeron
Link to comment

I don't want to interject in someone else's conversation, but since I already looked in this thread... Many level problems can be bypassed by using minimum/maximum hit dice. That parameter takes into account only the first class' level. To cover levels 1-20, instead of 20 abilities it is enough to make one ability with 20 effects, starting from minumum: 1, maximum: 1 and pointing to different resources.

Link to comment

Dice field Dice Thrown / Maximum Level and Dice Sides / Minimum Level are not limited to first class level only, work with LEVEL1 LEVEL2 LEVEL3 if creature is dual-class of multi-class, if creature is single class LEVEL2 LEVEL3 are ignored, if creature is eg. FIGHTER-MAGE LEVEL3 is ignored.

Spell Effect is applied if Dice Thrown / Maximum Level >= LEVEL1 OR Dice Thrown / Maximum Level >= LEVEL2 OR Dice Thrown / Maximum Level >= LEVEL3

Spell Effect is applied if Dice Sides / Minimum Level <= LEVEL1 OR Dice Sides / Minimum Level <= LEVEL2 OR Dice Sides / Minimum Level <= LEVEL3

Spell Extended_Header Level Required, caster level for Special, Innate, Psionic spell type spells is calculated as average , again LEVEL2, LEVEL3 are IGNORED if it is single class.

RoundUP((LEVE1+LEVEL2+LEVEL3)/3), eg, 11,33333 = 12 level

 

Spell Extended_Header Level Required, caster level for Priest, Wizard spell type spells is checked as ClassLevel

 

eg. FIGHTER_MAGE_CLERIC, LEVEL1=3,  LEVEL2=2, LEVEL3=9 

0x4094 Level(O:Object*,I:Level*) trigger will return average level from all 3 classes, (3+2+9)/3 = 14/3 = 4,666666666666667 = 5 level

Target will not be killed by Death Spell SPWI605.SPL becacuse LEVEL3 is higher than 8, for script is better to use:

CheckStatLT(LastSeenBy(Myself),9,LEVEL)
CheckStatLT(LastSeenBy(Myself),9,LEVEL2)
CheckStatLT(LastSeenBy(Myself),9,LEVEL3) 
Edited by Gamemacik
Link to comment

You are right about Minimum/Maximum dice levels. I did some testing just now. Those fields don't use only the first class' level but the highest level in the creature's classes. My purpose is served here, perfectly, in fact. I was looking for some way to use the highest class, which spell headers didn't do, and this turned out to be it. So thanks.

Edited by temnix
Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...