SAMP/OnPlayerText

Материал из Pawno Info Wikipedia

OnPlayerText

Описание:

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


Параметры:

(playerid, text[])


playeridID игрока, написавшего и отправившего текст в чат.
textтекст, который игрок написал и отправил в чат.


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

0 - текст не будет отправлен в чат; если данный возврат находится в фильтр-скрипте, то это отключает обработку обратного вызова в других скриптах и моде.
1 - текст будет отправлен в чат без форматирования.


Wiki note important.png

Важное
примечание

Если текст, отправляемый в чат, слишком большой, то он не будет отображён.
Функция вызывается сначала в фильтр-скриптах, затем в моде.


Wiki bug.png

Баг SA-MP

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


Wiki tip.png

Подсказка

Обратный вызов работает не только для игроков, но и для NPC.


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

public OnPlayerText(playerid, text[])
{
	new string[144];
	format(string, sizeof(string), "(%d): %s", playerid, text); // указываем ID игрока, отправившего текст в чат
	SendPlayerMessageToAll(playerid, string);
	return 0; // игнорирует вывод сообщения без форматирования
}


Связанные обратные вызовы

Следующие обратные вызовы также могут быть полезны, поскольку они так или иначе связаны с рассматриваемым обратным вызовом.

OnPlayerCommandText: срабатывает при отправке напечатанного игроком текста в чат.
OnRconCommand: срабатывает при отправке rcon-команды.


Связанные функции

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

SendPlayerMessageToPlayer: отображает текст от игрока другому игроку.
SendPlayerMessageToAll: отображает текст от игрока в чате.
SendRconCommand: отправляет rcon-команду серверу.