Member
Join Date: May 2012
Location: Reading, UK
Posts: 79
|
A couple of conversations yesterday sparked a question for those of you with much more experience than me. Is there any way to specify that a .user file (or part thereof) shouldn't be loaded if another .user file or data set isn't available?
It feels like this is something the .1st file should be good for as it is setting up the new sources. Using the equivalent of a pickreq or exprreq that looks for another setting would be useful. Two examples: 1) Excluding an entire .user file if one of the Horror/Supers/Fantasy add-on is missing (or other .user files come to think of it) 2) Excluding parts of a .user file if another setting is missing. e.g. I will need to create crossovers within the A!C setting to things like Godlike and Interface Zero. If someone doesn't have that setting loaded, it would be useful to ignore anything that has that prerequisite rather than my user file erroring I'm not sure if this is something I've missed, or something that should be a new request? Working on: Official Achtung! Cthulhu datafiles |
#1 |
Senior Member
Join Date: Mar 2007
Location: Muskegon, MI
Posts: 2,975
|
Nope. It's something that's been requested but is not something the program is currently capable of.
|
#2 |
Member
Join Date: May 2012
Location: Reading, UK
Posts: 79
|
Damn, that's a shame. At least I have a few source books to work through before I have to worry about how to handle that challenge then. Thanks!
Working on: Official Achtung! Cthulhu datafiles |
#3 |
Senior Member
Join Date: Nov 2009
Posts: 891
|
I have not figured out a way to make it look for tags that do not exist. If you could, an easy way would be to have it increment a value if it finds a match as it sorts through the different tags. I could not figure out what the group of source tags is called. The only reference to the group that I was able to find is "Source Volumes", but I do not know how to reference that as the script would not recognize "Source", "Sources", "Volume", or "Volumes". So if there is a way to iterate through the sources that woudl be what we need.
But that does not mean that you are totally out of options. You can change how a mechanic works based on if a source that is in the folder is checked or not. The easiest scenario is if you want to change how a mechanic works in a game. For example, I like to use the Evasion skill to create a Parry value. But the other GM's in my group do not always want that rule. But we don't want to have to add or remove user files from the folder because that is tedious and can be annoying. So, what I did was I made a replacement of the Parry derived trait. Then in the first eval script for the new Parry I put this: Code:
~ Base Parry on either Evasion or Fighting if (hero.tagis[source.EvaFight] = 1) then ~This will base Parry on Evasion. if (hero.childexists[skEvasion] <> 0) then if (#traitfound[skEvasion] >= 2) then var bonus as number bonus = #trait[skEvasion] if (bonus >= 6) then bonus = 6 + round(hero.child[skEvasion].field[trtRoll].value / 2,0,-1) endif perform field[trtBonus].modify[+,bonus,"Half Evasion"] endif endif else ~ This will base Parry on Fighting. if (hero.childexists[skFighting] <> 0) then var bonus as number bonus = #trait[skFighting] if (bonus >= 6) then bonus = 6 + round(hero.child[skFighting].field[trtRoll].value / 2,0,-1) endif perform field[trtBonus].modify[+,bonus,"Half Fighting"] endif endif For a user file that you want to work if a certain thing is present (like if you have the Horror Companion), am not entirely sure. I mean, I think that the data is there whether or not you paid for the data. I do not know as I own all of them. But assuming that it IS there, you can use modified things like above. If it is using insanity, then have it just use the Horror as its source. It seems to me that containerreq, where you can require multiple sources, does not work for derived traits. They work only during character creation for Skills and Edges (but they hide things during Adcancement regardless of if you have the sources or not). Another idea might be to have the main data file, then a second one to add to your folder if you have other sources that it requires. So the Achtung Cthulu user, then the ACHorror user. You could also make them two totally functional, mutually exclusive versions -- this is easier for some situations. Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. |
#4 |
Member
Join Date: May 2012
Location: Reading, UK
Posts: 79
|
Oh this is going to be fun :/
I suspect that I will end up with the main data file and separate ones for each of the crossover books. Thanks! Working on: Official Achtung! Cthulhu datafiles |
#5 |
Senior Member
Join Date: Feb 2010
Posts: 874
|
Yeah. I appreciate the hell out of the help SeelyOne has given me on various problems, but occasionally the response to "Is there any way to do X" is "Here's this giant block of script that will do what you want, oh, maybe with this other giant block of script if you need to do this other thing too." Its a credit to him that this stuff seems to come naturally to him, but occasionally the rest of us look at it and quietly and slowly back out of the room...
|
#6 |
Member
Join Date: May 2012
Location: Reading, UK
Posts: 79
|
No, it's not that. The code I can work through, it was the thought of trying to do this for every item in the three crossover books... and then working out which ones work in which combination and under what circumstances that started to give me a headache
It is just simpler to have separate, additional, files for each of these crossovers and leave it up to the user to decide when to use them. It just means that those source books will, most likely, not be able to be distributed through the LW mechanism. Having said that, that is fine with me as the crossover books can be left for last as two of them havn't even been released in beta yet! Gives me time to finish off the other source books first and think things over carefully. Working on: Official Achtung! Cthulhu datafiles |
#7 |
Senior Member
Join Date: Feb 2010
Posts: 874
|
Quote:
|
|
#8 |
Senior Member
Join Date: Nov 2009
Posts: 891
|
When I offer help and give multiple options I am doing just that, giving multiple options. Some are better than others for different reasons. And even if they might not be the best solution for one situation, someone might later come along and they will be the best solution for another.
Evil wins because good rolls poorly .... or the players are not paying enough attention to the game. |
#9 |
Senior Member
Join Date: Feb 2010
Posts: 874
|
Like I said, SO, you've been an enormous help. It was more a comment about how good you are at this that you often find away around the program limitations--but kind of illustrate those limitations in some of the backflips you've had to do to do it.
|
#10 |
|
|