В теме 3 сообщения

В данном уроке я покажу, как добавить на ваш сервер рацию, с выбором каналов.

Автор: NOD32

Удачного использования!

1 - Добавить ко всем Forward :

Спойлер

forward SendRcanalMessage(canal, color, string[]);

2 - Добавить ко всем New :

Спойлер

new Rcanal[MAX_PLAYERS];

2 - Переходим в public OnPlayerConnect и добавим :

Спойлер

Rcanal[playerid] = 0;

3 - Переходим в public OnPlayerCommandText и добавим команды :

Спойлер
if(strcmp(cmd, "/rc", true) == 0)
{
    if(!IsPlayerConnected(playerid)) return 1;
    if(PlayerInfo[playerid][pMuted] == 1) return SendClientMessage(playerid, -1, "Вы не можете писать, у вас молчанка");//
    if(Rcanal[playerid] < 1) return SendClientMessage(playerid, -1, "Вы не на частоте. Подключитесь, используя /canal (номер канала от 0 по 10000)");
    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)) return SendClientMessage(playerid, -1, "Используйте: /rc [текст]");
    format(string, sizeof(string), "(%d) %s: %s", Rcanal[playerid], sendername, result);
    SendRcanalMessage(Rcanal[playerid], TEAM_CYAN_COLOR, string);
    return 1;
}
if(strcmp(cmd, "/canal", true) == 0)
{
    if(!IsPlayerConnected(playerid)) return 1;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Используйте: /canal [номер канала[(1-10000)]");
    new canal;
    canal = strval(tmp);
    if(canal > 10000|| canal < 1) return SendClientMessage(playerid, -1, "Номер канала от 1 по 10000!");
    Rcanal[playerid] = canal;
    format(string, sizeof(string), "Вы подключились к частоте номер %d", canal);
    SendClientMessage(playerid, COLOR_LIGHTBLUE,string);
    return 1;
}

5 - И последнее, в конец мода мы добавим :

Спойлер
public SendRcanalMessage(canal, color, string[])
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(Rcanal == canal)
            {
                SendClientMessage(i, color, string);
            }
        }
    }
}

 

Отредактировано пользователем Timur_Top

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Cawfee
Великий Гуру

Нет смысла проверять в начале команды, в сети ли игрок, вызывающий ее. И для чего ты это делал через public? Лишние затраты ресурсов ведь... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Badr
      От Badr
      дратуте , решил сделать лаунчер самп на node.js , все норм сделал дизайн/стиль , но когда захожу абсолютно на любой сервер (заходил на онух рп ,и на свой сервер ) и пишет вронг сервер пароль ( мне лень на англиском писать )  скрин прикрепил 

      исходник https://disk.yandex.ru/d/D_104GFgrFO16A ( сам делал , то-есть дипсик  )
      я знаю все будут писать что (Слово удалено системой) ии-шное 
       

    • Badr
      От Badr
      дратуте , после обновы с бп , перестал работать лаунчер , типо заходит но на весь экран тот экран загрузки , и он не выключается , не работают диалоги
       у меня виндвос  7 писал в поддержку сказали больше не поддерживают на виндвос 7
      есть ли какой-то мод , или фикс чтобы я мог заходить ?
      на виндовс 10 не могу перейти , системные требования не подходят