Активный
- Тема Автор
- #1
Идея и назначение
Игроки могут общаться в голосовых радио каналах внутри игры (на уровне чата, а не настоящего голоса).
Каждый игрок выбирает номер радиоканала и пишет в него.
Суть реализации
1. Храним номер радиоканала для каждого игрока.
2. Команда /setradio выбирает канал.
3. Команда /r отправляет сообщение всем на этом канале.
Реализация
Дополнительные идеи
1. Зарезервировать некоторые каналы под фракции.
2. Сделать парольные радиоканалы.
3. Хранить историю активности на каналах.
Игроки могут общаться в голосовых радио каналах внутри игры (на уровне чата, а не настоящего голоса).
Каждый игрок выбирает номер радиоканала и пишет в него.
Суть реализации
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. Хранить историю активности на каналах.