Система ремня

Уроки по созданию сервера и готовые решения
Ответить
Аватара пользователя
danilasar
Сообщения: 202
Зарегистрирован: 17 июл 2018, 09:55
Откуда: Саратов, Россия
Контактная информация:

Система ремня

Сообщение danilasar » 04 окт 2018, 13:39

Всем привет, народ! Недавно хотел для своего мода найти систему ремня и я её нашёл! Итак, в этом мануале мы поделимся с Вами командой, без которой не обойтись ни на одном RolePlay-сервере (кроме New Era RP, естественно). CMD довольно простая, но дабы её воткнуть, нужны всё-таки базовые знания. И уже установленный DC:CMD.
Для начала вам нужно во все переменные добавить:

Код: Выделить всё

new remen[MAX_PLAYERS];
Теперь, сделаем так, чтобы когда игрок садился в автомобиль, ему обнуляло эту переменную, потому что некоторые могут пристегнуть ремень и не отстегнув выйти, тогда если сядут в авто, им напишет, что ремень отстегнул он. Для этого вставим в public OnPlayerEnterVehicle вот это:

Код: Выделить всё

remen[playerid] = 0;
Теперь сама команда:

Код: Выделить всё

CMD:rem(playerid)
{
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)//Если игрок не в авто.
    {
     SendClientMessage(playerid,COLOR_RED,"Вы не в авто!");
     return true;//Тут сомневаюсь, что true, опытные знатоки, подскажите пж :)
    }
    if(remen[playerid] == 0)
{
Action(playerid, "пристегнул ремень безопасности");
remen[playerid] = 1;//равняем переменную 1
}
else if(remen[playerid] == 1)//В принципе, можно и просто else написать
{
Action(playerid, "отстегнул ремень безопасности");
     remen[playerid] = 0;//Равняем переменную нулю
}
    return true;
}
Для фракций также была добавлена команда для проверки,надет ли ремень или нет:

Код: Выделить всё

CMD:sr(playerid, params[])
{
    new magid;
    if(IsACops(playerid))//Проверка на то, что игрок в ДПС, Полиции. У меня это сток
    {
     if(sscanf(params, "i", magid)) return SCM(playerid, COLOR_GREY, "Подсказка: /sr [ID игрока]");
     if(!ProxDetectorS(10.0, playerid, magid)) return SCM(playerid, COLOR_GRAD1, "Вы слишком далеко.");
     if(remen[magid] == 0)
     {
        SCM(playerid, COLOR_RED, "Не пристёгнут!");//Если переменная remen игрока, которого мы ввели равна 0 - он не пристёгнут
     }
     else if(remen[magid] == 1)//Можно else
     {
        SCM(playerid, COLOR_GREEN, "Пристёгнут!");
     }
    }
    return true;
}
У кого ошибка на Action:

Код: Выделить всё

stock Action(playerid, string[])
{
    new action[128];
//ProxDetector(15.0, playerid, action, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
ProxDetectorNew(playerid,20.0,COLOR_PURPLE,action);
    return SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 10.0, 5000);
}
Prox'ы на свои замените радиусы.
Пример использования:

Код: Выделить всё

Action(playerid, "пристегнул ремень");
В итоге получится Name_Name пристегнул ремень(Name Name-Ваша имя фамилия)
Спасибо за внимание!
Автор: Shapagolik
Микроправочка by danilasar

Ответить