что значит выражение: $t = $t^1
Объясню на упрощенном примере всю красоту этой конструкции.
IF($t = 0)
$t = $t^1 // включение
ELSE
$t = $t^1 // выключение
END_IF
Что в этом скрипте происходит:
1. Проверяем условие IF($t = 0), и сразу получаем ответ - это выражение истинно. Значит переменной $t можно смело присваивать значение 0.
2. Но нам этого мало, мы докучи производим битовую операцию сравнения - $t^1, как бы на всякий случай. Читается оно так: либо $t, либо 1, но не оба одновременно. Так как 0 это ложь, а 1 это истина, и при этом они не равны, не истинны и не ложны одновременно, то условие в целом истинно. Наконец присваиваем переменной $t значение 1 вот таким макаром $t = $t^1. Тут типа и проверка и присваивание одновременно.
3. На следующем проходе по скрипту, переменная $t, как мы помним, содержит единицу. Значит наша первая проверка условия IF($t = 0) вернет ложь, потому, что единица не равна нулю. Курсор интерпретатора кликера при таком раскладе попадает в секцию ELSE...
4. Где еще раз проверяется ложность выражения $t = 0, но опять же по хитрому - через битовую логическую операцию $t^1. И, так как у нас переменная $t = 1, и 1 = 1, то получается, что оба эти операнда истинны. Но, для истинности всего выражения $t^1 в целом, они не должны быть истинны одновременно, только по одному, за раз. Таким образом оператор ^ делает это выражение ложным. А если выражение ложно, то в переменную $t теперь попадает значение 0.
Вот так просто всё устроено.
Но это на высшем уровне так пишут, а для начала пиши как самому будет понятней. Не усложняй главное. И справку прочитай всю целиком. Просто прочитай, бегло без зазубривания. Главное узнаешь что кликер вообще умеет делать. Интересные команды запомнятся сами собой. И когда будет подходящая задача, ты их вспомнишь и найдешь.
Весь твой скрипт можно написать так, в одном дочернем потоке:
THREAD(t)
IF(iskeydown(#V))
lclick($_xmouse, $_ymouse)
WAITMS(550)
ELSE
WAITMS(50)
END_IF
END_THREAD
WAIT(1000) // какие то действия в основном потоке