[tips request] Handling Location Notes

Thoughts, Help, Feature Requests, Bug Reports, Developing code for...

Moderators: dorpond, trevor, Azhrei

Forum rules
PLEASE don't post images of your entire desktop, attach entire campaign files when only a single file is needed, or generally act in some other anti-social behavior. :)
Post Reply
User avatar
patnodewf
Cave Troll
Posts: 97
Joined: Sun Jan 15, 2012 3:44 am

[tips request] Handling Location Notes

Post by patnodewf »

Question: If you wanted to present location notes to players, for an area map, how would you do it in differently than this?

Below is an image of the area map for Varisia, in Pathfinder, where our party is currently adventuring. We currently have transparent images as "objects" over all of the words on the map. The city information is presented to the player by entering it into the Notes field of the object's properties. The players see the information on the statsheet when they click the object.

The information is all aggregated from Pathfinder Wiki currently, so some places (example) have more information than the statsheet can handle. We've got it split up into various categories based on knowledge skill checks in the GM Notes field of the object's properties. Dependent on what rolls we have, the GM copies/pastes the data from one field to the other to control player access.

Something about this method irks me. I'm a fan of having the image (object portrait assigned) and the data easily in the statsheet, but it seems quite... clunky. Anyone have any suggestions?

[spoiler=Large Image]Image[/spoiler]
My form-fillable PDF Character Sheet for Pathfinder can be found here.

User avatar
patnodewf
Cave Troll
Posts: 97
Joined: Sun Jan 15, 2012 3:44 am

Just spit-balling ideas here...

Post by patnodewf »

I was considering a Lib:token with the data on it, as well as a frame with a scrolling body to hold HTML content. Then just dump the location data into a table so you can call the data into the frame that way.

Only problem I see with it, is a possible lack of transparency for the GM when players want to reference something on the map. I foresee this method requiring the GM to send some sort of macro-link, via chat, to the players each time they want information on a location. That would seem a bit clunky for the GM though, but in function... not in presentation to the players.

Is it possible to place a macro link in the HTML of a statsheet maybe? Perhaps also have the GM run a campaign macro which stores a "knowledge check result" that represents a player's rolled skill check as a value. Then perhaps have the code, executed with the macro link, populate a frame with HTML based on a specified range of table values? I'd imagine that the stored "knowledge check result" would need to be unique for each location on the map though.
My form-fillable PDF Character Sheet for Pathfinder can be found here.

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

Re: [tips request] Handling Location Notes

Post by neofax »

I would use Plothos's Messenger drop-in or Aliasmask's update of it. You will need to fix the code to autodisplay the information after a skill check roll, but it holds quite a bit of info. Or possibly Biodudes Canned Speech drop-in with the same re-coding to fit your needs. If you put a HTML link in the statsheet it will not be clickable IIRC. I remember doing this for my Legacy of Fire campaign but it didn't work.
Image
Time-Zone information UTC -5

User avatar
patnodewf
Cave Troll
Posts: 97
Joined: Sun Jan 15, 2012 3:44 am

Re: [tips request] Handling Location Notes

Post by patnodewf »

neofax wrote:I would use Plothos's Messenger drop-in or Aliasmask's update of it. You will need to fix the code to autodisplay the information after a skill check roll, but it holds quite a bit of info. Or possibly Biodudes Canned Speech drop-in with the same re-coding to fit your needs. If you put a HTML link in the statsheet it will not be clickable IIRC. I remember doing this for my Legacy of Fire campaign but it didn't work.



You're right about the links in the statsheet not being clickable. Plothos's Messenger drop-in would work quite well for picking and choosing which message to send to the players, though. Only problem is the players can see is that it would require the GM to intervene in some manner, to allow the players to view specific location data, rather than just have the players fetch the data themselves.

Maybe place a macro on each object to call the frame, but that wouldn't be available if it's on the object layer? If the location note token is on the token layer, the players may wind up accidentally moving them... and forgetting to mention anything about it. Would it be beneficial to just build an HTML form into a frame that's called with a macro stored directly on each player's token? Present the player with a list of map locations and let them view the knowledge-skill-related location data that way?

I'll have to play around with Biodude's canned speech utility more though. But so far it looks like it outputs the data to the chat window intentionally, rather than just being something to read.
My form-fillable PDF Character Sheet for Pathfinder can be found here.

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

Re: [tips request] Handling Location Notes

Post by neofax »

patnodewf wrote:
neofax wrote:Drivel

You're right about the links in the statsheet not being clickable. Plothos's Messenger drop-in would work quite well for picking and choosing which message to send to the players, though. Only problem is the players can see is that it would require the GM to intervene in some manner, to allow the players to view specific location data, rather than just have the players fetch the data themselves.

This is where the code you would have to write comes in.

patnodewf wrote:Maybe place a macro on each object to call the frame, but that wouldn't be available if it's on the object layer? If the location note token is on the token layer, the players may wind up accidentally moving them... and forgetting to mention anything about it.

I am not sure, as I have never done this. I don't know if the "click" event moves thru both token and object layer. If it doesn't, then placing the token on the token layer is not a optimal choice.

patnodewf wrote:Would it be beneficial to just build an HTML form into a frame that's called with a macro stored directly on each player's token? Present the player with a list of map locations and let them view the knowledge-skill-related location data that way?

I would place the macro on a campaign window and store all the code on a Lib:Token so it is secure and easily exported for the community. This would probably be the best solution as it can kill multiple birds with one stone. Think search bodies for loot, detect secret doors/walls...

patnodewf wrote:I'll have to play around with Biodude's canned speech utility more though. But so far it looks like it outputs the data to the chat window intentionally, rather than just being something to read.

Yes, it does but you can recode it to display in a HTML frame by looking at Plothos's code. However, you would be back to the dilemma above with the token on the object layer.
Image
Time-Zone information UTC -5

User avatar
patnodewf
Cave Troll
Posts: 97
Joined: Sun Jan 15, 2012 3:44 am

Re: [tips request] Handling Location Notes

Post by patnodewf »

neofax wrote:
patnodewf wrote:*snipped*

I would place the macro on a campaign window and store all the code on a Lib:Token so it is secure and easily exported for the community. This would probably be the best solution as it can kill multiple birds with one stone. Think search bodies for loot, detect secret doors/walls...


I think this approach would require either a single, large, table to encapsulate all of those location points or one table per location point. Although, I suppose a custom list of token properties could be used too. Store the location data in the properties instead of a table might work, but that may prevent the dynamic use of images in an html frame.

[spoiler=still just brainstorming]
    Token properties:
  • creatorUniqueID.know.skill.DC
    (location data as a string of html, probably require 1 to 5 of these for each skill)
      Examples:
    • babs.know.local.10
    • babs.know.local.15
    • babs.know.religion.20
    • babs.know.religion.25
    • babs.know.history.10
  • babs.know.skill.check
    (players' rolled knowledge check as a numerical value)
      Examples:
    • babs.know.local.check
    • babs.know.religion.check
    • babs.know.history.check
  • creatorUniqueID.undiscovered
    (boolean value, or 0|1, based on whether the PCs have discovered it on the map)

GM macro:
    1: scan for discovered locations
    2: display form in a frame
    3: populate dropdown box with location names
    4: choose location
    5: choose knowledge skill
    6: enter players' rolled check result as numerical value
    7: submit
    8: update selected location property

Player macro:
    1: scan for discovered locations
    2: display list of locations as html in a frame
    3: select location
    4: compare creatorUniqueID.know.skill.check to creatorUniqueID.know.skill.DC
    5: if check >= DC, then populate frame html data with DC property's html string
[/spoiler]
My form-fillable PDF Character Sheet for Pathfinder can be found here.

User avatar
aliasmask
Deity
Posts: 8667
Joined: Tue Nov 10, 2009 6:11 pm
Location: Bay Area

Re: [tips request] Handling Location Notes

Post by aliasmask »

I've been kind of playing with this, but I've been using it for dungeon locations. I use it in conjunction with my lib:players token to handle output and integration with game transcripts.

I have a lib token with description macro(s) that posts the information either to chat (used by GM) or in a popup (used by player). I have info tokens to mark the positions where the name is the info tag id and the gm name is something more descriptive which is use in the output.

I use the INSPECT macro in lib:players and as the GM I set the code to:

Code: Select all

{am.xx.description()}

I can then copy/paste the info tokens where the only change needed is the token name and perhaps the GM name (default name is Room when posting). The prefix to the description macro is determined in the onCampaignLoad and you can have multiple description macros on same lib token to handle a variety of images or naming guidelines. Here's an example of the 3 above:

[spoiler=... Description Macros ...]

Code: Select all

@@ @description
@[email protected] fontColor=black ; autoExecute=true ; fontSize=11pt ; sortBy= ; color=default ; playerEditable=false ; applyToSelected=false ; group= ; tooltip= ; minWidth=94 ;
[H: info = getLibProperty("room."+token.name)]
[H: title = getGMName()]
[H, if(json.isEmpty(title)): title = "Room "+token.name]
[H: description = json.get(info,"description")]
[H, if(! json.isEmpty(description)), code: {
   [H, if(isGM()): am.play.output.room(description,title,getImage(getMacroLocation()));
      am.play.output.room(description,title,getImage(getMacroLocation()),1)]
};{}]

!!
@@ @description2
@[email protected] fontColor=black ; autoExecute=true ; fontSize=11pt ; sortBy= ; color=default ; playerEditable=false ; applyToSelected=false ; group= ; tooltip= ; minWidth=94 ;
[H: info = getLibProperty("room."+token.name)]
[H: title = getGMName()]
[H, if(json.isEmpty(title)): title = "Room "+token.name]
[H: description = json.get(info,"description")]
[H, if(! json.isEmpty(description)), code: {
   [H, if(isGM()): am.play.output.room(description,title,getImage("image:sewer"));
      am.play.output.room(description,title,getImage("image:sewer"),1)]
};{}]

!!
@@ @description3
@[email protected] fontColor=black ; autoExecute=true ; fontSize=11pt ; sortBy= ; color=default ; playerEditable=false ; applyToSelected=false ; group= ; tooltip= ; minWidth=94 ;
[H: info = getLibProperty("room."+token.name)]
[H: title = getGMName()]
[H, if(json.isEmpty(title)): title = "Room "+token.name]
[H: description = json.get(info,"description")]
[H, if(! json.isEmpty(description)), code: {
   [H, if(isGM()): am.play.output.room(description,title,getImage("image:cave"));
      am.play.output.room(description,title,getImage("image:cave"),1)]
};{}]

!!
[/spoiler]

So, for new icons, I just add an image token. I actually just made an update a couple of days ago with the output.room change that allows the output to go to a popup and to include the output when done by the GM to go to chat transcripts.

As you see, there are several things to consider for a simple drop-in (lib:players addon) at this point, but I'm still refining the process. This was recently slapped together. But the big time saver is being able to put all the area descriptions in to one document. When designing the dungeon I have notepad open to add location numbers and descriptions, then I go to the map and change the token names.
Attachments
Image4.jpg
Image4.jpg (138.13 KiB) Viewed 575 times

Post Reply

Return to “MapTool”