Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 8 из 8
  1. #1
    Аватар для StevenH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±

    Проблемы с условием..

    Здравствуйте, возникла проблемка с условиями. Есть следующее условие (Если фракция не равняется 11 И субфракция не равняется 0, тогда возвращаем 1):
    PHP код:
    if(pData[playerid][pFraction] != 11 && pData[playerid][pSubfraction] != 0) return true
    Но, все равно.. Выдаю себе 11 фраку и 1 субфракцию (да и вообще любую фракцию, хоть нулевую), и условие проходит..
    Последний раз редактировалось StevenH; 27.03.2017 в 06:32.

  2. #2
    Аватар для StevenH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Код целиком покажи. Условие составлено верно
    Диалог выводится в любом случае..

    PHP код:
    else if(areaid == gAreas[arBoard])
        {
            if(
    pData[playerid][pFraction] != 11 && pData[playerid][pSubfraction] != 0) return true;
            
    ShowPlayerDialog(playeriddBoard1"{FFFF80}Доска""{FFFFFF}Введите текст на доске\n\nДля переноса используйте знак \"{33AA33}|{FFFFFF}\"\nИспользуйте не более 26 символов на строку\n""Ввести""Закрыть");
        } 

  3. #3
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    printf юзай
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  4. #4
    Аватар для StevenH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    printf юзай
    Код:
    PHP код:
    else if(areaid == gAreas[arBoard])
        {
            
    printf("Fraction - %d, SubFraction - %d"pData[playerid][pFraction], pData[playerid][pSubfraction]);
            if(
    pData[playerid][pFraction] != 11 && pData[playerid][pSubfraction] != 0) return true;
            
    ShowPlayerDialog(playeriddBoard1"{FFFF80}Доска""{FFFFFF}Введите текст на доске\n\nДля переноса используйте знак \"{33AA33}|{FFFFFF}\"\nИспользуйте не более 26 символов на строку\n""Ввести""Закрыть");
        } 
    Вывелось в консоль:
    Код:
    Fraction - 1, SubFraction - 0
    Диалог все равно был показан...

  5. #5
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    PHP код:
    SubFraction 0
    pData
    [playerid][pSubfraction] != 
    Равен 0, а по условию ты просишь чтобы был не равен 0.

    Ну всё верно вот и прошло условие, может ты хотел такое условие?
    PHP код:
    if(pData[playerid][pFraction] != 11 || pData[playerid][pSubfraction] != 0) return true
    || - или
    && - и
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  6. #6
    Аватар для StevenH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    PHP код:
    SubFraction 0
    pData
    [playerid][pSubfraction] != 
    Равен 0, а по условию ты просишь чтобы был не равен 0.

    Ну всё верно вот и прошло условие, может ты хотел такое условие?
    PHP код:
    if(pData[playerid][pFraction] != 11 || pData[playerid][pSubfraction] != 0) return true
    || - или
    && - и
    Работает, но не могу понять почему нужно || (ИЛИ)... Если нужно показать диалог какой то фракции, надо проверять его фракцию и субфракцию (т.е. если фракция игрока не равняется 11 && (И) субфракция не равняется 0, тогда возращаем 1, т.е. ничего не показываем).

    Я думал если поставить знак || (ИЛИ), тогда другой человек из другой фракции, но с такой же субфракцией, сможет взять этот самый диалог..

  7. #7
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    С && твоё условие сработает только когда ОБА условия совпали (и фракция не равна 11, и субфракция не равна 0).
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  8. Пользователь сказал cпасибо:
    StevenH (27.03.2017)
  9. #8
    Аватар для StevenH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    С && твоё условие сработает только когда ОБА условия совпали (и фракция не равна 11, и субфракция не равна 0).
    Все, теперь вдуплил

    Тему можно закрыть...

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •