Вот ты и правда накрутил, аж сам запутался
.
$time не будет равно 0 и при нахождении не будет клика
LCLICK(321,223)
точнее, будет, если это произойдёт точнёхонько через 3000 циклов, вероятность чего стремится к нулю.
Смешались в кучу $time и $timer
Тогда уж перенести LCLICK(321,223) назад под IF_PIXEL_IN, ну и SWITCH заменить IF-ом за ненадобностью.
Иногда хочется сделать элегантно и минимально, повесив на одну переменную разные функции, чего делать не рекомендуется. У нас не ООП, но принцип единственной ответственности полезно соблюдать и на обычных переменных.
Запутался, потому что повесил на $time и время ожидания и флаг одиночного срабатывания.
Помнится я тоже, для уменьшения кода, накручивал разные функции на одну переменную. Сейчас стараюсь такого не делать, разве что специально в целях защиты. Связываем полезные и защитные функции в одной переменной, чтоб её нельзя было легко выкинуть или задать жёстко. И побольше таких переменных.