PDA

View Full Version : Custom Character Sheet help...



Grymn
October 3rd, 2005, 05:16
I'm going to be using FG to run several non-d20 games in the future. I'm attempting to create some custom character sheets but i have no idea where to start.

I can handle the graphics themselve with no problem. I just have no clue where to start. I've only played with XML on a occasion (I am a quick learn and am fairly intelligent when it comes to these things, however).

I guess I'm just looking for a guiding hand to get me started in the right direction.

SalmonElla
October 3rd, 2005, 12:38
Look in the charsheet.xml file. See how they map a pixel by pixel square. Basically yuou are going to have to map out the 'box' locations on your new charsheet pixel by pixel. For smaller sheets this is not a big deal but if you are listing a ton of skills and whatnot be ready for a few nights of mindnumbing pain. :)

For a 4 sheet character sheet I wrote close to 3000 lines of xml but it was well worth it.

Grymn
October 4th, 2005, 08:36
Look in the charsheet.xml file. See how they map a pixel by pixel square. Basically yuou are going to have to map out the 'box' locations on your new charsheet pixel by pixel. For smaller sheets this is not a big deal but if you are listing a ton of skills and whatnot be ready for a few nights of mindnumbing pain. :)

For a 4 sheet character sheet I wrote close to 3000 lines of xml but it was well worth it.

any pointers or guides on how to map them out?

SalmonElla
October 4th, 2005, 12:59
Mapping out a square:
You will need to find the upper leftmost corner of the quare you are mapping out. Lets call it 98,160. Count pixels right until you get to the upper right corner, lets call it 16 pixels. Count down until you find the bottom right corner, lets call it 12.

For a stat block, Dexterity, it would be:


- <numbercontrol name="dexterity">
<bounds rect="98,160,16,12" />
<nodrag />
<nodrop />
<noreset />
<description text="Dexterity" />
<limits minimum="0" maximum="30" />
<tabtarget next="constitution" prev="strength" />
</numbercontrol>

Crusader
October 4th, 2005, 13:29
Here's a few quick things to get you started at least. It's far from a complete guide but at least I hope it tells you what to look for:

First of all, the images that is in the background of the sheet needs to be defined as a frame. Using the d20-rulesystem as an example we first take a look at the d20_graphics.xml and look at the following entry:


<framedef name="charsheet_main">
<bitmap file="rulesets\d20\frames\charsheet_main.png" />
<topleft rect="0,0,0,0" />
<top rect="0,0,0,0" />
<topright rect="0,0,0,0" />
<left rect="0,0,0,0" />
<middle rect="0,0,550,685" />
<right rect="0,0,0,0" />
<bottomleft rect="0,0,0,0" />
<bottom rect="0,0,0,0" />
<bottomright rect="0,0,0,0" />
</framedef>

Here we define that the frame is called charsheet_main. This is the name we are going to use later on when we define how this page is giong to look. We also define the path to the image file. Last of all, we define what parts of the image is going to be used for the different parts of the character sheet. In this case we don't need a sheet that is resizable so that is why we only need to use the 'middle rect' since this makes up the entire sheet and it starts at pixel coordinate 0,0 and it is 550 pixels wide and 685 pixels high.

After we have defined all the frames in the character sheet we could go on to define what should be on them. If you open the charsheet.xml you'll see the following:


<root>
<windowclass name="charsheet_main">
<frame name="charsheet_main" />
<datasource name="charsheet" />
<defaultsize width="550" height="685" />
<sheetdata>
<numbercontrol name="strength">
<bounds rect="73,189,34,23" />
<nodrag />
<nodrop />
<noreset />
<description text="Strength" />
<limits minimum="0" maximum="30" />
<tabtarget next="dexterity" prev="appearance" />
</numbercontrol>
...

The root-entry must be present at the start of all XML-files and must be closed at the end. Then comes the definition of the first page of the character sheet. You'll notice that the frame used is the same as defined in the graphics above. For convenience the windowclass name is the same. The datasource name is under what node-name the characters will be stored in the campaign and could be left as it is.

Under sheetdata comes the field definitions. I've only included one field here, strength. The field is a numbercontrol which means that it stores integer values. The name-value is an identifier of your own choosing. You'll see that there is a definition that shows where this field is located on the image. First comes the starting coordinates. This could be found with any good image editor. Here's a screenshot from The GIMP for instance:

http://www.harn.se/img/quickguide1.jpg

(The screenshot doesn't show the pointer, but I'm holding it in the top left corner of the rectangle that should be used for the strength-value.)

The area marked with the red rectangle shows the coordinates that should be used in the definition. Then comes the width and height of the field and this could be found by using the selection tool:

http://www.harn.se/img/quickguide2.jpg

Here I have selected the rectangle that should be used for the strength-value. As you can see these number corresponds to the values entered in the bounds-definition.

Apart from numbercontrols there's also stringcontrols that stores strings rather than integers. There's also the multistatecontrol, but start out with strings and numbers.

The individual pages of the character sheet must be closed with:


</sheetdata>
</windowclass>

Hopefully, this will at least get you started, but ask if you have any questions.

Grymn
October 4th, 2005, 18:44
Wow, Crusader. That is very helpful. Thank you.

I'm also going to end up need to do something similar to what the guy who did the Adventure! (White Wolf) character sheet did and have boxes that can be checked and unchecked. Would I need to learn the multistate functions to do that? Any tips there?

Cantstanzya
October 5th, 2005, 02:03
I'm also going to end up need to do something similar to what the guy who did the Adventure! (White Wolf) character sheet did and have boxes that can be checked and unchecked. Would I need to learn the multistate functions to do that? Any tips there?
It is very easy, see the sample below I used for armor selection (this would go in your charsheet.xml file:


<multistate name="armor">
<bounds rect="339,127,120,20" />
<state value="0" icon="Blank" />
<state value="1" icon="Leather" />
<state value="2" icon="Padded" />
<state value="3" icon="StuddedLeather" />
<state value="4" icon="RingMail" />
<state value="5" icon="ScaleMail" />
<state value="6" icon="ChainMail" />
<state value="7" icon="ElfinChain" />
<state value="8" icon="SplintMail" />
<state value="9" icon="BandedMail" />
<state value="10" icon="BronzePlateMail" />
<state value="11" icon="PlateMail" />
<state value="12" icon="FieldPlateMail" />
<state value="13" icon="FullPlateMail" />
</multistate>


Then in the graphics.xml file put the path where the graphics for this is located:


<icon name="Blank" file = "rulesets/AD&D_UA/icons/Blank.png" />
<icon name="Leather" file = "rulesets/AD&D_UA/icons/Leather.png" />
<icon name="Padded" file = "rulesets/AD&D_UA/icons/Padded.png" />
<icon name="StuddedLeather" file = "rulesets/AD&D_UA/icons/StuddedLeather.png" />
<icon name="RingMail" file = "rulesets/AD&D_UA/icons/RingMail.png" />
<icon name="ScaleMail" file = "rulesets/AD&D_UA/icons/ScaleMail.png" />
<icon name="ChainMail" file = "rulesets/AD&D_UA/icons/ChainMail.png" />
<icon name="ElfinChain" file = "rulesets/AD&D_UA/icons/ElfinChain.png" />
<icon name="SplintMail" file = "rulesets/AD&D_UA/icons/SplintMail.png" />
<icon name="BandedMail" file = "rulesets/AD&D_UA/icons/BandedMail.png" />
<icon name="BronzePlateMail" file = "rulesets/AD&D_UA/icons/BronzePlateMail.png" />
<icon name="PlateMail" file = "rulesets/AD&D_UA/icons/PlateMail.png" />
<icon name="FieldPlateMail" file = "rulesets/AD&D_UA/icons/FieldPlateMail.png" />
<icon name="FullPlateMail" file = "rulesets/AD&D_UA/icons/FullPlateMail.png" />


This is an over eleborate example but wanted to show you that it can be used for more than just checkboxes. If you wanted to use it for checkboxes you would only have two entries, one for the checked state and one for the unchecked state. You would have two graphic files, one box with a check and another box without.

Grymn
October 5th, 2005, 04:51
Rock on. That does seem easy enough. I'll just need to jump in and give it a go. :)

Grymn
October 5th, 2005, 08:46
I've tried it out....and the quick tutorials given above did the job. I'm on my way to finishing up my first custom character sheet. Thank you guys! I'll post some screenshots once I've finished them. (They're for Weapons of the Gods by Eos Press)

Crusader
October 5th, 2005, 08:50
Cool, I'm glad I could be of service!

Grymn
October 6th, 2005, 18:52
I've finished the first part of my Weapons of the Gods character sheet for FG.

http://www.wulinrealm.com/images/wotg_FG_sheet.png

I've only done the basic character info and Ability/Chi and Skills. My next steps will be to work on a Kung Fu/Advantages page, a Technique page, a Background Page, and then new minisheet with health, used/available chi, and joss (luck) points.

I do have another question...is it possible to increase the size of the current mini-sheet? If so...any pointers? ;)