• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Не работает оператор ИЛИ

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

kh0dan

Умник
Здравствуйте.
Сделал покупку ключа для мафий, с помощью которого можно открыть шлагбаум армии.
Но не могу понять, что не так.
(шлагбаум работает только если ты в армии и у тебя есть ключ, по отдельности - не работает)

Код шлагбаума:
Код:
    if(PRESSED(KEY_WALK))
    {
        if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
        {
            for(new i, h = sizeof gate_open_pos; i < h; i++)
            {
                if(!PlayerToPoint(3.0, playerid, gate_open_pos[i][0], gate_open_pos[i][1], gate_open_pos[i][2])) continue;
                   if(i == 0 && !IsAKeyNG(playerid) || !IsAArmy(playerid)) return SendClientMessage(playerid, COLOR_GREY, ""c_error"У вас нет ключа или вы не служащий Национальной Гвардии!");      <--- ВОТ ЭТОТ ШЛАГБАУМ!!!!!!!!!!!!!!!!!!
                if(i == 1 && !IsAArmy(playerid)) return SendClientMessage(playerid, COLOR_GREY, ""c_error"Доступно только армии.");
                if(i == 2 && !IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, ""c_error"Доступно только полиции.");
                if(i == 3 && !IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, ""c_error"Доступно только полиции.");
                if(i == 4 && !IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, ""c_error"Доступно только полиции.");
                if(i == 5 && !IsAArmy(playerid)) return SendClientMessage(playerid, COLOR_GREY, ""c_error"Доступно только армии.");

                new Float: x, Float: y, Float: z;
                GetObjectPos(gate_obj[i], x, y, z);

                if(gate_state[i]) MoveObject(gate_obj[i], x, y, z - 0.004, 0.004, gate_close_pos[i][3], gate_close_pos[i][4], gate_close_pos[i][5]);
                if(!gate_state[i]) MoveObject(gate_obj[i], x, y, z + 0.004, 0.004, gate_open_pos[i][3], gate_open_pos[i][4], gate_open_pos[i][5]);

                gate_state[i] = !gate_state[i];
                break;
            }
        }
stock IsAArmy(playerid)
{
switch(p_info[playerid][pMember])
{
case FRACTION_ARMY_LS, FRACTION_ARMY_SF, FRACTION_ARMY_LV: return 1;
}

return 0;
}

stock IsAKeyNG(playerid)
{
if(p_info[playerid][pKeyNG] > 0) return 1;

return 0;
}

Если я сделаю так:
if(i == 1 && !IsAKeyNG(playerid)) return SendClientMessage(playerid, COLOR_GREY, ""c_error"У вас нет ключа!") - будет работать только с ключом;
if(i == 1 && !IsAArmy(playerid)) return SendClientMessage(playerid, COLOR_GREY, ""c_error"Вы не служите в армии!") - будет работать только у сотрудников армии;
Можете подсказать, как сделать так, чтобы работало ЕСЛИ у вас есть ключ ИЛИ вы состоите в армии?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу