Простая система личных сообщений

Активный
Статус
Сообщения
516
Лайки
32

8

месяц на сайте

Идея и назначение

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

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


Суть реализации

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. Логировать личные сообщения для администрации.
 

1 человек читают эту тему (Всего: 1, Пользователей: 0, Гостей: 1)

Сверху