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

На главную


Слеш-команды

Клиент поддерживает автоматический разбор и исполнение строки ввода с учетом слеш-команд. Слеш-команды могут иметь префикс (например, команды "/say" или "/tell" убираются из чата, показывая вместо этого префикс и оставляя только текст сообщения) или не иметь его (например, команда "/invite" пишется просто в строку никак не меняя ее).

Типичная схема работы со слеш-командами. Берется текст из EditLine и помещается в строку разбора чата миссии. Результат анализируется, при необходимости показывается префикс и оставшийся текст помещается обратно в EditLine. Строка разбора чата миссии при этом запоминает, какая была введена слеш-команда. В любой момент можно выполнить строку разбора чата миссии. Необходимые команды будут выполнены автоматически, а состояние очищено (аналог нажатия "Enter" в чате). Также очистить состояние можно явно в любой момент (аналог нажатия "Esc" в чате). При выполнении или очистке строки разбора чата миссии также нужно явно обновлять EditLine чата в игре (очищать или переформатировать).

Настройки слеш-команд хранятся в /Client/GameStateRoot.xdb, поле "slashCommands".

В текущей реализации поддерживаются два вида "слеша": "/" и "\". Т.е. будет работать как команда "/command", так и "\command". В дальнейшем настройка вида "слешей" планируется через базу.

В текущей реализации объекты в строке ввода чата игнорируются. В дальнейшем они также должны будут разбираться (например, для отправки через сервер и т.п.).

Комментарий к описанию команд, описанных ниже:

* Если у команды есть префикс, то вместе с именем команды разбираются дополнительные аргументы (нужны для формирования префикса). Количество (дополнительных) аргументов прописано в базе (может быть 0). Оставшая строка является основным аргументом (есть всегда) и передается в команду без дополнительного разбора.

* Если у команды нет префикса, то количество аргументов зависит от команды. Для этого случая количество аргументов в базе прописано в -1 (нет префикса и его разбора).

Текущие доступные слеш-команды:

* чат:

* /say - префикс, без дополнительных аргументов

* /tell - префикс, 1 дополнительный аргумент - имя игрока

* /party - префикс, без дополнительных аргументов

* /yell - префикс, без дополнительных аргументов

* /zone - префикс, без дополнительных аргументов

* /zoneyell - префикс, без дополнительных аргументов

* /world - префикс, без дополнительных аргументов

* /raid - префикс, без дополнительных аргументов

* /raidwarning - префикс, без дополнительных аргументов

* группа и отряд:

* /invite - без префикса, пока работает только на текущей цели (без аргументов)

* /leave - без префикса, нет аргументов

* /kick - без префикса, 1 аргумент - имя игрока

* /disband - без префикса, нет аргументов. роспуск группы или отряда лидером

* /readycheck - без префикса, нет аргументов. посылает всем членам группы или отряда запрос о готовности.

* гильдия:

* /guild - префикс, без дополнительных аргументов. сообщение в гильдийский чат

* /officer - префикс, без дополнительных аргументов. сообщение в офицерский чат

* /ginvite - без префикса, на текущей цели (без аргументов) или 1 аргумент - имя игрока. приглашение в гильдию офицером

* /gkick - без префикса, на текущей цели (без аргументов) или 1 аргумент - имя игрока. выкидывание из гильдии офицером

* /gleave - без префикса, нет аргументов. самостоятельный выход из гильдии негильдмастером

* /gdisband - без префикса, нет аргументов. роспуск гильдии гильдмастером

* /ginfo - без префикса, 1 аргумент - имя гильдии (без префикса берется своя гильдия). текстовая информация о количестве членов гильдии всего, количестве членов гильдии онлайн и имени гильдмастера этой гильдии.

* /gdeprive - без префикса, на текущей цели (без аргументов) или 1 аргумент - имя игрока. понижение гильд-ранга члена гильдии с более низким рангом до самого низкого ранга не имеющего прав.

* эмоции, эмоция может быть без цели или с текущей целью игрока:

* /emote - без префикса, 1 аргумент - текстовое сообщение. В ответ придет EventCustomEmote.

* /... - команды, заданные в \Client\SlashCommands\SlashCommands.(SlashCommands).xdb через массив: emoteCommands. В ответ придет, помимо проигрывания анимации (если есть), EventEmoteText (если есть).

Search: "CategoryLuaApi" "CategoryChat"

EnumAccessionResult
EnumChatFailedType
EventCantSendChatByDelay
EventChatAvatarMuted
EventChatMessage
EventChatMessageRejected
EventChatNamedError
EventChatUnreadableMessage
EventCustomEmote
EventEmoteText
EventPlayedCommandResponse
EventSlashCommandFailed
EventSlashCommandPrefixChanged
EventUnknownSlashCommand
EventWhisperFailed
FunctionGroupChatChannel
FunctionGroupChatParty
FunctionGroupChatSay
FunctionGroupChatWhisper
FunctionGroupChatYell
FunctionMissionClearChatInput
FunctionMissionGetChatInput
FunctionMissionGetChatInputSimilarCommands
FunctionMissionRunChatInput
FunctionMissionSetChatInputText
FunctionMissionSetChatInputType
MissionSlashCommands

Search: "CategoryLuaApi" "CategoryMission"

CategoryDragAndDrop
EventAvatarLogoutCancelled
EventAvatarWillBeRemoved
EventCameraDirectionChanged
EventCantLeaveGameInCombat
EventMissionDragAndDropDragCancelled
EventMissionDragAndDropDragOver
EventMissionDragAndDropDragTo
EventMissionDragAndDropDropAttempt
EventMissionDragAndDropPickAttempt
EventMissionFreePortraitSlot
EventMissionLoadingProgress
FunctionMissionCancelLogout
FunctionMissionClearCharacterScene
FunctionMissionClearChatInput
FunctionMissionDragAndDropCancelDrag
FunctionMissionDragAndDropConfirmDropAttempt
FunctionMissionDragAndDropConfirmPickAttempt
FunctionMissionDragAndDropRegister
FunctionMissionDragAndDropUnregister
FunctionMissionDressCharacterScene
FunctionMissionFreePortrait
FunctionMissionGetAvatarConfigSection
FunctionMissionGetCameraDirection
FunctionMissionGetChatInput
FunctionMissionGetChatInputSimilarCommands
FunctionMissionGetMaxCharacterSceneCount
FunctionMissionLogout
FunctionMissionResetCharacterSceneRotation
FunctionMissionRotateCharacterScene
FunctionMissionRunChatInput
FunctionMissionSetAEMarkDecal
FunctionMissionSetAEMarkOutOfRangeDecal
FunctionMissionSetAEMarkRadius
FunctionMissionSetAEMarkRange
FunctionMissionSetAEMarkVisObj
FunctionMissionSetAvatarConfigSection
FunctionMissionSetCharacterScene
FunctionMissionSetCharacterScenePosition
FunctionMissionSetCharacterSceneScaleFactor
FunctionMissionSetCharacterSceneSmoothRotation
FunctionMissionSetChatInputText
FunctionMissionSetChatInputType
FunctionMissionSetMarkerObject
FunctionMissionSetMountScene
FunctionMissionSetPortraitBackgroundTexture
FunctionMissionShowAEMark
MissionSlashCommands


CategoryLuaApi CategoryFunction CategoryMission CategoryChat

На главную