Closed ghost closed 3 years ago
Отрою, пожалуй, задачу заново, т.к. этот функционал явно лишний. Буду копать дальше
Закоментил, пока не вижу проблем, зачем этот кусок кода нужен. Еще послежу, возможно когда точка привязки будет не в поле видимости экрана - этот кусок и отработает.
Поделюсь первыми впечатлениями, прошел где-то с десяток приклов с закоментированным куском. Среди них и те, где точка привязки не попадала в видимую область, и бот карту двигал. Ничего странного в работе бота не заметил. Продолжаю пока думать, что этот кусок лишний. Плюс еще подумал о такой вещи - очень многие вещи (как например, баг с листанием звезды, кот. был поправлен) в боте завязаны на Desktop.Width и Desktop.Hight. Мне кажется, это не всегда корректно, особенно для владельцев очень больших экранов. Куда как правильнее привязываться к ширине и высоте окна клиента. И тут мы точно никуда не денемся от определения хендла клиента. О чем я уже писал
Тут после дискуссии в Дискроде впомнил одну фигню. я писал выше, что
Почему-то напрямую без поиска хендла у окна по части заголовка работать не хотело, поэтому решил так. С лета бегает без проблем на твинах.
Теперь после выхода официального клиента один из игроков пишет, что
Бот ждет всех простых ген, перенос фокуса на второй монитор и бот не видит клиента, стоит кликнуть в клиенте и бот продолжает как ни в чем не бывало
Возможно эти две проблемы связаны, сейчас в коде стоит один WinActivate($WinTitle), но похоже для exe-клиента этого мало. У меня так и не получилось решить для exe-клиента Сирриса без получения хендла окна.
Originally posted by @Marsik-A in https://github.com/jemxx/autobot/issues/31#issuecomment-748460378
Вернусь к дискуссии. Этот блок отвечает за случай, когда точка привязки видна на экране, но находится в серой зоне, которая составляет по 200 пикселей снизу/сверху, справа/слева. В этой зоне бот не может ухватиться за точку, чтобы перетянуть карту.
На мой взгляд в ней в самом начале вот этот кусок абсолютно бессмысленный. Кроме того два условия еще и дублируют друг друга - сначала $ttx = $tx and $tty = $ty, потом сначала $tty = $ty and $txy = $tx Закомментил - послежу.