RU/onPlayerChat
Это событие вызывается, когда игрок отправляет сообщение в чат.
Параметры
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