findToken: Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
(New page: ==Function encode== {{ProposedChange}} Encodes a string that was can be decoded with the decode() function. The decode() and encod...)
 
No edit summary
 
(18 intermediate revisions by 5 users not shown)
Line 1: Line 1:
==Function encode==
{{MacroFunction
{{ProposedChange}}
|name=findToken
|trusted=true
|version=1.3b48
|description=Finds a [[Token:token|token]] on the current [[Introduction to Mapping|map]] by the [[Token:token|token]] name, GM name, or ID and returns its id. If the optional ''mapname'' parameter is supplied that map will be searched instead. If the [[Token:token|token]] is not found then an empty string "" is returned.


|usage=
<syntaxhighlight lang="mtmacro" line>
findToken(tokenRef)
findToken(tokenRef,mapname)
</syntaxhighlight>
'''Parameters'''
{{param|name/ID|Either the token [[getSelected|{{code|id}}]] or [[getTokenName|Token Name]] of the token.}}
{{param|mapname|Optional name of the map to search for the token on.}}
{{Note|Token IDs are unique, but Token Names can be duplicated. Using Token Name when more than one token has the same name can produce unexpected results.}}


Encodes a string that was can be decoded with the [[Macros:Function:decode|decode()]] function. The [[Macros:Function:decode | decode()]] and encode() functions can be used to encode a property list so that it can be embedded within another property list.
|example=
Search for token on current map
<syntaxhighlight lang="mtmacro" line>
[h: id = findToken("Hero")]
[if (id == "", "Token not found!", "Token found")]
</syntaxhighlight>
Search for token on current map and then search the map named ''Stash'' if not found.
<syntaxhighlight lang="mtmacro" line>
<!-- Prompts for "TokenName" as it isn't already defined -->
[h: name = TokenName]
[h: id = findToken(name)]
[r, if(id == ""), code: {
Not on current map. Searching Stash.<br>
<!-- Search on the map named "Stash" -->
[h: id = findToken(name, "Stash")]
[r: if(id == "", name + " not found!", name + " found in Stash")]
};{
[r: name] found on map [r: getCurrentMapName()].
}]
</syntaxhighlight>


 
}}
===Usage===
[[Category:Find Function]][[Category:Token Function]]
<source lang="mtmacro" line>
[h: str = encode(string)]
</source>
 
===Examples===
<source lang="mtmacro" line>
[h: innerPropList = encode("val1=blah;val2=blahblah")]
[h: props = setStrProp(props, key, innerPropList)]
</source>

Latest revision as of 02:29, 13 May 2024

findToken() Function

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

Introduced in version 1.3b48
Finds a token on the current map by the token name, GM name, or ID and returns its id. If the optional mapname parameter is supplied that map will be searched instead. If the token is not found then an empty string "" is returned.

Usage

findToken(tokenRef)
findToken(tokenRef,mapname)

Parameters

  • name/ID - Either the token id or Token Name of the token.
  • mapname - Optional name of the map to search for the token on.
Token IDs are unique, but Token Names can be duplicated. Using Token Name when more than one token has the same name can produce unexpected results.

Example

Search for token on current map
[h: id = findToken("Hero")]
[if (id == "", "Token not found!", "Token found")]

Search for token on current map and then search the map named Stash if not found.

<!-- Prompts for "TokenName" as it isn't already defined -->
[h: name = TokenName]
[h: id = findToken(name)]
[r, if(id == ""), code: {
	Not on current map. Searching Stash.<br>
	<!-- Search on the map named "Stash" -->
	[h: id = findToken(name, "Stash")]
	[r: if(id == "", name + " not found!", name + " found in Stash")]
};{
	[r: name] found on map [r: getCurrentMapName()].
}]