Something like this:

<$vars lev1={{!!levello1}} lev2={{!!levello2}} hd1={{{ 
[title{!!class}get[hd]] }}} hd2={{{ [title{!!class}get[hd]] }}}
conmod={{{ [<currentTiddler>get[modcon]] }}}>

<$vars hps={{{ [<hd1>multiply[2]subtract[2]] }}} hp1={{{ 
[<lev1>multiply<hd1>] }}} hp2={{{ [<lev2>multiply<hd2>] }}} lev={{{ 
[<lev1>add<lev2>] }}}>

<$vars hpcon={{{ [<conmod>multiply<lev>] }}}>

<$vars hitpoints={{{ [<hps>add<hp1>add<h2>add<hpcon>] }}}>

<!-- further actions here -->

</$vars>
</$vars>
</$vars>
</$vars>

Only use action-setfield with the final values you wish to save.

On Thursday, March 11, 2021 at 1:24:57 PM UTC+1 Saq Imtiaz wrote:

> 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 [email protected] 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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/5021cb59-f68d-4c0a-8d75-1a2e4a9068b0n%40googlegroups.com.

Reply via email to