91.08 Pathfinder + D&D3.5 Framework
Moderators: dorpond, trevor, Azhrei, giliath, Gamerdude, jay, Mr.Ice, lmarkus001
Forum rules
Discussion regarding lmarkus001's framework only. Other posts deleted without notice!
Discussion regarding lmarkus001's framework only. Other posts deleted without notice!
Re: 91.08 Pathfinder + D&D3.5 Framework
This is the most current by Lindsay. Another user made a collection of macros here as well more recently: viewtopic.php?f=33&t=27969
Downloads:
- Notepad++ MapTool addon
- RPEdit details (v1.3)
- Coding Tips: Modularity and Design
- Videos: Macro Writing Tools
Re: 91.08 Pathfinder + D&D3.5 Framework
Thanks AliasMask.
I'm super impressed with what I see in Lindsay's Framework; it's way more than I need right now, but seems to be very feature rich!
I'll take a peek at what AdventureMagic123 has assembled.
I'm super impressed with what I see in Lindsay's Framework; it's way more than I need right now, but seems to be very feature rich!
I'll take a peek at what AdventureMagic123 has assembled.
-
- Cave Troll
- Posts: 25
- Joined: Fri May 10, 2019 4:53 pm
Re: 91.08 Pathfinder + D&D3.5 Framework
Having an interesting issue with BOT ShadowPads. I originally posted this to the Bag of Tricks forum but after Wolf42 looked at it he said the problem is in the 3.5/pathfinder campaign. Under BOT settings there is a toggle for invisible with four options below it(invisibility state, see invisibility state, purge invisibility state, and annul invisibility state), all of which default to 0. I get two different errors depending if invisible box is selected or not.
IF IT IS NOT SELECTED ShadowPads sorta work, but every time I move a token I get a dialog box asking for a tok value, and the following error in chat.
Invalid condition in IF(isNPC(tok) && getState("Invisible",tok)) roll option. Statement options (if any): H, IF(isNPC(tok) && getState("Invisible",tok)), CODE Statement Body : { [H, MACRO("InvisibleMove@Lib:libDnD35Pathfinder"): tok ] }; {}
IF IT IS SELECTED ShadowPads DO NOT work at all, I DO NOT get a diolog box, but do get this error in chat.
Invalid condition in IF(getState(invisState, meTok)) roll option. Statement options (if any): h,if(getState(invisState, meTok)), CODE Statement Body (first 200 characters): { [seeingToks = getTokenNames("json", json.set("{}","setStates", json.append("", seeInvisState)))] [purgingToks = getTokenNames(
My eight year old knows more coding than I do so any help would be appreciated.
IF IT IS NOT SELECTED ShadowPads sorta work, but every time I move a token I get a dialog box asking for a tok value, and the following error in chat.
Invalid condition in IF(isNPC(tok) && getState("Invisible",tok)) roll option. Statement options (if any): H, IF(isNPC(tok) && getState("Invisible",tok)), CODE Statement Body : { [H, MACRO("InvisibleMove@Lib:libDnD35Pathfinder"): tok ] }; {}
IF IT IS SELECTED ShadowPads DO NOT work at all, I DO NOT get a diolog box, but do get this error in chat.
Invalid condition in IF(getState(invisState, meTok)) roll option. Statement options (if any): h,if(getState(invisState, meTok)), CODE Statement Body (first 200 characters): { [seeingToks = getTokenNames("json", json.set("{}","setStates", json.append("", seeInvisState)))] [purgingToks = getTokenNames(
My eight year old knows more coding than I do so any help would be appreciated.
Re: 91.08 Pathfinder + D&D3.5 Framework
I don't usually mess around with the BoT, but as I understand it you're having a problem with a BoT feature because of the 3.5/PF framework? I'll see what I can do to sort it out. It would be really helpful if you can send me your campaign with an example of how you get the error.
Downloads:
- Notepad++ MapTool addon
- RPEdit details (v1.3)
- Coding Tips: Modularity and Design
- Videos: Macro Writing Tools
Re: 91.08 Pathfinder + D&D3.5 Framework
Not even sure if the bot is being updated or supported anymore. BUT I'm wanting to do an update for it for Bag of tricks 4.0 to 4.4 but I tried the "update steps" on bag of tricks and now I get a lot of errors
Re: 91.08 Pathfinder + D&D3.5 Framework
The latest info on BoT can be found here: viewtopic.php?f=46&t=28409
Yes, wolph42 is still very active and just made a recent update. You can direct your problems to that thread in case others have the same issues. He also has a channel on the MapTool Discord channel: https://discord.gg/nsnKM9
Yes, wolph42 is still very active and just made a recent update. You can direct your problems to that thread in case others have the same issues. He also has a channel on the MapTool Discord channel: https://discord.gg/nsnKM9
Downloads:
- Notepad++ MapTool addon
- RPEdit details (v1.3)
- Coding Tips: Modularity and Design
- Videos: Macro Writing Tools
Re: 91.08 Pathfinder + D&D3.5 Framework
(...and sometimes lurks in other topics...., but Yeah, what AM said!)aliasmask wrote: ↑Thu Oct 31, 2019 6:56 amThe latest info on BoT can be found here: viewtopic.php?f=46&t=28409
Yes, wolph42 is still very active and just made a recent update. You can direct your problems to that thread in case others have the same issues. He also has a channel on the MapTool Discord channel: https://discord.gg/nsnKM9
GETTING STARTED WITH MAPTOOLS - TUTORIALS, DOCS, VIDEOS, TOOLS, ETC
DISCORD (the new MT forum!)
My stuff
Excel Tools: Table and Light editors
MT Tools: Bag of Tricks: Tools for Maptool, Dungeon Builder I, Dungeon Builder II,onMouseOverEvent.
Frameworks: Dark Heresy, Rogue Trader, Deathwatch, Black Crusade, Only War, SET Card Game, RoboRally
Wiki: Debugging Tutorial, Speed Up Your Macros, Working With Two CODE Levels, Shortcut Keys, Avoiding Stack Overflow, READ THIS
DISCORD (the new MT forum!)
My stuff
Excel Tools: Table and Light editors
MT Tools: Bag of Tricks: Tools for Maptool, Dungeon Builder I, Dungeon Builder II,onMouseOverEvent.
Frameworks: Dark Heresy, Rogue Trader, Deathwatch, Black Crusade, Only War, SET Card Game, RoboRally
Wiki: Debugging Tutorial, Speed Up Your Macros, Working With Two CODE Levels, Shortcut Keys, Avoiding Stack Overflow, READ THIS
Re: 91.08 Pathfinder + D&D3.5 Framework
ok I had a quick look, downloaded the latest version of this framework, replaced the lib:ontokenmove --> got a invisibility pop up everytime i tried to do something, ran the BoT settings and no more errors (as expected). So whats the problem on your side?
GETTING STARTED WITH MAPTOOLS - TUTORIALS, DOCS, VIDEOS, TOOLS, ETC
DISCORD (the new MT forum!)
My stuff
Excel Tools: Table and Light editors
MT Tools: Bag of Tricks: Tools for Maptool, Dungeon Builder I, Dungeon Builder II,onMouseOverEvent.
Frameworks: Dark Heresy, Rogue Trader, Deathwatch, Black Crusade, Only War, SET Card Game, RoboRally
Wiki: Debugging Tutorial, Speed Up Your Macros, Working With Two CODE Levels, Shortcut Keys, Avoiding Stack Overflow, READ THIS
DISCORD (the new MT forum!)
My stuff
Excel Tools: Table and Light editors
MT Tools: Bag of Tricks: Tools for Maptool, Dungeon Builder I, Dungeon Builder II,onMouseOverEvent.
Frameworks: Dark Heresy, Rogue Trader, Deathwatch, Black Crusade, Only War, SET Card Game, RoboRally
Wiki: Debugging Tutorial, Speed Up Your Macros, Working With Two CODE Levels, Shortcut Keys, Avoiding Stack Overflow, READ THIS
Re: 91.08 Pathfinder + D&D3.5 Framework
yeah it was me being stupid. I remoted into the server and tried to do it instead of using the remote computer to access the campaign directly. Got it working now
Re: 91.08 Pathfinder + D&D3.5 Framework
good to hear (that you got it working, not that you're stupid )
GETTING STARTED WITH MAPTOOLS - TUTORIALS, DOCS, VIDEOS, TOOLS, ETC
DISCORD (the new MT forum!)
My stuff
Excel Tools: Table and Light editors
MT Tools: Bag of Tricks: Tools for Maptool, Dungeon Builder I, Dungeon Builder II,onMouseOverEvent.
Frameworks: Dark Heresy, Rogue Trader, Deathwatch, Black Crusade, Only War, SET Card Game, RoboRally
Wiki: Debugging Tutorial, Speed Up Your Macros, Working With Two CODE Levels, Shortcut Keys, Avoiding Stack Overflow, READ THIS
DISCORD (the new MT forum!)
My stuff
Excel Tools: Table and Light editors
MT Tools: Bag of Tricks: Tools for Maptool, Dungeon Builder I, Dungeon Builder II,onMouseOverEvent.
Frameworks: Dark Heresy, Rogue Trader, Deathwatch, Black Crusade, Only War, SET Card Game, RoboRally
Wiki: Debugging Tutorial, Speed Up Your Macros, Working With Two CODE Levels, Shortcut Keys, Avoiding Stack Overflow, READ THIS
Re: 91.08 Pathfinder + D&D3.5 Framework
With the recent update to setBarVisible bad syntax in subUpdateHPStatesBarsLGM now gives an error. Basically, change the "off" to 0 to fix. Here is the updated macro.
subUpdateHPStatesBarsLGM
Code: Select all
<!-- Updates most states and health bars. Does not update StableHP. Does HP based updates to state Unconscious, can not update based on healing. -->
[H: gTok = "Lib:GlobalsSRDPF"]
[H: tToken = getStrProp(macro.args, "Token")]
[H: gTokenUncImgChange = getLibProperty("TokenUncImgChange", gTok)]
[H: switchToken(tToken)]
[H: token.shape = getTokenShape(tToken)]
[H, IF(gTokenUncImgChange), CODE: {
[ startedDown = if( state.Dead || state.Dying || state.StableHP, 1, 0 ) ]
[ tImageID = getTokenImage() ]
[ tImageHID = getTokenHandout() ]
[ tIAID = getStrProp(Private, "TokenImageAssetID")]
[IF( tImageHID != tImageID || tIAID == "" ), CODE: {
[ Private = setStrProp(Private, "TokenImageAssetID", tImageID) ]
[ tIAID = tImageID]
};{}]
};{}]
[H: deathpoint = eval( string( getLibProperty( "DeathPoint", gTok ) ) )]
[H: tType = json.get( Race, "type" )]
[H: tSubtype = json.get( Race, "subtype" )]
[H: variantRDP = table( "SysVars", json.get( table( "SysVars", 0 ), "variantRaceDeathPoint" ) ) ]
[H, FOREACH( dp, variantRDP ), CODE: {
[H: tDP = json.get( dp, "deathPoint" )]
[H: typeArray = json.get( dp, "typeArray" )]
[H: subtypeArray = json.get( dp, "subtypeArray" )]
[H, FOREACH( t, typeArray ): deathpoint = if( t == tType, tDP, deathpoint )]
[H, FOREACH( t, subtypeArray ): deathpoint = if( json.contains( tSubtype, t ), tDP, deathpoint )]
}]
[H: tDieHard = getStrProp(Feats, "DieHard")]
[H: tDieHard = if(tDieHard == "", 0, tDieHard)]
[H: disabledPoint = if( tDieHard, deathpoint, 0)]
[H, IF((HP + HPtemp) == 0), CODE:{
[MACRO( "subModActivate@Lib:libDnD35Pathfinder" ): json.set( "{}", "tokenID", currentToken(), "setID", "Disabled", "setType", 0, "isHPChange", 1 ) ]
};{
[MACRO( "subModDeactivate@Lib:libDnD35Pathfinder" ): json.set( "{}", "tokenID", currentToken(), "setID", "Disabled", "setType", 0, "isHPChange", 1 ) ]
}]
[H: tStaggered = if(HPNonLethalDMG == (HP + HPtemp) && HP > 0, 1, 0)]
[H, IF(tStaggered), CODE:{
[MACRO( "subModActivate@Lib:libDnD35Pathfinder" ): json.set( "{}", "tokenID", currentToken(), "setID", "Staggered", "setType", 0, "isHPChange", 1 ) ]
};{
[MACRO( "subModDeactivate@Lib:libDnD35Pathfinder" ): json.set( "{}", "tokenID", currentToken(), "setID", "Staggered", "setType", 0, "isHPChange", 1 ) ]
}]
[H: active = if( ((HP + HPtemp) >= HPNonLethalDMG) && ((HP + HPtemp) >= 0), 1, if( tDieHard, 1, 0) )]
[H, IF( active ): setLayer("token")]
[H: state.Dead = if((HP + HPtemp) <= deathpoint, 1, 0)]
[H: tUnconscious = if( ( ( (HP + HPtemp) < 0 ) || ( HPNonLethalDMG > (HP + HPtemp) ) ) && !tDieHard, 1, 0)]
[H, IF(tUnconscious && !state.Dead), CODE:{
[MACRO( "subModActivate@Lib:libDnD35Pathfinder" ): json.set( "{}", "tokenID", currentToken(), "setID", "Unconscious", "setType", 0, "isHPChange", 1 ) ]
};{
}]
[H: tProne = if( active && (state.Prone < 1), 0, 1)]
[H, IF(tProne && !state.Dead), CODE:{
[MACRO( "subModActivate@Lib:libDnD35Pathfinder" ): json.set( "{}", "tokenID", currentToken(), "setID", "Prone", "setType", 0, "isHPChange", 1 ) ]
};{
}]
[H: state.Dying = if(((HP + HPtemp) > deathpoint) && ((HP + HPtemp) < 0), 1, 0)]
[H, IF( isNPC() && !tDieHard ): eval(if(state.Dying, 'setLayer("object")', '0'))]
[H: state.StableHP = if(((HP + HPtemp) >= 0), 0, state.StableHP)]
[H, IF(state.Dead), CODE: {
[H: if(isNPC(), setLayer("object"), '0')]
[H: state.Dying = 0]
[H: state.StableHP = 0]
}]
[H: eval(if(state.Dead, 'removeFromInitiative()', '0'))]
[H: setBarVisible("HPdamage",0)]
[H: setBarVisible("EmptyHP",0)]
[H: setBarVisible("NLD_HP",0) ]
[H: setBarVisible("TempHP",0) ]
[H: setBarVisible("HP",0)]
[H: setBarVisible("HPM",0)]
[H: setBarVisible("HPNonLethalDMG",0)]
[H: setBarVisible("HPMNonLethalDMG",0)]
[H: hpbar = if(isPC(), "bar.HP = (HP + HPtemp)/(HPmax + HPtemp)", "bar.HPM = (HP + HPtemp)/(HPmax + HPtemp)")]
[H: eval(hpbar)]
[H: hpnldbar = if(isPC(), "bar.HPNonLethalDMG = HPNonLethalDMG/(HPmax + HPtemp)", "bar.HPMNonLethalDMG = HPNonLethalDMG/(HPmax + HPtemp)")]
[H: eval(hpnldbar)]
[H, IF(gTokenUncImgChange), CODE: {
[H: tImageID= if( ( state.Dead || state.Dying || state.StableHP ), getTokenHandout(), if(startedDown, tIAID, tImageID) ) ]
[H, IF(tImageID != ""): setTokenImage(tImageID)]
};{}]
[H: '<!-- bug fix workaround: changing layers can alter the token shape -->']
[H, if(token.shape != getTokenShape(tToken)): setTokenShape(token.shape, tToken)]
Downloads:
- Notepad++ MapTool addon
- RPEdit details (v1.3)
- Coding Tips: Modularity and Design
- Videos: Macro Writing Tools
-
- Kobold
- Posts: 6
- Joined: Tue Mar 03, 2020 12:55 pm
Re: 91.08 Pathfinder + D&D3.5 Framework
hello everyone i have a question about the dicebox in MT1.3.91.08.01_DnD35_Pathfinder.cmpgn where can i find the macros for NDB to edit the line to change from a button to text input? when i click the button i get stacking 1's so repeated clicking gives me 1,11,111,1111,11111, ect. instead of the expected 1,2,3,4 dice count.
Re: 91.08 Pathfinder + D&D3.5 Framework
That seems to be a new bug created with json.get. It shouldn't be returning it as a string. I thought this was fixed though.
If you replace NDBUpdate with this, it should work.
Edit: Looking at is closer, it's not related to json.get. The dbArgs numbers were converted to strings at some point. json.get was updated to correctly get a string that looks like a number as a string and that's what is happening here. It's adding a number to a string. I'll try to track down how/why dbArgs is converting the number to a string. It may be related to passing json through a form. Actually, just remember that was an issue.
If you replace NDBUpdate with this, it should work.
Code: Select all
[h:dbArgs = macro.args]
[h,if(json.contains(dbArgs,"Clear")),CODE:
{
[h:dbArgs = json.set("{}", "mod", 0, "tn", 0, "d4s", 0, "d6s", 0, "d8s", 0, "d10s", 0, "d12s", 0, "d20s", 0, "d100s", 0, "showTo", "all", "breakdown", "totalRoll")]
[macro("NDB@this"): dbArgs]
}]
[h,if(json.contains(dbArgs,"Roll")),CODE:
{
[macro("RollDice@this"):dbArgs]
[abort(0)]
};
{
[if(json.contains(dbArgs,"d4btn")): dbArgs = json.set(dbArgs, "d4s", number(json.get(dbArgs, "d4s"))+1)]
[if(json.contains(dbArgs,"d6btn")): dbArgs = json.set(dbArgs, "d6s", number(json.get(dbArgs, "d6s"))+1)]
[if(json.contains(dbArgs,"d8btn")): dbArgs = json.set(dbArgs, "d8s", number(json.get(dbArgs, "d8s"))+1)]
[if(json.contains(dbArgs,"d10btn")): dbArgs = json.set(dbArgs, "d10s", number(json.get(dbArgs, "d10s"))+1)]
[if(json.contains(dbArgs,"d12btn")): dbArgs = json.set(dbArgs, "d12s", number(json.get(dbArgs, "d12s"))+1)]
[if(json.contains(dbArgs,"d20btn")): dbArgs = json.set(dbArgs, "d20s", number(json.get(dbArgs, "d20s"))+1)]
[if(json.contains(dbArgs,"d100btn")): dbArgs = json.set(dbArgs, "d100s", number(json.get(dbArgs, "d100s"))+1)]
[macro("NDB@this"):dbArgs]
}]
Downloads:
- Notepad++ MapTool addon
- RPEdit details (v1.3)
- Coding Tips: Modularity and Design
- Videos: Macro Writing Tools
Re: 91.08 Pathfinder + D&D3.5 Framework
Yep, it's the form submit, but it doesn't pass the whole json, but macro.args does convert a number to a string.
Downloads:
- Notepad++ MapTool addon
- RPEdit details (v1.3)
- Coding Tips: Modularity and Design
- Videos: Macro Writing Tools
Re: 91.08 Pathfinder + D&D3.5 Framework
I updated the issue on github here: https://github.com/RPTools/maptool/issues/650
Downloads:
- Notepad++ MapTool addon
- RPEdit details (v1.3)
- Coding Tips: Modularity and Design
- Videos: Macro Writing Tools