In the same block of action strings, you cannot set tiddler/field values and retrieve the updated values. Try saving the interim values as variables instead of in temp tiddlers.
On Thursday, March 11, 2021 at 1:03:35 PM UTC+1 dop...@gmail.com wrote: > Hi all. I'm in need of a macro (or something else?) that calculates a > bunch of fields together in an expression. I'm trying to do with plugins > like calc and playing around with variables and action widgets but nothing > seems to work. In my last attempt I made a huge button full of actions that > stored fields in a temp tiddler, with vars that recovered those fields to > use in other action setfields... It was monstrous and still it didn't work. > > I believe I need a macro - actually, probably a javascript one. But I > don't know where to start; I don't know much about java and making macros > in general. Can anyone point me to the best path I should follow, or help > in any way? > > The macro should: > > from tiddler-1: > get field-a-1, field-a-2, field-b-1, field-b-2, field-n > > from both tiddler-a and tiddler-b (which are stored as values in field-a-1 > and field-b-1): > get field-x, so to get field-x-a and field-x-b to keep around for calcs. > > these are all fields I manually set up. > > then: > > multiply field-x-a and field-a-2, and keep the result around (let's say > var-a) > multiply field-x-b and field-b-2, the same (var-b) > > add field-a-2 and field-b-2, to store as field-y in tiddler-1 > > multiply field-n and field-z, and get var-n > > add together var-a, var-b and var-n, and store the result as field-z in > tiddler-z > > > this is my last attempt (embed in a button). There's one more small calc, > but it is just a sum that involves one field, so it's non relevant at the > moment. > <$action-setfield $tiddler=":$/temp/HPCalc" $field="lev1" > $value={{!!levello1}}/> > <$action-setfield $tiddler=":$/temp/HPCalc" $field="lev2" > $value={{!!levello2}}/> > <$action-setfield $tiddler=":$/temp/HPCalc" $field="hd1" $value={{{ > [title{!!class}get[hd]] }}}/> > <$action-setfield $tiddler=":$/temp/HPCalc" $field="hd2" $value={{{ > [title{!!class}get[hd]] }}}/> > <$action-setfield $tiddler=":$/temp/HPCalc" $field="conmod" $value={{{ > [<currentTiddler>get[modcon]] }}}/> > > <$vars lev1={{{ [[$:/temp/HPCalc]get[lev1]] }}} lev2={{{ > [[$:/temp/HPCalc]get[lev2]] }}} hd1={{{ [[$:/temp/HPCalc]get[hd1]] }}} > hd2={{{ [[$:/temp/HPCalc]get[hd2]] }}} > conmod={{{ [[$:/temp/HPCalc]get[conmod]] }}}> > > <$action-setfield $tiddler=":$/temp/HPCalc" $field="hps" $value={{{ > [<hd1>multiply[2]subtract[2]] }}}/> > <$action-setfield $tiddler=":$/temp/HPCalc" $field="hp1" $value={{{ > [<lev1>multiply<hd1>] }}}/> > <$action-setfield $tiddler=":$/temp/HPCalc" $field="hp2" $value={{{ > [<lev2>multiply<hd2>] }}}/> > <$action-setfield $tiddler=":$/temp/HPCalc" $field="lev" $value={{{ > [<lev1>add<lev2>] }}}/> > > <$vars hps={{{ [[$:/temp/HPCalc]get[hps]] }}} hp1={{{ > [[$:/temp/HPCalc]get[hp1]] }}} hp2={{{ [[$:/temp/HPCalc]get[hp2]] }}} > lev={{{ [[$:/temp/HPCalc]get[lev]] }}}> > > <$action-setfield $tiddler=":$/temp/HPCalc" $field="hpcon" $value={{{ > [<conmod>multiply<lev>] }}}/> > > <$vars hpcon={{{ [title[$:/temp/HPCalc]get[hpcon]] }}}> > > <$action-setfield $tiddler=<<currentTiddler>> $field="hitpoints" > $value={{{ [<hps>add<hp1>add<h2>add<hpcon>] }}}/> > <$action-setfield $tiddler=<<currentTiddler>> $field="level" $value={{{ > [<lev>] }}}/> > > </$vars> > </$vars> > </$vars> > > if you played you know what, you know what this is about :P > -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/3371f109-4072-4280-9a2b-700057888999n%40googlegroups.com.