PDA

View Full Version : Class Caster Level tags


BenT1
May 19th, 2010, 03:36 PM
I have been trying and failing to determine the tags that track class caster level. Example: What would be the Caster level tags for a Multiclassed Wizard/Cleric. And if one wanted to modify them with a feat, what would be the proper timing. I would assume Postlevel/user for the phase.

BenT1

Mathias
May 19th, 2010, 04:07 PM
Please tell me what the goal you're trying to achieve is, I'm afraid I don't understand quite what you're asking. You might also want to take a look at the fields, rather than the tags.

BenT1
May 19th, 2010, 04:23 PM
I have a chacater that is a mutliclasses arcane spellcaster. 3.5 (which we are converting from) has a feat that allows the 2 arcane caster classes to be added together to determin the caster level for each of the classes. The feat in 3.5 is Master Spellthief from Complete Scoundrel. It allows a multiclassed Spellthief to add his caster level from spellthief and any other arcane casting class together to determine the Caster Level for any arcane spells cast. (i.e. extra dice, overcome spell resistance, but not extra spells). It also allows the spellthief to add any arcane caster levels to his spellthief level to determine the maximum spell level he can steal.

I asked for the tags, thinking I would be able to use the field[tag].value to get the values. So the field name would work also. I have looked through the fields and the tags using the output hero tags and the like, but have been unable to determine which how the total caster level is tracked.

BenT1

Mathias
May 19th, 2010, 05:08 PM
Caster level is field[cCasterLev].value, and it's on the Class (the cHelpXXX) for a class.

What it sounds like you want to do is to set up the feat to have the user select both classes (using the "Select From" and "Second Selection From" options. Then, you can access the cCasterLev fields of each of those classes, and add it to the cCasterLev of the other class:


~if the user hasn't selected both classes to apply this feat to,
~there's nothing more we can do, so just get out
doneif (field[usrChosen1].ischosen = 0)
doneif (field[usrChosen2].ischosen = 0)

~get the caster level of class 1 and store it in a variable
var CL1 as number
CL1 = field[usrChosen1].chosen.field[cCasterLev].value

~add the caster level of class 2 to class 1
field[usrChosen1].chosen.field[cCasterLev].value += field[usrChosen2].chosen.field[cCasterLev].value

~add the caster level of class 1 to class 2
~we use the variable here, since otherwise, we'd add our own CL back in
field[usrChosen1].chosen.field[cCasterLev].value += CL1

Use Level/11500 for the timing, since cCasterlev is calculated at Level/11000, and you want to slip this change in before anything else has a chance to look up cCasterLev.

Now, go to the Custom Ability section of the editor, and copy an ability called "Tongues" (it will be listed as "Tongues (cOraTongue)"). On that, look at the Eval Rule, and copy everything there to an Eval Rule on your feat. Change the Message and Summary to "Select two different classes", and find a line in the middle of the script that says "debug temp", and delete that line (debug is used in testing, and it looks like I forgot to delete it after I got the Eval Rule functioning).

Now, your feat will put up a warning if someone selects the same class in both lists. (don't forget to delete the copy of the custom ability before you test your feat).

BenT1
May 20th, 2010, 07:36 AM
Thank you, that is exactly what I am looking for.

BenT1

BenT1
May 20th, 2010, 10:59 AM
Ok, it worked great, after I changed the last chosen1 to chosen2 so it added the var to the right caster level.

One More Thing.....:rolleyes:

I am trying to develop a custom expression that will always select Spellthief for the first class. I have added a prereq that the character must have at least 1 level in Spellthief to take the feat, so we know it has the class.

In the Item selection part of the feat, I have the Select From and Second Select from set to Classes. The Restricts on both are set to hero.

What I want to do is always return the first Select From as the Spellthief class (Not actually give a choice) and further restrict the second to only Arcane Casting Classes.

I have tried several different ways trying force Spellthie into the field[usrChosen1] but they all fail. (I have been trying to do it in Eval Rules, which this script is from). What am I doing wrong? I think I might need the Hero.Child.etc.etc with the Classes.Spellthie part.

BenT1


~if both selectors aren't used, other validation rules will take care
~of that, so just get out
validif (field[usrChosen1].ischosen = 0)
validif (field[usrChosen2].ischosen = 0)

field[usrChosen1].chosen = field[Classes.Spellthie]

debug field[usrChosen1].chosen.idstring
debug field[usrChosen2].chosen.idstring
var temp as number
temp = compare(field[usrChosen1].chosen.idstring,field[usrChosen2].chosen.idstring)

~we're valid if the idstrings of the two chosen things aren't the same
validif (compare(field[usrChosen1].chosen.idstring,field[usrChosen2].chosen.idstring) <> 0)

BenT1
May 20th, 2010, 11:24 AM
Phase:Finaluser/1000
var bonus as number
bonus = field[xIndex].value
field[listname].text = "Steal Spell Levels 0-" & bonus

~only run the rest for the first copy
doneif (tagis[Helper.FirstCopy] = 0)

field[abValue].value += field[xCount].value
field[livename].text = "Steal Spell Levels 0-" & field[abValue].value

I have this script that counts the number of times Steal Spell is called in the Class tab, Class Special Abilities list. I was trying to figure out how to add the field[usrChosen2].chosen.field[cCasterLev].value to the number of Spellthief used to determine the xcount so that the Master Spellthief feat added the sencond arcane caster level to the spellthief level to determine what level of spell max could be stolen.

Or would this be better done within the evals of the feat, Master Spellthief?

(This all is, of course, assuming that the [usrChosen1].chosen is fixed to spellthief.)

Mathias
May 21st, 2010, 08:44 AM
So, one of the classes has to be Spellthief? You don't choose two classes?

If so, simply remove the need for the second chooser, and replace "field[usrChosen2].chosen." with "hero.childfound[cHelpSpt]." in the script.

For the class special, create the class special as if the feat didn't exist.

Then, have the feat add extra levels to the class special like this:


hero.childfound[the class special].field[xExtraLev].value += CL1


The Extra Levels are incorporated very early in the Post-Levels phase, but the feat is already running in the Levels phase, so there's no problem with that.