RU/onPlayerChat

From Multi Theft Auto: Wiki
Revision as of 17:09, 4 December 2017 by Reitside (talk | contribs) (Created page with "__NOTOC__ {{RU/Server event}} Это событие вызывается, когда игрок отправляет сообщение в чат. ==Parameters== <syntaxhighl...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Это событие вызывается, когда игрок отправляет сообщение в чат.

Parameters

string message, int messageType
  • message. Строка, представляющая собой сообщение, введённое в чат.
  • messageType. Целочисленное значение, представляющее тип сообщения:
    • 0. обычное сообщение;
    • 1. сообщение о действии (/me);
    • 2. командное сообщение.

Источник

Источником этого события является игрок, который отправил сообщение в чат.

Отмена эффекта

Если это событие отменено, система чата игры не будет отправлять сообщения. Вы можете использовать функцию outputChatBox для отправки потом сообщений. Отмена этого события также означает, что чат не будет отображаться в консоли сервера или логах. Если Вы хотите вести логирование чата, Вам нужно будет добавить вызов функции outputServerLog.

Примеры

Пример 1. В этом примере ограничивается приём сообщений чата сферической области вокруг игрока, который отправил сообщение, а также блокирует действие и текст команды.

local chatRadius = 20
function sendMessageToNearbyPlayers(message, messageType)
    if messageType == 0 then
        local posX, posY, posZ = getElementPosition(source)
        local chatSphere = createColSphere(posX, posY, posZ, chatRadius)
        local nearbyPlayers = getElementsWithinColShape(chatSphere, "player")
        destroyElement(chatSphere)
        for index, nearbyPlayer in ipairs(nearbyPlayers) do
            outputChatBox(message, nearbyPlayer)
        end
    end
end
addEventHandler("onPlayerChat", getRootElement(), sendMessageToNearbyPlayers)
function blockChatMessage()
    cancelEvent()
end
addEventHandler("onPlayerChat", getRootElement(), blockChatMessage)


Пример 2. В этом примере реализованы цветные имена игроков в чате.

local function playerJoin()
    local red, green, blue = math.random(50, 255), math.random(50, 255), math.random(50, 255)
    setPlayerNametagColor(source, red, green, blue)
end
addEventHandler("onPlayerJoin", root, playerJoin)
local function playerChat(message, messageType)
    if messageType == 0 then
        cancelEvent()
        local red, green, blue = getPlayerNametagColor(source)
        outputChatBox(getPlayerName(source)..": #FFFFFF"..message, root, red, green, blue, true )
	outputServerLog("Чат: "..getPlayerName(source)..": "..message)
    end
end
addEventHandler("onPlayerChat", root, playerChat)


Пример 3. В этом примере убивается тот игрок, который отправил в чат сообщение kill.

function onChat(message, messageType)
    if string.find(message, 'kill') then
        killPed(source, source)
    end
end
addEventHandler("onPlayerChat", getRootElement(), onChat)


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

События игрока

Функции событий

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

  • getCancelReason - получает причину отмены события
  • triggerClientEvent - позволяет вызвать срабатывание события, предварительно созданного на клиенте
  • triggerLatentClientEvent - аналог triggerClientEvent, но скорость передачи может быть ограничена

Клиентские функции

  • triggerLatentServerEvent - аналог triggerServerEvent, но скорость передачи может быть ограничена
  • triggerServerEvent - позволяет вызвать срабатывание события, предварительно созданного на сервере

Общие функции

  • addEvent - позволяет зарегистрировать своё собственное событие
  • addEventHandler - прикрепляет к событию обработчик
  • cancelEvent - останавливает автоматическую внутреннюю обработку события
  • cancelLatentEvent - останавливает автоматическую внутреннюю обработку скрытого события
  • getEventHandlers - получает прикреплённые функции из события и присоединённый элемент из текущего lua-скрипта
  • getLatentEventHandles - получает текущие скрытые события в очереди
  • getLatentEventStatus - получает состояние одного скрытого события в очереди
  • removeEventHandler - открепляет от события обработчик
  • triggerEvent - вызывает срабатывание указанного события для указанного элемента в дереве элементов
  • wasEventCancelled - проверяет, было ли отменено последнее завершённое событие