Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - Authoring Kit
Register FAQ Community Today's Posts Search

Notices

Reply
 
Thread Tools Display Modes
zergcow
Junior Member
 
Join Date: Jul 2013
Posts: 4

Old July 24th, 2013, 11:34 AM
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.
zergcow is offline   #1 Reply With Quote
Mathias
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 13,213

Old July 29th, 2013, 09:47 AM
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.
Mathias is online now   #2 Reply With Quote
zergcow
Junior Member
 
Join Date: Jul 2013
Posts: 4

Old August 3rd, 2013, 02:17 PM
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?
zergcow is offline   #3 Reply With Quote
Mathias
Senior Member
Lone Wolf Staff
 
Join Date: May 2005
Posts: 13,213

Old August 5th, 2013, 07:52 AM
You can write a script that sets field[trtMax].value to the correct amount.
Mathias is online now   #4 Reply With Quote
zergcow
Junior Member
 
Join Date: Jul 2013
Posts: 4

Old August 5th, 2013, 10:35 AM
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?
zergcow is offline   #5 Reply With Quote
Goreshade
Member
 
Join Date: Aug 2013
Location: CA
Posts: 42

Old August 10th, 2013, 11:13 PM
Quote:
Originally Posted by zergcow View Post
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.
Zergcow, Mathias is probably not familiar with the IK RPG character construction rules. I am about three fourths of the way thru the savage worlds tutorial but I have run into a kind of impass. Also if you have the debug mode set its pretty easy to find those leftover items to remove when you get rid of something like CPs. I just commented them out until I was sure they might not be usable.

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.
Goreshade is offline   #6 Reply With Quote
Kathorus
Member
 
Join Date: Jan 2013
Posts: 61

Old September 4th, 2013, 03:00 PM
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>
miscellaneous.str
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>
You have to have a Journal Tab, so keep tab_journal.dat, but change the contents to

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>
Finally, there are a number of forms that have to be defined, which also requires that you have portals, template, and layouts defined as well, I consolidated that all into one form and it contains

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>
Hope this gets you on the right track for making a bare bones data set.
Kathorus is offline   #7 Reply With Quote
Reply


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 04:58 PM.


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