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)
-   -   Able Learner (http://forums.wolflair.com/showthread.php?t=9324)

Dastir October 12th, 2009 11:57 AM

Able Learner
 
I would like to implement the Able Learner feat from Races of Destiny. This feat makes any skill, whether cross class or not, cost only 1 skill point per rank. However, the maximum rank for cross class skills remains unchanged.

Is this possible?

If so, how?

If it is not, then at the very minimum, I would like to make it so every single skill is considered a class skill for the character, and I will worry about whether or not the max ranks are correct manually. What is the easiest way to go about this besides assigning the ClassSkill.skillid tag to the hero for every single skill in the game. It feels like a foreach loop to me, but I have no idea what pick to use for the basis of the loop.

Thanks in advance...

Lawful_g October 12th, 2009 12:27 PM

I had a similar question a couple years ago, and got this response from Colen:

Lawful_g wrote:
>
>
> Wow, thanks, that is just about exactly what I was trying to do. Now a
> second question, about a related ability. The other subrace of this
> people gain an ability called "Jack of all trades, which makes all
> skills class skills for all classes, but limits the maximum ranks taken
> in any skill as though they were cross class (level + 3 then divided by
> 2). Is there a way to script such a cap on skill ranks taken?


Ah, I like the hard ones

So there are two things that need to be done here:

1) Make all skills class skills

2) Enforce a maximum rank limit on each skill

We'll tackle 1) first, since we obey the laws of numbers on these forums.


Each skill has a tag that indicates to the hero that it's a class skill.
So we need to iterate through all skills, and tell them to forward their
tags to the hero.

------
~ Loop through all skills
var result as number
foreach pick in hero where "component.BaseSkill"

~ Tell each skill to forward its class skill tag to the hero
result = each.forward[ClassSkill.?]
nexteach
------

Do this during the First phase and voila, each skill is now a class skill.


Now we need to enforce a maximum rank limit on each skill. To do this,
we'll add an "eval rule" to the ability. We can't directly set the
maximum rank of the skills themselves, but we can cause an error if any
of them go too high.

Add an eval rule with the message "Skill rank too high", any time during
the Validation phase. The rule should loop through all the skills,
making sure that each of them abides by some sort of limit. If it finds
one that has more ranks than the limit, it sets the error message
appropriately and ends.

-------
~ Loop through all skills
var result as number
foreach pick in hero where "component.BaseSkill"

~ If this skill has more than 5 ranks, that's a problem
if (each.field[kUserRanks].value > 5) then

~ Change the error message to refer to this skill
@message = "Skill " & each.field[name].text & " has too many ranks!"

~ We've found an invalid skill, so we don't need to go on.
done
endif

nexteach
-------


Those should do the trick for you.




You'll need to modify the script a bit so that it only enforces the cap on skills that are cross class skills and calculates the cap appropriately though.

Dastir October 14th, 2009 04:29 AM

I forgot to say thank you...how rude of me.

Thanks! :)

Dastir October 16th, 2009 07:55 AM

Actually figured out how to make it work exactly the way it should.

Once I discovered the House Rule "No Cross-Class Skill Penalty", which does exactly the same thing, it was a simple matter of breaking out the debug windows to see what was being added to the character.

The solution is one line of code:

perform hero.assign[Settings.HouNoXMult]

:)


All times are GMT -8. The time now is 02:42 PM.

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