Lone Wolf Development Forums

Lone Wolf Development Forums (http://forums.wolflair.com/index.php)
-   HL - Pathfinder Roleplaying Game (http://forums.wolflair.com/forumdisplay.php?f=62)
-   -   Human/Half-Elf Shaman FC Bonus usrCandid (http://forums.wolflair.com/showthread.php?t=59868)

Valdacil January 3rd, 2018 11:17 AM

Human/Half-Elf Shaman FC Bonus usrCandid
 
I've successfully modified the Human/Half-Elf Shaman FC bonus to select 1 cleric spell and add it to the known spells to filter out Words of Power. However, it would be nice if it also filtered out previously selected spells. Here is what I have now. I'm running it in a mechanic script so I don't have to edit the 2 picks directly, which is the point of the loop:

Quote:

~ Check for all Human or Half-Elf Shaman favored class selections and update the dropdown
foreach pick in Hero from FavClass where "thingid.fcShaHuman | thingid.fcShaHElf"
~generate the expression saying what spells we're able to search for
~we're looking for spells that are cleric spells but not shman spells and are of a level we can cast
~ Valdacil: but we need to filter out Word of Power
eachpick.field[usrCandid1].text = "component.BaseSpell & !component.BaseWord & sClass.cHelpClr & !sClass.cHelpSha & (val:sLevel.? < " & hero.childfound[cHelpSha].field[cMaxSpLev].value & ")"
nexteach
I know that once a spell is added, the hero gets a tag KnowSpell.? where ? is the tag of the spell selected. My question is whether the usrCandid1 can be modified above to filter out spells the hero already knows.

ShadowChemosh January 3rd, 2018 11:42 AM

Assuming that KnowSpell.? is present at the timing you need you can add the following logic:

Code:

& " & !(" & hero.tagids[KnowSpell.?,"|"] & ")"
that can be added to the end of your custom expression. hero.tagids[] builds a list of all the KnowSpell ids on the hero and if multiple tags found it separates each with a | symbol which is 'OR'.

To be clear it becomes this:
Code:

eachpick.field[usrCandid1].text = "component.BaseSpell & !component.BaseWord & sClass.cHelpClr & !sClass.cHelpSha & (val:sLevel.? < " & hero.childfound[cHelpSha].field[cMaxSpLev].value & ")" & " & !(" & hero.tagids[KnowSpell.?,"|"] & ")"

Valdacil January 3rd, 2018 12:32 PM

The code you posted seems to make sense, however, when i plug that in, I seem to get every spell in the game in the selection list including numerous entries for some spells that are on multiple spell lists.

ShadowChemosh January 3rd, 2018 02:01 PM

Quote:

Originally Posted by Valdacil (Post 261036)
The code you posted seems to make sense, however, when i plug that in, I seem to get every spell in the game in the selection list including numerous entries for some spells that are on multiple spell lists.

Adjust as needed! :( I am not near HL and can not test anything I posted.

Most likely its creating a Invalid Expression then if its giving everything. May need to wrap a IF statement and not include the tagids[] unless a tagcount shows they are present.

Use debug and look at the final expression and make sure it looks valid....


All times are GMT -8. The time now is 10:51 PM.

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