Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - Pathfinder Roleplaying Game

Notices

Reply
 
Thread Tools Display Modes
TobyFox2002
Senior Member
 
Join Date: Nov 2013
Location: Andover, Ma
Posts: 632

Old June 28th, 2019, 03:55 AM
I am working on a variant archetype for one of my players to use with their character. I would like to create a dual-mystery oracle for them however, the way that the revalations have been hard coded seems to be making this rather difficult.

Whenever a second mystery is added ALL the revelations vanish. From what I can tell they seem to be designed to be exclusive and when a second (or more) mystery is added all revelations vanish.

I think the offending script is contained on each mystery for example the bones mystery script is written like this:

Final/999999


Code:
      ~ add a requirement to our tertiary specials that they have a Custom
       ~ tag that matches our own
       linkage[table].field[cCstS3Expr].text &= " & (" & tagids[Custom.Myst?,"|"] & ")"

Is there a way to create a script on an archetype to override this in order to allow for the selection of multiple mysteries.


Thanks in advance.
TobyFox2002 is offline   #1 Reply With Quote
TobyFox2002
Senior Member
 
Join Date: Nov 2013
Location: Andover, Ma
Posts: 632

Old July 7th, 2019, 10:59 PM
I dislike bumping threads, but I still could use some help with this issue if anyone might have some insight for me.
TobyFox2002 is offline   #2 Reply With Quote
Aaron
Senior Member
 
Join Date: Oct 2011
Posts: 6,793

Old July 8th, 2019, 08:34 AM
Yes, you can certainly make an eval script which overwrites that. I'd create a class ability to bootstrap to the archetype with description text describing the specifics of how you get multiple kinds of revelations.

Then add two eval scripts to the class ability.

Script 1 will copy the contents of the cCstS3Expr field immediately before the mysteries append their own specific text for their revelations. It can store this in a text field (abText maybe? Possibly that field has a limit on number of characters it can store, not recall off the top of my head).

Script 2 will run immediately after the mysteries append their own specific text for their revelations. Have this one iterate through all mysteries added to the class in whatever table you're adding them, and pull the Custom.Myst? tags to itself, then overwrite cCstS3Expr using the field and the combined tags.

Rough examples
Final 999998
Code:
call foctoclass

doneif (state.isfocus = 0)

field[abText].text = focus.field[cCstS3Expr].text
Final 1000000
Code:
foreach pick in hero from Ability where "abCategory.Whatever & CustTaken.Whatever"
  perform eachpick.pulltags[Custom.Myst?]
  nexteach

call foctoclass

doneif (state.isfocus = 0)

focus.field[cCstS3Expr].text = field[abText].text & " & (" & tagids[Custom.Myst?,"|"] & ")"
As always, rough code, you'll need to tweak it as necessary (Particularly the "whatevers" in the tag expression for the foreach).
Aaron is offline   #3 Reply With Quote
TobyFox2002
Senior Member
 
Join Date: Nov 2013
Location: Andover, Ma
Posts: 632

Old July 10th, 2019, 07:57 PM
The script at Final/999998 fails to properly setfocus, I tried looking at the procedure to see if I could manually set the focus but I dont really understand that code well enough to know what is truly going wrong.

Because their is no focus set the class special abText.text is not being set so when transitioning to the next script at Final/100000 it fails to add a prepend text to the custom expression.

I have also tried to use perform root.setfocus, and it fails as well giving me a message that says:

Cannot reliably access bootstrap source for unique pick 'arTO2MysOr' when I use the script directly on the archetype and it also fails when I try to use it on a script bootstrapped to an archtype.


Final/999998
Code:
call foctoclass
doneif (state.isfocus = 0)

field[abText].text = focus.field[cCstS3Expr].text
debug "Early cCstS3Expr :: " & focus.field[cCstS3Expr].text
debug "abText :: " & field[abText].text
Final/1000000
Code:
foreach pick in hero from Ability where "abCategory.OraMys & CustTaken.cHelpOra"
  perform eachpick.pulltags[Custom.Myst?]
  nexteach

call foctoclass
doneif (state.isfocus = 0)

focus.field[cCstS3Expr].text = "(SpecSource.cHelpOra) & Helper.Tertiary &! Helper.Obsolete & " & "(" & tagids[Custom.Myst?,"|"] & ")"

~ Removed for testing because foctoclass isnt working
~field[abText].text & " & (" & tagids[Custom.Myst?,"|"] & ")"

debug "cCstS3Expr :: " & focus.field[cCstS3Expr].text
---
2nd Edit:

I have discovered that the timing for this script is completely EVILLL! The script on the Mysteries class custom is set to EIGHT places. Eight bloody '9's. So to override that I had to use 10 places. That's just nuts. I thought it was like SIX places. Still doesnt get the setfocs to work, but it does allow me to manually override.

Probably not best practice, since it would break if applied to a different class.

Last edited by TobyFox2002; July 11th, 2019 at 03:52 AM. Reason: Timings are utterly evil.
TobyFox2002 is offline   #4 Reply With Quote
Aaron
Senior Member
 
Join Date: Oct 2011
Posts: 6,793

Old July 11th, 2019, 03:16 PM
I believe foctoclass should work if you add the eval script to a class ability bootstrapped to the archetype, have you tried that? If so, I guess send me a copy of your file and I will take a look.

Last edited by Aaron; July 11th, 2019 at 03:18 PM.
Aaron is offline   #5 Reply With Quote
TobyFox2002
Senior Member
 
Join Date: Nov 2013
Location: Andover, Ma
Posts: 632

Old July 11th, 2019, 04:03 PM
I could not manage to get it to work with 'class specials' did you mean those or custom abilities?

Now I did manage to get it to work without the setfocus procedure (sorta). This has the procedure call. but when you comment out the isfocus done. It throws an error that it needs a setfocus. However if you leave in, the rest of the script seems to function and even give correct debug output.

Dual-enlightened Mysteries and Skills -- cTODualMyst
Final/100000000 Index 2

Code:
foreach pick in hero from Ability where "abCategory.OraMys & CustTaken.cHelpOra"
  perform eachpick.pulltags[Custom.Myst?]
  nexteach

call foctoclass
doneif (state.isfocus = 0)

focus.field[cCstS3Expr].text = "(SpecSource.cHelpOra) & Helper.Tertiary &! Helper.Obsolete & " & "(" & tagids[Custom.Myst?,"|"] & ")"

~ Removed for testing because foctoclass isnt working
~field[abText].text & " & (" & tagids[Custom.Myst?,"|"] & ")"

debug "cCstS3Expr :: " & focus.field[cCstS3Expr].text
If you wish to take a look at this file you can grab it here on dropbox

This special also has the the skill selector enabled, although you have to select the mystery you want to EXCLUDE instead of selecting the mystery whose skills you wish to use. I havent found a way to push a delete class skill for the mystery you Didn't select. But it works, for now.

There is also a copied class special that allows you to select between the two different mystery spells you wish to add. It is copied almost straight from the crossblooded sorc Arch. It... functions, although I'm not entirely satisfied with the code, but that's not really my priority at the moment.

Edit: LOL Posted this at the exact moment you sent your last post.

Last edited by TobyFox2002; July 11th, 2019 at 04:03 PM. Reason: Lawlness
TobyFox2002 is offline   #6 Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 11:45 AM.


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