SAMP/OnPlayerText
Материал из Wikipedia Pi
OnPlayerText
Описание:
Срабатывает, когда игрок отправляет напечатанный текст в чат.
Параметры:
(playerid, text[])
playerid | ID игрока, написавшего и отправившего текст в чат. |
text | текст, который игрок написал и отправил в чат. |
Возвращаемые значения:
0 - текст не будет отправлен в чат; если данный возврат находится в фильтр-скрипте, то это отключает обработку обратного вызова в других скриптах и моде.
1 - текст будет отправлен в чат без форматирования.
1 - текст будет отправлен в чат без форматирования.
Важное |
Если текст, отправляемый в чат, слишком большой, то он не будет отображён. Функция вызывается сначала в фильтр-скриптах, затем в моде. |
Баг SA-MP |
Если в введённом игроком тексте содержится символ %, он автоматически заменяется на # (перед вызовом OnPlayerText). Данная мера была введена в старых версиях SA-MP для того, чтобы обойти проблему с падением сервера при отправке игроками текста, содержащего указанный символ (но не исключала падений при отправке того же текста через SendClientMessage и SendClientMessageToAll). В дальнейшем данный баг был полностью исправлен в коде отправки сообщений, но автозамену знака процента в OnPlayerText убрать забыли. |
Подсказка |
Обратный вызов работает не только для игроков, но и для 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-команду серверу.