Ack, these house rules are becoming a larger project the more I go into it. I've got bonus feats on two of the other base classes, so I have to overwrite some feats to tag them for such, sigh (or do I?). Then the classes, then redo the armors, then add additional items and weapons, then add magic items, then add monsters, then prestige classes, well you get the point. More than I thought, might take a few weeks to complete.
I also have to add feats from some of the supplemental books, and I have a question about that. I want to add a few that need to make choices, and I'm not entirely sure how to go about it. Here they are: Extra Slot - Allows for an extra spell slot of up to one level lower than your maximum level spell you can cast. Need to be able to choose a level to add the slot to. Extra Spell - Similar to above, but allows a sorcerer or bard an extra spell known instead. Still need to be able to choose a level to add the spell to, as well as choosing that spell. Extra Smiting - Adds two more smiting attacks. Have to choose which smiting attack to add additional uses to. Greater Resiliency - Adds 1 to damage reduction. Have to be able to choose which DR if more than one is present. Does this have something to do with the Freeform Edit that is part of the selection process? Any help here would be greatly appreciated, since none of the current feats really help in regards to these. Thanks. |
All 4 of those feats are includede in the Community Custom files, among the things I wrote. You may want to look at them for examples, although as I recall the first two don't work as well as I would like, not limiting to 1 level below your max spl level.
Anyway, look to those for examples. |
Nevermind.
|
Pardon me for being a little bit dense here, but I've only had this product for 2 weeks, and while I'm getting the hang of it, I'm missing vital information IMHO. So here are a few questions.
Is there a resource for the scripting language? Or is that in the Authoring Kit (a general search didn't turn anything up, per se)? On the right side of the editor are some advanced things. I've been using eval scripts primarily, eval rules ONLY when I want to output a message, expr-reqs for pre-requisites (and I'm just getting by at that), and the rest is baffling to me. What are the various pick-reqs, expr-reqs, pre-reqs, field, containerreq, Gizmo, and Minion buttons for specifically? Does *Hidden require an HL restart before things get hidden? I gave up on trying to hide things when they never went away. How do I determine a source id? Is that an actual source, say like Pathfinder, or something like that? What's the difference between Uniqueness of Only Once and Unique? What is this pIsOn I keep seeing everywhere? I can't find a source for it, though honestly haven't been looking that hard. How can I find out all the tags/fields that COULD be on a hero (rather than just finding out the ones that are on a hero ala the Show Hero Tags)? Well, that's all I can think of for now, but I'm just lost on a majority of these. |
1 - There is a herolab wiki site, but I don't know the address, you can google it I am sure.
2 - pick-reqs are like expr reqs I think, I have only ever seen languages bootstrapped through there as a pre req for prestige classes (Dragon Disciple and Draconic). expr reqs are simple pre reqs that can be written in 1 line of code, pre reqs is for more complex requirements that require multiple conditions, foreaches, etc. field lets you set the fields of the things directly rather than through scripts containerreq I have never used or seen used, so I don't know. I would guess it checks the container (the thing that possesses this thing) Gizmo specifies something to look at and pull information and traits from. For example specific magical weapons have a Gizmo for the mundane weapon that looks at crit range, damage, etc... Minion I don't know, never used or seen used. I would guess lets you set up something subservient to the thing you are creating. 3 - Never used the Hidden mechanism, don't know. 4 - It is a source that you want the thing in, so that the hero will only have access to the thing if they have clicked that source in "Character -> Configure Hero" or you can also configure the hero when you start the portfolio. On the right side of the window is "Configure Hero Settings" Click on that and scroll down to say "Pathfinder - Rise of the Runelords". If you check that source all things from it are now available for selection in HL, such as feats, races, etc. You can define new sources and look at a list of them in the editor. At the very bottom of anything you create there is a button called "Sources" you can hover over the ? to the right to get their ID 5 - I don't know, but if you pick the wrong one sometimes it will cause errors. Only Once is generally the safer pick. 6 - pIsOn is a field on many things, it represents whether a checkbox has been checked (= 1) or is not checked (= 0) 7 - Hard Drive -> Hero Lab -> Data -> d20 -> Source and look at the aug_tags.1st file, it is a list of all tags in the official herolab program, but for User created tags, they are spread around on whatever things define them. Hope that helps. |
The wiki Lawful_g mentioned is the second option in the editor's help menu.
Here's an example of the same rule ("Must know Draconic") as implemented as a pick-req: Code:
Code:
Code:
Pickreqs are almost never used (languages are the only example I can think of), since there's a chance that the thing you're looking for could be disabled by a template (the Zombie template disabling feats for example), or has been added by a class, but won't actually become active until you gain some more levels in that class. Instead, things add tags to the hero if they're active, and expr-reqs or pre-reqs are used to test for those tags. As usual, New (Copy) is the best way to figure out how to implement them - think of something that already exists that requires a thing of the same type, and see how it handles that pre-req. If the containerreq of a thing fails, it will not be displayed in a list for selection, and will be made non-live if it's already on the character. Using containerreqs is very rare. The most common thing I can think of is when you want to say "Does not exist if source XXXXX is checked": Code:
!source.XXXXX Lawful_g, FYI - the "Condition" button on a bootstrap is effectively creating a new containerreq on the thing you're bootstrapping. Note that there's no way to test anything but the tags and fields on the hero from a containerreq - the condition knows what bootstrapped it, so it can test the tags and fields on that thing. For examples of the Gizmo button, make copies of the things on the armor, magic and weapon, magic tabs - you'll have to use them exactly as specified - just change the weapon that's bootstrapped onto the gizmo. For examples of the Minion button, make copies of the things on the Minion/Hireling tab. You can apply your *Hidden entries by pressing ctrl-r in the main HL window in order to activate a quick reload, rather than having to switch game systems back to d20 or restart HL. Only a single copy of a unique thing can exist on a character. If a thing is useronce, multiple copies can exist, but once a user adds one copy of something that's useronce, they can't add a second copy. Many categories of things have to be useronce, rather than unique, because they can be added by other things. For example, feats are all either useronce or non-unique so that if you add a class that grants that feat as a bonus feat at 3rd level, you're allowed to take that feat as a normal feat choice if you're only splashing a single level of that class (if it were unique, the presence of that bonus copy, waiting to become active, would prevent you from adding another copy). Unless something is like Skill Focus, where the user can add as many copies as they like, useronce is generally the best bet, as Lawful_g said. You can also make copies of a half-dozen existing things from that tab to see what they tend to use. Show hero fields (in the debug menu...floating info windows) shows all the fields that exist on the hero. Right-clicking on a thing that's on your character gives you the option of looking at the tags that are currently present or the current values for all the fields that exist on that thing. As an amendment to what Lawful_g said about pIsOn, it only exists on adjustments - it stores the current state of the on/off checkbox. |
Thanks Lawful_g and Mathias. That was greatly helpful and informative. But I'm being a dunderhead here, I actually did find that 1st file, and forgot where I had found it when I was originally rooting around the directory. Stupid memory. I also should have found the scripting language in the wiki, but for some reason I didn't. I think I might have been looking for it in some other form, which is why I couldn't find it before. I typed in scripting language for my search term this time, and I found it. Again, I was being dense apparently. And I was operating on about 3 hours sleep, thanks to HeroLab hooking me in (and the RW discussion, and the d20Pro system, which I am trying a trial version of). The rest I had no idea of, and I'm grateful to the both of you for taking the time to explain it to me. Thanks once again.
Unfortunately, I think this means I've done my skills wrong. Don't know, I'll have to look at it again tonight. I think I was using the pre-req area to write the code (making it a requisite for the class, which it isn't, it's just an option). Still, for some reason it was working fine, so maybe I'm mis-remembering. Stupid memory. |
I finally got around to downloading the custom file set, very informative stuff. It doesn't have all the things I would like to codes, such as Extra Slot and Extra Spell, but I'm sure if I apply myself, I can find a way for it to work. I'm starting to get the hang of this whole thing. I'll keep you informed if I hit any snags.
|
Right when I think I've got most of this figured out, something comes along and baffles me. I looked at Extra Smiting in the d20 Community Files, and it works there. Here's the rub, I don't know WHY it works there. I did the same thing, nothing works. I've looked at Extra Smiting backwards and forwards, and I know I'm missing something. I just don't know what it is. I see all the User Tags that are from Smite Good, Smite Evil, Smite, Smite Choice, but this isn't telling me anything about how it knows the particular hero has Smite whatever on it. I just get a "nothing to choose" message, even with a Paladin picked as the hero. I'm just baffled on how this magic is happening in the Community File. Any help here?
I also noticed that the Paladin has two User tags, the Smite tag and the Smite Good tag. How did it get those? Guess I should put in the relevant code. ~ If we're disabled, do nothing if (tagis[Helper.FtDisable] <> 0) then done endif ~ If we haven't chosen anything, get out now if (field[fChosen].ischosen = 0) then done endif if (field[fChosen].ischosen <> 0) then field[fChosen].chosen.field[hTotal].value += 2 endif Plus there is a ftCandExpr field that holds the User.PickSmite (whatever that is) as well as in the Custom Expression in Item Selection. |
So that smites from different sources would stack I created a base smite good, and smite evil ability. You can find them in the "Custom - Core Book Mods" user file, under the specials tab. The PickSmite User tag is on the special and serves as a target for the Extra Smiting feat.
The User.Smite and the User.SmiteEvil tags are there for pre-requisites, there are some feats that require you to be able to smite, and some that require either good or evil smiting. |
I've notice some procedural calls in some of the scripts I've been perusing in order to make my own scripts. I'm not sure what they do. Does anyone have a list of the procedure calls I can make in the d20 system files, and what they do?
|
Could you define what a procedural call is?
|
For example, in xSmiteEvil, there is a procedure call:
call CalcValue This is a call to a procedure. That's what I'm referring to. |
CalcValue is the only one I think exists that's for the use of users.
CalcValue is: Code:
|
Quote:
|
CalcValue can only be used if you're on a thing that has the Value field (feats, traits, skill tricks, class specials, specials, racial specials, etc.), or you'll get errors. It only looks at and modifies the Value field and tags of the pick its running from.
|
I noticed on HeroLab startup, that you can select No Cross-Class Skill Penalty. I know this applies to all cross-class skills across classes, but is there a way that I can turn this on for only one specific cross-class skill.
For example, absurd as it is, it gets the point across. If I wanted to allow all of a Fighter's cross-class skills to work normally except for Knowledge: Arcana, where I wanted that cross-class skill to be able to have No Cross-Class Skill Penalty, is there a way I can do that just for Knowledge: Arcana on the Fighter? |
I believe there is a feat I made in the community files that does a similar thing for Spot and Listen. Look at Guerilla Scout.
|
Cool, this will essentially do the same thing, I would guess. I've also got another work around that works too. I was just wondering if there was some kind of flag that could be set for skills individually, or is that No Cross-Class Skill Penalty essentially doing what Lawful_g's code is doing, setting the Ranks equal to the Points spent?
|
Quote:
|
I've been working with some of the more difficult feats to make work. Two of those are Extra Spell (which adds an extra spell known to a sorcerer, for instance) and Extra Slot (which adds an extra spell that can be cast per day). I see that the Adjustment tab has the ability to do this, and I looked into it and noticed that there is a piece of code I like.
spelllevel = field[pSpellLvl].value Where does pSpellLvl come from? I can't find it anywhere. This piece of code allows there to be a chooser menu of spell levels. Obviously, I can't use this in Feat creation, but is there something similar in creating Feats that will? Actually, it's a little more complex than that, I would like to be able to choose that spell level maximum from the spell level maximum that the class can cast (I know how to get the Class chooser menu, that's built in)? Here's what I want to do, I want to be able to choose the class that I'm adding the feat to (that's been done) and then check against that class's maximum spell level that it can cast, and choose from those spell levels. I see that the Hero has tags for Arcane and Divine that I can count, but I have no way of knowing if that caster Class in Arcane or Divine, much less be able to differentiate between Bard/Sorcerer or Ranger/Druid spell levels, since they don't follow the same methodology. Thanks in advance. |
Quote:
|
Crap, I made some changes to my files and remade my classes and now I'm getting that doubled class tab again. I'm getting the old class tab and the new class tab, even though I've replaced the helper id and the class id. I can't figure this out, as I want to replace the classes with my classes, and I can't remember how to fix this. I thought it was just tied to the Replaces Thing Id, but I've done that and they are still showing up. Not sure how to get rid of this.
|
Bump. I can't solve this double class tab thing.
|
Quote:
You mean you see it listed twice in the Class or Class Level tab? If so, delete one? |
No, I've replaced one class with my version of the same class using the Editor. I've used the Replace Things Id for both the Class and Class Level. However, when I get back into HL, when I chose that class, it gives me two tabs of the same Class when I leveled, one is mine, and one is the previous version. I had this solved before, I just can't remember what I did, and all I can recall was the Replace Things Id as the culprit. I've done that, restarted HL, and I'm still getting the same problem. That is what I am talking about.
|
Did you do the replace thing id in more than one place? ie Class and Class Level?
|
Yes, did both.
|
Ok. i just re-created it by copying the Wizard class. I think what you need to do is actually remove the "Replaces Thing ID" from the Class, but keep the one for Class Level.
|
Ok, that gets rid of the extra tab, but creates an error in cBbnIllit when trying to access the illiteracy. Any clues?
|
No clue. I just created a second Barbarian class that replaces the original, and didn't get any errors.
|
Well, crap. Give me a step by step how you did it, so as I may compare how I did it. I just have no idea. Same thing is happening with each class I create, some first level ability is causing an error in each. Annoying.
|
Nevermind, I figured it out. Yeesh, you have to jump through hoops with this. You do things out of order, things blow up. Essentially, you can't let the files reload, and you have to Replace Things Id on the Class Level tab first before the Class tab (if I do it the other way, I get the errors). Then remove it from the Class tab after saving and testing it. Thank god, I thought I was never going to get this to work again.
|
3 Attachment(s)
Actually, I've found something out. The error does not appear UNTIL you reload the files. Then the errors appear. So, create a Barbarian fine, but then reload the files with the newly created Barbarian and see if you get these errors or not. I just can't track down where it is coming from, it's the Barbarian's illiteracy, the Bards "hBrdMusic" which I have no idea what it is. Only these two classes do this, and I don't know why. All the other classes work fine using the same method of creation, just not these. What the hell is going on with this, is this just a bug on my end? And how do I track it down? Anyone? Mathias, you come across this at any time?
I've included three screenshots. The first are the errors on Barbarians, Bards get the hBrdMusic error in addition to the table errors here. All the other classes are just getting the table errors now. All I've done is reload HL, and these cropped up. The last two just shows you that I am doing the correct thing in the Editor. NEW INFO: The table error is being caused by my bootstrapping a custom ability to the class. Why it is happening is baffling me. |
2 Attachment(s)
Solved the table problem, I didn't realize I had to designate things as user content under source. That fixed the problem. Still having the problem with Barbarians and Bards, screenshots included.
|
Each of those errors means your class is looking for something in an eval script, but the thing does not exist on the hero.
Barbarian - Bootstrap the kLiterBbn skill to your class helper, that way when it is added the eval script in the class ability "cBbnIllit" will find it. Bard - When you replaced the Class Helper for Bard you had to have changed the unique ID, the class ability "hBrdMusic" is searching for the old unique ID. Make a copy of hBrdMusic that replaces the old one. Go into the eval script on your copy and change all references to cHelpBrd to whatever the Unique ID of your new bard class helper is. I think that should fix it. |
Ok, I had seen the hBrdMusic script in the XML file in my directory, however I can't find that ability anywhere, not in the Class Specials, not in the Custom Abilities, and not in the Specials tabs. I've been trying to make a copy of it, I just can't find it.
As for the kLiterBbn skill, why does the regular Barbarian copy work then, if this needs bootstrapping? All I did is copy the Barbarian and replace the ids, it should have been working all along. For that matter, why didn't the hBrdMusic recognize my replaced Bard helper id? Kinda wierd. BTW, I have a custom ability that I need to use on all the classes, however I don't want that ability to show up in the Specials on the hero, is there a way I can make it undisplay, but still be active for the hero? |
Ah, I see the problem. In the past there was a tab in the editor called "Charges", but it was taken out. The "hBrdMusic" thing is a Charge, and since it is no longer possible to copy or edit, or create charges, you should delete it from your class helper, and then make a new special to count the number of daily uses a bard gets.
|
Bootstrapping the kLiterBbn did not solve the problem. Still not found.
On the other hand, got the Bard problem solved. |
Try replacing cBbnIllit with a new one then, and go into the eval script, and change the script from...
Now I am looking at the eval script, I don't see where the problem is. Below is the script: ~ Available if we have only 1 class (i.e. the barbarian) - otherwise ~ the tag needs to be deleted var result as number if (hero.tagunique[Classes.?] - hero.tagis[Classes.Race] - hero.tagis[Classes.Template] > 1) then result = delete[Helper.ShowSpec] endif if (#skillranks[kLiterBbn] >= 1) then result = delete[Helper.ShowSpec] endif Normally I'd recommend changing "hero.child" to "hero.childfound" but there are none... |
All times are GMT -8. The time now is 12:17 AM. |
Powered by vBulletin® - Copyright ©2000 - 2024, vBulletin Solutions, Inc.
wolflair.com copyright ©1998-2016 Lone Wolf Development, Inc. View our Privacy Policy here.