Выдает известную информацию о письме.
-- библиотека:
mailBox
-- объявление:
function RequestMailInfo( mailId )
-- параметры:
mailId: ObjectId - уникальный идентификатор письма
-- возвращаемые значения:
table or nil - информация о письме или nil, если письма нет или оно удалено, поля:
header: table or nil - краткая информация о письме или nil, если информация недоступна в данный момент, поля:
participantName: WString - имя получателя или отправителя. Замечание: нужно игнорировать, если письмо шаблонное (есть mailTemplate).
subject: WString - тема письма. Замечание: нужно игнорировать, если письмо шаблонное (есть mailTemplate).
hasMoney: boolean - содержит ли письмо денежное вложение
hasItems: boolean - содержит ли письмо вложение в виде предметов
isReturned: boolean - было ли письмо возвращено адресатом
isReturnAllowed: boolean - можно ли это письмо возвращать
isReadByRecipient: boolean - было ли письмо прочитано адресатом
isReadByOwner: boolean - было ли письмо прочитано отправителем (в случае возврата)
isFromSystem: boolean - является ли письмо системным (например, от аукциона и т.п.), системные письма нельзя возвращать отправителю
remainingTime: table - таблица с информацией об оставшемся времени нахождения письма в ящике, поля:
d: number (int) - дни
h: number (int) - часы
m: number (int) - минуты
s: number (int) - секунды
body: table or nil - расширенная информация о письме или nil, если информация недоступна в данный момент, поля:
text: WString - тело письма. Замечание: нужно игнорировать, если письмо шаблонное (есть mailTemplate).
money: number (int64) - денежная сумма
itemSlotCount: number (int) - количество слотов для предметов (т.к. могут быть пустые)
items: таблица предметов, индексация [0..], значения: ObjectId or nil - идентификатор предмета или nil, если предмет уже извлечен из письма
mailTemplate: table or nil - если письмо шаблонное (от системы), то таблица с информацией о шаблоне письма, иначе nil, поля для таблицы:
sysName: string - системное имя шаблона
subject: WString - локализованный текст с информацией о предмете письма (может быть ValuedText)
from: WString - локализованный текст с информацией об отправителе письма (может быть ValuedText)
body: WString - локализованный текст с информацией о теме письма (может быть ValuedText)
denyRemoveMailWithItems: boolean - можно ли удалять письмо с предметами
clientDataParams: таблица с параметрами для шаблона, по формату аналогична полю values из EVENT_CLIENT_MESSAGE
-- пример:
local info = mailBox.RequestMailInfo( mailId )
if not info then
return
end
local header = info.header
if header then
LogInfo( " participantName: ", debugCommon.FromWString( header.participantName ) )
LogInfo( " subject: ", debugCommon.FromWString( header.subject ) )
LogInfo( " hasMoney: ", header.hasMoney )
LogInfo( " hasItems: ", header.hasItems )
LogInfo( " isReturned: ", header.isReturned )
LogInfo( " isReadByRecipient: ", header.isReadByRecipient )
LogInfo( " isReadByOwner: ", header.isReadByOwner )
end
if body then
LogInfo( " text: ", debugCommon.FromWString( body.text ) )
LogInfo( " money: ", body.money )
LogInfo( " item slots count: ", body.itemSlotCount )
for i = 0, body.itemSlotCount - 1 do
local itemId = body.items[i]
if itemId then
local info = avatar.GetItemInfo( itemId )
if info then
LogInfo( "item: ", i, ", name: ", debugCommon.FromWString( info.name ) )
else
LogInfo( "wrong item info" )
end
else
LogInfo( "empty item slot" )
end
end
end
if template then
LogInfo( "sysName: ", template.sysName )
LogInfo( "subject: ", FromWs( template.subject ) )
LogInfo( "from: ", FromWs( template.from ) )
LogInfo( "body: ", FromWs( template.body ) )
end
См. также EVENT_CLIENT_MESSAGE.