RPTools.net

Discussion and Support

Skip to content

It is currently Fri Nov 24, 2017 6:21 am 




Forum rules


Discussion regarding lmarkus001's framework only. Other posts deleted without notice! :)



Reply to topic  [ 83 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next

Previous topic | Next topic 

  Print view

Author Message
User avatar  Offline
Great Wyrm
 
Joined: Fri Mar 28, 2008 11:30 pm
Posts: 1870
Location: Layfayette Hill, PA
 Post subject: MT1.3b87.04 Pathfinder + D&D3.5 Framework
PostPosted: Wed Apr 24, 2013 7:46 am 
Released!
MT1.3.87.04_DnD35_Pathfinder.cmpgn

I recommend a stack size of 3MB for this version.

1.3b87_04
=========

  • NEW! Frame based Attack window - A floating frame that can be left up (I recommend stack docking with the character sheet). HALLELUJAH!
  • Attack Change - Undid my dumb merging of Cover and Fire into Melee, they are separate things!

  • Healing Change - Now the new mod-sets Staggered, Disabled, Prone and Unconscious are integrated into the healing macros. So when you get healed back up, you use the Active Mods dialog to remove Prone when you stand up (it is no longer just a state icon).
  • New Mod-Sets: Prone, Unconscious, Disabled, Staggered
  • New State Icons: Disabled, Staggered, Prone, Unconscious

  • Tons of changes and tweaks all over the place!

  • Extreme cleanup of summoned monsters Pathfinder level 1-4.
  • Resolute & Entropic templates
  • Summoned Critters can be timer tokens too!

  • Character Sheet - corrected an issue with the cache so now the Main sheet skill links will work even post campaign reload. Little tweaks here and there on the sheet.
  • Fixed issue with Active-mods and worn items (which are mods in their own right). There was an issue with active-mods if you had no items created for the token.
  • Setup Blank - Changed Notes to Languages and moved so is more prominent.
  • Property changes - default weapons now include: improvised club, unarmed attack, touch, ranged touch. Moved all of these to the last 4 weapon-set slots.
  • Mod-Set Tweaks: Many tweaks and corrections to include: Fatigued, Combat Expertise


    OTHER's TOOLS
  • Upgraded to Wolf42 Bag of Tricks 23 -- CUSTOMIZED to support my UDF Wiki: setSize() and to support the automatic movement of the "shadow" invisible token. These customizations are implemented via Event macros on lib:EventMacros. Preliminary token movement restriction code, choose Limit Movement = non-zero integer (1 works well) to activate.
  • Plothos Spell Manager with Aliasmask tweaks (which in turn require his lib:players). Please report any system latency/lag issues and I fear adding the lib:players + Bag of Tricks might be too much overhead for the return.

Specific Areas Modified
Campaign Properties: Pathfinder & DnD35: Weapon16-19, State icons
Lib:libDnD35Pathfinder
Campaign Macros
Table - Conditions, SysVars, SysSetup


Image

_________________
D&D3.5 / Pathfinder Framework


Top
 Profile  
 
User avatar  Offline
Deity
 
Joined: Tue Nov 10, 2009 6:11 pm
Posts: 7954
Location: Bay Area
 Post subject: Re: MT1.3b87.04 Campaign Framework (NEW... Latest Version!)
PostPosted: Wed Apr 24, 2013 8:00 am 
Very Cool, can't wait. Here is a newer version of ConditionReport. This takes care of a couple of bugs with bad data like tokens from other campaigns with missing states and missing mods. There was also a bug with ActiveMods having a blank entry in the array which caused some havoc as well (but you saw the general fix for that).

Code:
@@ @ConditionReport
@PROPS@ fontColor=black ; autoExecute=true ; fontSize=11pt ; sortBy=41 ; color=yellow ; playerEditable=true ; applyToSelected=true ; group=Utility Mods ; tooltip= ; minWidth=94 ;
<!-- Purpose of this function is to list all active mods on token as well as state condition information. -->

<!-- get Mod and Item sets and lists -->
[H: modDB = getLibProperty("TempModToggleSets","Lib:GlobalsSRDPF")]
[H: tokenModValues = json.get(PrivateJSON,"CustomModSetValues")]
[H: tokenItemDB = getProperty("BonusTypedItems")]
[H: modList = json.fields(modDB,"json")]
[H: itemList = json.fields(tokenItemDB,"json")]
[H: statesList = getTokenStates("json")]
[H: activeItemList = json.get( PrivateJSON,"ActiveItems")]
[H: activeModList = json.get( PrivateJSON,"ActiveTempModSets")]

<!-- Check to see if all active mods are in framework -->
[H, if(json.equals(activeModList,'[""]')), code: {
   <!-- fix common bug -->
   [H: activeModList = "[]"]
   [H: PrivateJSON = json.set(PrivateJSON,"ActiveTempModSets",activeModList)]
};{}]
[H, if(json.isEmpty(tokenModValues)): tokenModValues = "{}"]

[H: hasValidMods = if(json.isSubset(modList,activeModList) && json.isSubset(itemList,activeItemList),1,0)]
[H, if(! hasValidMods), code: {
   [H: abort(input("tip|<html>Active Mods or Items don't match existing Mods. <b>Resetting Token Mods</b> (Cancel to Abort)</html>||label|SPAN=TRUE"))]

   <!-- clear and reset all mod related variables -->
   [H: PrivateJSON = json.set( PrivateJSON, "ActiveTempModSets", "[]", "ActiveItems", "[]" )]
   [H: resetProperty( "ArmorClass" ) ]
   [H: resetProperty( "SpeedMod" ) ]
   [H: resetProperty( "StatCheckMod" ) ]
   [H: resetProperty( "DRERMod" ) ]

   [H: MiscATK = 0 ]
   [H: MiscDMG = 0 ]
   [H: InitMod = 0 ]
   [H: StrMod = 0 ]
   [H: DexMod = 0 ]
   [H: ConMod = 0 ]
   [H: IntMod = 0 ]
   [H: WisMod = 0 ]
   [H: ChaMod = 0 ]
   [H: FortBonus = 0 ]
   [H: ReflexBonus = 0 ]
   [H: WillBonus = 0 ]
   [H: CMBMod = 0 ]
   [H: CMDMod = 0 ]

   <!-- clear all states -->
   [H: setAllStates(0) ]

   <!-- recalc token values -->
   [H: tToken = currentToken() ]
   [H, MACRO("subUpdateHPStatesBars@this"): "Token=" + tToken]
   [H, MACRO("subRecalcAC@this"): "Token=" + tToken]
   [H, MACRO("subRecalcMovement@this"): "Token=" + tToken]
   [H, MACRO("subRecalcDR@this"): json.set( "{}", "Token", tToken ) ]

   <!-- Notify player that token mods have been cleared -->
   [H: output = "<b>" + token.name + strformat("</b>:  All temporary mods have been cleared, items unequipped, and state icons cleared.<br><br><b>Mods:</b> %{activeModList}<br><b>Items:</b> %{activeItemList}") ]
   [H: outputTo("gm-self", output)]
   
   <!-- Since this isnt a UDF, going to abort output of HTML comments -->
   [H: abort(0)]
};{}]

<!-- Build Output of active mods -->
[H: output.mods = "[]"]

[H, foreach(mod,activeModList), code: {
   [H: '<!-- get mod data -->']
   [H: defaultModData = json.get(modDB,mod)]
   [H: modCat = json.get(defaultModData,"cat")]
   [H: modState = json.get(defaultModData,"state")]
   [H: modData = json.get(tokenModValues,mod)]
   [H, if(json.isEmpty(modData)): modTip = json.get(defaultModData,"tip"); modTip = json.get(modData,"tip")]
   [H: '<!-- validate data -->']
   [H, if(json.contains(statesList,modState)), code: {
      [H: setState(modState,1)]
      [H: stateImage = strformat("<img src='%s' width=50 height=50>",getStateImage(modState))]
   };{
      [H: stateImage = "&nbsp;"]
   }]
   [H, if(json.isEmpty(modCat)): modCat = "Active Mod"]
   [H: modTip = replace(modTip,'"',"&quot;")]
   
   [H: '<!-- create output -->']
   [H: modLineOutput = strformat('<span title="<html><table><tr valign=top><td>%{stateImage}</td><td>%{modTip}</td></tr></table></html>">%{mod}</span>')]
   
   [H: '<!-- add to final output json and include id for sorting purposes -->']
   [H: output.mods = json.append(output.mods,strformat('<tr id="%s"><td style="padding: 0px 2px 0px 5px;text-align:right" NOWRAP><b>%{modCat}:</b></td><td style="padding-right: 5px">%{modLineOutput}</td></tr>',
      replace(lower(modCat+mod),"[^a-z0-9._]","")))]
}]

<!-- Build Output of active items -->
[H: output.items = "[]"]

[H, foreach(mod,activeItemList), code: {
   [H: '<!-- get mod data -->']
   [H: defaultModData = json.get(tokenItemDB,mod)]
   [H: modCat = json.get(defaultModData,"cat")]
   [H: modState = json.get(defaultModData,"state")]
   [H: modData = json.get(tokenModValues,mod)]
   [H, if(json.isEmpty(modData)): modTip = json.get(defaultModData,"tip"); modTip = json.get(modData,"tip")]
   
   
   [H: '<!-- validate data -->']
   [H, if(json.contains(statesList,modState)), code: {
      [H: setState(modState,1)]
      [H: stateImage = strformat("<img src='%s' width=50 height=50>",getStateImage(modState))]
   };{
      [H: stateImage = "&nbsp;"]
   }]
   [H, if(json.isEmpty(modCat)): modCat = "Active Item"]
   [H: modTip = replace(modTip,'"',"&quot;")]
   
   [H: '<!-- create output -->']
   [H: modLineOutput = strformat('<span title="<html><table><tr valign=top><td>%{stateImage}</td><td>%{modTip}</td></tr></table></html>">%{mod}</span>')]
   
   [H: '<!-- add to final output json and include id for sorting purposes -->']
   [H: output.items = json.append(output.items,strformat('<tr id="%s" padding=0px><td style="padding: 0px 2px 0px 5px;text-align:right" NOWRAP><b>%{modCat}:</b></td><td style="padding-right: 5px">%{modLineOutput}</td></tr>',
      replace(lower(modCat+mod),"[^a-z0-9._]","")))]
}]

<!-- if a state is active on token that matches a condition, print the condition info of state -->
[H: output.states = "[]"]

[H: numConditions = tbl("Conditions",0)]
[H, for(i,0,numConditions), code: {
   [H: conditionStr = tbl("Conditions",i + 1)]
   [H: curState = listGet(conditionStr,0,";")]
   [H, if(getState(curState)), code: {
      [H: conditionText = replace(listGet(conditionStr,1,";"),'"',"&quot;")]
      [H: stateImage = strformat("<img src='%s' width=50 height=50>",getStateImage(curState))]
      [H: stateLineOutput = strformat('<span title="<html><table padding=0px><tr valign=top><td>%{stateImage}</td><td><font color=green>%{conditionText}</font></td></tr></table></html>"><font color=blue>%{curState}</font></span>')]
      [H: output.states = json.append(output.states,strformat('<tr id="state%s"><td style="padding: 0px 2px 0px 5px;text-align:right" NOWRAP><b>State Info:</b></td><td style="padding-right: 5px">%{stateLineOutput}</td></tr>',
         lower(curState)))]
   };{}]
}]

[H: output = json.append("",'<table style="background-color:white;border-style:solid;border-width:1pt;padding:0px;border-spacing:0;"><tr><th colspan=2 style="color:blue;text-align:center">Mod Report</th></tr>')]
[H, if(! json.isEmpty(output.states)): output.states = json.sort(output.states,"a")]
[H, if(json.isEmpty(output.mods) && json.isEmpty(output.items)): output.mods = json.merge(json.append("","--- No Active Framework mods ---"),output.states);
   output.mods = json.merge(json.sort(json.merge(output.mods,output.items),"a"),output.states)]

[H: output = json.merge(output,output.mods,json.append("","</table>"))]
[H: output = json.toList(output,"")]

[H: am.play.output.basic(output,"self",currentToken())]

<!-- Since this isn't a UDF, going to abort output of HTML comments -->
[H: abort(0)]

!!


I was getting some weird output using your outputTo with java 7 (java 6 didn't do it) so I switched to my version of output which uses broadcast. So, to make this compatible with your FW, you'll need to change the am.play.output.basic line.

I also have some update to the lib:spells3 token that makes the auto rolls for concentration and other checks in the Plothos Spell Manager that is similar to the Wrathgon (a fav feature). But I have some custom integration with my lib:players token, so I'll wait for your new release to integrate with your framework better. But if you want to look at I'll post token.

PS - You'll need a token called image:unknown for the lib:players token. you can read more about libplayers in link.


Players MT b89 4-20-13.rptok [254.63 KiB]
Downloaded 132 times
Lib-spells3.rptok [446.12 KiB]
Downloaded 144 times

_________________
Downloads:
Top
 Profile  
 
User avatar  Offline
Great Wyrm
 
Joined: Fri Mar 28, 2008 11:30 pm
Posts: 1870
Location: Layfayette Hill, PA
 Post subject: Re: MT1.3b87.04 Campaign Framework (NEW... Latest Version!)
PostPosted: Wed Apr 24, 2013 9:22 am 
aliasmask wrote:
Very Cool, can't wait. Here is a newer version of ConditionReport. ...


Nice!

I just tried this version of ConditionReport on a token with Deafened on it and it burped. Note that Deafened was set as an Active-mod and has an entry in the Conditions table ( I will be removing it from the Conditions table now that it is a mod, but the code should not burp none the less).

Code:
java.util.FormatFlagsConversionMismatchException: Conversion = s, Flags = error executing expression output.mods = json.append(output.mods,strformat('
%{modCat}:
%{modLineOutput}
', replace(lower(modCat+mod),"[^a-z0-9._]",""))).

_________________
D&D3.5 / Pathfinder Framework


Top
 Profile  
 
User avatar  Offline
Deity
 
Joined: Tue Nov 10, 2009 6:11 pm
Posts: 7954
Location: Bay Area
 Post subject: Re: MT1.3b87.04 Campaign Framework (NEW... Latest Version!)
PostPosted: Wed Apr 24, 2013 9:25 am 
Can you post token and I'll test. That is a weird place for it to error. My best guess is that is doesn't like the "modCat+mod" and it's giving a type mismatch which doesn't happen if both are strings. Maybe there is a funky character in there somewhere? Anyway, I was trying to make it user proof and didn't quite do it.

_________________
Downloads:


Top
 Profile  
 
User avatar  Offline
Great Wyrm
 
Joined: Fri Mar 28, 2008 11:30 pm
Posts: 1870
Location: Layfayette Hill, PA
 Post subject: Re: MT1.3b87.04 Campaign Framework (NEW... Latest Version!)
PostPosted: Wed Apr 24, 2013 3:18 pm 
aliasmask wrote:
Can you post token and I'll test. That is a weird place for it to error. My best guess is that is doesn't like the "modCat+mod" and it's giving a type mismatch which doesn't happen if both are strings. Maybe there is a funky character in there somewhere? Anyway, I was trying to make it user proof and didn't quite do it.


Sent you a PM with the not-ready-for-prime-time campaign file linked.

_________________
D&D3.5 / Pathfinder Framework


Top
 Profile  
 
User avatar  Offline
Giant
 
Joined: Wed Oct 05, 2011 10:03 am
Posts: 133
Location: Warminster, PA
 Post subject: Re: MT1.3b87.04 Campaign Framework (NEW... Latest Version!)
PostPosted: Wed Apr 24, 2013 7:37 pm 
Ditto on the cool and can't wait. I GM in a group with aliasmask using your current FW. With your changes and incorporating aliasmask's updates, should be one hell of a FW. I have beeen updating the data within Plothos 3 spell manager for all the Pathfinder spellcaster classes along with all current spells and abilities. If you want, can give you a copy of the lib:spells3 token that includes the changes aliasmask was talking about when I am done.

_________________
Yeah... I'm a Druid. No... I don't hung trees, I kick a**.


Top
 Profile  
 
User avatar  Offline
Deity
 
Joined: Tue Nov 10, 2009 6:11 pm
Posts: 7954
Location: Bay Area
 Post subject: Re: MT1.3b87.04 Campaign Framework (NEW... Latest Version!)
PostPosted: Wed Apr 24, 2013 8:31 pm 
Yeah, it didn't like the % in the tip. Personally, I think it's an MT bug. For example:

Code:
[H: tip = "200%"]
<!-- works fine -->
[R: strformat("%{tip}")]

<!-- breaks -->
[R: strformat("%s %{tip}","2x100% = ")]


When using %s with strformat, any %'s in variables or in text need to be overloaded with %%, but if it doesn't have %s it just prints both %%. I solved problem by getting rid of %s and added another variable outside of strformat.

Code:
@@ @ConditionReport
@PROPS@ fontColor=black ; autoExecute=true ; fontSize=11pt ; sortBy=41 ; color=yellow ; playerEditable=true ; applyToSelected=true ; group=Utility Mods ; tooltip= ; minWidth=94 ;
<!-- Purpose of this function is to list all active mods on token as well as state condition information. -->

<!-- get Mod and Item sets and lists -->
[H: modDB = getLibProperty("TempModToggleSets","Lib:GlobalsSRDPF")]
[H: tokenModValues = json.get(PrivateJSON,"CustomModSetValues")]
[H: tokenItemDB = getProperty("BonusTypedItems")]
[H: modList = json.fields(modDB,"json")]
[H: itemList = json.fields(tokenItemDB,"json")]
[H: statesList = getTokenStates("json")]
[H: activeItemList = json.get( PrivateJSON,"ActiveItems")]
[H, if(json.isEmpty(activeItemList)): activeItemList = "[]"]
[H: activeModList = json.get( PrivateJSON,"ActiveTempModSets")]

<!-- Check to see if all active mods are in framework -->
[H, if(json.equals(activeModList,'[""]') || json.isEmpty(activeModList)), code: {
   <!-- fix common bug -->
   [H: activeModList = "[]"]
   [H: PrivateJSON = json.set(PrivateJSON,"ActiveTempModSets",activeModList)]
};{}]

[H, if(json.isEmpty(tokenModValues)): tokenModValues = "{}"]
[H: hasValidMods = if(json.isSubset(modList,activeModList) && json.isSubset(itemList,activeItemList),1,0)]

[H, if(! hasValidMods), code: {
   [H: abort(input("tip|<html>Active Mods or Items don't match existing Mods. <b>Resetting Token Mods</b> (Cancel to Abort)</html>||label|SPAN=TRUE"))]

   <!-- clear and reset all mod related variables -->
   [H: PrivateJSON = json.set( PrivateJSON, "ActiveTempModSets", "[]", "ActiveItems", "[]" )]
   [H: resetProperty( "ArmorClass" ) ]
   [H: resetProperty( "SpeedMod" ) ]
   [H: resetProperty( "StatCheckMod" ) ]
   [H: resetProperty( "DRERMod" ) ]

   [H: MiscATK = 0 ]
   [H: MiscDMG = 0 ]
   [H: InitMod = 0 ]
   [H: StrMod = 0 ]
   [H: DexMod = 0 ]
   [H: ConMod = 0 ]
   [H: IntMod = 0 ]
   [H: WisMod = 0 ]
   [H: ChaMod = 0 ]
   [H: FortBonus = 0 ]
   [H: ReflexBonus = 0 ]
   [H: WillBonus = 0 ]
   [H: CMBMod = 0 ]
   [H: CMDMod = 0 ]

   <!-- clear all states -->
   [H: setAllStates(0) ]

   <!-- recalc token values -->
   [H: tToken = currentToken() ]
   [H, MACRO("subUpdateHPStatesBars@this"): "Token=" + tToken]
   [H, MACRO("subRecalcAC@this"): "Token=" + tToken]
   [H, MACRO("subRecalcMovement@this"): "Token=" + tToken]
   [H, MACRO("subRecalcDR@this"): json.set( "{}", "Token", tToken ) ]

   <!-- Notify player that token mods have been cleared -->
   [H: output = "<b>" + token.name + strformat("</b>:  All temporary mods have been cleared, items unequipped, and state icons cleared.<br><br><b>Mods:</b> %{activeModList}<br><b>Items:</b> %{activeItemList}") ]
   [H: outputTo("gm-self", output)]
   
   <!-- Since this isnt a UDF, going to abort output of HTML comments -->
   [H: abort(0)]
};{}]

<!-- Build Output of active mods -->
[H: output.mods = "[]"]

[H, foreach(mod,activeModList), code: {
   [H: '<!-- get mod data -->']
   [H: defaultModData = json.get(modDB,mod)]
   [H: modCat = json.get(defaultModData,"cat")]
   [H: modState = json.get(defaultModData,"state")]
   [H: modData = json.get(tokenModValues,mod)]
   [H, if(json.isEmpty(modData)): modTip = json.get(defaultModData,"tip"); modTip = json.get(modData,"tip")]
   [H: '<!-- validate data -->']
   [H, if(json.contains(statesList,modState)), code: {
      [H: setState(modState,1)]
      [H: stateImage = strformat("<img src='%s' width=50 height=50>",getStateImage(modState))]
   };{
      [H: stateImage = "&nbsp;"]
   }]
   [H, if(json.isEmpty(modCat)): modCat = "Active Mod"]
   [H: modTip = replace(modTip,'"',"&quot;")]
   
   [H: '<!-- create output -->']
   [H: modLineOutput = strformat('<span title="<html><table><tr valign=top><td>%{stateImage}</td><td>%{modTip}</td></tr></table></html>">%{mod}</span>')]
   
   [H: '<!-- add to final output json and include id for sorting purposes -->']
   [H: sortId = replace(lower(modCat+mod),"[^a-z0-9._]","")]
   [H: output.mods = json.append(output.mods,strformat('<tr id="%{sortId}"><td style="padding: 0px 2px 0px 5px;text-align:right" NOWRAP><b>%{modCat}:</b></td><td style="padding-right: 5px">%{modLineOutput}</td></tr>'))]
}]

<!-- Build Output of active items -->
[H: output.items = "[]"]

[H, foreach(mod,activeItemList), code: {
   [H: '<!-- get mod data -->']
   [H: defaultModData = json.get(tokenItemDB,mod)]
   [H: modCat = json.get(defaultModData,"cat")]
   [H: modState = json.get(defaultModData,"state")]
   [H: modData = json.get(tokenModValues,mod)]
   [H, if(json.isEmpty(modData)): modTip = json.get(defaultModData,"tip"); modTip = json.get(modData,"tip")]
   
   
   [H: '<!-- validate data -->']
   [H, if(json.contains(statesList,modState)), code: {
      [H: setState(modState,1)]
      [H: stateImage = strformat("<img src='%s' width=50 height=50>",getStateImage(modState))]
   };{
      [H: stateImage = "&nbsp;"]
   }]
   [H, if(json.isEmpty(modCat)): modCat = "Active Item"]
   [H: modTip = replace(modTip,'"',"&quot;")]
   
   [H: '<!-- create output -->']
   [H: modLineOutput = strformat('<span title="<html><table><tr valign=top><td>%{stateImage}</td><td>%{modTip}</td></tr></table></html>">%{mod}</span>')]
   
   [H: '<!-- add to final output json and include id for sorting purposes -->']
   [H: sortId = replace(lower(modCat+mod),"[^a-z0-9._]","")]
   [H: output.items = json.append(output.items,strformat('<tr id="%{sortId}" padding=0px><td style="padding: 0px 2px 0px 5px;text-align:right" NOWRAP><b>%{modCat}:</b></td><td style="padding-right: 5px">%{modLineOutput}</td></tr>'))]
}]

<!-- if a state is active on token that matches a condition, print the condition info of state -->
[H: output.states = "[]"]

[H: numConditions = tbl("Conditions",0)]
[H, for(i,0,numConditions), code: {
   [H: conditionStr = tbl("Conditions",i + 1)]
   [H: curState = listGet(conditionStr,0,";")]
   [H, if(getState(curState)), code: {
      [H: conditionText = replace(listGet(conditionStr,1,";"),'"',"&quot;")]
      [H: stateImage = strformat("<img src='%s' width=50 height=50>",getStateImage(curState))]
      [H: stateLineOutput = strformat('<span title="<html><table padding=0px><tr valign=top><td>%{stateImage}</td><td><font color=green>%{conditionText}</font></td></tr></table></html>"><font color=blue>%{curState}</font></span>')]
      [H: sortId = lower(curState)]
      [H: output.states = json.append(output.states,strformat('<tr id="state%{sortId}"><td style="padding: 0px 2px 0px 5px;text-align:right" NOWRAP><b>State Info:</b></td><td style="padding-right: 5px">%{stateLineOutput}</td></tr>'))]
   };{}]
}]

[H: output = json.append("",'<table style="background-color:white;border-style:solid;border-width:1pt;padding:0px;border-spacing:0;"><tr><th colspan=2 style="color:blue;text-align:center">Mod Report</th></tr>')]
[H, if(! json.isEmpty(output.states)): output.states = json.sort(output.states,"a")]
[H, if(json.isEmpty(output.mods) && json.isEmpty(output.items)): output.mods = json.merge(json.append("","--- No Active Framework mods ---"),output.states);
   output.mods = json.merge(json.sort(json.merge(output.mods,output.items),"a"),output.states)]

[H: output = json.merge(output,output.mods,json.append("","</table>"))]
[H: output = json.toList(output,"")]

[H: am.play.output.basic(output,"self",currentToken())]

<!-- Since this isn't a UDF, going to abort output of HTML comments -->
[H: abort(0)]

!!


edit: updated code. I accidentally made mods to older code so some of the fixes were missing.

edit: Another update to include fix for sortId when posting info on state conditions. Same strformat bug.

edit: Fixed another minor bug when activeModList or activeItemList has never been initialized.

keyword: amsave

_________________
Downloads:


Top
 Profile  
 
User avatar  Offline
Giant
 
Joined: Fri Jan 05, 2007 7:53 pm
Posts: 178
Location: Wgtn, New Zealand
 Post subject: Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
PostPosted: Sat Apr 27, 2013 2:11 am 
Hhey Team

Just trying this out now (I use the older version of this framwork for a local and international game so Im keen to upgrade ASAP)

MT Version: 1.3.87
Framework: MT1.3.87.02_DnD35_Pathfinder.cmpgn
Java Version: 1.6

Problem 1 (Could be PEBCAK) - When I use "PF Statblock2Token [2.2] I get the following error:

Code:
Illegal argument type java.lang.String, expecting java.math.BigDecimal


Things to note
I have added nothing to the campaign other than a grass lands map and a blank token
I am imitating the token (This works for Versions 1.6/8/9 of this Macro)
The normal pop up box doesn't appear for the statblock drop
after the error the Token now has base line stats

Image

Problem 2 the "Full HP" Macro works but gives the following error

Code:
Unknown macro "subModDeactivateHPChange@Lib:libDnD35Pathfinder"


That's all I have found so far, I have a request as well but i need to put it together so it makes sense.

Hope this helps

Glock-9mm (NZ)

_________________
---
Glock-9mm (Wgtn, NZ)
Shooting from the hip... Never the lip!


Top
 Profile  
 
User avatar  Offline
Deity
 
Joined: Tue Nov 10, 2009 6:11 pm
Posts: 7954
Location: Bay Area
 Post subject: Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
PostPosted: Sat Apr 27, 2013 2:24 am 
You may want to consider something similar to the changes I made to the stat sheet. I'll be applying these to my campaign. The one feature the players really like is the Distance tool and the compact-ness of the stat sheet.

viewtopic.php?f=53&t=23414

I'll need to update it because of at least one extra line in new FW. The current statstat is a bit unruly, imo.

_________________
Downloads:


Top
 Profile  
 
User avatar  Offline
Giant
 
Joined: Fri Jan 05, 2007 7:53 pm
Posts: 178
Location: Wgtn, New Zealand
 Post subject: Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
PostPosted: Sat Apr 27, 2013 4:06 am 
aliasmask wrote:
You may want to consider something similar to the changes I made to the stat sheet. I'll be applying these to my campaign. The one feature the players really like is the Distance tool and the compact-ness of the stat sheet.

viewtopic.php?f=53&t=23414

I'll need to update it because of at least one extra line in new FW. The current statstat is a bit unruly, imo.


Agreed, I normally have a trimmed down version anyway as a of it is not required for ours games style, and only the GM gets to see all the NPC/Monster stat sheets anyway.

_________________
---
Glock-9mm (Wgtn, NZ)
Shooting from the hip... Never the lip!


Top
 Profile  
 
User avatar  Offline
Giant
 
Joined: Fri Jan 05, 2007 7:53 pm
Posts: 178
Location: Wgtn, New Zealand
 Post subject: Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
PostPosted: Sat Apr 27, 2013 4:45 am 
Request

ok, I know this may be too hard so if it cant be done I full understand as i know its going to require some some serious thought. (Or maybe just more talent than I have.. not hard really! :) ) Im not sure if others would like this but I would... Anyway...

The Attack Panel thats now in this FW is good because it adds Sneak Attack, but the issue I come up against is no FW can yet handle the situation when a player or bad guy has a few things going on when it comes to damage output. What Id love to see is the "edit weapons panel" be able to handle most of this. Here is an example of the situation I am trying to describe

A player has a Fighter who has a Longsword +1, Flaming & Frosting Weapon. While we could simply add the +2D6 to apply the damage it becomes quite in a pain in the neck though if he is fighting something with say DR5 Fire because the dice rolled together and the player/GM has to then split it out to apply the DR. Below is a suggested layout for the weapons page but I no have idea how to do either of the 2 suggestion or even if its possible.

Image

The next part I guess is how that translates into chat, is it possible to make all the results add up and then tool tip the break down of how stuff was rolled, Or maybe something like this?

Image

Anyway I understand that this might not make sense or be achievable but if you don't ask you cant be told no.. lol.

Thanks for taking the time to read.

Regards
Glock-9mm (NZ)

_________________
---
Glock-9mm (Wgtn, NZ)
Shooting from the hip... Never the lip!


Top
 Profile  
 
User avatar  Offline
Great Wyrm
 
Joined: Fri Mar 28, 2008 11:30 pm
Posts: 1870
Location: Layfayette Hill, PA
 Post subject: Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
PostPosted: Sat Apr 27, 2013 9:00 am 
OMG just kill whoever has Flame & Frost on the same weapon already! 'nuff said. I mean really, the darn thing heated up and shattered sending freezing and burning splinters through his/her body irrevocably slaying them.

Yeah what you are asking for is for the ever-future combat structure. In that future, there would be a weapon structure, a mod-set array for the weapon, an equip structure, an attack structure, a mod-set array for the attack structure. That way you could easily create many wild donkey variants and have them work.

_________________
D&D3.5 / Pathfinder Framework


Top
 Profile  
 
User avatar  Offline
Deity
 
Joined: Tue Nov 10, 2009 6:11 pm
Posts: 7954
Location: Bay Area
 Post subject: Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
PostPosted: Sat Apr 27, 2013 12:22 pm 
I was thinking for a simple solution, you can make the damage and description both lists. Then you can do something like this:

Extra Damage: 1d6;1d6
Extra Damage Description: Fire;Acid

_________________
Downloads:


Top
 Profile  
 
 Offline
Dragon
 
Joined: Sat Dec 22, 2007 5:37 pm
Posts: 358
 Post subject: Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
PostPosted: Sat Apr 27, 2013 1:23 pm 
Awesome LM!


Top
 Profile  
 
User avatar  Offline
Great Wyrm
 
Joined: Mon May 10, 2010 11:59 am
Posts: 1706
Location: Chicagoland
 Post subject: Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
PostPosted: Sat Apr 27, 2013 2:30 pm 
Regarding pfstatblock importer 2.2, I think that was pulled from my campaign and if so, I don't use the pop up input, you have to paste it to GMText. I do this because I prefer to keep line returns (easier to read and better regexp searching for some expressions)

And just an FYI regarding fire frost weapons, per RAW it is actually illegal, you can't put frost on a flame weapon. Although the issue remains for a flame acid weapon out other combos.

Re Am's statblock, my players love the range start, absolutely brilliant!

_________________
-Jamz
____________________
Custom MapTool 1.4.x.x Fork: maptool.nerps.net
More information here: MapTool Nerps! Fork | TokenTool Nerps! Fork
Custom TokenTool (version 1.0b33): TokenTool.exe


Top
 Profile  
 
Display posts from previous:  Sort by  
Reply to topic  [ 83 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:

Who is online

In total there is 1 user online :: 0 registered, 0 hidden and 1 guest (based on users active over the past 5 minutes)
Most users ever online was 243 on Sun Nov 04, 2012 6:14 am

Users browsing this forum: No registered users and 1 guest





cron

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group

Style based on Andreas08 by Andreas Viklund

Style by Elizabeth Shulman