# Пользовательские дополнения

На главную

## EVENT_CLIENT_MESSAGE

Уведомление о приходе на клиент текстового сообщения.

Строковый код типа берётся из ресурса. Задается непосредственно в эффектах типа ClientData (серверный тип: gameMechanics.world.ClientData) в расширении InterfaceAction.

Рекомендуемый шаблон sysId:

    ENUM_CHAT_MESSAGE - сообщение выведется в чат
    ENUM_WARNING_MESSAGE - на экран (обычное)
    ENUM_WARNING_MESSAGE_RED - на экран (красное)
    ENUM_ANNOUNCE_MESSAGE - анонс красным цветом
    ENUM_MESSAGE_BOX - откроется мессаджбокс (интерфейсное окно с кнопкой закрытия) с сообщением
    ENUM_MODAL_MESSAGE - модальное окно (для пользователя доступен только мессаджбокс, остальной интерфейс не доступен)
    ENUM_Tutorial_ - в учебник
    ENUM_SOCIAL_NETWORKS_POST - в автоматический постинг сообщений в соц.сети

В сообщении передаются пары имя-значение параметров. Каждый из параметров может быть одним из пяти типов (строка, число, интерактивный объект, ресурсный объект, позиция). Каждому типу соответствует свое поле, в котором хранится информация о значении, а остальные поля пустые. То есть значение передано только в одном из полей-значений (objectId, position, resourceObject, int, text).

Enum CLIENT_DATA_PARAM_...^

    CLIENT_DATA_PARAM_MONEY - надо показать в денежном формате
    CLIENT_DATA_DRESS_SLOT - надо показать имя слота на персонаже (щит, шлем, костюм...)
    CLIENT_DATA_PLAYER_NAME - надо показать имя игрока (возможно, кликабельное)

    -- поля:
     objectId: ObjectId or nil - интерактивный объект, от которого пришло сообщение, если такая информация доступна
     sysId: string (enum) - строковый код типа
     text: WString - текст сообщения
     sysChatChannel: string or nil - строковый идентификатор канала в чате, если канал был задан. См. /ChatLog/Channels/ScriptMessageChannels.lua. Уровни вложенности конкатенируются через подчеркивание. Например: combat_damage_outgoing_miss
     sysDebugName: string or nil - отладочное поле, для девелоперской версии клиента - идентификатор ресурса, описывающего сообщение; для финальной версии - nil
     values: table of tables - индексированный с 0 список полученных параметров

     Каждый параметр представлен таблицей с полями:
       name: string - строковое имя параметра
       viewType: number (enum CLIENT_DATA_PARAM_...) or nil - если не nil, то параметр надо показать не обычным, а указанным способом

       и взаимоисключающие поля значения:

       objectId: ObjectId or nil - идентификатор интерактивного объекта, если получен объект
       position: GamePosition or nil - таблица с описанием координаты, если получена координата
       resourceObject: ValuedObject or nil - ValuedObject для ресурса, если получен ресурсный объект
       int: number(integer) or nil - число, если получено число
       text: WString or nil - строка, если получена строка
       resourceList: table of table or nil - если получен список ресурсных объектов, индексированная с 0 таблица таблиц описателей с полями:
         name: string - строковое имя параметра, полученное конкатенацией базового имени и индекса в таблице
         resourceObject: ValuedObject - ValuedObject для ресурса

#### Search: "CategoryLuaApi" "CategoryActionResult"

EnumActionFailCause
EnumActionResultSpecial
EventActionFailedExploit
EventActionFailedOther
EventActionFailedSpell
EventActionProcessTerminated
EventActionResultSpecialSpell
EventClientImageHideAll
EventClientImageShow
EventClientMessage
EventForagingFailed
EventTakeItemsFailed

#### Search: "CategoryLuaApi" "CategoryAction"

EnumActionFailCause
EnumActionResultSpecial
EventActionFailedExploit
EventActionFailedOther
EventActionFailedSpell
EventActionPanelChanged
EventActionPanelElementChanged
EventActionPanelElementEffect
EventActionProcessTerminated
EventActionProgressFinish
EventActionProgressFreeze
EventActionProgressStart
EventActionProgressUpdate
EventActionResultSpecialSpell
EventAEMarkPointClicked
EventAttackResult
EventAvatarDestinyPointsChanged
EventAvatarExperienceChanged
EventClientImageHideAll
EventClientImageShow
EventClientMessage
EventContextActionPointStarted
EventContextActionsChanged
EventHealingReceived
EventLootMark
EventMobEvaded
EventTakeItemsFailed
EventUnitHealReceivedTotal
FunctionAvatarBindItemToActionPanel
FunctionAvatarBindMountMetamorphToActionPanel
FunctionAvatarBindMountSkinToActionPanel
FunctionAvatarBindMountToActionPanel
FunctionAvatarBindSpellToActionPanel
FunctionAvatarGetActionInfo
FunctionAvatarGetAttackResult
FunctionAvatarGetContextActions
FunctionAvatarGetMaxActionCount
FunctionAvatarGetPetAggroMode
FunctionAvatarGetPetMoveMode
FunctionAvatarIsPetInCombat
FunctionAvatarPetAttack
FunctionAvatarSetPetAggroMode
FunctionAvatarSetPetMoveMode
FunctionAvatarStopCasting
FunctionAvatarSwapActionsInActionPanel
FunctionAvatarUnBindFromActionPanel

CategoryLuaApi CategoryEvent CategoryAction CategoryActionResult

На главную