Активный
- Тема Автор
- #1
Идея и назначение
Игрок получает номер телефона и может звонить другим игрокам.
Подходит для RP серверов с имитацией связи.
Суть реализации
1. Храним номер телефона для каждого игрока.
2. Команда /call вызывает другого игрока по его номеру.
3. Команда /answer принимает звонок.
Реализация
Дополнительные идеи
1. Передавать текст сообщений только между собеседниками.
2. Добавить тарифы и оплату за звонки.
3. Реализовать SMS отдельной командой.
Игрок получает номер телефона и может звонить другим игрокам.
Подходит для RP серверов с имитацией связи.
Суть реализации
1. Храним номер телефона для каждого игрока.
2. Команда /call вызывает другого игрока по его номеру.
3. Команда /answer принимает звонок.
Реализация
Код:
new PlayerPhone[MAX_PLAYERS];
new InCallWith[MAX_PLAYERS] = {INVALID_PLAYER_ID, ...};
CMD:setphone(playerid, params[])
{
new num;
if(sscanf(params, "i", num))
return SendClientMessage(playerid, -1, "Используй: /setphone [номер].");
PlayerPhone[playerid] = num;
SendClientMessage(playerid, -1, "Номер телефона установлен.");
return 1;
}
CMD:call(playerid, params[])
{
new num;
if(sscanf(params, "i", num))
return SendClientMessage(playerid, -1, "Используй: /call [номер].");
new target = INVALID_PLAYER_ID;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(PlayerPhone[i] == num)
{
target = i;
break;
}
}
if(target == INVALID_PLAYER_ID)
return SendClientMessage(playerid, -1, "Абонент с таким номером не найден.");
InCallWith[playerid] = target;
InCallWith[target] = playerid;
SendClientMessage(playerid, -1, "Ты звонишь абоненту.");
SendClientMessage(target, -1, "Тебе поступил звонок, используй /answer.");
return 1;
}
CMD:answer(playerid)
{
if(InCallWith[playerid] == INVALID_PLAYER_ID)
return SendClientMessage(playerid, -1, "Тебе сейчас никто не звонит.");
SendClientMessage(playerid, -1, "Ты принял звонок.");
return 1;
}
Дополнительные идеи
1. Передавать текст сообщений только между собеседниками.
2. Добавить тарифы и оплату за звонки.
3. Реализовать SMS отдельной командой.