Junior Member
Join Date: Jul 2013
Posts: 4
|
I have started creating data files for IKRPG. It is mostly straight forward. My issue/problem is that I would love to just start for scratch as opposed to a "sample game". Is there any guide to how to do that?
I guess what my question is; what do I need in the basic starting files to get a system off the ground? And what are the basic starting files? Why do I want to do this? In IKRPG we don't call them attributes we call them stats, I have no need for abilities, and I don't need "in play" things just yet. I don't like it when I remove something like the "sample attribute" and then have to spend the next 2 hours digging through all the files and testing just to get it to compile again. Having to remove all the references in all the files is a headache. I would rather build it up additively from scratch instead of decomposing a sample system in order to get it to bend to my will. I will still use the sample system as a reference but I don't need to start with all those data files. And before you reply with "oh you want to create your own thing like attributes but for stats instead, here is how..." don't bother, that is not what this thread is about. I am not asking you to solve any specific issue like that. I simply used those as examples. I really want info of what the basic files are needed for hero lab to open and what basic info is needed in those files for hero lab to open. Building the tabs and classes up I can do after that. Last edited by liz; July 25th, 2013 at 04:51 PM. |
#1 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,213
|
I recommend starting with the Savage Worlds Authoring Kit walkthrough. http://hlkitwiki.wolflair.com/index....s_Walk-Through
That's our walkthrough of how the skeleton files were modified to create the Savage Worlds game system. |
#2 |
Junior Member
Join Date: Jul 2013
Posts: 4
|
I am doing OK getting things in place but I have a specific problem now. When I choose a race I can set the attribute min and max based on the race. However the max increases based on your level. There are only 3 levels in the game. How do I implement that?
Should I just post my data files and ask for that sort of help? |
#3 |
Senior Member
Lone Wolf Staff
Join Date: May 2005
Posts: 13,213
|
You can write a script that sets field[trtMax].value to the correct amount.
|
#4 |
Junior Member
Join Date: Jul 2013
Posts: 4
|
So if I select a race, then select a level, the race would set the initial min/max then the level would increase the max. should I make it to where when a race is selected it resets everything else such as current level? Or is there a way to trigger the level selection so that when I change the race it updates the max based on the level.
For example I don't want the situation where I select dwarf and the Strength max gets set to 5 then I select level of 2 and the Strength max gets set to 6. THEN I select race of Elf and the Strength max (default lvl 1) is set to 4 even though level 2 would dictate that it gets set to 5 for an elf. I suppose what I need is some way to hard code these values. For example could I say that attributes don't have a min/max but instead have a startingValue, heroLimit, vetLimit, epicLimit? Then I can set all 4 for each race and just reference them. Or is that a bad idea? |
#5 |
Member
Join Date: Aug 2013
Location: CA
Posts: 42
|
Quote:
For Mathias... The IKRPG rules have a very top down approach. 1. Selecting race gives you your stats. Each stat has a racial maximum or ceiling that you cannot go above unless your making the character at a higher level. This game has three levels based on total accumulation of XP (e.g. 1-50 is called Hero; 51-100 is Veteran; 101+ is epic). To give you an idea most games session should only dole out 1 maybe 2 points. Your choice of race will determine your choices of... 2.Archtype. There are only four and you only have one of them, ever. These combined with your Race choice will determine what... 3. Careers (2 to start with) you can take. Most careers have no prerequisites. Other careers have further Prereqs based on things like, starting character only only, limited choice of other career available at start, again race and archetype also limit your choices. For instance magic users can only have the "Gifted" Archetype. Some of the most stringent Careers will have all of them such as Warcaster (starting career only, race, archetype, and limited choice of second career.) Starting skills, abilities, spells, gear, and extra starting money are summed up and that's it. You spend those bonus 3 stat points I mentioned above(+1 for human) give them a name and off you go. Hope that helps a little. |
|
#6 |
Member
Join Date: Jan 2013
Posts: 61
|
I have narrowed down the files to what I think is the bare minimum.
You will need to keep the definition file definition.def, I removed the macros from mine. I also kept the files styles_ui.aug and system_resources.aug I kept the files actor.str and miscellanous.str, but only kept the following contents. actor.str Code:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- This file contains the definitions of components associated directly with the actor and its management. --> <document signature="Hero Lab Structure"> <!-- Actor component Encapsulates all the details associated with every actor --> <component id="Actor" name="Actor" autocompset="no" ispublic="no"> </component> <!-- Define various component sets associated with the components defined above. --> <!-- The "Personal" compset is auto-defined for the component --> <!-- Actor - all the collective one-shot details for the actor --> <compset id="Actor"> <compref component="Actor"/> </compset> </document> Code:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- This file contains the definitions of components that don't really fit anywhere else, such as resources, journal entries, etc. --> <document signature="Hero Lab Structure"> <!-- Transact component --> <component id="Transact" name="Buy/Sell Transaction Helper" autocompset="no" ispublic="no"> </component> <!-- Journal component --> <component id="Journal" name="Journal" autocompset="no"> </component> <!-- Define various component sets associated with the components defined above. --> <!-- Journal - all journal entries are based on this compset --> <compset id="Journal"> <compref component="Journal"/> </compset> <!-- Transact - all transactions utilize this compset --> <compset id="Transact"> <compref component="Transact"/> </compset> </document> Code:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- This file contains the barebones items that are needed for a tab for a tabula rasa game design. --> <document signature="Hero Lab Data"> <!-- journal portal Presents a table of journal entries, where adding a new entry always adds a new instance of the same thing every time. We use an "additem" script to simply prompt the user to add new entries, along with a little bit of extra vertical spacing around it. NOTE! This portal *must* have the id "journal" so Hero Lab can recognize it and handle it properly and automatically. --> <portal id="journal" style="tblNormal"> <table_auto component="Journal" showtemplate="jrPick" autothing="journal"> <additem><![CDATA[ @text = "Add New Journal Entry" ]]></additem> </table_auto> </portal> <!-- jrPick template This template presents a single journal entry to the user. Each journal entry should consist of a number of basic elements. First, the entry needs a title and the ability to add detailed notes via an edit button. Second, the entry should allow the user to specify both a real world date and a game world date. Lastly, the user should be able to accrue cash, XP, or whatever is appropriate for the game system into the journal entry, with the total accrued value(s) being shown. Cash, XP, and other resources that are accrued via journal entries must be defined as usage pools that are associated with picks (not the actor). Once the usage pools are setup and associated with the component used for the journal entry, "trigger" scripts on buttons can be used to let the user tally up the resource within a given journal pick. The resources can also be accrued directly on the actor via separate usage pools for that purpose. The net result is that each journal entry tracks its own independent tally and also tallies for the overall actor. This allows us to properly delete the resource from the actor tally if the journal entry is deleted by the user. --> <template id="jrPick" name="Journal" compset="Journal" marginhorz="3" marginvert="3"> <portal id="bareportal" style="lblSmTitle"> <label text="Label"></label> </portal> </template> <!-- journal layout This layout consists of the title at the top, with the header beneath and the table of journal entries beneath that. If the header should not be shown, just set its "visible" state to zero as the first thing in the "position" script below. --> <layout id="journal"> <!-- <portalref portal="jrTitle"/> --> <portalref portal="journal" taborder="10"/> <!-- <templateref template="jrHeader" thing="actor"/> --> <!-- This script sizes and positions the layout and its child visual elements. --> <position><![CDATA[ ~configure whether our header is visible or not ~Note: If the header is non-visible, no space is allotted for it below. ~template[jrHeader].visible = 1 ~position the title at the top, followed by the template, and then the table ~perform portal[jrTitle].autoplace ~perform template[jrHeader].autoplace[6] perform portal[journal].autoplace[9] ]]></position> </layout> <!-- journal panel This is the "Journal" panel shown within Hero Lab. Since we want this panel to appear second within the third grouping (details), we assign it an "order" of 320. The logic for this panel is similar to the logic for the preceeding panels, so please refer to those panels for more details. --> <panel id="journal" name="Journal" marginhorz="5" marginvert="5" order="320"> <!-- <live>!HideTab.journal</live> --> <layoutref layout="journal"/> <position><![CDATA[ ]]></position> </panel> </document> Code:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- This file contains the definition of the forms that are required by hero lab. --> <document signature="Hero Lab Data"> <!-- The following portal is used by the dashboard, it has be id="dashboard" --> <portal id="dashboard" style="tblGridLt"> <table_fixed component="tactical" showtemplate="template"> </table_fixed> </portal> <!-- The following portal is used by the tactical form, it has be id="tacActive" and must be a fixed table. --> <portal id="tacActive" style="tblGridLt"> <table_fixed component="tactical" showtemplate="template"> </table_fixed> </portal> <!-- The following portal is used by the tactical form, it has be id="tacPending" and must be a fixed table. --> <portal id="tacPending" style="tblGridLt"> <table_fixed component="tactical" showtemplate="template"> </table_fixed> </portal> <!-- The Following portal is used by the layout. --> <portal id="portal1" style="lblSmTitle"> <label text="Label"></label> </portal> <!-- The Following template is used by dashboard, tacActive, and tacPending portals, which all require a template --> <template id="template" name="Tactical Console Pick" compset="Actor"> <portal id="portal2" style="lblSmTitle"> <label text="Label"></label> </portal> </template> <!-- The following layout is used by all the forms following it. --> <layout id="layout"> <portalref portal="portal1"/> </layout> <!-- The following forms are required for Hero Lab to load. --> <!-- Config Form --> <form id="config" name="Configure"> <layoutref layout="layout"/> </form> <!-- Tactical Form --> <form id="tactical" name="Tactical Console"> <layoutref layout="layout"/> </form> <!-- Static Form --> <form id="static" name="Static"> <layoutref layout="layout"/> </form> <!-- Dashboard Form --> <form id="dashboard" name="Dashboard"> <layoutref layout="layout"/> </form> </document> |
#7 |
|
|