4e interactive sheet & utilities

Framework(s) for D&D 4e, including Veggiesama's.

Moderators: dorpond, trevor, Azhrei, giliath, Gamerdude, jay, Mr.Ice

DeviantNull
Dragon
Posts: 685
Joined: Wed Sep 03, 2008 12:34 pm
Location: The Junkyard

Re: 4e interactive sheet & utilities

Post by DeviantNull »

hyperactiveChipmunk wrote:Also, DN: while I was checking for the answer to the above questions, I noticed that the Helpless condition's pop-up frame was mis-formatted. Can't see the word HELPLESS; it's tiny and black and run up against the 'Remove condition from token' link.

Edit: While I'm at it, the word 'Equipped' in 'Nothing Equiped' is spelled incorrectly in the power info frame.

-hC
I knew about the missing Helpless heading but never made a note of it so I always forget to fix it. I use my own status macros with full info so they don't match the ones I distribute. I'm making a special note so I don't forget it when I do another update. It's easy enough to fix, just edit the Helpless macro and scroll up until you see HELPLESS. It needs to be on the line above it between the spans.

I'm actually surprised it isn't riddled with more spelling errors. I use notepad++ so no spell check, and I suck at spelling... I'm also surprised no one has pointed it out till now. I'll add it to the list. If it bugs you till then, PowerBlock1 is the responsible macro. Though it'll have to be replaced several times since the bit that does it is a really ugly switch/if combo.

User avatar
hyperactiveChipmunk
Cave Troll
Posts: 99
Joined: Wed Apr 15, 2009 8:19 pm

Re: 4e interactive sheet & utilities

Post by hyperactiveChipmunk »

DeviantNull wrote:
hyperactiveChipmunk wrote:Also, DN: while I was checking for the answer to the above questions, I noticed that the Helpless condition's pop-up frame was mis-formatted. Can't see the word HELPLESS; it's tiny and black and run up against the 'Remove condition from token' link.

Edit: While I'm at it, the word 'Equipped' in 'Nothing Equiped' is spelled incorrectly in the power info frame.

-hC
I knew about the missing Helpless heading but never made a note of it so I always forget to fix it. I use my own status macros with full info so they don't match the ones I distribute. I'm making a special note so I don't forget it when I do another update. It's easy enough to fix, just edit the Helpless macro and scroll up until you see HELPLESS. It needs to be on the line above it between the spans.

I'm actually surprised it isn't riddled with more spelling errors. I use notepad++ so no spell check, and I suck at spelling... I'm also surprised no one has pointed it out till now. I'll add it to the list. If it bugs you till then, PowerBlock1 is the responsible macro. Though it'll have to be replaced several times since the bit that does it is a really ugly switch/if combo.
Oh, I'm well aware of all of that. Each time I update, I have to do my own tweaks to half the macros until I get it just the way I like 'em (e.g. getting the power range formatting right, using a property to determine the sheet header color, fixing typos). I just never figured to mention it until now. There's actually quite a few more spelling errors; I was just being polite. >8D

-hC

DeviantNull
Dragon
Posts: 685
Joined: Wed Sep 03, 2008 12:34 pm
Location: The Junkyard

Re: 4e interactive sheet & utilities

Post by DeviantNull »

hyperactiveChipmunk wrote:Oh, I'm well aware of all of that. Each time I update, I have to do my own tweaks to half the macros until I get it just the way I like 'em (e.g. getting the power range formatting right, using a property to determine the sheet header color, fixing typos). I just never figured to mention it until now. There's actually quite a few more spelling errors; I was just being polite. >8D
Pft, pointing out flaws like that is not impolite. Not like anyone is demanding a fix or anything.

Point out all the spelling errors you feel like. At one point I think I intended to run stuff through a spell checker, then I just got lazy...

And I guess I could just make the headers customizable out of the box. See? I didn't even know there was a -need- for something like that.

Power range formatting is off? Any suggestions? I'm not totally happy with it. It's functional, but it's a cobbled together mess from older stuff.

User avatar
hyperactiveChipmunk
Cave Troll
Posts: 99
Joined: Wed Apr 15, 2009 8:19 pm

Re: 4e interactive sheet & utilities

Post by hyperactiveChipmunk »

DeviantNull wrote:
hyperactiveChipmunk wrote:Oh, I'm well aware of all of that. Each time I update, I have to do my own tweaks to half the macros until I get it just the way I like 'em (e.g. getting the power range formatting right, using a property to determine the sheet header color, fixing typos). I just never figured to mention it until now. There's actually quite a few more spelling errors; I was just being polite. >8D
Pft, pointing out flaws like that is not impolite. Not like anyone is demanding a fix or anything.

Point out all the spelling errors you feel like. At one point I think I intended to run stuff through a spell checker, then I just got lazy...

And I guess I could just make the headers customizable out of the box. See? I didn't even know there was a -need- for something like that.
Yeah, I associate it with the marks I use for each player. My SheetHeader@Lib:Sheet macro:

Code: Select all

<!--SheetHeader -->
<!--The PC header page, re-calls the Sheet macro and passes which page to load. The token image is a macrolink that contains the sheet type toggle. Used breaking spaces to allow the headers to slide around based on frame width. Less important now that there are fewer headers-->
[h: CondList = evalMacro('[macro("ConditionCSList@Lib:Information"):""]')]
<table width="100%" bgcolor="[r:HeaderColor]">
<td width="1"><span color="[r:HeaderColor]">[r: macroLink("<img src="+getTokenImage(75)+"></img>", "Sheet@Lib:Sheet", "none", "SheetType=2", currentToken())]</img></span></td>
<td>
<span style="color:[r:HeaderTextColor]; [r: if(ULine == 0, 'text-decoration:none', '')]"><b>[r: macroLink("Main", "Sheet@Lib:Sheet", "none", "Page=Main", currentToken())]</b></span>   
<span style="color:[r:HeaderTextColor]; [r: if(ULine == 0, 'text-decoration:none', '')]"><b>[r: macroLink("Feats", "Sheet@Lib:Sheet", "none", "Page=Feats", currentToken())]</b></span>   
<span style="color:[r:HeaderTextColor]; [r: if(ULine == 0, 'text-decoration:none', '')]"><b>[r: macroLink("Rituals", "Sheet@Lib:Sheet", "none", "Page=Rituals", currentToken())]</b></span>   
<span style="color:[r:HeaderTextColor]; [r: if(ULine == 0, 'text-decoration:none', '')]"><b>[r: macroLink("Powers", "Sheet@Lib:Sheet", "none", "Page=Powers", currentToken())]</b></span>   
<span style="color:[r:HeaderTextColor]; [r: if(ULine == 0, 'text-decoration:none', '')]"><b>[r: macroLink("Equipment", "Sheet@Lib:Sheet", "none", "Page=Equip", currentToken())]</b></span>   
<br><!--Calls the condition management code. Displays state images that have been designated in the COnditionCSList macro on the Lib:Information token. The CondList is built from this at the start of the macro. Entries are turned into MacroLink images that link to correspondingly named macro's on the Lib:Information token--><table width="100%" cellpadding="0"><tr><td width="1%"><span style="color:[r:HeaderTextColor]; [r: if(ULine == 0, 'text-decoration:none', '')]"><b>[r: macroLink("Conditions:", "ConditionDialog@Lib:Sheet", "none", "", currentToken())]</b></td><td>[r, foreach(TempCond, CondList, " "), code:{ [r, if(getState(TempCond) == 1), code:{<span color="#D4D496">[r: macroLink("<img height='25' width='25' src="+getStateImage(TempCond)+"></img>", "ConditionInfo@Lib:Information", "none", "Condition="+TempCond+";ConditionType=0", currentToken())]</span>};{[r: ""]}]}]</td></tr></table>
</td>
</table>
And the associated props:

Code: Select all

HeaderColor:#D4D496
HeaderTextColor:black
I just edit them manually, since it's a once-off thing per character.
Power range formatting is off? Any suggestions? I'm not totally happy with it. It's functional, but it's a cobbled together mess from older stuff.
I just change it so the boldfacedness and lack of colons match that of the "official" formatted power blocks. I've been meaning to add an "Area burst X within Y squares" range option, but I never got around to it.
PowerStats@Lib:Sheet

Code: Select all

<!--The switch reads the Reach value and determines if it needs special formating for use with reach or weapon values. Otherwise it looks up the formating entry from PowerRangeType macro-->
		[h, macro("PowerRangeType@Lib:Information"):""]
		[r, switch(json.get(TempPower, "PReach")):	
			case "Melee: Weapon": "<b>Melee</b> weapon "+if(json.get(PWeap1, "Reach") == "", "", "(R:"+ json.get(PWeap1, 'Reach')+")"); 
			case "Ranged:": "<b>Ranged</b> "+ json.get(TempPower, "PRange"); 
			case "Ranged: Weapon": "<b>Ranged</b> weapon "+json.get(PWeap1, "Range"); 
			default: json.get(macro.return, json.get(TempPower, "PReach"))]

		[r: if(json.get(TempPower, "PBurst") == "", "", if(json.get(TempPower, "PRange") == "", " <b>Close</b> ", "")+"burst </b>"+json.get(TempPower, 'PBurst')+" ")]
		[r: if(json.get(TempPower, "PBlast") == "", "", " <b>Close</b> blast "+json.get(TempPower, 'PBlast')+" ")]
	</td>	
	<td>
PowerBlock1@Lib:Sheet

Code: Select all

	<!--The switch reads the Reach value and determines if it needs special formating for use with reach or weapon values. Otherwise it looks up the formating entry from PowerRangeType macro-->
		[h, macro("PowerRangeType@Lib:Information"):""]
		[r, switch(PReach):	
			case "Melee: Weapon": "<b>Melee</b> weapon " + if(json.get(PWeap1, "Reach") == "", "", "(Reach: "+ json.get(PWeap1, 'Reach') + ")"); 
			case "Ranged:": "<b>Ranged</b> " + PRange; 
			case "Ranged: Weapon": "<b>Ranged</b> weapon " + json.get(PWeap1, "Range"); 
			case "Melee or Ranged": "<b>Melee</b>  " + if(json.get(PWeap1, "Reach") == "", "", "(Reach: "+ json.get(PWeap1, 'Reach') + ")") + "or <b>Ranged</b> weapon " + json.get(PWeap1, "Range"); 
			default: json.get(macro.return, PReach)]
<!--If there is no power range value the burst becomes close -->
		[r: if(PBurst == "", "", if(PRange == "", " <b>Close</b> ","")+"burst " + PBurst)] 
		[r: if(PBlast == "", "", " <b>Close</b> blast "+ PBlast)]</td>
</table></tr>
PowerRangeType@Lib:Information

Code: Select all

<!--The Range types for powers. The Entry is the short version that shows on the character sheet and on selection drop down. The Value is special formating that shows on the Info Box. Melee:Weapon, Ranged:Weapon and Melee or Ranged are special and over-ride the formating shown here.-->

[macro.return = '{
" ":" ", 
"Melee: Weapon":"<b>Melee</b> weapon", 
"Melee: Touch":"<b>Melee</b> touch", 
"Melee: 1":"<b>Melee</b> 1", 
"Melee: 2":"<b>Melee</b> 2", 
"Melee: 3":"<b>Melee</b> 3", 
"Ranged:":"<b>Ranged</b>", 
"Ranged: Weapon":"<b>Ranged</b> weapon",
"Ranged: Sight":"<b>Ranged:</b> sight", 
"Personal":"<b>Personal</b>", 
"Melee or Ranged":"<b>Melee</b> or <b>Ranged</b> weapon", 
"Melee: Beast 1":"<b>Melee</b> beast 1", 
"Melee: Weapon (Beast1)":"<b>Melee</b> weapon (beast 1)",
"Aura":"<b>Aura</b>"
}']
Nothing huge; just looks cleaner to me. >8)

-hC

User avatar
hyperactiveChipmunk
Cave Troll
Posts: 99
Joined: Wed Apr 15, 2009 8:19 pm

Re: 4e interactive sheet & utilities

Post by hyperactiveChipmunk »

Also, on the typo front, the word 'Interrupt' is spelled incorrectly as 'Interupt' all over the place. >8P

-hC

thanotos
Kobold
Posts: 2
Joined: Thu May 07, 2009 9:48 pm

Re: 4e interactive sheet & utilities

Post by thanotos »

I was introduced to Map Tools about 2 weeks and I found your 4e campaign files. I really like them and they do bring a lot to the "table".

I am using your latest lib:tokens and I came across one error (at least I am experiencing). When you have the health frame open and record any damage/healing/etc it does not update until you close and re-open the frame. I discovered the issue was missing closing </tr> tags in the HeathSelect@LibDice token for the Regain Surges (opening <tr> tag on line 42) and Extened (opening <tr> tag on line 99).

The current version you have is good, but I added some more features that I would like.
Overview of changes:
Updated Character Sheet HP frame for NPC/PC entries
Updated HealthRecord for Death Saving throws.
Update Campaign Properties

First I created a couple more Campaign Properties that will be used by the modified/new macros (included default values):

Code: Select all

HPAbility:Constitution
BaseHitPoints:0
HPPerLevel:0
DeathSaveBonus:0
FailDeathSave:1
I wanted the HP input frame to have separate functions for PCs and NPCs. Also I wanted the PC frame version to allow me to set the base HP, HP per level, and the ability score that is added to the HP total. Also I included a death saving throw bonus, as that can be a separate bonus from normal saving throws, as well as added a flag to indicate whether or not this character can fail Death saving throws. Some races (Warforge) cannot fail a death saving throw. Simply adding a bonus of 10 to the saving throw will not give the correct result (more about that later).

Changes to HPDialog2. I created two macros so I can have two different HP entry boxes, one for PCs and another for NPCs. Also I added the Fail Death Save radio button.

Code: Select all

<!--HPDialog2-->
<!--Straight forward dialog entry. Add to HP overrides the HP box and adds to the previous total. Used NBSP to preserve format.  -->
<table border="0" width="100%">
    [r, if(isPC() ==1), code:{[r,macro("HPDialog2PC@this"):""]};{[r,macro("HPDialog2NPC@this"):""]}]
    <tr bgcolor="FFFFEF"><td>Healing Surge Bonus:</td>
        <td>
            <input type="text" name="Bonus" value="[r: json.get(HealingSurge, 'Bonus')]" size="4"></input>
        </td>
    </tr>
    <tr bgcolor="EBEBEB"><td>Healing Surges per day:</td>
        <td>
            <input type="text" name="Surges" value="[r: json.get(HealingSurge, 'Total')]" size="4"></input>
        </td>
    </tr>
    <tr bgcolor="FFFFEF"><td>Saving Throw Bonus:</td>
        <td>
            <input type="Text" name="SaveBonus" value="[r:Save]" size="4"></input>
        </td>
    </tr>
    <tr bgcolor="EBEBEB"><td>Death Saving Throw Bonus:</td>
        <td>
            <input type="Text" name="DeathBonus" value="[r:DeathSaveBonus]" size="4"></input>
        </td>
    </tr>
    <tr bgcolor="EBEBEB"><td>Fail Death Save?:</td>
        <td>
            No:<input type="radio" name="deathsavefail" value="no"[r: if(FailDeathSave==0,"checked","")]></input>
            Yes:<input type="radio" name="deathsavefail" value="yes"[r: if(FailDeathSave==1,"checked","")]></input><br>
        </td>
    </tr>
    <tr bgcolor="FFFFEF">
        <td>Resistance: </td>
        <td>
            <input type="Text" name="Resist" value="[r: Resistance]" size="300"></input>
        </td>
    </tr>
    <tr bgcolor="EBEBEB">
        <td>Immunity: </td>
        <td>
            <input type="Text" name="Immune" value="[r: Immunity]" size="300"></input>
        </td>
    </tr>	
    <tr bgcolor="FFFFEF">
        <td>Vulnerability: </td>
        <td>
            <input type="Text" name="Vulnerable" value="[r: Vulnerable]" size="300"></input>
        </td>
    </tr>	
    <tr>
        <td align="center" colspan="2">
            <input id="savebutton" type="submit" name="save" value="Save"></input>
        </td>
    </tr>
</table>
New macro HPDialog2PC. I changed the Hit Points entry box to Base Hit Points, added an entry box for the HP per level value, and added a drop down box for the Ability score that is added to the HP value.

Code: Select all

<!--HPDialog2PC-->
<!--Defines the Hit Points entry area for the PC-->
<tr>
    <td bgcolor="black" colspan="2">
        <table border="0" width="100%" cellpadding="0">
            <tr>
                <td>
                    <span color="white"><b>Base Hit Points:</b></span>
                </td>
                <td>
                    <input type="text" name="HitPointBase" value="[r: BaseHitPoints]" size="4"></input>
                </td>
                <td>
                    <span color="white"><b> HPs per Level:</b></span>
                </td>
                <td>
                    <input type="text" name="LevelHP" value="[r: HPPerLevel]" size="4"></input>
                </td>
            </tr>
            <tr>
                <td>
                    <span color="white"><b>HP Ability:</b></span>
                </td>
                <td>
                    <select name="Ability">
                        [r, foreach(TempAbil, json.fields(AbilityScores), ""), code:{
                        <option [r: if(HPAbility==TempAbil, "selected ", " ")]value="[r:TempAbil]">[r: TempAbil]</option>}]
                    </select>
                </td>
                <td>
                    <span color="white"><b> Add to total:</b></span>
                </td>
                <td>
                    <input type="text" name="HPAdd" value="" size="10"></input>
                </td>
                <td width="10%"></td>
            </tr>
        </table>
    </td>
</tr>
New macro HPDialog2NPC. Similar to the original HP display, but only has Hit Points entry field. The add to hit points box is not needed.

Code: Select all

<!--HPDialog2NPC-->
<!--Defines the Hit Points entry area for the NPC-->
<tr>
    <td bgcolor="black" colspan="2">
        <table border="0" width="100%" cellpadding="0">
            <tr>
                <td>
                    <span color="white"><b>Hit Points:</b></span>
                </td>
                <td>
                    <input type="text" name="HitPointBase" value="[r: HitPoints]" size="4"></input>
                </td>
                <td width="10%"></td>
            </tr>
        </table>
    </td>
</tr>
Finally modified HPEdit to store it all.
Now calculates the Hit Points using the BaseHitPoint value, selected Ability Score, and the HP per Level.

Code: Select all

<!--HPEdit-->
[h: HPAbility = json.get(macro.args, "Ability")]
[h: BaseHitPoints = json.get(macro.args, "HitPointBase")]
[h: HPPerLevel = json.get(macro.args, "LevelHP")]
[h: TempHPAdd = json.get(macro.args, "HPAdd")]
[h: TemporaryHitPointTotal = BaseHitPoints + json.get(json.get(AbilityScores, HPAbility), 0) + ((Level - 1) * HPPerLevel)]
[h: HitPoints = if(TempHPAdd == "" || TempHPAdd == 0, TemporaryHitPointTotal, HitPoints + TempHPAdd)]
[h: HealingSurge = json.set(HealingSurge, "Value", floor(HitPoints/4))]
[h: HealingSurge = json.set(HealingSurge, "Bonus", json.get(macro.args, "Bonus"))]
[h: HealingSurge = json.set(HealingSurge, "Total", json.get(macro.args, "Surges") + json.get(json.get(AbilityScores, "Constitution"), 1))]
[h: Save = json.get(macro.args, "SaveBonus")]
[h: DeathSaveBonus = json.get(macro.args, "DeathBonus")]
<!--1 means that the character can fail death saving throw, 0 means the character cannot fail a death save-->
[h: FailDeathSave = if(json.get(macro.args, "deathsavefail") == "No", 0, 1)]
[h: Resistance = json.get(macro.args, "Resist")]
[h: Immunity = json.get(macro.args, "Immune")]
[h: Vulnerable = json.get(macro.args, "Vulnerable")]

[h, macro("Sheet@this"): ""]	
Edits {token.name}'s health.	
Next I updated the HealthRecord and added a new macro HealthSurge from LibDice. As I was talking about the Death Saving Throw earlier, what you had coded is not quite correct. If the modified Die roll is greater than 20, you can spend a healing surge. Currently you have it that you can only spend a healing surge if you roll a 20. Also I added code that would automatically spend a healing surge (if you had one) if you got a 20 or above.
To make things easier (and to promote re-use), I created a new macro to do the HealthSurge.
To that end, I modified the Healing Surge and Death Save portions of the HealthRecord.

Code: Select all

<!--Healing Surge-->
[r, if(Type == "Surge"), code:{
[h, macro("HealthSurge@This"):""][r: macro.return]}; {[r: ""]}]

[r, if(Type == "Death"), code:{
[h: Die = 1d20]
[h: Mod = if(getStrProp(macro.args, "Mod") == "", 0, getStrProp(macro.args, "Mod"))]
[h: ModDeathSave = Die + DeathSaveBonus + Mod]
[h: DeathSave = if(FailDeathSave == 0 && ModDeathSave < 9, 10, ModDeathSave)]
[h, macro("DeathCheck@Lib:Dice"): DeathSave]
Makes a Death Save and... [r: if(DeathSave >9, if(DeathSave > 19, " could get back up!", " remains stable."), if (FailDeathSave == 1, " gets worse ", " remains stable."))] [r: macro.return] ( [r:DeathSave])
[h, if (DeathSave > 19), code:{[macro("HealthSurge@This"):""]}] [r: macro.return]
}; {[r: ""]}]
The new macro, HealthSurge is as follows:

Code: Select all

[h: Amount = if(getStrProp(macro.args, "Amt") == "", 0, getStrProp(macro.args, "Amt"))]
[h: Amt = eval(Amount+"")]
[h: WasBloodied = if(state.Bloodied == 1, 1, 0)] 
[h: WasDying = if(state.Dying == 1, 1, 0)] 

[h: OrigSurges = json.get(HealingSurge, "Remain")]
[h: SurgeValue = json.get(HealingSurge, "Value") + if(json.get(HealingSurge, "Bonus") == "", 0, json.get(HealingSurge, "Bonus"))]
[h: NoHeal = getStrProp(macro.args, "NoHeal")]
[h: SurgeAmt = if(NoHeal =="Y", 0, SurgeValue)+Amt]
[h: SurgeAmt = if(OrigSurges > 0, SurgeAmt, 0)]
[h: HealingSurge = json.set(HealingSurge, "Remain", max(0, OrigSurges-1))]
[h: CurrentDamage = max(0, if(CurrentDamage > HitPoints, HitPoints, CurrentDamage) - SurgeAmt)]
[h: state.Bloodied=if(CurrentDamage >=round(HitPoints/2) && CurrentDamage < HitPoints && HitPoints >1,1,0)] 
[h: state.Dead=if(CurrentDamage >= HitPoints+floor(HitPoints/2),1,0)] 
[h: state.Dying=if(CurrentDamage >= HitPoints && CurrentDamage < HitPoints+floor(HitPoints/2),1,0)]
[h: macro.return = if(OrigSurges > 0, " Spends a healing surge and heals " + SurgeAmt + " hit points.", " Tries to spend a healing surge but has none left.")]
I had to compact down the previous output to have it print/return correctly.

You are doing a great job and can't wait to see what is the next feature you add.

JP

thanotos
Kobold
Posts: 2
Joined: Thu May 07, 2009 9:48 pm

Re: 4e interactive sheet & utilities

Post by thanotos »

I should never post or make code changes late at night. I re-checked what I had this morning and found that 2 changes are needed.

HPDialog2@Lib:Sheet
I forgot to add in the code to subtract out the Con Mod bonus to the surges value. This would cause the number of surges to constantly increases. Correction below.

Code: Select all

    <tr bgcolor="EBEBEB"><td>Healing Surges per day:</td>
        <td>
            <input type="text" name="Surges" value="[r: json.get(HealingSurge, 'Total') -  json.get(json.get(AbilityScores, "Constitution"), 1)]" size="4"></input>
        </td>
    </tr>
HealthRecord@Lib:Dice
You would get a double print when a Death saving throw is failed. Also the it would not correctly display if you spent/failed to spen a healing surge on a 20 or higher.

Code: Select all

Makes a Death Save and... [r: if(DeathSave >9, if(DeathSave > 19, " could get back up!", " remains stable."), if (FailDeathSave == 1, " gets worse ", " remains stable."))] ( [r:DeathSave])
[h, if (DeathSave > 19), code:{[macro("HealthSurge@This"):""]}] [r: macro.return]
}; {[r: ""]}]
- JP

User avatar
PinkRose
Dragon
Posts: 732
Joined: Sat Nov 15, 2008 2:28 pm
Location: The City of Roses, Oregon

Re: 4e interactive sheet & utilities

Post by PinkRose »

First, as usual, thanks for all the work DeviantNull.
And for those that have suggested changes.

As for why DN doesn't have HP figure-outtering, that's against copyright, technically.
I am a special snowflake!

tmatk
Cave Troll
Posts: 45
Joined: Fri Dec 19, 2008 1:21 am
Contact:

Re: 4e interactive sheet & utilities

Post by tmatk »

This is a feature request, or I may just be missing something :)

Is it possible to have more than one die roll for damage? For example, a Fire Giant's basic attack does 1d12+6 damage, plus 2d8 fire damage. I tried setting the dice damage to 1d12+2d8, didn't work. I tried setting the bonus to 6+2d8; that seemed to work, but it doesn't max it out on a crit.

Maybe theirs a different way to plug this in that I'm missing? Thanks for any help!

User avatar
hyperactiveChipmunk
Cave Troll
Posts: 99
Joined: Wed Apr 15, 2009 8:19 pm

Re: 4e interactive sheet & utilities

Post by hyperactiveChipmunk »

tmatk wrote:This is a feature request, or I may just be missing something :)

Is it possible to have more than one die roll for damage? For example, a Fire Giant's basic attack does 1d12+6 damage, plus 2d8 fire damage. I tried setting the dice damage to 1d12+2d8, didn't work. I tried setting the bonus to 6+2d8; that seemed to work, but it doesn't max it out on a crit.

Maybe theirs a different way to plug this in that I'm missing? Thanks for any help!
Unfortunately, the =() notation doesn't seem to interpret die rolls, if I remember correctly. However, your post reminded me of something that's bothered me for awhile and I could never remember what it was when I think to report it here: there's no way to set damage types. You kinda have to hack it in with the short description. This could be a checkbox group or a multi-selectable listbox. and show up with the damage roll output.

-hC

Toon
Kobold
Posts: 7
Joined: Wed Mar 04, 2009 3:15 pm

Re: 4e interactive sheet & utilities

Post by Toon »

Hey everyone,

Bad message in the output if i roll vs death considering the caracter is dead already (yeah pretty rare if even possible), it displays a macro.return message.

tmatk
Cave Troll
Posts: 45
Joined: Fri Dec 19, 2008 1:21 am
Contact:

Re: 4e interactive sheet & utilities

Post by tmatk »

This might be by design - clicking the recharge link in the info box recharges automatically. No roll.

The Zapper
Cave Troll
Posts: 27
Joined: Thu Apr 09, 2009 1:16 pm

Re: 4e interactive sheet & utilities

Post by The Zapper »

Is there any way to make the output "desc" field in the power sheet output actual macro text? that is, you could put in:

Desc: + [2d8] Fire damage" and whatever syntax it takes to set a fire condition.

I know it doesn't work that way now, but is there any reason why it couldn't?

User avatar
PinkRose
Dragon
Posts: 732
Joined: Sat Nov 15, 2008 2:28 pm
Location: The City of Roses, Oregon

Re: 4e interactive sheet & utilities

Post by PinkRose »

I can answer a few of these because I've been around a bit.

@hyperactiveChipmunk, I also brought this up months ago. It seems that the idea of this specific interface is to show the minimal amount of info. And that if you don't know what the damage type is, you can look to the Power desc. I have had to put all damage types in the short desc as well, because I think they are a required part of the attack.
If enough people agree now, maybe we can get that feature added.

@tmatk, This is a feature. I didn't know it either until I complained about it. Hitting the Recharge label in the list gives it a roll to see if it recharges. And hitting it in the Power desc. automatically recharges it, for those powers that recharge at odd times, like when first bloodied, or when dropping an opponent to 0 hp.
I am a special snowflake!

Duck
Kobold
Posts: 8
Joined: Tue Feb 03, 2009 1:30 pm

Re: 4e interactive sheet & utilities

Post by Duck »

This is probably a stupid question, but the last time I checked this thread was 20+ pages ago.

Any way to hide all the die rolls again? My group has been playing with 1.3b50 and version 1 of this script (didn't want to change anything till we were done with the module). In the old setup, all the die rolls just gave the total, then you could mouse over for all the info you wanted.

I'm not sure if it was upgrading to 1.3b56 or version 3.51 of the script, but now by default it blows up all the die rolls.

Also, I'll third the request to put more info into the default power output. My #1 complaint with this sheet is I'm having to constantly add html Hit: and Effect: lines or what not for powers into the Desc field. Compared to other sheet and macro sets, it takes significantly longer to add a power or character because you just flat out need more info out of it. I don't really want to have to click on the power card every time, or hide stuff in an ugly Desc field. I don't want tons of output, but you absolutely need more info. And I hate having to kludge it in with <br> statements to make it not look like crap.

Awesome work on 3.51 though, you've really added a ton of stuff, and updating all my tokens from v1 to v3.5 went flawlessly.

Haha oh man, the included conditions/marks/effects in powers and the new condition stuff in the sheet is the best thing ever.

Post Reply

Return to “D&D 4e Frameworks”