[D&D3.5 + Pathfinder] MT1.3b86 Campaign Macros r01

Discussion concerning lmarkus' campaign framework for D&D3.x and Pathfinder.

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

Forum rules
Discussion regarding lmarkus001's framework only. Other posts deleted without notice! :)
User avatar
Azhrei
Site Admin
Posts: 12086
Joined: Mon Jun 12, 2006 1:20 pm
Location: Tampa, FL

Re: [D&D3.5 + Pathfinder] MT1.3b86 Campaign Macros r01

Post by Azhrei »

Synchronicity wrote:I understand that it still misses some things though. Great for mooks but not for PCs.
None of the statblock to token macros handle skills with multiple words in their names very well. Like Sleight of Hand, for example. The regex is split into multiple pieces and that makes it difficult to fix; that chunk of code will need to be replaced. I have had plans to do that for, oh, about 18 months now. ;)

It shouldn't be tough: read the system settings to find out what all skill names are, then build a regex that looks like "(name1|name2|name3|...)". Then the regex check becomes a single function call. (The regex above needs to be a little more complicated to handle optional punctuation.)

Also, the weapon section puts Slam attacks for unused weapon slots and I'd rather it fill in NA instead. But that's pretty minor.

A side problem is that some statblocks show the NPC or creature with various special effects already applied. Things like Rage affect AC, HP, Str, Con, and so on so the macro creates a token with those already applied. But in this FW it's better to use the base statistics and then apply the Rage modset. No good fix for this, I'm afraid. :| I just look for the base stats and keep those while deleting the others, but it can be a pain to get right.

neofax
Great Wyrm
Posts: 1694
Joined: Tue May 26, 2009 8:51 pm
Location: Philadelphia, PA
Contact:

Re: [D&D3.5 + Pathfinder] MT1.3b86 Campaign Macros r01

Post by neofax »

Azhrei wrote:A side problem is that some statblocks show the NPC or creature with various special effects already applied. Things like Rage affect AC, HP, Str, Con, and so on so the macro creates a token with those already applied. But in this FW it's better to use the base statistics and then apply the Rage modset. No good fix for this, I'm afraid. :| I just look for the base stats and keep those while deleting the others, but it can be a pain to get right.
Paizo does a pretty good job of adding a line that states this is the NPCs base statistics before these special things were applied(granted spells and such they do not break out, but Rage, Alchemists Mutagens, Lycanthrope...). My problem is that they don't do this for templates. They just apply the template with no info for the DM. Also, the macro works great for PCs as it knocks out 90% of making the token. All you then have to do is fix the little stuff like Craft/Knowledge/Perform/Profession skills, HeroLab imports strength is always jacked, Subtypes and alignment, i like having languages in the note field on the race tab, Special Attacks and Qualities and finally the big ones Attacks and Spells.

Synchronicity
Kobold
Posts: 8
Joined: Sat Nov 29, 2008 3:24 pm

Re: [D&D3.5 + Pathfinder] MT1.3b86 Campaign Macros r01

Post by Synchronicity »

Lifer4700 wrote:I started watching Imper1um's video, but it will only play the first 5 minutes out of 37+ if you don't run their exe...
It was enough to get me going, though.
Here is a link for the full video. Again, this is Imper1um's work. Helped me a lot. Let me know if you have issues with the link.
http://www.4shared.com/video/E-SkFLHm/M ... orial.html

I still haven't run a game yet with the framework. I have been using MapTool for about three years now but only for a local game. We used to use a projector setup with the Wii remotes and IR pens for token movement, but since some of my players moved we are looking to play online.

@Azhrei, I haven't tried using Statblock2Token 1.8, I have 1.6. I would like to give it a shot for PCs and NPCs. I have all of IPMarv's tokens so I got the creatures covered I think... Anyway, I seem to remember reading that you had retooled it but I could never find a link. Can you assist?

@Neofax, I also don't have Herolabs, I use TheOnlySheet+ but it isn't ideal for the statblock import. I looked at it some time back but didn't purchase. Maybe I will look at it again if it is the best way to handle imports. I have imported pathfinder stat blocks but since I don't know the framework that well I am not sure what may be missing. I appreciate you post and will look at it a further.

Anyway, big thanks to all who post in these forums. I almost never post but I do read, and the work you all do is much appreciated. Thanks again! :D

User avatar
Azhrei
Site Admin
Posts: 12086
Joined: Mon Jun 12, 2006 1:20 pm
Location: Tampa, FL

Re: [D&D3.5 + Pathfinder] MT1.3b86 Campaign Macros r01

Post by Azhrei »

Synchronicity wrote:Anyway, big thanks to all who post in these forums. I almost never post but I do read, and the work you all do is much appreciated. Thanks again! :D
I agree! Lindsay put the FW together, plothos kickstarted the idea of a spell manager, wrathgon moved it to use JSON and added support for a lot of PF extras, aliasmask has tweaked it quite a bit, and neofax has cleaned up the packaging. If any of them weren't here to lend a hand, the FW wouldn't be nearly as good as it is.

I love this community. :)

Regarding the video, would you mind starting a new thread and linking to the video? Use a thread title that is meaningful so that newcomers will be able to find it. I'll Sticky the thread and Lock it. Burying the information in this thread probably isn't too useful.

Synchronicity
Kobold
Posts: 8
Joined: Sat Nov 29, 2008 3:24 pm

Re: [D&D3.5 + Pathfinder] MT1.3b86 Campaign Macros r01

Post by Synchronicity »

Azhrei wrote:Regarding the video, would you mind starting a new thread and linking to the video? Use a thread title that is meaningful so that newcomers will be able to find it. I'll Sticky the thread and Lock it. Burying the information in this thread probably isn't too useful.
Will do. Also, just noticed that your 1.8 Statblock2token is in Lindsay's latest rev on page 1. :oops: That's what I get for making the previous release my little pet!

User avatar
Lifer4700
Cave Troll
Posts: 48
Joined: Thu Aug 25, 2011 3:17 pm

Re: [D&D3.5 + Pathfinder] MT1.3b86 Campaign Macros r01

Post by Lifer4700 »

Thank you for the link Synchronicity! Downloading now.


On another note, I took the liberty of adding in the Double Slice feat, just to see how it would be done. I hope I got all the places that it would be needed. For those that are curious, here's what I did.

I had to modify two of the macros in Lib:libDnd35Pathfinder. editMain (CharacterSheet, yellow) and LibAttack (Combat, grey)




With editMain, there were three locations where I needed to add some script. I just looked for some other Pathfinder feat, and duplicated the lines. I chose AgileManuevers.


The first occurrence was near line 140.

Existing lines

Code: Select all

	[H: tAgileManeuvers = getStrProp(Feats, "AgileManeuvers")]
	[H: tAgileManeuvers = if(tAgileManeuvers == "", getStrProp(getPropertyDefault("Feats"), "AgileManeuvers"), tAgileManeuvers)]
	[H: sysFeats = sysFeats + ' AgileManeuvers| ' + tAgileManeuvers +' |Agile Maneuvers Feat?|CHECK ##']
New lines, created immediately after

Code: Select all

	[H: tDoubleSlice = getStrProp(Feats, "DoubleSlice")]
	[H: tDoubleSlice = if(tDoubleSlice == "", getStrProp(getPropertyDefault("Feats"), "DoubleSlice"), tDoubleSlice)]
	[H: sysFeats = sysFeats + ' DoubleSlice| ' + tDoubleSlice +' |Double Slice Feat?|CHECK ##']


The next was around line 250.
Before.

Code: Select all

[H, IF(system == "Pathfinder"), CODE: {
    [H: Feats = setStrProp(Feats, "CriticalFocus", CriticalFocus)]
    [H: Feats = setStrProp(Feats, "AgileManeuvers", AgileManeuvers)]
    [H: Feats = setStrProp(Feats, "ImprovedChanneling", ImprovedChanneling)]
}]
After.

Code: Select all

[H, IF(system == "Pathfinder"), CODE: {
    [H: Feats = setStrProp(Feats, "CriticalFocus", CriticalFocus)]
    [H: Feats = setStrProp(Feats, "AgileManeuvers", AgileManeuvers)]
    [H: Feats = setStrProp(Feats, "DoubleSlice", DoubleSlice)]
    [H: Feats = setStrProp(Feats, "ImprovedChanneling", ImprovedChanneling)]
}]
The last place was near line 335.
Existing.

Code: Select all

    [H: output = output + if(tAgileManeuvers == AgileManeuvers, "", "   AgileManeuvers= " + AgileManeuvers + " (" + tAgileManeuvers + ") ")]
New.

Code: Select all

[H: output = output + if(tDoubleSlice == DoubleSlice, "", "   DoubleSlice= " + DoubleSlice + " (" + tDoubleSlice + ") ")]


That took care of adding the feat itself. Next came adding the the functionality.
The feat allows two-weapon fighters to add in their full strength bonus for their off-hand weapon instead of half. So, I looked for the section where the damage bonus was calculated and changed it. But don't forget to add in a line that checks to see if the token HAS the feat, those are near the top.


Checking for the DoubleSlice feat on the token:

Existing.

Code: Select all

[H: tManyShot = getStrProp(Feats, "ManyShot")]
[H: tManyShot = if(tManyShot == "", 0, tManyShot)]
[H: tCriticalFocus = getStrProp(Feats, "CriticalFocus")]
[H: tCriticalFocus = if(tCriticalFocus == "", 0, tCriticalFocus)]

[H: jCombat = json.get(PrivateJSON, "Combat")]
[H, IF( json.isEmpty( jCombat ) ): tMagicExtraAttack = 0; tMagicExtraAttack = json.get( jCombat, "magicExtraAttack" ) ]
[H, IF( !isNumber( tMagicExtraAttack ) ): tMagicExtraAttack = 0 ]
Modified.

Code: Select all

[H: tManyShot = getStrProp(Feats, "ManyShot")]
[H: tManyShot = if(tManyShot == "", 0, tManyShot)]
[H: tCriticalFocus = getStrProp(Feats, "CriticalFocus")]
[H: tCriticalFocus = if(tCriticalFocus == "", 0, tCriticalFocus)]
[H, IF(system == "Pathfinder"), CODE: {
    [H: tDoubleSlice = getStrProp(Feats, "DoubleSlice")]
    [H: tDoubleSlice = if(tDoubleSlice == "", 0, tDoubleSlice)]
}]

[H: jCombat = json.get(PrivateJSON, "Combat")]
[H, IF( json.isEmpty( jCombat ) ): tMagicExtraAttack = 0; tMagicExtraAttack = json.get( jCombat, "magicExtraAttack" ) ]
[H, IF( !isNumber( tMagicExtraAttack ) ): tMagicExtraAttack = 0 ]



Giving full bonus, if so.

Before.

Code: Select all

[H: dmgStatB = min(DmgBonusCap, if(TwoHanded == 1, Str2hB + if( Ranged == 1, 0, floor(paDMG*pa2H)), if(Primary == 2,floor( StrSecB + if( Ranged == 1, 0,(paDMG*paOffhand))),StrB + if( Ranged == 1, 0, paDMG))))]
After.

Code: Select all

[H: dmgStatB = min(DmgBonusCap, if(TwoHanded == 1, Str2hB + if( Ranged == 1, 0, floor(paDMG*pa2H)), if(Primary == 2,floor( if(tDoubleSlice == 1,StrB,StrSecB) + if( Ranged == 1, 0,(paDMG*paOffhand))),StrB + if( Ranged == 1, 0, paDMG))))]



Works great!

If the token has the DoubleSlice feat, they get full strength bonus on each weapon, if they don't they get the normal full bonus on primary, and half on secondary.

My only concern is about non-Pathfinder campaigns... will the if(Doubleslice==1) section cause issue since it wouldn't be defined? If so, a test for system="Pathfinder" would have to be performed. Of course, would anyone NOT running Pathfinder add these lines?
I should change my profile name to Freddy because JSON and I don't quite get along yet.

User avatar
aliasmask
RPTools Team
Posts: 9024
Joined: Tue Nov 10, 2009 6:11 pm
Location: Bay Area

Re: [D&D3.5 + Pathfinder] MT1.3b86 Campaign Macros r01

Post by aliasmask »

Since the 2nd off hand attack is usually set up as a "Secondary" attack, a person with this feat would just make it a "Primary" attack to avoid the strength drop.

User avatar
Lifer4700
Cave Troll
Posts: 48
Joined: Thu Aug 25, 2011 3:17 pm

Re: [D&D3.5 + Pathfinder] MT1.3b86 Campaign Macros r01

Post by Lifer4700 »

Well, that just took all the fun out of it...

Code: Select all

<sails wind=no></sails>
I suppose if I knew how to run the Framework/Macros properly, I could've saved myself a few hours of digging and coding! lol

It took me DAYS to figure out how to get the OOTB campaign setup with his two weapons to work properly in the first place!


Thanks for the input, you've forced me to re-think things for the better.
On to the next one!



EDIT:
If I did set up the 2nd weapon as a Primary, would the system still account for the -2/2 or -4/-4 or -6/-10 to hit for using two weapons?
I should change my profile name to Freddy because JSON and I don't quite get along yet.

User avatar
Lifer4700
Cave Troll
Posts: 48
Joined: Thu Aug 25, 2011 3:17 pm

Re: [D&D3.5 + Pathfinder] MT1.3b86 Campaign Macros r01

Post by Lifer4700 »

To answer my own question, yes.

Telling the FW that I'm using two weapons but they're both my 'primary' works properly with the To-Hit bonuses, and it gives the full Strength bonus to each.

Thanks again!
I should change my profile name to Freddy because JSON and I don't quite get along yet.

jkthomsen9
Cave Troll
Posts: 25
Joined: Fri May 10, 2019 4:53 pm

Re: [D&D3.5 + Pathfinder] MT1.3b86 Campaign Macros r01

Post by jkthomsen9 »

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.

User avatar
Full Bleed
Demigod
Posts: 4736
Joined: Sun Feb 25, 2007 11:53 am
Location: FL

Re: [D&D3.5 + Pathfinder] MT1.3b86 Campaign Macros r01

Post by Full Bleed »

jkthomsen9 wrote:
Thu Oct 10, 2019 1:09 pm
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.
You're responding to a thread about an old version of this framework that hasn't had activity in 8 years.

You want this thread: viewtopic.php?f=53&t=26670
Maptool is the Millennium Falcon of VTT's -- "She may not look like much, but she's got it where it counts."

Post Reply

Return to “D&D 3.5/Pathfinder 1e Campaign Macros”