Система личных радио каналов

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

8

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

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

Игроки могут общаться в голосовых радио каналах внутри игры (на уровне чата, а не настоящего голоса).

Каждый игрок выбирает номер радиоканала и пишет в него.


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

1. Храним номер радиоканала для каждого игрока.

2. Команда /setradio выбирает канал.

3. Команда /r отправляет сообщение всем на этом канале.


Реализация

Код:
new PlayerRadio[MAX_PLAYERS];


CMD:setradio(playerid, params[])
{
    new ch;

    if(sscanf(params, "i", ch))
        return SendClientMessage(playerid, -1, "Используй: /setradio [номер].");

    if(ch < 0 || ch > 999)
        return SendClientMessage(playerid, -1, "Канал от 0 до 999.");

    PlayerRadio[playerid] = ch;

    SendClientMessage(playerid, -1, "Радиоканал изменен.");

    return 1;
}


CMD:r(playerid, params[])
{
    new text[96];

    if(sscanf(params, "s[96]", text))
        return SendClientMessage(playerid, -1, "Используй: /r [текст].");

    new ch = PlayerRadio[playerid];

    new name[MAX_PLAYER_NAME], msg[144];

    GetPlayerName(playerid, name, sizeof name);

    format(msg, sizeof msg, "[R %d] %s: %s", ch, name, text);

    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(!IsPlayerConnected(i)) continue;
        if(PlayerRadio[i] != ch) continue;

        SendClientMessage(i, 0x66CCFFFF, msg);
    }

    return 1;
}


Дополнительные идеи

1. Зарезервировать некоторые каналы под фракции.

2. Сделать парольные радиоканалы.

3. Хранить историю активности на каналах.
 

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

Сверху