View Single Post
Daniel V
Senior Member
Lone Wolf Staff
 
Join Date: Apr 2020
Posts: 408

Old July 17th, 2020, 11:17 AM
"Expr-reqs" are generally what you're going to want to be using for simple cases like this. You set a formula, in this case "#hastype[tpDragon] <> 0" for instance, and if #hastype returns a non-zero value (is true), the expression is valid.

"Pre-reqs" are used for things that are more involved than just simple true/false checks. They involve scripts that could either be conditional, or possess a number of checks beyond just a sum of returned values.

The duskwalker origin feats are a good example of the difference. Willing Death for instance has the Expr-req of
Code:
#hasrace[rDuskwalker] <> 0
so is valid if you have the duskwalker race. It also has two Pre-reqs, the first being

Code:
Only one Origin feat allowed without GM permission.

validif (hero.tagis[Dependant.SocChar] <> 0)
validif (hero.tagcount[fCategory.Origin] = 0)
validif (@ispick <> 0)
So if you are a PFS character, it doesn't show this (you can only take one per PFS rules, so this doesn't apply), if you have no Origin feats already its valid (since there's no reason to display a warning for taking an additional before the first is taken), and if you have been added to the character we're not going to show, since you've already made the choice to forgo the warning.

The second is a check to see that you only have one Origin feat if you are a PFS character, so it checks that there are none present if you haven't added it yet, and if you have added it that it is the only one.

Hopefully this helps in understanding the different uses for the two pre-req methods. There's also tags that get used, and fields, but those are all just in the editor. Like Mathias said though, pretty much just ignore Pick-reqs.
Daniel V is offline   #7 Reply With Quote