Активный
- Тема Автор
- #1
Идея и назначение
Система позволяет игрокам отправлять личные сообщения друг другу в игре.
Подходит для любых серверов, где важно общение без использования основного чата.
Суть реализации
1. Добавляем команду, принимающую ID цели и текст.
2. Собираем сообщение в строку.
3. Отправляем его отправителю и получателю с пометкой.
Реализация
Дополнительные идеи
1. Добавить команду отключения приема личных сообщений.
2. Хранить последнее полученное личное сообщение для команды ответа.
3. Логировать личные сообщения для администрации.
Система позволяет игрокам отправлять личные сообщения друг другу в игре.
Подходит для любых серверов, где важно общение без использования основного чата.
Суть реализации
1. Добавляем команду, принимающую ID цели и текст.
2. Собираем сообщение в строку.
3. Отправляем его отправителю и получателю с пометкой.
Реализация
Код:
CMD:pm(playerid, params[])
{
new target, text[128];
if(sscanf(params, "us[128]", target, text))
return SendClientMessage(playerid, -1, "Используй: /pm [id] [текст].");
if(!IsPlayerConnected(target))
return SendClientMessage(playerid, -1, "Игрок не найден.");
if(target == playerid)
return SendClientMessage(playerid, -1, "Нельзя писать себе.");
new name_s[MAX_PLAYER_NAME], name_r[MAX_PLAYER_NAME], msg[160];
GetPlayerName(playerid, name_s, sizeof name_s);
GetPlayerName(target, name_r, sizeof name_r);
format(msg, sizeof msg, ">> %s[%d]: %s", name_r, target, text);
SendClientMessage(playerid, 0xFFFF00FF, msg);
format(msg, sizeof msg, "<< %s[%d]: %s", name_s, playerid, text);
SendClientMessage(target, 0xFFFF00FF, msg);
return 1;
}
Дополнительные идеи
1. Добавить команду отключения приема личных сообщений.
2. Хранить последнее полученное личное сообщение для команды ответа.
3. Логировать личные сообщения для администрации.