RU/onPlayerChat
Это событие вызывается, когда игрок отправляет сообщение в чат.
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)
Смотрите также
События игрока
- onPlayerBan
- onPlayerChat
- onPlayerPrivateMessage
- onPlayerConnect
- onPlayerChangeNick
- onPlayerLogin
- onPlayerLogout
- onPlayerDamage
- onPlayerJoin
- onPlayerQuit
- onPlayerSpawn
- onPlayerWasted
- onPlayerTarget
- onPlayerVehicleEnter
- onPlayerVehicleExit
- onPlayerWeaponFire
- onPlayerWeaponSwitch
- onPlayerMarkerHit
- onPlayerMarkerLeave
- onPlayerPickupHit
- onPlayerPickupUse
- onPlayerClick
- onPlayerContact
- onPlayerStealthKill
- onPlayerMute
- onPlayerUnmute
- onPlayerCommand
Функции событий
Серверные функции
- getCancelReason - получает причину отмены события
- triggerClientEvent - позволяет вызвать срабатывание события, предварительно созданного на клиенте
- triggerLatentClientEvent - аналог triggerClientEvent, но скорость передачи может быть ограничена
Клиентские функции
- triggerLatentServerEvent - аналог triggerServerEvent, но скорость передачи может быть ограничена
- triggerServerEvent - позволяет вызвать срабатывание события, предварительно созданного на сервере
Общие функции
- addEvent - позволяет зарегистрировать своё собственное событие
- addEventHandler - прикрепляет к событию обработчик
- cancelEvent - останавливает автоматическую внутреннюю обработку события
- cancelLatentEvent - останавливает автоматическую внутреннюю обработку скрытого события
- getEventHandlers - получает прикреплённые функции из события и присоединённый элемент из текущего lua-скрипта
- getLatentEventHandles - получает текущие скрытые события в очереди
- getLatentEventStatus - получает состояние одного скрытого события в очереди
- removeEventHandler - открепляет от события обработчик
- triggerEvent - вызывает срабатывание указанного события для указанного элемента в дереве элементов
- wasEventCancelled - проверяет, было ли отменено последнее завершённое событие