'VBScript 'The line above must be the very first line of the file. ' 'NOTE: 'This FLX file will only work with characters saved by 'GCA v2.1 or later! When GCA v2 was released, it only 'stored 23 basic Stats, while v2.1 and later stored 33. 'This script refers to the stats by their number in 'the stats list, so it will error out with those 'earlier characters. ' const Stats=1 const Ads = 2 const Disads=3 const Quirks=4 const Powers=5 const Skills=6 const Spells=7 '**************************************** 'The Main Module, where the form starts '**************************************** Sub Main fontsize= 10 fontname = "Arial" scalemode = 0 'inches if Orientation = 0 then 'portrait columns = 3 else 'landscape columns = 4 end if call SetMargins call SetHeader call SetFooter currenty = margintop call PrintStats call PrintMovement call PrintEncumbrance call PrintActiveDefenses call PrintBodyProtection call PrintAdditionalStats call PrintAds call PrintDisads call PrintQuirks call PrintPowers call PrintSkills NewPage Columns =2 call PrintSpells NewPage call PrintPortrait call PrintDescription call PrintNotes call PrintPointSummary end sub '**************************************** 'set the margins for the character sheets '**************************************** sub SetMargins marginleft= .75 marginright=.75 margintop = 1 marginbottom =1 pageborder=3 end sub '**************************************** 'Create the header for the character sheets '**************************************** sub SetHeader header = "GCAPRN|" & Char.Name end sub '**************************************** 'Create the footer for the character sheets '**************************************** sub SetFooter footer = "||{GCAPRN\line\b %d}" end sub '**************************************** 'Check if we're too close to the bottom 'of the page to comfortably start a new 'section. '**************************************** sub CheckNewColumn(distance) dim curPos, chkPos curPos = currenty chkPos = pageheight - marginbottom - distance if curPos >= chkPos then newcolumn end if end sub '**************************************** 'Print the stats '**************************************** sub PrintStats dim CostCol, StatCol, ScoreCol dim BoxTop, BoxLeft, BoxBottom, BoxRight dim MidLine1, MidLine2, curTop CostCol = MarginLeft StatCol = CostCol + .25 ScoreCol = StatCol + .5 '***** ' ST box '***** BoxLeft = MarginLeft BoxTop = CurrentY BoxRight = BoxLeft + 2.15 BoxBottom = BoxTop + .5 MidLine1 = BoxRight - 1.0 DrawBox BoxLeft, BoxTop, BoxRight, BoxBottom, True DrawLine midline1, boxtop, midline1, boxbottom ' fill it FontSize =8 currenty=BoxTop + .01 PrintCentered "Hits (of " & Char.Lists(Stats).Item(7).TagItem("score") & ")", MidLine1, BoxRight FontSize =8 currenty= ReturnCenterY("ST", BoxTop, BoxBottom) PrintCentered Char.Lists(Stats).Item(1).TagItem("points"), CostCol, StatCol FontSize= 16 FontBold =True currentx=StatCol currenty= ReturnCenterY("ST", BoxTop, BoxBottom) Text = "ST" currentx=ScoreCol currenty= ReturnCenterY("ST", BoxTop, BoxBottom) text = Char.Lists(Stats).Item(1).TagItem("score") FontSize= 10 FontBold =False '***** ' Print DX, IQ, and Basic Damage '***** ' DX box BoxLeft = MarginLeft BoxTop = BoxBottom BoxRight = BoxLeft + 1.15 BoxBottom = BoxTop + .5 curTop = BoxTop call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) ' fill it FontSize =8 currenty= ReturnCenterY("ST", BoxTop, BoxBottom) PrintCentered Char.Lists(Stats).Item(2).TagItem("points"), CostCol, StatCol FontSize= 16 FontBold =True currentx=StatCol currenty= ReturnCenterY("ST", BoxTop, BoxBottom) Text = "DX" currentx=ScoreCol currenty= ReturnCenterY("ST", BoxTop, BoxBottom) text = Char.Lists(Stats).Item(2).TagItem("score") FontSize= 10 FontBold =False ' IQ box BoxLeft = MarginLeft BoxTop = BoxBottom BoxRight = BoxLeft + 1.15 BoxBottom = BoxTop + .5 call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) ' fill it FontSize =8 currenty= ReturnCenterY("ST", BoxTop, BoxBottom) PrintCentered Char.Lists(Stats).Item(3).TagItem("points"), CostCol, StatCol FontSize= 16 FontBold =True currentx=StatCol currenty= ReturnCenterY("ST", BoxTop, BoxBottom) Text = "IQ" currentx=ScoreCol currenty= ReturnCenterY("ST", BoxTop, BoxBottom) text = Char.Lists(Stats).Item(3).TagItem("score") FontSize= 10 FontBold =False ' Basic Damage box BoxLeft = BoxRight BoxTop = curTop BoxRight = BoxLeft + 1 BoxBottom = BoxTop + 1 call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) FontSize= 8 currenty=BoxTop + .01 PrintCentered "Damage", BoxLeft, BoxRight ' fill it FontSize= 10 currenty=BoxTop + textheight("Thrust:") * 1.1 PrintCentered "Thrust:" & Char.BaseTH, BoxLeft, BoxRight currenty=BoxTop + textheight("Thrust:")* 2 * 1.1 PrintCentered "Swing:" & Char.BaseSW, BoxLeft, BoxRight '***** ' Print HT and Hits Taken '***** ' HT box BoxLeft = MarginLeft BoxTop = BoxBottom BoxRight = BoxLeft + 2.15 BoxBottom = BoxTop + .5 MidLine1 = BoxRight - 1.0 call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) DrawLine midline1, boxtop, midline1, boxbottom ' fill it FontSize =8 currenty=BoxTop + .01 PrintCentered "Fat. (of " & Char.Lists(Stats).Item(6).TagItem("score") & ")", MidLine1, BoxRight FontSize =8 currenty= ReturnCenterY("ST", BoxTop, BoxBottom) PrintCentered Char.Lists(Stats).Item(4).TagItem("points"), CostCol, StatCol FontSize= 16 FontBold =True currentx=StatCol currenty= ReturnCenterY("ST", BoxTop, BoxBottom) Text = "HT" currentx=ScoreCol currenty= ReturnCenterY("ST", BoxTop, BoxBottom) text = Char.Lists(Stats).Item(4).TagItem("score") FontSize= 10 FontBold =False paragraph="" currenty = boxbottom + .125 end sub '**************************************** 'Print movement info '**************************************** sub PrintMovement dim BoxTop, BoxLeft, BoxBottom, BoxRight dim MidLine1, MidLine2 '***** ' MVMT box '***** BoxLeft = MarginLeft BoxTop = CurrentY BoxRight = BoxLeft + 2.15 BoxBottom = BoxTop + 1 MidLine1 = BoxLeft + (BoxRight - BoxLeft) / 3 MidLine2 = BoxLeft + (BoxRight - BoxLeft) / 3 * 2 call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) DrawLine midline1, boxtop, midline1, boxbottom DrawLine midline2, boxtop, midline2, boxbottom 'divide in sixths across horizontal DrawLine BoxLeft, BoxTop + .5, BoxRight, BoxTop + .5 ' fill it FontSize= 16 FontBold =True currenty= ReturnCenterY("Mvmt", BoxTop, BoxTop + .5) PrintCentered "Mvmt", BoxLeft, MidLine1 ' basic speed FontBold =False FontSize =8 currenty=BoxTop + .01 PrintCentered "Basic Speed", MidLine1, MidLine2 FontSize= 16 currenty= ReturnCenterY("Mvmt", BoxTop, BoxTop + .5) PrintCentered Char.Lists(Stats).Item(8).TagItem("score"), MidLine1, MidLine2 FontSize =8 currenty=BoxBottom - .5 - textheight("ST") * 1.05 PrintCentered "(HT+DX)/4", MidLine1, MidLine2 ' move FontBold =False FontSize =8 currenty=BoxTop + .01 PrintCentered "Move", MidLine2, BoxRight FontSize= 16 currenty= ReturnCenterY("Mvmt", BoxTop, BoxTop + .5) PrintCentered Char.Lists(Stats).Item(9).TagItem("score"), MidLine2, BoxRight FontSize =8 currenty=BoxBottom - .5 - textheight("ST") * 1.05 PrintCentered "Round Off", MidLine2, BoxRight ' swim FontBold =False FontSize =8 currenty=BoxTop + .5 + .01 PrintCentered "Swim", MidLine1, MidLine2 FontSize= 16 currenty= ReturnCenterY("Mvmt", BoxTop + .5, BoxBottom) PrintCentered Char.Lists(Stats).Item(14).TagItem("score"), MidLine1, MidLine2 FontSize =8 currenty=BoxBottom - textheight("ST") * 1.05 PrintCentered "(Base)", MidLine1, MidLine2 FontSize= 10 FontBold =False paragraph="" currenty = boxbottom + .125 end sub '**************************************** 'Print Encumbrance info '**************************************** Sub PrintEncumbrance dim BoxTop, BoxLeft, BoxBottom, BoxRight dim MidLine1, MidLine2 CheckNewColumn 1.3 dim chkBoxTop, chkBoxLeft, chkBoxBottom, chkBoxRight dim i, EncCol, lbCol, mvCol dim txtHgt 'BoxLeft = MarginLeft BoxLeft = CurrentX BoxTop = CurrentY BoxRight = BoxLeft + 2.15 BoxBottom = BoxTop + 1.3 EncCol = BoxLeft + .125 + .25 lbCol = EncCol + 1.25 mvCol = EncCol + 1.5 call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) FontBold =True FontSize =12 currentx= BoxLeft + .125 currenty= BoxTop + .03 text = "Encumbrance" currenty= BoxTop + .03 call PrintAtRight("Move", BoxRight - .125) FontBold =False FontSize =10 redim EncText(5) redim EncScore(5) redim EncMove(5) EncText(1) = "None (" & Char.Lists(Stats).Item(24).TagItem("score") & ")" EncText(2) = "Light (" & Char.Lists(Stats).Item(25).TagItem("score") & ")" EncText(3) = "Med (" & Char.Lists(Stats).Item(26).TagItem("score") & ")" EncText(4) = "Hvy (" & Char.Lists(Stats).Item(27).TagItem("score") & ")" EncText(5) = "X-Hvy (" & Char.Lists(Stats).Item(28).TagItem("score") & ")" EncScore(1) = Char.Lists(Stats).Item(15).TagItem("score") & " lbs" EncScore(2) = Char.Lists(Stats).Item(16).TagItem("score") & " lbs" EncScore(3) = Char.Lists(Stats).Item(17).TagItem("score") & " lbs" EncScore(4) = Char.Lists(Stats).Item(18).TagItem("score") & " lbs" EncScore(5) = Char.Lists(Stats).Item(19).TagItem("score") & " lbs" EncMove(1) = Char.Lists(Stats).Item(29).TagItem("score") EncMove(2) = Char.Lists(Stats).Item(30).TagItem("score") EncMove(3) = Char.Lists(Stats).Item(31).TagItem("score") EncMove(4) = Char.Lists(Stats).Item(32).TagItem("score") EncMove(5) = Char.Lists(Stats).Item(33).TagItem("score") txtHgt = textheight("None (0)") chkBoxLeft = BoxLeft + .125 chkBoxRight = chkBoxLeft + txtHgt for i = 1 to 5 currentx= BoxLeft + .125 currenty= BoxTop + .125 + (i * txtHgt * 1.2) 'make a checkbox chkBoxTop = currenty chkBoxBottom = chkBoxTop + txtHgt call DrawBox(chkBoxLeft, chkBoxTop, chkBoxRight, chkBoxBottom, False) PrintAtLeft EncText(i), EncCol PrintAtRight EncScore(i), lbCol PrintAtRight EncMove(i), mvCol next FontSize= 10 FontBold =False paragraph="" currenty = boxbottom + .125 end sub '**************************************** 'Print Active Defenses '**************************************** sub PrintActiveDefenses dim BoxTop, BoxLeft, BoxBottom, BoxRight dim MidLine1, MidLine2 CheckNewColumn .75 'BoxLeft = MarginLeft BoxLeft = CurrentX BoxTop = CurrentY BoxRight = BoxLeft + 2.15 BoxBottom = BoxTop + .75 MidLine1 = BoxLeft + (BoxRight - BoxLeft) / 3 MidLine2 = BoxLeft + (BoxRight - BoxLeft) / 3 * 2 call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) 'divide into sections DrawLine midline1, boxtop+.25, midline1, boxbottom DrawLine midline2, boxtop+.25, midline2, boxbottom 'split line DrawLine BoxLeft, BoxTop+.25, BoxRight, BoxTop+.25 ' fill it FontBold =True FontSize =12 currenty= BoxTop + .03 PrintAtLeft "Active Defenses", BoxLeft + .125 FontBold =False FontSize =8 currenty=BoxTop + .25 + .01 PrintCentered "Dodge", BoxLeft, MidLine1 FontSize= 16 currenty= ReturnCenterY("10", BoxTop + .25, BoxBottom) PrintCentered Char.Lists(Stats).Item(10).TagItem("score"), BoxLeft, MidLine1 FontSize =6 currenty=BoxBottom - textheight("ST") * 1.05 PrintCentered "= Move", BoxLeft, MidLine1 FontBold =False FontSize =8 currenty=BoxTop + .25 + .01 PrintCentered "Parry", MidLine1, MidLine2 FontSize= 16 currenty= ReturnCenterY("10", BoxTop + .25, BoxBottom) PrintCentered Char.ParryScore, MidLine1, MidLine2 FontSize =6 currenty=BoxBottom - textheight("ST") * 1.05 PrintCentered Char.ParryUsing & "*" & Char.ParryAt, MidLine1, MidLine2 FontBold =False FontSize =8 currenty=BoxTop + .25 + .01 PrintCentered "Block", MidLine2, BoxRight FontSize= 16 currenty= ReturnCenterY("10", BoxTop + .25, BoxBottom) PrintCentered Char.BlockScore, MidLine2, BoxRight FontSize =6 currenty=BoxBottom - textheight("ST") * 1.05 PrintCentered Char.BlockUsing & "*" & Char.ParryAt, MidLine2, BoxRight FontSize= 10 FontBold =False paragraph="" currenty = boxbottom + .125 end sub '**************************************** 'Print Body Protection '**************************************** sub PrintBodyProtection dim BoxTop, BoxLeft, BoxBottom, BoxRight dim MidLine1, MidLine2, curTop dim MidLine3, MidLine4, MidLine5, MidLine6, MidLine7 CheckNewColumn 1.8 'BoxLeft = MarginLeft BoxLeft = CurrentX BoxTop = CurrentY BoxRight = BoxLeft + 2.15 BoxBottom = BoxTop + 1.8 MidLine1 = BoxLeft + ((BoxRight - BoxLeft) / 8 * 1) MidLine2 = BoxLeft + ((BoxRight - BoxLeft) / 8 * 2) MidLine3 = BoxLeft + ((BoxRight - BoxLeft) / 8 * 3) MidLine4 = BoxLeft + ((BoxRight - BoxLeft) / 8 * 4) MidLine5 = BoxLeft + ((BoxRight - BoxLeft) / 8 * 5) MidLine6 = BoxLeft + ((BoxRight - BoxLeft) / 8 * 6) MidLine7 = BoxLeft + ((BoxRight - BoxLeft) / 8 * 7) call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) ' put in SplitLines DrawLine BoxLeft, BoxTop + .4, BoxRight, BoxTop + .4 DrawLine BoxLeft, BoxTop + .65, BoxRight, BoxTop + .65 DrawLine BoxLeft, BoxTop + .9, BoxRight, BoxTop + .9 ' divide into armor sections DrawLine MidLine1, BoxTop + .4, MidLine1, BoxTop + .9 DrawLine MidLine2, BoxTop + .4, MidLine2, BoxTop + .9 DrawLine MidLine3, BoxTop + .4, MidLine3, BoxTop + .9 DrawLine MidLine4, BoxTop + .4, MidLine4, BoxBottom DrawLine MidLine5, BoxTop + .4, MidLine5, BoxTop + .9 DrawLine MidLine6, BoxTop + .4, MidLine6, BoxTop + .9 DrawLine MidLine7, BoxTop + .4, MidLine7, BoxTop + .9 ' fill it FontBold =True FontSize =12 currenty= BoxTop + .03 PrintAtLeft "Body Protection", BoxLeft + .125 FontBold =False FontSize =6 currenty= BoxTop + .28 PrintCentered "Head", MidLine1, MidLine2 PrintCentered "Body", MidLine2, MidLine3 PrintCentered "Arms", MidLine3, MidLine4 PrintCentered "Legs", MidLine4, MidLine5 PrintCentered "Hands", MidLine5, MidLine6 PrintCentered "Feet", MidLine6, MidLine7 PrintCentered "ALL", MidLine7, BoxRight fontsize= 9 currenty= ReturnCenterY("10", BoxTop + .4, BoxTop + .65) PrintCentered "PD", BoxLeft, MidLine1 PrintCentered Char.PD(0), MidLine1, MidLine2 PrintCentered Char.PD(1), MidLine2, MidLine3 PrintCentered Char.PD(2), MidLine3, MidLine4 PrintCentered Char.PD(3), MidLine4, MidLine5 PrintCentered Char.PD(4), MidLine5, MidLine6 PrintCentered Char.PD(5), MidLine6, MidLine7 PrintCentered Char.Lists(Stats).Item(20).TagItem("score"), MidLine7, BoxRight fontsize= 9 currenty= ReturnCenterY("10", BoxTop + .65, BoxTop + .9) PrintCentered "DR", BoxLeft, MidLine1 PrintCentered Char.DR(0), MidLine1, MidLine2 PrintCentered Char.DR(1), MidLine2, MidLine3 PrintCentered Char.DR(2), MidLine3, MidLine4 PrintCentered Char.DR(3), MidLine4, MidLine5 PrintCentered Char.DR(4), MidLine5, MidLine6 PrintCentered Char.DR(5), MidLine6, MidLine7 PrintCentered Char.Lists(Stats).Item(21).TagItem("score"), MidLine7, BoxRight currenty= BoxTop + .9 FontUnderline=True PrintAtLeft "Other PD", BoxLeft + .05 PrintAtLeft "Other DR", MidLine4 + .05 FontUnderline=False curTop = BoxTop + .9 + textheight("PD") TextBox Char.OtherPD, BoxLeft + .05, curTop, MidLine4-BoxLeft-.1, BoxBottom-curTop TextBox Char.OtherDR, MidLine4 + .05, curTop, BoxRight-MidLine4-.1, BoxBottom-curTop FontSize= 10 FontBold =False paragraph="" currenty = boxbottom + .125 end sub '**************************************** 'Print the Additional Stats '**************************************** sub PrintAdditionalStats dim fmt, hdr, hclr, bclr dim i if Char.Lists(Stats).Count <=0 then exit sub NewColumn hclr = RGB(0,255,0) bclr = RGB(200,200,200) fontsize = 11 fmt = "+<" & 2.15 hdr = "{\b Additional Stats}" AddTable fmt, hdr, "", hclr, 0, False fontsize= 9 fmt = "<" & 1.65 & "|>" & .5 hdr = "Stat|Score" AddTable fmt, hdr, "", hclr, 0, False for i = 1 to Char.Lists(Stats).Count if Char.Lists(Stats).Item(i).TagItem("display")<>0 then AddTable fmt, hdr, Char.Lists(Stats).Item(i).TagFullName & "|" & Char.Lists(Stats).Item(i).TagItem("score"), hclr, 0, True end if next paragraph="" end sub '**************************************** 'Print the Ads '**************************************** sub PrintAds dim fmt, hdr, hclr, bclr dim i if Char.Lists(Ads).Count <=0 then exit sub CheckNewColumn .5 hclr = RGB(0,255,0) bclr = RGB(200,200,200) fontsize = 11 fmt = "+<" & 2.15 hdr = "{\b Advantages}" AddTable fmt, hdr, "", hclr, 0, False fontsize= 9 fmt = "<" & 1.65 & "|>" & .5 hdr = "Advantage|Cost" AddTable fmt, hdr, "", hclr, 0, False for i = 1 to Char.Lists(Ads).Count AddTable fmt, hdr, Char.Lists(Ads).Item(i).TagFullName & "|" & Char.Lists(Ads).Item(i).TagItem("cost"), hclr, 0, True next paragraph="" end sub '**************************************** 'Print the Disads '**************************************** sub PrintDisads dim fmt, hdr, hclr, bclr dim i if Char.Lists(Disads).Count <=0 then exit sub CheckNewColumn .5 hclr = RGB(0,255,0) bclr = RGB(200,200,200) fontsize = 11 fmt = "+<" & 2.15 hdr = "{\b Disadvantages}" AddTable fmt, hdr, "", hclr, 0, False fontsize= 9 fmt = "<" & 1.65 & "|>" & .5 hdr = "Disadvantage|Cost" AddTable fmt, hdr, "", hclr, 0, False for i = 1 to Char.Lists(Disads).Count AddTable fmt, hdr, Char.Lists(Disads).Item(i).TagFullName & "|" & Char.Lists(Disads).Item(i).TagItem("cost"), hclr, 0, True next paragraph="" end sub '**************************************** 'Print the Quirks '**************************************** sub PrintQuirks dim fmt, hdr, hclr, bclr dim i if Char.Lists(Quirks).Count <=0 then exit sub CheckNewColumn .5 hclr = RGB(0,255,0) bclr = RGB(200,200,200) fontsize = 11 fmt = "+<" & 2.15 hdr = "{\b Quirks}" AddTable fmt, hdr, "", hclr, 0, False fontsize= 9 fmt = "<" & 1.65 & "|>" & .5 hdr = "Quirk|Cost" AddTable fmt, hdr, "", hclr, 0, False for i = 1 to Char.Lists(Quirks).Count AddTable fmt, hdr, Char.Lists(Quirks).Item(i).TagFullName & "|" & Char.Lists(Quirks).Item(i).TagItem("cost"), hclr, 0, True next paragraph="" end sub '**************************************** 'Print the Powers '**************************************** sub PrintPowers dim fmt, hdr, hclr, bclr dim i if Char.Lists(Powers).Count <=0 then exit sub CheckNewColumn .5 hclr = RGB(0,255,0) bclr = RGB(200,200,200) fontsize = 11 fmt = "+<" & 2.15 hdr = "{\b Powers}" AddTable fmt, hdr, "", hclr, 0, False fontsize= 9 fmt = "<" & 1.65 & "|>" & .5 hdr = "Power|Cost" AddTable fmt, hdr, "", hclr, 0, False for i = 1 to Char.Lists(Powers).Count AddTable fmt, hdr, Char.Lists(Powers).Item(i).TagFullName & "|" & Char.Lists(Powers).Item(i).TagItem("cost"), hclr, 0, True next paragraph="" end sub '**************************************** 'Print the Skills '**************************************** sub PrintSkills dim fmt, hdr, hclr, bclr dim i, tmp if Char.Lists(Skills).Count <=0 then exit sub NewColumn hclr = RGB(0,255,0) bclr = RGB(200,200,200) fontsize = 11 fmt = "+<" & 2.15 hdr = "{\b Skills}" AddTable fmt, hdr, "", hclr, 0, False fontsize= 9 fmt = ">"& .35 & "|<" & 1.4 & "|>" & .4 hdr = "Pts|Skill|Lvl" AddTable fmt, hdr, "", hclr, 0, False for i = 1 to Char.Lists(Skills).Count tmp = Char.Lists(Skills).Item(i).TagItem("points") tmp = tmp & "|" & Char.Lists(Skills).Item(i).TagFullName tmp = tmp & "|" & Char.Lists(Skills).Item(i).TagItem("level") AddTable fmt, hdr, tmp, hclr, 0, True next paragraph="" end sub '**************************************** 'Print the Spells '**************************************** sub PrintSpells dim fmt, hdr, hclr, bclr dim i, tmp if Char.Lists(Spells).Count <=0 then exit sub CheckNewColumn .5 hclr = RGB(0,255,0) bclr = RGB(200,200,200) fontsize = 11 fmt = "+<" & 3.2 hdr = "{\b Spells}" AddTable fmt, hdr, "", hclr, 0, False fontsize= 9 'fmt = ">"& .35 & "|<" & 1.3 & "|>" & .5 'hdr = "Pts|Spell|Level" 'AddTable fmt, hdr, "", hclr, 0, False paragraph="" for i = 1 to Char.Lists(Spells).Count fmt = "<" & 1.1 & "|<" & .5 & "|<" & .5 & "|<" & 1.1 tmp = Char.Lists(Spells).Item(i).TagFullName tmp = tmp & "|" & "Sk: " & Char.Lists(Spells).Item(i).TagItem("level") tmp = tmp & "|" & "Pts: " & Char.Lists(Spells).Item(i).TagItem("points") tmp = tmp & "|" & "Dur: " & Char.Lists(Spells).Item(i).TagItem("duration") AddTable fmt, hdr, tmp, hclr, 0, True fmt = "<" & 1.45 & "|<" & 1.75 tmp = "Cost: " & Char.Lists(Spells).Item(i).TagItem("castingcost") tmp = tmp & "|" & "Time: " & Char.Lists(Spells).Item(i).TagItem("time") AddTable fmt, hdr, tmp, hclr, 0, True fmt = "<" & 1.9 & "|<" & .5 & "|<" & .8 tmp = Char.Lists(Spells).Item(i).TagItem("college") tmp = tmp & "|" & Char.Lists(Spells).Item(i).TagItem("type") tmp = tmp & "|" & "Page: " & Char.Lists(Spells).Item(i).TagItem("page") AddTable fmt, hdr, tmp, hclr, 0, True fontsize = 8 fmt = "+<" & 3.2 tmp = "Notes: " & Char.Lists(Spells).Item(i).TagItem("notes") AddTable fmt, hdr, tmp, hclr, 0, True fontsize = 9 paragraph = "" next paragraph="" end sub '**************************************** 'Print the Description '**************************************** sub PrintDescription if len(Char.Description) =0 then exit sub CheckNewColumn .5 fontsize = 10 fontbold=True fontunderline=True paragraph="Description" fontbold=False fontunderline=False paragraph=Char.Description paragraph="" end sub '**************************************** 'Print the Notes '**************************************** sub PrintNotes if len(Char.Notes) =0 then exit sub CheckNewColumn .5 fontsize = 10 fontbold=True fontunderline=True paragraph="Notes" fontbold=False fontunderline=False paragraph=Char.Notes paragraph="" end sub '**************************************** 'Print the Portrait '**************************************** Sub PrintPortrait if len(char.portrait)=0 then exit sub picture char.portrait, CurrentX, CurrentY, 3, 6 paragraph="" end sub '**************************************** 'Print the Point Summary '**************************************** sub PrintPointSummary dim fmt, hdr, hclr, bclr dim i, tmp CheckNewColumn .5 hclr = RGB(0,255,0) bclr = RGB(200,200,200) fontsize = 11 fmt = "+<" & 2.15 hdr = "{\b Point Summary}" AddTable fmt, hdr, "", hclr, 0, False fontsize= 9 fmt = "<" & 1.65 & "|>" & .5 hdr = "Item|Points" AddTable fmt, hdr, "", hclr, 0, False AddTable fmt, hdr, "Attributes|" & Char.StatCost, hclr, 0, True AddTable fmt, hdr, "Advantages|" & Char.AdCost, hclr, 0, True AddTable fmt, hdr, "Disadvantages|" & Char.DisadCost, hclr, 0, True if Char.Lists(Powers).Count >0 then AddTable fmt, hdr, "Powers|" & Char.PowerCost, hclr, 0, True end if AddTable fmt, hdr, "Quirks|" & Char.QuirkCost, hclr, 0, True AddTable fmt, hdr, "Skills|" & Char.SkillCost, hclr, 0, True if Char.Lists(Spells).Count >0 then AddTable fmt, hdr, "Spells|" & Char.SpellCost, hclr, 0, True end if AddTable fmt, hdr, "Total|" & Char.TotalCost, hclr, bclr, True paragraph="" end sub