Lone Wolf Development Forums

Lone Wolf Development Forums (http://forums.wolflair.com/index.php)
-   HL - d20 System (http://forums.wolflair.com/forumdisplay.php?f=46)
-   -   Variant Classes and Prestige Spell advancements (http://forums.wolflair.com/showthread.php?t=48344)

Bluephoenix February 19th, 2014 02:26 PM

Variant Classes and Prestige Spell advancements
 
Hello again! been a long time since I last visited, university and life made it impossible to game for a while, but thanks to a couple of friends I've got back into it, and also back trying to fill in missing content for the data files as I run into them.

I'm amazed at the progress so far on the 3.5 data files!

I went to do a Focused Specialist Wizard (CM variant) and then multiclass sorcerer into Ultimate Magus, however the UM spell casting progression levels were not applying the effects of the variant class. after trying to replicate this with other prestige classes, it happened to all of them, but not base wizard.

it turns out the variant class spell slot modifiers were being tied to base class level:
Code:

hero.child[cHelpWiz].field[cMemMax].arrayvalue[0] -= 1
hero.child[cHelpWiz].field[cMemMax].arrayvalue[1] -= 1
hero.child[cHelpWiz].field[cSecMax].arrayvalue[0] += 2
hero.child[cHelpWiz].field[cSecMax].arrayvalue[1] += 2

if (#levelcount[Wizard] >= 3) then
  hero.child[cHelpWiz].field[cMemMax].arrayvalue[2] -= 1
  hero.child[cHelpWiz].field[cSecMax].arrayvalue[2] += 2
endif

if (#levelcount[Wizard] >= 5) then
 hero.child[cHelpWiz].field[cMemMax].arrayvalue[3] -= 1
 hero.child[cHelpWiz].field[cSecMax].arrayvalue[3] += 2
endif

if (#levelcount[Wizard] >= 7) then
 hero.child[cHelpWiz].field[cMemMax].arrayvalue[4] -= 1
 hero.child[cHelpWiz].field[cSecMax].arrayvalue[4] += 2
endif

if (#levelcount[Wizard] >= 9) then
 hero.child[cHelpWiz].field[cMemMax].arrayvalue[5] -= 1
 hero.child[cHelpWiz].field[cSecMax].arrayvalue[5] += 2
endif

if (#levelcount[Wizard] >= 11) then
 hero.child[cHelpWiz].field[cMemMax].arrayvalue[6] -= 1
 hero.child[cHelpWiz].field[cSecMax].arrayvalue[6] += 2
endif

if (#levelcount[Wizard] >= 13) then
 hero.child[cHelpWiz].field[cMemMax].arrayvalue[7] -= 1
 hero.child[cHelpWiz].field[cSecMax].arrayvalue[7] += 2
endif

if (#levelcount[Wizard] >= 15) then
 hero.child[cHelpWiz].field[cMemMax].arrayvalue[8] -= 1
 hero.child[cHelpWiz].field[cSecMax].arrayvalue[8] += 2
endif

if (#levelcount[Wizard] >= 17) then
 hero.child[cHelpWiz].field[cMemMax].arrayvalue[9] -= 1
 hero.child[cHelpWiz].field[cSecMax].arrayvalue[9] += 2
endif

(post-att, priority 11500, ind 1)

is there any way to modify it to work on spell advancement level instead? I'm still re-learning the HL expression system, and it looks like this affects more than one variant class in the community files. A temporary fix I can apply would also be great for the character in my current weekly game, currently having to track spells prepared the old way, and its really reminding me why I love HL so much.

edit: rather than create a new thread, whats the procedure for submitting new files for the community set? I've accumulated a few odds and ends from stuff I regularly use, along with some material from mongoose publishing's Ultimate Equipment series. they're currently scattered across individual files so they don't get nuked by the community set updates.

Sendric February 20th, 2014 05:04 AM

Clearly, this is a bug in the Ultimate Magus prestige class. I'll take a look at it. If you get a fix before I do, feel free to send it along. I'm currently trying to figure out another issue I introduced in the last release, so I may not get to this before next week.

One of the things on my to-do list is to go through the things in the set and try to make some fixes, but its a lot easier if people just report errors instead (like this one) rather than having me go through everything.

Bluephoenix February 20th, 2014 02:23 PM

Actually, it occurs with every single prestige class that advances spellcasting. (my wording sucks apparently)

I also tried it with some of the other variant classes, and it seems the standard methods of coding variant classes based on the #levelcount[class] expression is causing it to work if you have class levels, but does not work if you're progressing part of the class (SKL, etc) with a prestige class.

easy way to replicate is do wiz 5 focused specialist, then stack any PrC that advances spellcasting. the bonus spells will go from +3 when taking base classes to +1 when taking prestige levels (it only applies specialist wizard mod, not focused specialist)

I have no idea what to check instead of #levelcount[Wizard] though, because using something like caster level is affected by many magic items and feats. is there a separate var for just spellcasting progression?

Edit: tagcount[Hero.Arcane] might work, not sure. it also would likely cause problems with arcane multiclassing.

going to have a dig and see how the regular specialist wizard coding is done.
edit: apparently done in base class by a custom ability I can't find. so back to looking for something to replace the #levelcount[class] variable

Sendric February 20th, 2014 03:28 PM

Hmm...I guess I misunderstood you. I'll have to take a closer look at this tomorrow when I'm in front of HL. Sorry. Sometimes my reading comprehension leaves a little to be desired.

Bluephoenix February 22nd, 2014 07:47 PM

Crazy idea, but couldn't you do a check on the memorized spell array value?

I just tried using:
Code:

if (hero.child[cHelpWiz].field[cMemMax].arrayvalue[2] >= 1) then
  hero.child[cHelpWiz].field[cMemMax].arrayvalue[2] -= 1
  hero.child[cHelpWiz].field[cSecMax].arrayvalue[2] += 2
endif

and it seems to work, the logic being that if you can cast a spell of that level from attribute bonus or otherwise, the variant and normal specialist take effect. essentially the check is "can the character cast X level spells from X class?"

going to need to back check all of the caster variants and see which are affected by this though.

to update focused specialist, just replace the #levelcount expressions with arrayvalue[spelllevel] >=1

Sendric February 23rd, 2014 04:45 AM

That's possible. I didn't get a chance the other day to look at it. I wrote it down on my to-do list, though, so I'll get to it soon. Thanks!

Sendric February 24th, 2014 05:20 AM

Ok, so I took a look at this. I modified the script to look for the Wizard caster level instead of wizard levels, thusly:

Code:

var lvl as number
lvl = hero.child[cHelpWiz].field[cCasterLev].value
.
.
.
if (lvl >= 3) then
.
.
.

I also am seeing a (minor) bug where if your INT isn't high enough you get an error that you have too many spells taken because it expects you to have -1. I'll fix that as well.

Stormcrow March 8th, 2014 08:22 AM

I'm having issues adding the favored enemy paladin variant. Essentially favored enemy doesn't show up all. Maybe I'm missing a step in adding it; because I probably need to script it in and don't have time to write script so... thoughts?

Sendric March 10th, 2014 10:20 AM

I can't get it to work either. The only thing I can think of is that the special "cFavEnemy" must have to be bootstrapped to a class in order to work, and not just a class special. One thing you could try is to create a new Paladin class using new (copy) for yourself that bootstraps this special.

Stormcrow March 17th, 2014 09:37 PM

I got it pop as a pick on the hero but it won't add any of the options I select...though oddly enough it doubles to number of favored enemies available to the ranger class if I add a lvl of that to it.


All times are GMT -8. The time now is 01:01 AM.

Powered by vBulletin® - Copyright ©2000 - 2024, vBulletin Solutions, Inc.
wolflair.com copyright ©1998-2016 Lone Wolf Development, Inc. View our Privacy Policy here.