HasElementData: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Credits: Lordmau5)
 
m (Improve upon the example)
Line 22: Line 22:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function favoriteAnimal ( source, commandName, playerName )
function favoriteAnimal ( source, commandName, playerName )
if ( playerName ) then -- see if a player was specified
    local thePlayer = source
thePlayer = getPlayerFromName ( playerName ) -- get the player element for the specified player
if playerName then -- see if a player was specified
if ( thePlayer ) then -- if one was found...
        thePlayer = getPlayerFromName (playerName) -- get the player element for the specified player
if ( hasElementData ( thePlayer, "favoriteAnimal" ) ) then -- check if the player has a favorite animal set
        if not thePlayer then -- if we still couldn't find a player with the specified name...
local favoriteAnimal = getElementData ( thePlayer, "favoriteAnimal" ) -- get the player's favorite animal
            outputChatBox ( "Couldn't find '" .. playerName .. "'", source ) -- display an error
outputChatBox ( getPlayerName ( thePlayer ).."'s favorite animal is: "..favoriteAnimal, source ) -- output the player's favorite animal
            return
else
        end
outputChatBox ( getPlayerName ( thePlayer ).." does not have a favorite animal!", source ) -- output the player's lack of a favorite animal
    end
end
 
else
    if hasElementData ( thePlayer, "favoriteAnimal" ) then -- check if the player has a favorite animal set
outputChatBox ( "Couldn't find '" .. playerName .. "'", source ) -- display an error
        local favoriteAnimal = getElementData ( thePlayer, "favoriteAnimal" ) -- get the player's favorite animal
end
        outputChatBox ( getPlayerName ( thePlayer ).."'s favorite animal is: "..favoriteAnimal, source ) -- output the player's favorite animal
else
    else
if ( hasElementData ( source, "favoriteAnimal" ) ) then -- check if the player has a favorite animal set
        outputChatBox ( getPlayerName ( thePlayer ).." does not have a favorite animal!", source ) -- output the player's lack of a favorite animal
local favoriteAnimal = getElementData ( source, "favoriteAnimal" ) -- get the player's favorite animal
    end
outputChatBox ( "Your favorite animal is: "..favoriteAnimal, source ) -- output the player's favorite animal
else
outputChatBox ( "You do not have a favorite animal!", source ) -- output the player's lack of a favorite animal
end
end
end
end
-- Add a console command joinTime, that takes an optional parameter of a player's name
-- Add a console command joinTime, that takes an optional parameter of a player's name

Revision as of 18:24, 20 March 2020

This function checks if an element has element data available under a certain key.

Syntax

bool hasElementData ( element theElement, string key [, bool inherit = true] )

OOP Syntax Help! I don't understand this!

Method: element:hasData(...)


Required Arguments

  • theElement: This is the element with data you want to check.
  • key: The name of the element data entry you want to check for. (Maximum 31 characters.)

Optional Arguments

  • inherit: - toggles whether or not the function should go up the hierarchy to find the requested key in case the specified element doesn't have it.

Returns

This function returns true if the element contains element data for key, or false if the element doesn't exist or there is no data associated with the key.

Example

This example outputs a player's favorite animal using a console function 'favoriteAnimal' if they have one set.

Click to collapse [-]
Server
function favoriteAnimal ( source, commandName, playerName )
    local thePlayer = source
	if playerName then -- see if a player was specified
        thePlayer = getPlayerFromName (playerName) -- get the player element for the specified player
        if not thePlayer then -- if we still couldn't find a player with the specified name...
            outputChatBox ( "Couldn't find '" .. playerName .. "'", source ) -- display an error
            return
        end
    end

    if hasElementData ( thePlayer, "favoriteAnimal" ) then -- check if the player has a favorite animal set
        local favoriteAnimal = getElementData ( thePlayer, "favoriteAnimal" ) -- get the player's favorite animal
        outputChatBox ( getPlayerName ( thePlayer ).."'s favorite animal is: "..favoriteAnimal, source ) -- output the player's favorite animal
    else
        outputChatBox ( getPlayerName ( thePlayer ).." does not have a favorite animal!", source ) -- output the player's lack of a favorite animal
    end
end
-- Add a console command joinTime, that takes an optional parameter of a player's name
addCommandHandler ( "favoriteAnimal", favoriteAnimal )

Requirements

Minimum server version 1.5.7-20447
Minimum client version 1.5.7-20447

Note: Using this feature requires the resource to have the above minimum version declared in the meta.xml <min_mta_version> section. e.g. <min_mta_version server="1.5.7-20447" client="1.5.7-20447" />

See Also