GetResourceSettings

From Multi Theft Auto: Wiki

Jump to: navigation, search

This function returns a table of the resource settings.

Syntax

table getResourceSettings( resource theResource )

Required Arguments

  • theResource: The resource where you want to get the settings from.

Optional Arguments

Code

Click to collapse [-]
Serverside Script

function getResourceSettings(resource)
    local settingsTable = {}
    local name    = getResourceName (resource)
    local meta    = xmlLoadFile     (":"..name.."/meta.xml")
    local resroot = xmlFindChild    (meta,"settings",0)
    if (resroot) then
        for i,v in ipairs ( xmlNodeGetChildren ( resroot ) ) do
            local oldName      = xmlNodeGetAttribute(v,"name")
            local temp         = string.gsub(oldName,'[%*%#%@](.*)','%1')
            local newName      = string.gsub(temp,name..'%.(.*)','%1')
            local value        = xmlNodeGetAttribute(v,"value")
            local friendlyName = xmlNodeGetAttribute(v,"friendlyname")
            local accept       = xmlNodeGetAttribute(v,"accept")
            local desc         = xmlNodeGetAttribute(v,"desc")
            local group        = xmlNodeGetAttribute(v,"group")
            table.insert(settingsTable, {newName, value, friendlyName, accept, desc, group, i})
        end
    end
    xmlUnloadFile ( meta )
    return settingsTable
end

Example

Click to collapse [-]
Server

This example get's the settings count from a resource.

function getResourceSettings(resource)
    local settingsTable = {}
    local name    = getResourceName (resource)
    local meta    = xmlLoadFile     (":"..name.."/meta.xml")
    local resroot = xmlFindChild    (meta,"settings",0)
    if (resroot) then
        for i,v in ipairs ( xmlNodeGetChildren ( resroot ) ) do
            local oldName      = xmlNodeGetAttribute(v,"name")
            local temp         = string.gsub(oldName,'[%*%#%@](.*)','%1')
            local newName      = string.gsub(temp,name..'%.(.*)','%1')
            local value        = xmlNodeGetAttribute(v,"value")
            local friendlyName = xmlNodeGetAttribute(v,"friendlyname")
            local accept       = xmlNodeGetAttribute(v,"accept")
            local desc         = xmlNodeGetAttribute(v,"desc")
            local group        = xmlNodeGetAttribute(v,"group")
            table.insert(settingsTable, {newName, value, friendlyName, accept, desc, group, i})
        end
    end
    xmlUnloadFile ( meta )
    return settingsTable
end
 
-- define the command handler function
function countSettings(thePlayer, commandName, resourceName)
    local count = 0
    local settings = getResourceSettings(getResourceFromName(resourceName))
    for i,v in pairs(settings) do -- get the settings.
        count = v[6] -- get the settings count from the table.
    end
    outputChatBox("This resource has: ".. tonumber(count) .." settings.",thePlayer) -- output the count to the chatbox.
end
 
-- add the command handler
addCommandHandler("settings",countSettings)

Author: Castillo

See Also

Dialog-information.png This article needs checking.

Reason: The function I added at the bottom should be scripted by someone. --Ransom 21:45, 2 May 2012 (UTC)
  • callClientFunction » This function allows you to call any clientside function from the server's side.
  • callServerFunction » This function allows you to call any server-side function from the client's side.
  • centerWindow » This function center the window in any resolution.
  • Check » This function checks if it's arguments are of the right types and calls the error-function if one isn't.
  • doForAllElements » This function can be used to execute a specified function for all elements of a specified type.
  • dxDrawColorText » This function draws a dx text with #RRGGBB color codes support.
  • findRotation » Takes two points and returns the direction from point A to point B.
  • FormatDate » Formats a date on the basis of a format string and returns it.
  • getAge » This function calculates the age of a birthday.
  • getCursorMoveOn » This function checks in which way the cursor is currently moving.
  • getElementSpeed » This function allows you to get element speed in kph or mph units.
  • getResourceSettings » This function returns a table of the resource settings.
  • IfElse » Returns one of two values based on a boolean expression.
  • isLeapYear » Checks if the given year is a leap year.
  • iterElements » Returns an iterator for your for loops saving time typing ipairs( getElementsByType( type ) ), instead you type: iterElements( type ).
  • math.round » Rounds a number whereas the number of decimals to keep and the method may be set.
  • onVehicleWeaponFire » This code implements an event that is triggered when a player in a vehicle fires a vehicles weapon.
  • RGBToHex » This function returns a string representing the color in hexadecimal.
  • setElementSpeed » This function allows you to set moving element speed in kph or mph units.
  • setVehicleGravityPoint » This clientside function sets a vehicle's gravity in the direction of a 3 dimensional coordinate with the strength specified.
  • string.explode » This function splits a string at a given separator pattern and returns a table with the pieces.
  • table.copy » This function copies a whole table and all the tables in that table.
  • table.map » This function goes through a table and replaces every field with the return of the passed function, where the field's value is passed as first argument and optionally more arguments.
  • table.size » Finds the absolute size of a table.
  • toHex » This function converts a decimal number to a hexadecimal number, as a fix to be used clientside.
  • var_dump »This function outputs information about one or more variables using outputConsole().
  • multi_check » This function checks one element to many, handy and clean.
  • isElementInPhotograph » This function checks if an element was in the player's camera picture. This needs writing still. --Ransom 21:45, 2 May 2012 (UTC)