GetElementChildren: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
Line 1: Line 1:
__NOTOC__  
__NOTOC__  
{{Server client function}}
{{Server client function}}
This function is used to retreive a list of child elements as they appear in the element table. Without passing each element in the table through [[getElementType]], you wont know what you have though.
This function is used to retrieve a list of child elements as they appear in the element table. Without passing each element in the table through [[getElementType]], you won't know what you have though.


==Syntax==  
==Syntax==  
Line 18: Line 18:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<team1 id="red">
<team1 id="red">
<base name="Mountain Top" />
<base name="Mountain Top" />
<base name="Docks" />
<base name="Docks" />
<base name="Airport" />
<base name="Airport" />
<anything name="no base" />
<anything name="no base" />
</team1>
</team1>
</syntaxhighlight>
</syntaxhighlight>
This example outputs the child elements of the element with id 'red', when the player enters the 'teamElements' command.
This example outputs the child elements of the element with id 'red', when the player enters the 'teamElements' command.
Line 28: Line 28:
function showTeamElements(player,command)
function showTeamElements(player,command)
local team = getElementByID("red") -- get the team element
local team = getElementByID("red") -- get the team element
local elements = getElementChildren(team) -- the the child elements
local elements = getElementChildren(team) -- the child elements
for k,v in ipairs(elements) do
for k,v in ipairs(elements) do
outputChatBox(getElementType(v)..": "..getElementData(v,"name")) -- output text
outputChatBox(getElementType(v)..": "..getElementData(v,"name")) -- print the type and name of each child
end
end
end
end

Revision as of 14:49, 15 August 2007

This function is used to retrieve a list of child elements as they appear in the element table. Without passing each element in the table through getElementType, you won't know what you have though.

Syntax

table getElementChildren ( element parent ) 

Required Arguments

  • parent: Supply this argument with the parent of the children you want returned.

Returns

This function returns a table that contains a list of elements that the parent has. If the element has no children, it will return an empy table. It will return false if the parent element does not exist.

Example

With this map file:

<team1 id="red">
	<base name="Mountain Top" />
	<base name="Docks" />
	<base name="Airport" />
	<anything name="no base" />
 </team1>

This example outputs the child elements of the element with id 'red', when the player enters the 'teamElements' command.

function showTeamElements(player,command)
	local team = getElementByID("red") -- get the team element
	local elements = getElementChildren(team) -- the child elements
	for k,v in ipairs(elements) do
		outputChatBox(getElementType(v)..": "..getElementData(v,"name")) -- print the type and name of each child
	end
end
addCommandHandler("teamElements",showTeamElements)

At a later point you could loop through all the elements and process their contents any way you wish. Remember to make sure you have the CURRENT list of elements though. If you get the root element children, then wait a while for things to change, this list won't be up to date unless you use getElementChildren again.

See Also