Вы не подключены. Войдите или зарегистрируйтесь

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

Предыдущая тема Следующая тема Перейти вниз  Сообщение [Страница 1 из 1]

Admin

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

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

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


- Далее в public OnPlayerConnect добавляем (думаю разберетесь куда добавлять).
Код:
Rcanal[playerid] = 0;


- Далее создаем public
Код:
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 добавляем команды
Код:
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);
        }
    } 

- Урок от: NOD32
- Если у вас возникнут какие либо проблемы по данной функции, обращайтесь.

http://pawno.wikiforum.net

Предыдущая тема Следующая тема Вернуться к началу  Сообщение [Страница 1 из 1]

Права доступа к этому форуму:
Вы не можете отвечать на сообщения