OnPlayerText — различия между версиями

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск
(Новая страница: «{{Description | Вызывается при отправке игроком сообщения в чат. }} {{Params|playerid, text[]}} {{Param | playerid | ID…»)
 
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
 
{{Description
 
{{Description
| Вызывается при отправке игроком сообщения в чат.
+
| Вызывается, когда игрок или NPC отправляет сообщение в чат.
 
}}
 
}}
 
{{Params|playerid, text[]}}
 
{{Params|playerid, text[]}}
Строка 12: Строка 12:
 
}}
 
}}
 
{{Returns
 
{{Returns
|
+
| При возврате <code>0</code> функция не будет вызвана в других фильтрскриптах и в моде, а сообщение не будет отправлено в чат.
* В фильтрскриптах: При возврате <code>0</code> функция не будет вызвана в других фильтрскриптах и в моде, а сообщение не будет отправлено в чат.
+
* В моде: При возврате <code>0</code> сообщение не будет отправлено в чат.
+
 
}}
 
}}
 
{{NoteInfo
 
{{NoteInfo
 
| Функция вызывается сначала в фильтрскриптах, затем в моде.
 
| Функция вызывается сначала в фильтрскриптах, затем в моде.
 +
}}
 +
{{NoteSAMPBug
 +
| Если в введённом игроком тексте содержится символ <code>'%'</code>, он автоматически заменяется на <code>'#'</code> (перед вызовом <code>[[OnPlayerText]]()</code>). Данная (полу)мера была введена в старых версиях SA-MP для того, чтобы обойти проблему с падением сервера при отправке игроками текста, содержащего символ <code>'%'</code> (но не исключала падений при отправке того же текста через <code>[[SendClientMessage]]()</code> и <code>[[SendClientMessageToAll]]()</code>). В дальнейшем данный баг был полностью исправлен в коде отправки сообщений, но автозамену <code>'%'</code> в <code>[[OnPlayerText]]()</code> убрать забыли.
 
}}
 
}}
 
{{Example}}
 
{{Example}}

Текущая версия на 16:53, 2 февраля 2019

Описание:

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

Параметры:

(playerid, text[])
playerid ID игрока, отправившего сообщение.
text[] Текст сообщения.


Возвращаемое значение:

При возврате 0 функция не будет вызвана в других фильтрскриптах и в моде, а сообщение не будет отправлено в чат.

Info rhombus.png
Примечание
Функция вызывается сначала в фильтрскриптах, затем в моде.


Bug.png
Баг SA-MP
Если в введённом игроком тексте содержится символ '%', он автоматически заменяется на '#' (перед вызовом OnPlayerText()). Данная (полу)мера была введена в старых версиях SA-MP для того, чтобы обойти проблему с падением сервера при отправке игроками текста, содержащего символ '%' (но не исключала падений при отправке того же текста через SendClientMessage() и SendClientMessageToAll()). В дальнейшем данный баг был полностью исправлен в коде отправки сообщений, но автозамену '%' в OnPlayerText() убрать забыли.


Пример использования:

public OnPlayerText(playerid, text[])
{
    // Если игрок заглушен кем-то из модераторов/администраторов - запретим отправку.
    if (gettime() < GetPVarInt(playerid, "mute_end_time"))
        return 0;
    return 1;
}


См. также: