GetAccountData: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
Line 19: Line 19:
For a pirate roleplaying gametype, the amount of money a player has is made persistent by storing it in his account. Note the code uses "piraterpg.money" as key instead of just "money", as the player may be participating in other gametypes that also save his money amount to his account. If both gametypes would use "money" as the account key, they'd overwrite each other's data.
For a pirate roleplaying gametype, the amount of money a player has is made persistent by storing it in his account. Note the code uses "piraterpg.money" as key instead of just "money", as the player may be participating in other gametypes that also save his money amount to his account. If both gametypes would use "money" as the account key, they'd overwrite each other's data.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function onPlayerQuit ( )
function onPlayerQuit()
      -- when a player leaves, store his current money amount in his account data
       local playerAccount = getPlayerAccount(source) -- get his account
       local playeraccount = getPlayerAccount ( source )
       if (playerAccount) then -- if we got the account then
       if ( playeraccount ) then
             local playerMoney = getPlayerMoney(source) -- get his money amount
             local playermoney = getPlayerMoney ( source )
             setAccountData(playerAccount, "piraterpg.money", playerMoney) -- store his current money amount in his account data
             setAccountData ( playeraccount, "piraterpg.money", playermoney )
       end
       end
end
end
addEventHandler("onPlayerQuit", getRootElement(), onPlayerQuit) -- add an event handler


function onPlayerJoin ( )
function onPlayerLogin()
       -- when a player joins, retrieve his money amount from his account data and set it
       -- when a player logins, retrieve his money amount from his account data and set it
       local playeraccount = getPlayerAccount ( source )
       local playerAccount = getPlayerAccount(source) -- get his account
       if ( playeraccount ) then
       if (playerAccount) then -- if we got the account then
             local playermoney = getAccountData ( playeraccount, "piraterpg.money" )
             local playerMoney = getAccountData(playerAccount, "piraterpg.money") -- get the money amount was store in his account data
             -- make sure there was actually a value saved under this key (check if playermoney is not false).
             -- make sure there was actually a value saved under this key (check if playerMoney is not false).
             -- this will for example not be the case when a player plays the gametype for the first time
             -- this will for example not be the case when a player plays the gametype for the first time
             if ( playermoney ) then
             if (playerMoney) then
                   setPlayerMoney ( source, playermoney )
                   setPlayerMoney(source, playerMoney)
             end
             end
       end
       end
end
end
 
addEventHandler("onPlayerLogin", getRootElement(), onPlayerLogin) -- add an event handler
addEventHandler ( "onPlayerQuit", getRootElement ( ), onPlayerQuit )
addEventHandler ( "onPlayerJoin", getRootElement ( ), onPlayerJoin )
</syntaxhighlight>
</syntaxhighlight>


==See Also==
==See Also==
{{Account_functions}}
{{Account_functions}}

Revision as of 23:09, 23 December 2011

This template is no longer in use as it results in poor readability. This function retrieves a string that has been stored using setAccountData. Data stored as account data is persistent across user's sessions and maps, unless they are logged into a guest account.

Syntax

string getAccountData ( account theAccount, string key )

Required Arguments

  • theAccount: The account you wish to retrieve the data from.
  • key: The key under which the data is stored

Returns

Returns a string containing the stored data or false if no data was stored under that key.

Example

For a pirate roleplaying gametype, the amount of money a player has is made persistent by storing it in his account. Note the code uses "piraterpg.money" as key instead of just "money", as the player may be participating in other gametypes that also save his money amount to his account. If both gametypes would use "money" as the account key, they'd overwrite each other's data.

function onPlayerQuit()
      local playerAccount = getPlayerAccount(source) -- get his account
      if (playerAccount) then -- if we got the account then
            local playerMoney = getPlayerMoney(source) -- get his money amount
            setAccountData(playerAccount, "piraterpg.money", playerMoney) -- store his current money amount in his account data
      end
end
addEventHandler("onPlayerQuit", getRootElement(), onPlayerQuit) -- add an event handler

function onPlayerLogin()
      -- when a player logins, retrieve his money amount from his account data and set it
      local playerAccount = getPlayerAccount(source) -- get his account
      if (playerAccount) then -- if we got the account then
            local playerMoney = getAccountData(playerAccount, "piraterpg.money") -- get the money amount was store in his account data
            -- make sure there was actually a value saved under this key (check if playerMoney is not false).
            -- this will for example not be the case when a player plays the gametype for the first time
            if (playerMoney) then
                  setPlayerMoney(source, playerMoney)
            end
      end
end
addEventHandler("onPlayerLogin", getRootElement(), onPlayerLogin) -- add an event handler

See Also