setOwner: Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
m (Conversion script moved page SetOwner to setOwner: Converting page titles to lowercase)
No edit summary
Line 6: Line 6:


|usage=
|usage=
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
setOwner(ownerName)
setOwner(ownerName)
setOwner(ownerName, id)
setOwner(ownerName, id)
Line 13: Line 13:
setOwner(ownerNames, id)
setOwner(ownerNames, id)
setOwner(ownerNames, id, mapname)
setOwner(ownerNames, id, mapname)
</source>
</syntaxhighlight>
'''Parameters'''
'''Parameters'''
{{param|ownerName|The player name to set the ownership on the token.  Ownership is not constrained to the client names currently connected, but only currently connected clients appear in the Token Editor Dialog.  This parameter is a [[String]].  An empty string here is treated as an empty JSON array (see next parameter). }}
{{param|ownerName|The player name to set the ownership on the token.  Ownership is not constrained to the client names currently connected, but only currently connected clients appear in the Token Editor Dialog.  This parameter is a [[String]].  An empty string here is treated as an empty JSON array (see next parameter). }}
Line 23: Line 23:
|examples=
|examples=
To change the [[Introduction_to_Tokens#Ownership|owners]] of the [[Current Token]] to a single user use:
To change the [[Introduction_to_Tokens#Ownership|owners]] of the [[Current Token]] to a single user use:
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: setOwner("Frank")]
[h: setOwner("Frank")]
</source>
</syntaxhighlight>


To change the [[Introduction_to_Tokens#Ownership|owners]] of the [[Current Token]] to a list of three players use:
To change the [[Introduction_to_Tokens#Ownership|owners]] of the [[Current Token]] to a list of three players use:
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: setOwner("['Peter', 'Paul', 'Mary']")]
[h: setOwner("['Peter', 'Paul', 'Mary']")]
</source>
</syntaxhighlight>
or:
or:
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: list = json.append("[]", "Peter", "Paul", "Mary")]
[h: list = json.append("[]", "Peter", "Paul", "Mary")]
[h: setOwner(list)]
[h: setOwner(list)]
</source>
</syntaxhighlight>


To make all current players [[Introduction_to_Tokens#Ownership|owners]] of the [[Current Token]] use:
To make all current players [[Introduction_to_Tokens#Ownership|owners]] of the [[Current Token]] use:
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: setOwner(getAllPlayerNames("json"))]
[h: setOwner(getAllPlayerNames("json"))]
</source>
</syntaxhighlight>


To remove all [[Introduction_to_Tokens#Ownership|owners]] of the [[Current Token]] use:
To remove all [[Introduction_to_Tokens#Ownership|owners]] of the [[Current Token]] use:
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: setOwner("")]
[h: setOwner("")]
</source>
</syntaxhighlight>
or:
or:
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: setOwner("[]")]
[h: setOwner("[]")]
</source>
</syntaxhighlight>


To display the current [[Introduction_to_Tokens#Ownership|owners]] of the [[Current Token]] as checkboxes, then accept the user's changes to apply back onto the token, use the following.  Note that this example does not provide for adding owners to the list, only removing them.  (Adding owners would require the use of {{func|getAllPlayerNames}} and would make this example even more complex.)
To display the current [[Introduction_to_Tokens#Ownership|owners]] of the [[Current Token]] as checkboxes, then accept the user's changes to apply back onto the token, use the following.  Note that this example does not provide for adding owners to the list, only removing them.  (Adding owners would require the use of {{func|getAllPlayerNames}} and would make this example even more complex.)
<source lang="mtmacro" line>
<syntaxhighlight lang="mtmacro" line>
[h: names = getOwners("json")]
[h: names = getOwners("json")]
[h: input = "tab0 | OwnerList || TAB"]
[h: input = "tab0 | OwnerList || TAB"]
Line 66: Line 66:
     newOwners = if(eval("ckb_"+x)==0, newOwners, json.append(newOwners, json.get(names, x))) ]
     newOwners = if(eval("ckb_"+x)==0, newOwners, json.append(newOwners, json.get(names, x))) ]
[h: setOwner(newOwners)]
[h: setOwner(newOwners)]
</source>
</syntaxhighlight>


|also=
|also=

Revision as of 20:47, 14 March 2023

setOwner() Function

Introduced in version 1.3b48?
Changes the owners of a token (default is the Current Token) when given a String owner name or JSON Array of owner names. All other owners are removed.

Usage

setOwner(ownerName)
setOwner(ownerName, id)
setOwner(ownerName, id, mapname)
setOwner(ownerNames)
setOwner(ownerNames, id)
setOwner(ownerNames, id, mapname)

Parameters

  • ownerName - The player name to set the ownership on the token. Ownership is not constrained to the client names currently connected, but only currently connected clients appear in the Token Editor Dialog. This parameter is a String. An empty string here is treated as an empty JSON array (see next parameter).
  • ownerNames - The player names to set the ownership on the token. Ownership is not constrained to the client names currently connected, but only currently connected clients appear in the Token Editor Dialog. This parameter is a JSON Array.
  • id - The token id of the token which has its owners changed, defaults to the Current Token.

     Note: This parameter can only be used in a Trusted Macro

  • mapname - The name of the map to find the token. Defaults to the current map.

Examples

To change the owners of the Current Token to a single user use:
[h: setOwner("Frank")]

To change the owners of the Current Token to a list of three players use:

[h: setOwner("['Peter', 'Paul', 'Mary']")]

or:

[h: list = json.append("[]", "Peter", "Paul", "Mary")]
[h: setOwner(list)]

To make all current players owners of the Current Token use:

[h: setOwner(getAllPlayerNames("json"))]

To remove all owners of the Current Token use:

[h: setOwner("")]

or:

[h: setOwner("[]")]

To display the current owners of the Current Token as checkboxes, then accept the user's changes to apply back onto the token, use the following. Note that this example does not provide for adding owners to the list, only removing them. (Adding owners would require the use of getAllPlayerNames() and would make this example even more complex.)

[h: names = getOwners("json")]
[h: input = "tab0 | OwnerList || TAB"]
[h: count = 0]
[h, foreach(name, names), code: {
    [input = input + strformat(" ## ckb_%{count}|1|%{name}|CHECK")]
    [count = count+1]
} ]
[h: cancel = input(input)]
[h: abort(cancel)]
[h: newOwners = "[]"]
[h, for(x,0,count):
    newOwners = if(eval("ckb_"+x)==0, newOwners, json.append(newOwners, json.get(names, x))) ]
[h: setOwner(newOwners)]

See Also

Version Changes

  • 1.3b51 - Added id parameter option.
  • 1.5.4 - Added mapname parameter option.