Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - Authoring Kit

Notices

Reply
 
Thread Tools Display Modes
royalfa
Member
 
Join Date: Feb 2011
Posts: 37

Old January 9th, 2012, 07:10 PM
Well I change all the tab race to behave as per 4e tab race.

I don it, but I need to change the "Add Language" menu to a "Add Origin Skills" one.

I change the "setup" of the portal, the "showtemplate", fields and tags related.

I make it work but the menu do not work instead displays the list of skills (with an scroll bar) and clicking the menu "Add Origin Skill" (look on the image) pops up a window: "Nothing to chose from"



http://flickr.com/gp/50870840@N06/21mXNQ

Here is the original portal and template:

Code:
<portal
    id="raLangs"
    style="tblNormal">
    <table_dynamic
      component="Language"
      showtemplate="LangPick"
      choosetemplate="SimpleItem"
      showfixedlast="yes"
      addpick="resLangSta"
      alwaysupdate="yes">
      <list><![CDATA[
        !thing.user_added & !Hide.Language
        ]]></list>
      <candidate>TRUE</candidate>
      <autotag group="Helper" tag="StartLang"/>
      <titlebar><![CDATA[
        @text = "Add a Language - " & hero.child[resLangSta].field[resSummary].text
        ]]></titlebar>
      <description/>
      <headertitle><![CDATA[
        @text = "Languages: " & hero.child[resLangSta].field[resSummary].text
        ]]></headertitle>
      <additem><![CDATA[
        ~set the color based on whether the proper number of slots are allocated
        if (field[resLeft].value = 0) then
          @text = "{text a0a0a0}"
        elseif (field[resLeft].value < 0) then
          @text = "{text ff0000}"
          endif
        @text &= "Add New Language"
        ]]></additem>
      </table_dynamic>
    </portal>

<!-- LangItem template
  -->
  <template
    id="LangPick"
    name="Language Pick"
    compset="Language"
    marginhorz="3"
    marginvert="2">

    <portal
      id="name"
      style="lblNormal"
      showinvalid="yes">
      <label
        field="thingname">
        </label>
      </portal>

    <portal
      id="username"
      style="editNormal">
      <edit
        field="UserName"
        maxlength="100">
        </edit>
      </portal>

    <portal
      id="info"
      style="actInfo">
      <action
        action="info">
        </action>
      <mouseinfo/>
      </portal>

    <portal
      id="delete"
      style="actDelete"
      tiptext="Click to delete this item">
      <action
        action="delete">
        </action>
      </portal>

    <portal
      id="chkliter"
      style="chkSmall">
      <checkbox
        field="lnLiterate"
        message="{/b}{text d0d0d0}Literate in Language?">
        </checkbox>
      </portal>

    <position><![CDATA[
      ~set up our height based on our tallest portal
      height = portal[info].height

      if (hero.tagis[source.OptLit?] <> 0) then
        height += portal[chkliter].height + 6
      else
        portal[chkliter].visible = 0
        endif

      ~if this is a "sizing" calculation, we're done
      doneif (issizing <> 0)

      ~position our tallest portal at the top
      portal[info].top = 0

      ~center the other portals vertically
      perform portal[name].centeron[vert,info]
      perform portal[username].centeron[vert,info]
      perform portal[delete].centeron[vert,info]

      ~position the delete portal on the far right
      perform portal[delete].alignedge[right,0]

      ~position the info portal to the left of the delete button
      perform portal[info].alignrel[rtol,delete,-8]

      ~position our literacy checkbox at the bottom
      perform portal[chkliter].alignedge[bottom,-2]
      perform portal[chkliter].centerhorz

      var edge as number
      edge = portal[info].left - 5

      ~position the name on the left and let it use all available space
      portal[name].left = 0
      portal[name].width = minimum(portal[name].width,edge)

      ~if this is a "custom" item pick, show an edit portal instead of the name
      if (tagis[Helper.CustomItem] <> 0) then
        portal[name].visible = 0
        portal[username].left = portal[name].left
        var limit as number
        limit = portal[info].left - portal[username].left - 5
        portal[username].width = minimum(200,limit)
      else
        portal[username].visible = 0
        endif

      ~if this is an auto-added pick, change its font to indicate that fact
      if (ispick + !candelete >= 2) then
        perform portal[name].setstyle[lblAuto]
        endif
      ]]></position>

    </template>
Here are the changes I did: (same name raLangs to avoid, at least for a while change all references)

Code:
<portal
    id="raLangs"
    style="tblNormal">
    <table_dynamic
      component="Skill"
      showtemplate="OriginPick"
      choosetemplate="SimpleItem"
      showfixedlast="yes"
      addpick="resOrSkill"
      alwaysupdate="yes">
      <list><![CDATA[
        !thing.user_added & !Hide.Skill
        ]]></list>
      <candidate>TRUE</candidate>
      <autotag group="Helper" tag="OrSkill"/>
      <titlebar><![CDATA[
        @text = "Add origin skill - " & hero.child[resOrSkill].field[resSummary].text
        ]]></titlebar>
      <description/>
      <headertitle><![CDATA[
        @text = "Skills: " & hero.child[resOrSkill].field[resSummary].text
        ]]></headertitle>
      <additem><![CDATA[
        ~set the color based on whether the proper number of slots are allocated
        if (field[resLeft].value = 0) then
          @text = "{text a0a0a0}"
        elseif (field[resLeft].value < 0) then
          @text = "{text ff0000}"
          endif
        @text &= "Add Origin Skill"
        ]]></additem>
      </table_dynamic>
    </portal>

<template
    id="OriginPick"
    name="Origin Skills Pick"
    compset="Skill"
    marginhorz="3"
    marginvert="2">

    <portal
      id="name"
      style="lblNormal"
      showinvalid="yes">
      <label
        field="thingname">
        </label>
      </portal>

    <portal
      id="info"
      style="actInfo">
      <action
        action="info">
        </action>
      <mouseinfo/>
      </portal>

    <portal
      id="delete"
      style="actDelete"
      tiptext="Click to delete this item">
      <action
        action="delete">
        </action>
      </portal>

    <position><![CDATA[
      ~set up our height based on our tallest portal
      height = portal[info].height

      ~if this is a "sizing" calculation, we're done
      ~doneif (issizing <> 0)

      ~position our tallest portal at the top
      portal[info].top = 0

      ~center the other portals vertically
      perform portal[name].centeron[vert,info]
      perform portal[delete].centeron[vert,info]

      ~position the delete portal on the far right
      perform portal[delete].alignedge[right,0]

      ~position the info portal to the left of the delete button
      perform portal[info].alignrel[rtol,delete,-8]

      var edge as number
      edge = portal[info].left - 5

      ~position the name on the left and let it use all available space
      portal[name].left = 0
      portal[name].width = minimum(portal[name].width,edge)
      
      ]]></position>

    </template>
I'm tired of look the error lol

Last edited by royalfa; January 9th, 2012 at 07:11 PM. Reason: Don't show the image
royalfa is offline   #1 Reply With Quote
royalfa
Member
 
Join Date: Feb 2011
Posts: 37

Old January 9th, 2012, 11:18 PM
I test the portal changing the fields.

I discovered that the troubles is the component:Skill itself.

Testing this structure with component:Language runs fine.

I spend the last hour trying to "re do" the skill component with out any luck.
(Still don't quite understand the "tags" system in the way that "where I put a tag, who has the tag and how to really use it...All then...)

When all the things I try fail I create a new portal and a new template (based in Savage World) to try to get around this. With out success because, again, the troubles is the component:Skill not the portal or the template.

I'm thinking now in create a new component named OriginSk or something like this based in the component: Language to get around this trouble. But don't know if this is an "elegant" solution because I already has the skill component!!

The idea is this: All the characters can select 2 skill at creation (origin skills) and spend ranks in this even if non of his class grant them. The characters in general ONLY can purchase ranks in origin and class skills (no 1/2 rank all other are restricted).

This is why I'm trying to do this menu in race tab.
royalfa is offline   #2 Reply With Quote
royalfa
Member
 
Join Date: Feb 2011
Posts: 37

Old January 10th, 2012, 04:30 AM
Finally I can choose the origin skills, but not in the way I think at first.

Instead I add 2 "thing" in thing_race:

Quote:
<thing id="OrSkill1" name="Origin Skill" description="Origin Skill." compset="RaceFeat">
<fieldval field="usrCandid1" value="component.Skill"/>
<tag group="Hide" tag="Special"/>
<eval phase="Traits" priority="10000"><![CDATA[
~add origin skills
if (hero.child[resOrSkill].field[resSpent].value > 0) then
perform forward[OrSkill.?]

~adjust the resource appropriately
hero.child[resOrSkill].field[resSpent].value += field[trtUser].value
endif
]]></eval>
</thing>
<thing id="OrSkill2" name="Origin Skill" description="Origin Skill." compset="RaceFeat">
<fieldval field="usrCandid1" value="component.Skill"/>
<tag group="Hide" tag="Special"/>
<eval phase="Traits" priority="10000"><![CDATA[
~add origin skills
if (hero.child[resOrSkill].field[resSpent].value > 0) then
perform forward[OrSkill.?]

~adjust the resource appropriately
hero.child[resOrSkill].field[resSpent].value += field[trtUser].value
endif
]]></eval>
</thing>
I check it and works fine. (Well I can select the same skill twice but I will correct this later)

But the hero has now the 2 selected skills as Origin Skills:
OrSkill1 and OrSkill2

I check all the tags the hero has and he has all tag skill auto...
As I said before the only skills that the hero can spend ranks are the origin and the class skills, moreover I only want the tab skill and the sheet shows the skills with ranks (some skills are linked to other skill and can have ranks besides not an origin/class skill).

How I do that?? lol.

Good day.
royalfa is offline   #3 Reply With Quote
royalfa
Member
 
Join Date: Feb 2011
Posts: 37

Old January 15th, 2012, 09:06 AM
Ok I resolve the origin Skills "boostraping" the features to each race but then the hero has the tag "HasFeature.OrSkill1" and "HasFeature.OrSkill1" and this don't find the OrSkill.? tag neither Helper.OrSkill tag.

Because of the above trouble I try again to make a chose menu for this skills.
(and this way don't need to boostrap the above features on each race)

But again don't "pops up the chooser window":

Here is the code I use:

PORTAL:
Code:
<portal
    id="OrSkills"
    style="tblNormal">
    <table_dynamic
      component="Skill"
      showtemplate="OrSkPick"
      choosetemplate="SimpleItem"
      showfixedlast="yes"
	  addpick="resOrSkill"
      alwaysupdate="yes">
      <list><![CDATA[
         Helper.OrSkill
        ]]></list>
      <candidate>component.Skill</candidate>
      <autotag group="Helper" tag="OrSkill"/>
      <titlebar><![CDATA[
        @text = "Add 2 Skills - " & hero.child[resOrSkill].field[resSummary].text
        ]]></titlebar>
      <description/>
      <headertitle><![CDATA[
        @text = "Languages: " & hero.child[resOrSkill].field[resSummary].text
        ]]></headertitle>
      <additem><![CDATA[
        ~set the color based on whether the proper number of slots are allocated
        if (field[resLeft].value = 0) then
          @text = "{text a0a0a0}"
        elseif (field[resLeft].value < 0) then
          @text = "{text ff0000}"
          endif
        @text &= "Add New Skill"
        ]]></additem>
      </table_dynamic>
    </portal>
TEMPLATE:

Code:
<!-- OrSkPick template
  -->
  <template
    id="OrSkPick"
    name="Origins Skill Picks"
    compset="Skill"
    marginhorz="3"
    marginvert="2">

    <portal
      id="name"
      style="lblNormal"
      showinvalid="yes">
      <label
        field="thingname">
        </label>
      </portal>

    <portal
      id="info"
      style="actInfo">
      <action
        action="info">
        </action>
      <mouseinfo/>
      </portal>

    <portal
      id="delete"
      style="actDelete"
      tiptext="Click to delete this item">
      <action
        action="delete">
        </action>
      </portal>

    <position><![CDATA[
      ~set up our height based on our tallest portal
      height = portal[info].height

      ~if this is a "sizing" calculation, we're done
      doneif (issizing <> 0)

      ~position our tallest portal at the top
      portal[info].top = 0

      ~center the other portals vertically
      perform portal[name].centeron[vert,info]
      perform portal[delete].centeron[vert,info]

      ~position the delete portal on the far right
      perform portal[delete].alignedge[right,0]

      ~position the info portal to the left of the delete button
      perform portal[info].alignrel[rtol,delete,-8]

      var edge as number
      edge = portal[info].left - 5

      ~position the name on the left and let it use all available space
      portal[name].left = 0
      portal[name].width = minimum(portal[name].width,edge)

      ~if this is an auto-added pick, change its font to indicate that fact
      if (ispick + !candelete >= 2) then
        perform portal[name].setstyle[lblAuto]
        endif
      ]]></position>

    </template>

I understand (finally) why HL display at first all the skills:

Code:
<list><![CDATA[ !thing.user_added & !Hide.Skill ]]></list>
now I change that line to:

Code:
<list><![CDATA[ Helper.OrSkill]]></list>
This way only will display the Origin Skills on the table (at least I think so)

But when I press the "Add New Skill" chooser HL keeps saying
NOTHING TO CHOSE FROM!

I read that the <Candidate> looks this and I change the value from
TRUE to component.Skill and try Skill.? and !Hide.Skill expressions without any luck or change.

Please help me figure it out why don't show the chose window.

Thanks
royalfa is offline   #4 Reply With Quote
royalfa
Member
 
Join Date: Feb 2011
Posts: 37

Old January 18th, 2012, 05:11 AM
0k

I change the way PCs will select his 2 skills at the start:

I delete this pick from the race tab and create a new skills tab to do this.

Using the code in the wiki to make the skill tab for savage I adjust this to the game then HL again send me the window "Nothing to chose from".

For the first time I check every aspect of this: tab and component and discover that the compset I have was defined as <comref component="derived"> instead of <comref component="CanAdvance">

The first because I take it from the 4e definition and this one from the savage source.

Whit that change I can select now the 2 origin skills.

For the moment I need to focus on the defenses and the Wounds trait then Class; later I will get back with skills to "link" the skill points from class to this panel and do some more things
** Define the max ranks a PC can put on each skill as LEVEL + 3
** Modify the max ranks a PC can put on an "Enlighted" skill: LEVEL + 5
** Show on this tab the Class Skills
** Show on summary tab all the skills with ranks (some skills can have ranks because features or feats but can't be purchased in the skill tab)

Last edited by royalfa; January 25th, 2012 at 04:54 AM.
royalfa is offline   #5 Reply With Quote
Reply

Thread Tools
Display Modes

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 10:54 AM.


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