1 (изменено: alekseykovshov93, 2014-07-05 14:28:55)

Тема: Использование and и or в выражениях

Доброго времени суток вам господа, в общем возможно вопрос и является простым, но ответа на него найти я не могу


Input chat_1, V, {space}, /point1,/point2,/point3,/point4,/point%n% ;/point%n% - говорит о том, что кол-во /point может 
loop                                                                ;            во много раз превышать нижепреведенное
{
if (GetKeyState("y", "P") = 1)
    {
    if (KPP_Name = 0) and (chat_1 = /point1") or (chat_1=/point2) or (chat_1 = point3) ; Тут и есть моя загвоздка
        {                                                ;if (KPP_Name = 0 ) and (chat_1 = /point1, /point2, /point3)
        ToolTip Введите имя кпп!                          ;Такой вариант ввода тоже не устраивает (условие не выполянется)
        sleep 2000                                        ;в переменной "KPP_Name" хранится некая запись, которая должна проверяться, 
        Gosub KPP_Name _Enter                                   ;только при вызове первых трех /point
        }                                                
    else
        {
        If chat_1 = /point1
            {
            ToolTip
            Send {Enter}
            Send {F6}
            Send /r %KPP_Name% блаблабла{enter}
            return
            }
        If chat_1 = /point2
            {
            Send /r %KPP_Name% блаблабла{enter}
            return
            }
        If chat_1 = /point3
            {
            Send /r %KPP_Name% блаблабла{enter}
            return
            }
        If chat_1 = /point4
            {
            Send {F6}text
            return
            }
        }
    }
if (GetKeyState("n", "P") = 1)
    {
    ToolTip ,Неверная команда | Отменено пользователем
    sleep 1000
    ToolTip
    return    
    }
}
return    
}

Условие должно выглядеть примерно так, но при данном выражении, скрипт не исполняет возложенных на него надежд
Вообщем суть я уже пояснил в комментарии, но уточню и здесь.
Скрипт должен при нажатии клавиши "Y" и предварительном вводе содержания переменной "chat_1" оценивает данные и если содержание KPP_Name пустое (объявлена глобальная переменная KPP_Name:=0) И введена какая нибудь из /point[1-3] скрипт переходил по

GoSub KPP_Name_Enter

, иначе (при не выполнении какого либо из этих вариантов, (или KPP_Name <>0 или содержание переменной chat_1 не удовлетворяет условие) скрипт продолжил свое выполнение.
P.S. Версия ahk Version v1.1.15.00 unicode x86

2

Re: Использование and и or в выражениях

А если так?


if (KPP_Name = 0) and ((chat_1 = "/point1") or (chat_1="/point2") or (chat_1 = "/point3"))

3 (изменено: alekseykovshov93, 2014-07-05 14:47:29)

Re: Использование and и or в выражениях

Премного благодарен, спасибо - работает! Как же я до этого не додумался