RU/getAccountData: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 2: Line 2:
__NOTOC__
__NOTOC__
{{RU/Note_box|Настоятельно рекомендуется использовать формат ''module.key'' в названиях ключей, как показано в примере ниже. Это помогает избегать противоречий между разными скриптами.}}
{{RU/Note_box|Настоятельно рекомендуется использовать формат ''module.key'' в названиях ключей, как показано в примере ниже. Это помогает избегать противоречий между разными скриптами.}}
Эта функция получает строку, которая была сохранена при помощи [[RU/setAccountData|setAccountData]]. Данные аккаунта действуют на протяжении всей сессии, если это не гостевой аккаунт.
Эта функция получает строку, которая была сохранена при помощи [[RU/setAccountData|setAccountData]]. Данные, хранящиеся как данные учетной записи, сохраняются в игре, если это не аккаунт ''guest'' (гость).


==Синтаксис==  
==Синтаксис==  
Line 8: Line 8:
string getAccountData(account theAccount, string key)
string getAccountData(account theAccount, string key)
</syntaxhighlight>  
</syntaxhighlight>  
{{RU/OOP|Эта функция является статической функцией класса account.|[[RU/Account|account]]:getData||setAccountData}}
{{RU/OOP||[[RU/Account|account]]:getData||setAccountData}}
===Обязательные аргументы===  
===Обязательные аргументы===  
*'''theAccount:''' Аккаунт, данные которого Вы хотите получить.
*'''theAccount:''' [[RU/Account|Аккаунт]], данные которого Вы хотите получить.
*'''key:''' Ключ, под которым хранятся данные.
*'''key:''' Ключ, под которым хранятся данные.


===Возвращаемые значения===
===Возвращаемые значения===
Возвращает [[строка|строку]], содержащую данные, или ''false'', если данные не были сохранены под этим ключом.
Возвращает [[RU/String|строку]], содержащую данные, или ''false'', если данные не были сохранены под этим ключом.


==Пример использования==
==Пример использования==
<section name="Сервер" class="server" show="false">  
<section name="Сервер" class="server" show="false">  
'''Пример 1.''' Для пиратского ролевого игрового режима сумма денег, которую имеет игрок, постоянно сохраняется, сохраняя её в своем аккаунте. Обратите внимание, что код использует ''piraterpg.money'' как ключ, а не просто ''money'', так как игрок может участвовать в других игровых режимах, которые также сохраняют его денежную сумму на его счёт. Если оба типа игровых режимов будут использовать ''money'' в качестве ключа аккаунта, они перепишут данные друг друга.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function onPlayerQuit()
function onPlayerQuit()
       local playerAccount = getPlayerAccount(source) -- получаем его аккаунт
       local playerAccount = getPlayerAccount(source)
       if(playerAccount) then -- если мы получили аккаунт, то
       if(playerAccount) then
             local playerMoney = getPlayerMoney(source) -- получаем количество его денег
             local playerMoney = getPlayerMoney(source)
             setAccountData(playerAccount, "piraterpg.money", playerMoney) -- сохраняем текущее количество денег в данные аккаунта
             setAccountData(playerAccount, "piraterpg.money", playerMoney)
       end
       end
end
end
addEventHandler("onPlayerQuit", getRootElement(), onPlayerQuit) -- добавляем обработчик события
addEventHandler("onPlayerQuit", getRootElement(), onPlayerQuit)


function onPlayerLogin()
function onPlayerLogin(_,account)
      -- при входе игрока, получаем количество денег из данных его аккаунта и устанавливаем их
    local playerMoney = getAccountData(account, "piraterpg.money")
      local playerAccount = getPlayerAccount(source) -- получаем его аккаунт
    if(playerMoney) then
      if(playerAccount) then -- если мы получили аккаунт, то
        setPlayerMoney(source, playerMoney)
            local playerMoney = getAccountData(playerAccount, "piraterpg.money") -- получаем количество денег, которое хранится в данных аккаунта
    end
            -- убедимся, что значение действительно хранится под этим ключом
            if(playerMoney) then
                  setPlayerMoney(source, playerMoney)
            end
      end
end
end
addEventHandler("onPlayerLogin", getRootElement(), onPlayerLogin) -- добавляем обработчик события
 
addEventHandler("onPlayerLogin", getRootElement(), onPlayerLogin)
</syntaxhighlight>
</syntaxhighlight>
</section>
</section>

Revision as of 11:18, 30 September 2017

Заметка: Настоятельно рекомендуется использовать формат module.key в названиях ключей, как показано в примере ниже. Это помогает избегать противоречий между разными скриптами.

Эта функция получает строку, которая была сохранена при помощи setAccountData. Данные, хранящиеся как данные учетной записи, сохраняются в игре, если это не аккаунт guest (гость).

Синтаксис

string getAccountData(account theAccount, string key)

Синтаксис ООП Помогите! Я не понимаю, что это!

Метод: account:getData(...)
Парная функция: setAccountData

Обязательные аргументы

  • theAccount: Аккаунт, данные которого Вы хотите получить.
  • key: Ключ, под которым хранятся данные.

Возвращаемые значения

Возвращает строку, содержащую данные, или false, если данные не были сохранены под этим ключом.

Пример использования

Click to expand [+]
Сервер

Смотрите также

Серверные функции

  • addAccount - регистрирует аккаунт
  • copyAccountData - копирует данные аккаунта в другой
  • getAccount - получает аккаунт указанного пользователя
  • getAccountByID - получает аккаунт с указанным ID
  • getAccountData - получает указанные данные аккаунта
  • getAccountID - получает ID указанного аккаунта
  • getAccountIP - получает IP указанного аккаунта
  • getAccountName - получает имя аккаунта
  • getAccountPlayer - получает активного пользователя аккаунта
  • getAccountSerial - получает серийный номер аккаунта
  • getAccounts - получает все зарегистрированные аккаунты
  • getAccountsByData - получает аккаунты с указанными сохранёнными данными
  • getAccountsByIP - получает аккаунт с указанным IP
  • getAccountsBySerial - получает все аккаунты с указанным серийным номером
  • getAllAccountData - получает все данные аккаунта
  • getPlayerAccount - получает аккаунт указанного игрока
  • isGuestAccount - проверяет, является ли аккаунт гостевым
  • logIn - авторизует игрока под указанный аккаунт
  • logOut - выходит из аккаунта указанного игрока
  • removeAccount - удаляет аккаунт
  • setAccountData - сохраняет данные в аккаунте
  • setAccountName - устанавливает имя аккаунту
  • setAccountPassword - устанавливает пароль аккаунта