copyToken: Difference between revisions
mNo edit summary |
(Reworded descriptions; added note about 1.3b77) |
||
Line 41: | Line 41: | ||
'''Updates parameter''' | '''Updates parameter''' | ||
{{code|updates}} is a [[JSON Object]] that can contain one or more of the following fields. | {{code|updates}} is a [[JSON Object]] that can contain one or more of the following fields. Field names are case-sensitive. | ||
* name - The name of the new [[Token]]. | * name - The name of the new [[Token]]. | ||
* label - The label for the new [[Token]]. | * label - The label for the new [[Token]]. | ||
* gmName - The GM name for the new [[Token]]. | * gmName - The GM name for the new [[Token]]. | ||
* layer - The layer for the new [[Token]]. | * layer - The layer for the new [[Token]]. | ||
* x - The X Co-ordinate for the new [[Token]]. | * x - The X Co-ordinate for the new [[Token]]. Default is {{code|0}}. | ||
* y - The Y Co-ordinate for the new [[Token]]. | * y - The Y Co-ordinate for the new [[Token]]. Default is {{code|0}}. | ||
* useDistance - {{code|true}} or {{code|false}} | * useDistance - {{code|true}}/{{code|1}} or {{code|false}}/{{code|0}}. Determines if the "Distance Per Cell" measurement for the map is used for the x,y Co-ordinates. Unused if neither {{code|x}} nor {{code|y}} is specified. Default is {{code|true}}. | ||
* facing - Sets the facing for the [[Token]]. If the [[Token]] is on the background or object layer this sets the rotation. | * facing - Sets the facing for the [[Token]]. If the [[Token]] is on the background or object layer this sets the rotation. | ||
* size - Sets the size of the [[Token]]. | * size - Sets the size of the [[Token]]. | ||
Line 58: | Line 57: | ||
When the name is not changed using the {{code|updates}} parameter the new name for the token follows the naming method for cut and paste. | When the name is not changed using the {{code|updates}} parameter the new name for the token follows the naming method for cut and paste. | ||
This function can copy [[Token]]s in the token | This function can copy [[Token]]s in the token, hidden, object, and background layers. If you do not override the destination using the | ||
{{code|layer}} field of {{code|updates}} then the new copies are made in the same layer as the source. Likewise if {{code|x}} and {{code|y}} | {{code|layer}} field of {{code|updates}} then the new copies are made in the same layer as the source. Likewise if {{code|x}} and {{code|y}} | ||
are not specified then these locations are the same as the source. | are not specified then these locations are the same as the source. | ||
Line 65: | Line 64: | ||
Make a single copy of the Hero from the current map. | Make a single copy of the Hero from the current map. | ||
<source lang="mtmacro" line> | <source lang="mtmacro" line> | ||
[h:copyToken("Hero")] | [h: copyToken("Hero")] | ||
</source> | </source> | ||
Make a single copy of the Hero from another map. | Make a single copy of the Hero from another map. | ||
<source lang="mtmacro" line> | <source lang="mtmacro" line> | ||
[h:copyToken("Hero", 1, "Green Room")] | [h: copyToken("Hero", 1, "Green Room")] | ||
</source> | </source> | ||
Or if you are playing paranoia and want to create six clones. | Or if you are playing paranoia and want to create six clones. | ||
<source lang="mtmacro" line> | <source lang="mtmacro" line> | ||
[h:copyToken("Hero", 6, "Clone Vat")] | [h: copyToken("Hero", 6, "Clone Vat")] | ||
</source> | </source> | ||
Line 82: | Line 81: | ||
[h: cloneNo = 0] | [h: cloneNo = 0] | ||
[h: updates = "{ | [h: updates = "{ | ||
name:'Hero Clone - [r: cloneNo = cloneNo + 1]' | name: 'Hero Clone - [r: cloneNo = cloneNo + 1]' | ||
}" | }" | ||
] | ] | ||
[h: cloneNo = 0] | [h: cloneNo = 0] | ||
[h:copyToken("Hero", 6, "Clone Vat", updates)] | [h: copyToken("Hero", 6, "Clone Vat", updates)] | ||
</source> | </source> | ||
Line 94: | Line 93: | ||
[h: x = 0] | [h: x = 0] | ||
[h: updates = "{ | [h: updates = "{ | ||
name:'Hero Clone - [r: cloneNo = cloneNo + 1]', | name: 'Hero Clone - [r: cloneNo = cloneNo + 1]', | ||
x:'[r: x = x + 2]', | x: '[r: x = x + 2]', | ||
y:0 | y: 0 | ||
}" | }" | ||
] | ] | ||
[h: cloneNo = 0] | [h: cloneNo = 0] | ||
[h:copyToken("Hero", 6, "Clone Vat", updates)] | [h: copyToken("Hero", 6, "Clone Vat", updates)] | ||
</source> | </source> | ||
Line 109: | Line 108: | ||
[h: facing = 0] | [h: facing = 0] | ||
[h: updates = "{ | [h: updates = "{ | ||
name:'Hero Clone - [r: cloneNo = cloneNo + 1]', | name: 'Hero Clone - [r: cloneNo = cloneNo + 1]', | ||
x:'[r: x = x + 2]', | x: '[r: x = x + 2]', | ||
y:0, | y: 0, | ||
facing: '[r: facing = facing + 40]' | facing: '[r: facing = facing + 40]' | ||
}" | }" | ||
] | ] | ||
[h: cloneNo = 0] | [h: cloneNo = 0] | ||
[h:copyToken("Hero", 6, "Clone Vat", updates)] | [h: copyToken("Hero", 6, "Clone Vat", updates)] | ||
</source> | </source> | ||
And now we have tumbling clones | And now we have tumbling clones: | ||
[[Image:TumblingClones.jpeg|frame|center|Tumbling Clones using Top-down Tokens]] | [[Image:TumblingClones.jpeg|frame|center|Tumbling Clones using Top-down Tokens]] | ||
The source token was configured as a Top Down token for this effect, otherwise the {{code|facing}} setting would produce a facing arrow | The source token was configured as a Top Down token for this effect, otherwise the {{code|facing}} setting would produce a facing arrow | ||
for [[Token]]s on the token or hidden | for [[Token]]s on the token or hidden layers. | ||
[[Image:PointingClones.jpeg|frame|center|Tumbling Clones using Round Tokens and Facing Arrows]] | [[Image:PointingClones.jpeg|frame|center|Tumbling Clones using Round Tokens and Facing Arrows]] | ||
Line 133: | Line 133: | ||
|changes= | |changes= | ||
{{change|1.3b54|Added optional {{code|updates}} parameter.}} | {{change|1.3b54|Added optional {{code|updates}} parameter.}} | ||
{{change|1.3b77|Added {{code|imagePortrait}} to {{code|updates}}.}} | |||
}} | }} | ||
[[Category:Token Function]] | [[Category:Token Function]] |
Revision as of 04:49, 11 November 2010
copyToken() Function
Note: This function can only be used in a Trusted Macro
copies of can reside on any map. You can not make any modifications to the newly created Tokens in the macro that creates them. As of b54 there is a new parameter that allows you to make some changes to the new tokens.
Note: You can make changes to the created tokens if they are done by a second macro that is executed after the macro that creates the copies. Look for execLink for calling a macro deferred.Usage
copyToken(id)
copyToken(id, numCopies)
copyToken(id, numCopies, fromMap)
copyToken(id, numCopies, fromMap, updates)
Parameters
id
- The id of the token to copy.numCopies
- The number of copies to create, defaults to1
fromMap
- The name of the map to copy from, defaults to the current map.updates
- a JSON Object that contains updates to be made to the copied Tokens.
You can use an empty string ("") for fromMap
for the current map as of b54.
The return type of this function is determined by the number of copies that you are making. If you are only creating a single
copy of the token then a string containing the Tokens id, if you are making more than one copy then a JSON Array
containing the Token ids of all the newly created Tokens is returned.
Updates parameter
updates
is a JSON Object that can contain one or more of the following fields. Field names are case-sensitive.
- name - The name of the new Token.
- label - The label for the new Token.
- gmName - The GM name for the new Token.
- layer - The layer for the new Token.
- x - The X Co-ordinate for the new Token. Default is
0
. - y - The Y Co-ordinate for the new Token. Default is
0
. - useDistance -
true
/1
orfalse
/0
. Determines if the "Distance Per Cell" measurement for the map is used for the x,y Co-ordinates. Unused if neitherx
nory
is specified. Default istrue
. - facing - Sets the facing for the Token. If the Token is on the background or object layer this sets the rotation.
- size - Sets the size of the Token.
The values for all of these fields are evaluated so all text within {}
or []
goes through the standard macro processing.
When the name is not changed using the updates
parameter the new name for the token follows the naming method for cut and paste.
This function can copy Tokens in the token, hidden, object, and background layers. If you do not override the destination using the
layer
field of updates
then the new copies are made in the same layer as the source. Likewise if x
and y
are not specified then these locations are the same as the source.
Example
[h: copyToken("Hero")]
Make a single copy of the Hero from another map.
[h: copyToken("Hero", 1, "Green Room")]
Or if you are playing paranoia and want to create six clones.
[h: copyToken("Hero", 6, "Clone Vat")]
But as a PC the new tokens don't get new names so we could give each of them a new name in b54+ using the following.
[h: cloneNo = 0]
[h: updates = "{
name: 'Hero Clone - [r: cloneNo = cloneNo + 1]'
}"
]
[h: cloneNo = 0]
[h: copyToken("Hero", 6, "Clone Vat", updates)]
This will copy all our clones to the current map but they are all on top of each other, to line them up
[h: cloneNo = 0]
[h: x = 0]
[h: updates = "{
name: 'Hero Clone - [r: cloneNo = cloneNo + 1]',
x: '[r: x = x + 2]',
y: 0
}"
]
[h: cloneNo = 0]
[h: copyToken("Hero", 6, "Clone Vat", updates)]
Or combining rotation
[h: cloneNo = 0]
[h: x = 0]
[h: facing = 0]
[h: updates = "{
name: 'Hero Clone - [r: cloneNo = cloneNo + 1]',
x: '[r: x = x + 2]',
y: 0,
facing: '[r: facing = facing + 40]'
}"
]
[h: cloneNo = 0]
[h: copyToken("Hero", 6, "Clone Vat", updates)]
And now we have tumbling clones:
The source token was configured as a Top Down token for this effect, otherwise the facing
setting would produce a facing arrow
for Tokens on the token or hidden layers.
See Also
Version Changes
- 1.3b54 - Added optional
updates
parameter. - 1.3b77 - Added
imagePortrait
toupdates
.