• 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

Speaking of Broken Earth...

You could probably put it inside the normal one. I have it separate because I wondered if perhaps the editor, not seeing, might mess with it.

For limiting the 1) to two, I would make two versions, each being unique like I did with the attribute advances. Hero Lab does not interact with Advances like it does the other things so it would not see if you tried to specify how many times. Also, you cannot preclude an Advance (like if you have a setting that wants to turn one off).

An idea for 2) is to see if you can make one that has the Knowledge skill bootstrapped twice. I do not know if an Advance can bootstrap anything, but if it can, you can bootstrap something to the same object more than once.
 
Well at least the first part works--I'd initially had an error, but it turned out to be a cut and paste artifact.
 
Last edited:
Well, the Knowledge bootstrapping worked, but I'm getting a couple of issues:

1. Its giving an error message:

Attempt to access non-existent containing entity from script
Location: 'eval' script for Component 'Advance' (Eval Script 'Accrue Advances') near line 3
- - -
Attempt to access non-existent containing entity from script
Location: 'eval' script for Component 'Advance' (Eval Script '#6') near line 11
- - -
Attempt to access non-existent containing entity from script
Location: 'eval' script for Component 'Advance' (Eval Script '#6') near line 16

2. Its counting me as having used two more skill points from initial construction. I'm guessing I could fix that by adjusting the skill points with a script, unless there's a better way to do it.
 
I would have to see the first one to comment.

As for the second, I would have a mechanic that looks for the Advances and then credits the skill points.

This starts the search
Code:
   ~ Check for spent Advances
   foreach pick in hero from Advance sortas _CompSeq_

This searches for one of the Advances, in this case my Novice Attribute
Code:
if (eachpick.tagis[AdvanceId.advAttriN] <> 0) then

Then inside that if statement, with your new advance as advAttriN, you would have it add the skill points.
 
Oh, I do not think that an Advance can have an eval script. That is probably what you are doing based on that comment. Make a mechanic that then evaluates it. Give it the source for your data file.

Actually, I don't put sources on my mechanics, I enclose them in something like
Code:
if (hero.tagis[source.CivSav] = 1) then

I do not recall why I started to do this, only that some mechanics work better that way. I think that it had to do with NPCs and creatures, as they often do not apply sources correctly.
 
I probably tried to do it too quick and dirty, since all the advance I've got written really does is the bootstrap. I probably should have tried adapting more of CC's code (since that worked with the first part) but its extensive and I frankly don't understand some of it, so I was trying to keep it simple. It probably means there's things missing I need there.
 
Okay, did a bit more work with it, and it turns out you can do an eval script in an Advance. So I managed to fix the second part of the issue with the two bootstrapped Knowledge skills, but apparently I'm still missing things I need to put in the Advance, because though its working I'm getting an error message. First, let me show the code I'm using for the Advance (its very simple, which is probably the problem; I probably need some of the components from the code CC gave me, but I don't know which parts, and if I try to use it all it doesn't work):

Code:
<thing id="advBEKnCL" name="Computerized Library Knowledges" compset="Advance" description="Acquire two new Knowledges at a d4 rating." uniqueness="unique">
    <bootstrap thing="skKnow"></bootstrap>
    <bootstrap thing="skKnow"></bootstrap>
    <eval phase="PreTraits" priority="5000"><![CDATA[perform #resspent[resSkill,-,2,"Computerized Library Knowledges"]]]></eval>
    </thing>

This shows and is selectable as an advance, and properly bootstraps two Knowledges, and properly offsets the skill point cost. However when I do it I get the following errors:

"Attempt to access non-existent containing entity from script
Location: 'eval' script for Component 'Advance' (Eval Script 'Accrue Advances') near line 3
- - -
Attempt to access non-existent containing entity from script
Location: 'eval' script for Component 'Advance' (Eval Script '#6') near line 11
- - -
Attempt to access non-existent containing entity from script
Location: 'eval' script for Component 'Advance' (Eval Script '#6') near line 16"

Now I could probably just go put the damn thing in as an Edge and let the rest of the process do its magic, but if I can do it directly as an Advance, since I'm doing the other one that way I'd rather do this one like that, too.

Anyone's help is much appreciated here.
 
I am curious if having the Advance bootstrap an Edge instead might work better. Sometimes Edges work more easily than skills.
 
Well, if I'm going to use an edge, I can just use the normal Advance process; not like I couldn't have an Edge bootstrap the skills and offset the cost. I'd prefer to do it directly with the Advance, though.
 
I had initially recommended the Edge. The Edge and Advancement is the same cost. The only difference is that there is no way to have an "Advancement-only" Edge. Too bad, because there is a "creation-only", but that is really a relic from earlier editions as it used to be that Background Edges could only be taken at creation.

You could go the way of the other Edges and Advancements that are taken when they should not be and make a Validation warning if it is not taken with an Advance. But I personally hate the "after-the-fact" warnings.

However, if you cannot get the Advance to work the way that you want, as they are much simpler objects within Hero Lab than Edges, you might have to or else there will always be those warnings. And they will continue while using that character.
 
Well, these have to be paid attention to anyway since its dependent on an outside function the program can't check for anyway (the community "edge"), so that part doesn't bother me. But I'd have preferred to either do both of them as Edges or both as Advances.
 
It occurs to me that those errors probably are referring to something in the Advance mechanic; I should probably pull that up and look at it.
 
Hey, SeelyOne, since at least you're looking at this, when you were setting up the file you indicated on page 2 of this thread, how did you even know how to format the Advance? Obviously what CC showed me is a variation of the standard skill advance, and you have examples that seem to be modified attribute and skill advances in yours, but how did you even know what they looked like? Part of the thing frustrating with this problem has been I don't even have the originals to model off of (though I suppose I could just look at what you and CC did and try clipping out parts that seem unnecessary and see what happens...)
 
I looked at the stuff in the "C:\ProgramData\Hero Lab\data\savage". There is a folder called "source" that has much of the data that Savage Worlds looks at.
 
Ah, I see--"thing.advances.dat". I'm not sure it will help, but it at least gives me something to look for. Unfortunately, doing things in there with a bootstrap is unprecedented, so I'll have to experiment anyway.
 
I suspect it'd be better if I could just use something like what CC suggested for the other one, but instead of <fieldval field="advDynamic" value="component.Skill & !Hide.Skill"/> do something that specifically pulled Knowledges. Unfortunately I don't have a clue how to do the syntax for that. Maybe looking at the syntax on the Knowledges themselves will give me a hint.
 
Looking at the source folder is useful to see how things were built, but it's not active code so if you tried to make changes in there it wouldn't do anything. It can be useful for seeing the code used, however, and potentially for ways to use such things in your own .user files.
 
That was all I was doing was seeing what the native Advances look like. I'm probably going to fiddle with bits of code extracted today to see if I can use them to make the error messages go away. I'll probably start by just copying the whole code for the New Skill and start stripping off things.
 
Well, none of that worked. Any attempt to combine my bootstrap-using Advance with something like the normal new skill Advance threw error messages of one stripe or another, usually indicating it didn't recognize one of the tag assigns, or didn't recognize what a bootstrap was.

I think I'll leave this here for a while just on the off-chance someone can make sense out of those error messages I listed back in post #28, and if no one does in the next week I'll just have to go do it with the Edge method, though that makes my brain itch.
 
Back
Top