Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Рация с выбором канала

Статус
В этой теме нельзя размещать новые ответы.

JIEON_COJIORS

Умник
- Система раций с выбором канала.
- Описание: Вы используйте команду /canal [1-10000] для выбора нужной вам частоты.
После выбора частоты вы автоматический подключайтесь к выбранному вами каналу и можете активно вести общение с помощью команды /rс [текст].
Так-же другой инной игрок может подключиться к вашей частоте.

- Создаем forward
PHP:
forward SendRcanalMessage(canal, color, string[]);

- Далее добавляем ко всем new
PHP:
new Rcanal[MAX_PLAYERS];

- Далее в public OnPlayerConnect добавляем (думаю разберетесь куда добавлять).
PHP:
Rcanal[playerid] = 0;
- Далее создаем public
PHP:
public SendRcanalMessage(canal, color, string[])
{
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
                if(IsPlayerConnected(i))
                {
                    if(Rcanal[i] == canal)
                    {
                                SendClientMessage(i, color, string);
                        }
                }
        }
}
- Далее в public OnPlayerCommandText добавляем команды

PHP:
if(strcmp(cmd, "/rс", true) == 0)
        {
            if(IsPlayerConnected(playerid))
            {
            if(PlayerInfo[playerid][pMuted] == 1)
                        {
                                SendClientMessage(playerid, TEAM_CYAN_COLOR, "   Вы не можете писать, у вас молчанка"); // Проверка на молчанку
                                return 1;
                        }
                        if(PlayerInfo[playerid][pRadio] == 0)
                        {
                            SendClientMessage(playerid, COLOR_GRAD2, "У вас нет рации, купите ее в магазине 24/7"); // Проверка на наличие на рации
                                return 1;
                        }
                        if(Rcanal[playerid] < 1)
                        {
                                SendClientMessage(playerid, TEAM_CYAN_COLOR, "Вы не на частоте. Подключитесь, используя /canal (номер канала от 0 по 10000)");
                                return 1;
                        }
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        new length = strlen(cmdtext);
                        while ((idx < length) && (cmdtext[idx] <= ' '))
                        {
                                idx++;
                        }
                        new offset = idx;
                        new result[64];
                        while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                        {
                                result[idx - offset] = cmdtext[idx];
                                idx++;
                        }
                        result[idx - offset] = EOS;
                        if(!strlen(result))
                        {
                                SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /rc [текст]");
                                return 1;
                        }
                        format(string, sizeof(string), "(%d) %s: %s", Rcanal[playerid], sendername, result);
                        SendRcanalMessage(Rcanal[playerid], TEAM_CYAN_COLOR, string);
                        return 1;
            }
                return 1;
        }

if(strcmp(cmd, "/canal", true) == 0)
        {
                if(IsPlayerConnected(playerid))
                {
                        if(PlayerInfo[playerid][pRadio] == 0)
                        {
                                SendClientMessage(playerid, COLOR_LIGHTBLUE, "У вас нет рации");
                                return 1;
                        }
            tmp = strtok(cmdtext, idx);
                        if(!strlen(tmp))
                        {
                                SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /canal [номер канала[(1-10000)]");
                                return 1;
                        }
                        new canal;
                        canal = strval(tmp);
                        if(canal > 10000|| canal < 1)
                        {
                        SendClientMessage(playerid, COLOR_GREY, "Номер канала от 1 по 10000!");
                        return 1;
                    }
                        Rcanal[playerid] = canal;
            format(string, sizeof(string), "Вы подключились к частоте номер %d", canal);
            SendClientMessage(playerid, COLOR_LIGHTBLUE,string);
                }
        }

​
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу