[Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

MapTool campaign files that encapsulate properties, tokens, and macros for a particular ruleset or game world. "Framework" is often abbreviated "FW".

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

Forum rules
This forum is LOCKED. If a thread belongs here, use the "Report" feature of the post to let a moderator know to move it. General discussion should occur in the User Creations or MapTool forums.
User avatar
wolph42
Winter Wolph
Posts: 9999
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands
Contact:

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by wolph42 »

Hi Telarus,

I always like to check out others FW's to see if I can 'borrow' neat idead from them :D. I especially like the DM screen, very nice touch and its something for me to consider.
Anyhoo, I did notice one thing: your forms are a bit slow to load even the 'static' ones. So (I did not check) but have you cached your forms? If not I would sincerely consider it as it speeds up your forms incredibly. Basically what you do in case of static forms (forms that never change like you gm screen) is run the html once, encode the result and store it on a lib token. Then when a gm or player wants to access the form, you retrieve the value from the lib token, decode it and put the result in the form, e.g.:
form("dm screen"):{[r:decode(getLibProperty("form1","lib:token"))]}.
You can also use this trick for dynamic forms (forms that WILL change) e.g. character sheets, there are basically two tricks:
1. store the cache locally on the corresponding token, then when someone updates their character, simply rebuild the cache value
2. use dynamic caching: http://forums.rptools.net/viewtopic.php?f=20&t=16324
note: I use all three methods in my FW.

Keep up the good work, very nice FW!!

Soultroubadour
Cave Troll
Posts: 60
Joined: Fri Apr 15, 2011 10:25 am

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by Soultroubadour »

Yo Adrian! I DID IT!!!

So I got the inventory setup on my campaign and I think this is pretty do-able.

The good news- I have a merchant, Inventory tracking, a way to track and attune spell matrices and a function for tracking thread weaving to items, group patterns etc. It stores and manages all the necessary information.

The bad news is i cant figure out how to modify the macros to pull information from the right json file on a couple of key functions. I can input the different items stats, I can equip them- but i cant make a list of equipped items pop up and there's a typo or 2- wanna take a look?

Peloquinn
Kobold
Posts: 2
Joined: Sun Dec 04, 2011 9:37 pm

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by Peloquinn »

Turned out that the version was the problem. The .cmpgn file seems to be blank and even eats up the default grassland map in older versions of maptool. I fell victim to one of the classic blunders - the most famous is never get involved in a land war in asia, but only slightly less well known is this - update your darned software! :)

Thanks Telarus. And thanks Soultroubadour for offering up what help you could think of.

Earthdawn forever, baby!

Pel

Telarus
Giant
Posts: 129
Joined: Sat May 22, 2010 11:16 pm

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by Telarus »

wolph42 wrote:Hi Telarus,

I always like to check out others FW's to see if I can 'borrow' neat idead from them :D. I especially like the DM screen, very nice touch and its something for me to consider.
Anyhoo, I did notice one thing: your forms are a bit slow to load even the 'static' ones. So (I did not check) but have you cached your forms? If not I would sincerely consider it as it speeds up your forms incredibly. Basically what you do in case of static forms (forms that never change like you gm screen) is run the html once, encode the result and store it on a lib token. Then when a gm or player wants to access the form, you retrieve the value from the lib token, decode it and put the result in the form, e.g.:
form("dm screen"):{[r:decode(getLibProperty("form1","lib:token"))]}.
You can also use this trick for dynamic forms (forms that WILL change) e.g. character sheets, there are basically two tricks:
1. store the cache locally on the corresponding token, then when someone updates their character, simply rebuild the cache value
2. use dynamic caching: http://forums.rptools.net/viewtopic.php?f=20&t=16324
note: I use all three methods in my FW.

Keep up the good work, very nice FW!!

Sweet! This is exactly what I was going to be researching next, but only had strformat() to start with. Thanks man!

Telarus
Giant
Posts: 129
Joined: Sat May 22, 2010 11:16 pm

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by Telarus »

Soultroubadour wrote:Yo Adrian! I DID IT!!!

So I got the inventory setup on my campaign and I think this is pretty do-able.

The good news- I have a merchant, Inventory tracking, a way to track and attune spell matrices and a function for tracking thread weaving to items, group patterns etc. It stores and manages all the necessary information.

The bad news is i cant figure out how to modify the macros to pull information from the right json file on a couple of key functions. I can input the different items stats, I can equip them- but i cant make a list of equipped items pop up and there's a typo or 2- wanna take a look?

Great timing. I'm fixing up the journal bug today and writing a custom new journal entry dialog, and then was going to start looking at inventory.

Do you want to post your *.cmpgn ? I'll definitely take a look, I've been getting kinda good with JSONs recently.

Jacklifear
Cave Troll
Posts: 70
Joined: Fri Jul 17, 2009 7:51 pm

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by Jacklifear »

Hey Telarus,

Right now my group is looking to revert to 1.0 tonight for this week. HOWEVER, if you get progress on the inventory and journal stuff and can get it done with some time to spare, let me know. Good luck!

Telarus
Giant
Posts: 129
Joined: Sat May 22, 2010 11:16 pm

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by Telarus »

Sounds good, the player's will get more immersion out of the session.

I've been meaning to ask. What Circles are your players, currently?

I've been re-thinking how to create high circle Adept tokens. The current bare-bones advancement structure is pretty good for "new characters"...but that won't always be the case.

So, the easiest current workflow would be (& this might not be obvious to everyone):

- Make 1st Circle Token.

- Have GM assign loads of LP.

- Have GM manually Set the Circle to the desired Circle (this opens up all the Discipline Talents in the character sheet).

- Have GM add any Optional Talents required.

- Have the GM edit each Talent Rank manually to the desired rank, then, using the GM Screen, calculate how much LP that cost and then use the SPEND LP button to make note of that arbitrary LP deduction.

- Same w/ Skills.

This will cut down on pointless ranking/circling/ranking/circling...


I've been looking into strformat() and I've finally wrapped my head around it's syntax, so I'll be slightly redesigning the form html. I've also been looking at Soultroubador's work. Very nice progress man!

I've written a macro to output the JSON objects and arrays to the chat in a nicely formatted version, so you can at least check that until we get a frame'd display.


Works by Impersonating the token, then pressing the macro button.
[code=php][H: inventoriesList = "Bazaar,Equipment,Threadweaving,Grimoire"]

[R, FOREACH(inv, inventoriesList, ""), CODE:
{
    [H: inventory = getProperty(inv, currentToken()) ]
    
    [H, IF(isPropertyEmpty(inv) == 1): inventory = json.set("{}", "NAME", inv)]

    [H: broadcast("<pre>"+json.indent( inventory)+"</pre>")]
}
] [/code]
Last edited by Telarus on Sat Dec 10, 2011 10:09 pm, edited 1 time in total.

Jacklifear
Cave Troll
Posts: 70
Joined: Fri Jul 17, 2009 7:51 pm

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by Jacklifear »

For mine they are now 2nd circle. But things are progressing smoothly. I'll brainstorm ways in my own time in terms of the method. But, off to rping!

Gamerdude
Cave Troll
Posts: 89
Joined: Thu Feb 04, 2010 12:17 am

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by Gamerdude »

[*MODERATOR NOTICE*] Back on the first page of this thread Souldtroubadour provided a .campaign file for folks to download. That post has been spun off to it's own thread: [Earthdawn 3rd Edition] Soultroubadour'S ED3 FW 'Bazar' Campaign

REASON: It provides a new/modified version of the original file - by a different author.

Until my authorities can be fixed, it is in the main "User Creations" area.


Thank you
GamerDude
Al B. USAF RET.
*Chief Organizer and Bottle Washer - 'User Creations' Forum*

MT Framework Directory **LISTING** (UPDT 2012-02-10)

Tusky
Kobold
Posts: 7
Joined: Sat May 28, 2011 5:43 pm

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by Tusky »

Any new development done on this framework?

Just curious...

Jacklifear
Cave Troll
Posts: 70
Joined: Fri Jul 17, 2009 7:51 pm

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by Jacklifear »

*Cracks his knuckles* My team is coming out of retirement. Telarus, you still care about finishing this up? If so, let me know.

There are a few rough bugs that are possibly easy fixes. I'll see what I can do, (Such as GetNames not referencing the token correctly) but for now we're going to use a google Doc for inventory, so you don't need to worry about that overhaul.

Jacklifear
Cave Troll
Posts: 70
Joined: Fri Jul 17, 2009 7:51 pm

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by Jacklifear »

Current Status/Journal:

- Wow, it's amazing how much easier it is to come back to this and work on it with a backbone of what I learned. It's a LOT easier to go further and do things better. It's also easy to realize.. man, I did a lot of things way to stupid back in the day.

My current goals are to recreate the potential of a small "quicksheet" that you can roll your talents/skills on, easily manage damage, etc. With the new property set of 2.0, this is going rather easily, as a lot of what you'd expect is very intuitive. (Point to Telarus, Properties are done exceptionally well, pat on back buddy!)

After toying and working with it, the inventory is just not usable as the way it is. It's "too much" information. For now we're going to work on a joint Google Doc spreadsheet until either Telarus is willing to give it a second tackle or I am willing to see what I can do. That'll be down the road though. For example, a majority of the fluff can be removed to tooltips, allowing each time to take up "one line" instead of 3-4. It would also be nice to have frames that look just like the tables in the rest of the spreadsheet.

As I achieve success, I'll be posting my notes/results here.
CURRENT WORKINGS/SELF-TEACHINGS:
  • Quicksheet: Basic formatting/planning
  • Macro: A basic attack macro to learn how to incorporate all the properties, from damage to wounding to defenses to states/modifiers.
  • Macro: A Declaration Macro/frame to learn how to create HTML frames and correctly transfer data using Json.
CURRENT BUGLIST/SUGGESTIONS:
  • Inventory - Needs a basic rework of the user interface to be simpler
  • Looks like GM has to "spend legend points" for the user, this could be due to incomplete code/concept
  • There seems to be times when creating a character, the knowledge points don't get spent correctly. Thus leaving "2 remaining points" they have to skip.
  • Some skills, I think Knowledge, don't incorporate Attribute steps (so RANK step to roll, not RANK+PER to roll)
I will continue to post these posts in case Telarus returns, or I get to the point I could correct/implement these changes myself one day.

Jacklifear
Cave Troll
Posts: 70
Joined: Fri Jul 17, 2009 7:51 pm

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by Jacklifear »

So, I've been working a lot today on a basic "attack/Damage" macro for our game coming up. It's turned rather complex for what I want to do with it. So far it does the following:

1. Creates a form that comes up, asking for the basics. What type of attack, what attack modifier, add karma, attack to stun, etc.
2. It also asks if you will use a primary or secondary weapon

It then opens a new input window that does the damage side

1. It asks the base damage
2. The forged modifier of the weapon
3. Any combat modifiers

It then saves that data to the token (I know the properties are temporary, when the inventory is fixed and I learn how to call data from the weapons in it, I'll use those instead)

It also incorporates wound, damage dealing, armor defeating hits, stun vs lethal damage, multi-selected token attacking, armor application, applying deflection bonuses to the reduction of the armor defeating chance. Much of this is because of the natural functions that Telarus put in. It's working out well. I'm still realizing things I need to put in, but it's a good work in progress so far.

It's spheghetti code though. I'll need to get it much more organized at a later time, but if it works, it works for now. It's great to learn from.

Telarus, if you get around, I would love to know if you would come back to this project. There are a few things I am curious about. Thanks!

Jacklifear
Cave Troll
Posts: 70
Joined: Fri Jul 17, 2009 7:51 pm

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by Jacklifear »

Well, found a gamebreaker bug, don't know how to fix it though.

Apparhently when you setup the token, a set of HTML is created that includes the tables for your character. For some reason your token id changes over time. When this happens, it doesn't match with the HTML and therefore it can't reference the actual ranks that are intended.

The way to fix it would be to either update the html as the token name changes, or find a way to stabilize the token name. That or use a different way to track it, but I don't have a clue... Until this is fixed, I can't use the system though. Going to have to research a lot I guess.

Jacklifear
Cave Troll
Posts: 70
Joined: Fri Jul 17, 2009 7:51 pm

Re: [Earthdawn 3rd Edition] Telarus' ED3 Framework v2.0

Post by Jacklifear »

Found the crucial bug that's holding me back right now...

So, in BuildPowersTable (which is called when creating a token) it calls the following code at the top of the table:

Code: Select all

H, IF(arg(0) == "ed3.disciplinetalents" ), FOREACH(disc, json.fields(ed3.discipline), ""), CODE:{
	

	[H: linkText = decode(disc)+' Talents']
	[H: linkArgs = json.set("{}", "ID", id, "FLAG", encode(linkText), "PAGE", 1)]
	[H: linkCode = macroLink(upper(linkText),'editFrame@lib:ED3_frame','none', linkArgs)]
	
	[H: tableHTML = tableHTML + "<tr>
			<th align='center' valign='top' colspan=4 nowrap='NOWRAP' class='header'>				
				  
					<span title='<html>Click to view the <b>"+linkText+"</b> Details.</html>'>
						<b>"+linkCode+"</b>
					</span>
				  
			</th>
Since this is ONLY called when creating a character, it stores the "ID" of the current token in the HTML. Now, for some reason later on, the token ID of the token can change over time, saves, etc. I don't know the specifics... but it does change.

Whenever I hit the header that's created by this (In the case of many tokens, "Beastmaster talents" for this example, it should bring up a window that associates with the token's talents and I should be able to edit it. However, right now, I'm unable to do so.

The error message I get in this example is:

Code: Select all

Error executing "getName": the token name or id "C0A801675BD24DB87300000080080043" is unknown.
And the only line that references the words "GetName" in "editFrame" is:

Code: Select all

[H: name = getName(id)]
In short, as you create a character, your character's initial ID is saved in stone in the HTML. Then it calls the editFrame function when you click, but as the token ID is changed over time, I can't find an easy way of changing the code to allow for this instance...

I need to research WHAT changes the token ID over time so we can avoid it I guess. Into the forums I go....

Post Reply

Return to “Campaign Frameworks”