View Single Post
Lawful_g
Senior Member
Volunteer Data File Contributor
 
Join Date: Mar 2007
Posts: 1,245

Old February 9th, 2011, 04:38 PM
No, I am suggesting you bootstrap the "xInitiate" special you made to the class helper for swordsage. In the editor, open the file you have swordsage in, click on the "Class" tab, and select Swordsage, then hit the bootstrap button and add a new bootstrap for the Initiator special you made.

Then hit the Eval Scripts button and add that eval script... at least that was what I suggested, read below.

Alright, so if other base class levels count towards initiator level then you have 2 options. You could:

A. Make a new copy of every base class that has the eval script to add to your Initiator special, then have it replace the old copies of the class via the Replaces Thing mechanism. I do not reccommend this way, because it is a lot of work.

B. Not put the eval script on the Class Helper, and instead put it on the Initiator special but modify it to look at all levels on the hero. You'd still have to bootstrap it to all classes that use it (swordsage, crusader, etc) but not to other classes (rogue, wizards etc), so no need to replace the old ones. I think this is the better option.

To have it look at all levels on the hero use a foreach:

Phase Post-Levels Priority 10000
~ Look at every thing on the hero that is a class helper...
foreach pick in hero from BaseClHelp

~ On each thing, if it is one of the classes that gets full level added (we check identity by looking at the thingid.WHATEVER tag) then add all of the [cTotalLev] field's value to our Value field. In this example cHelpSSa for Swordsage, and cHelpWHA for all future classes you add that add full levels. If you do not have any others yet, delete it, but you will have to add each to the code as the classes are created, or they will not add correctly.

if (eachpick.tagis[thingid.cHelpSSa] + eachpick.tagis[thingid.cHelpWHA] <> 0) then
field[Value].value += eachpick.field[cTotalLev].value

~ Otherwise, if it is not one of those classes, add half levels to our value field, rounded down. I am still assuming a minimum of 1, since you didn't tell me any different.

else
field[Value].value += maximum(round(eachpick.field[cTotalLev].value/2, 0, -1), 1)

endif

~Go on to the next thing
nexteach

Last edited by Lawful_g; February 9th, 2011 at 05:18 PM.
Lawful_g is offline   #38 Reply With Quote