GetThisResource: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (Added comments to example usage)
 
(22 intermediate revisions by 11 users not shown)
Line 1: Line 1:
__NOTOC__  
{{Server client function}}
__NOTOC__
This function retrieves the resource from which the function call was made.
This function retrieves the resource from which the function call was made.
{{Note| Every resource has a predefined global variable called ''resource'' that contains the resource pointer for that resource, in other words, the value that this function returns.}}


==Syntax==  
==Syntax==  
Line 6: Line 8:
resource getThisResource ( )
resource getThisResource ( )
</syntaxhighlight>
</syntaxhighlight>
{{OOP|This function is a static function underneath the Resource class.|[[Resource]].getThis}}


===Returns===
===Returns===
Returns the resource in which the current script is.
Returns the resource in which the current script is.


==Example==  
==Example==
This example retrieves the current resource's root element and attaches it to an onResourceStart event handler. This causes the event handler to get called only when the ''current'' resource is started rather than when ''any'' resource is started, thereby reducing unnecessary overhead.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function onStartInScoresResource(resource)
local thisResource = getThisResource()
    local thisResource = getThisResource() -- get the resource that this script is a part of
local resRoot = getResourceRootElement(thisResource)
    if (resource == thisResource) then -- make sure the resource that started is the one this script is a part of
 
          -- Note: without this check, the operations below would execute whenever ANY resource is loaded
addEventHandler("onResourceStart", resRoot, function()
          -- perform some operations this script will be used for, in this case keeping track of player scores and money:
  local resourceName = getResourceName(thisResource)
          local players = getElementsByType("player")
  iprint("You are in the " .. resourceName .. " resource!")
          for playerKey, playerValue in ipairs(players) do
  iprint(thisResource == resource) -- true
              setPlayerMoney(playerValue, 500)
  iprint(resRoot == resourceRoot) -- true
              setElementData(playerValue, "score", 0)
end)
          end
    end
end  
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), onStartInScoresResource)  
</syntaxhighlight>
</syntaxhighlight>


==See Also==
==See Also==
{{Resource_functions}}
{{Resource_functions}}
[[Category:Needs_Checking]]

Latest revision as of 19:40, 14 March 2023

This function retrieves the resource from which the function call was made.

[[{{{image}}}|link=|]] Note: Every resource has a predefined global variable called resource that contains the resource pointer for that resource, in other words, the value that this function returns.

Syntax

resource getThisResource ( )

OOP Syntax Help! I don't understand this!

Note: This function is a static function underneath the Resource class.
Method: Resource.getThis(...)


Returns

Returns the resource in which the current script is.

Example

This example retrieves the current resource's root element and attaches it to an onResourceStart event handler. This causes the event handler to get called only when the current resource is started rather than when any resource is started, thereby reducing unnecessary overhead.

local thisResource = getThisResource()
local resRoot = getResourceRootElement(thisResource)

addEventHandler("onResourceStart", resRoot, function()
   local resourceName = getResourceName(thisResource)
   iprint("You are in the " .. resourceName .. " resource!")
   iprint(thisResource == resource) -- true
   iprint(resRoot == resourceRoot) -- true
end)

See Also