• Please note: In an effort to ensure that all of our users feel welcome on our forums, we’ve updated our forum rules. You can review the updated rules here: http://forums.wolflair.com/showthread.php?t=5528.

    If a fellow Community member is not following the forum rules, please report the post by clicking the Report button (the red yield sign on the left) located on every post. This will notify the moderators directly. If you have any questions about these new rules, please contact support@wolflair.com.

    - The Lone Wolf Development Team

Human/Half-Elf Shaman FC Bonus usrCandid

Valdacil

Well-known member
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:

~ 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.
 
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 & ")" [B]& " & !(" & hero.tagids[KnowSpell.?,"|"] & ")"[/B]
 
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.
 
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....
 
Back
Top