Closed ghost closed 3 years ago
А этот функционал будет реализован?
После выхода офф промежуточного клиента функционал, увы, стал неактуальным( Если Сиррис не починит свои проги, то закрою задачу.
Тут после дискуссии в Дискроде впомнил одну фигню. я писал выше, что
Почему-то напрямую без поиска хендла у окна по части заголовка работать не хотело, поэтому решил так. С лета бегает без проблем на твинах.
Теперь после выхода официального клиента один из игроков пишет, что
Бот ждет всех простых ген, перенос фокуса на второй монитор и бот не видит клиента, стоит кликнуть в клиенте и бот продолжает как ни в чем не бывало
Возможно эти две проблемы связаны, сейчас в коде стоит один WinActivate($WinTitle), но похоже для exe-клиента этого мало. У меня так и не получилось решить для exe-клиента Сирриса без получения хендла окна.
Сиррис починил своего клиента, но скорее всего до первых техработ. Теперь можно заходить на нескольких акках сразу, а значит функционал снова востребован. Если зарелизить в ближайшее время - многие ботоводы будут очень благодарны, тем более что Рождество - ивент разведов.
Это хорошо. Ссылочку бы, где его скачать, что бы это добавить
все утилиты Сирриса в его паблик сообщениях на оф. форуме https://forum.thesettlersonline.ru/members/517659-SirriS
Теперь после выхода официального клиента один из игроков пишет, что
Бот ждет всех простых ген, перенос фокуса на второй монитор и бот не видит клиента, стоит кликнуть в клиенте и бот продолжает как ни в чем не бывало
Возможно эти две проблемы связаны, сейчас в коде стоит один WinActivate($WinTitle), но похоже для exe-клиента этого мало. У меня так и не получилось решить для exe-клиента Сирриса без получения хендла окна.
Теряет он фокус видимо по тому, что в autobot.ini не правильное название окна прописано. Оказывается теперь The Settlers Online а не The Settlers Онлайн. Надо поменять на правильное и попробовать
Он пробовал, говорит все равно теряет. Я же писал, что у меня такое было когда я с клиентом возился. Если не через хендл, то окно не находилось. а у Вас не теряет?
Вроди бы не теряет. Бегает в приклы и бегает. Вчера на оф клиенте, сегодня на Сиррисе
Ок, отписал ему. Посмотрим, что ответит. У него два клиента одновременно
Вообще нужно попробовать с этим исправлением https://github.com/jemxx/autobot/commit/573655e0f7be72475e121c9edf12d612e06ebbfd
Он сам не компилит - релиза ждет. У него еще вчера была проблема - что не видел папку с прохождениями. Если без папки - видит, в папке - нет.
Потому что папка называлась по-русски. А еще не работал любимый файл если он тоже назван по-русски) В этом исправлении это поправлено.
Вот это прикручу и скомпилирую.
Я то по-русски ничего не называю, вот и пропустил эту проблему. Но сразу о ней сообщили соги
Я то по-русски ничего не называю, вот и пропустил эту проблему. Но сразу о ней сообщили соги
о как! Ну я тоже не называю, старая досовская привычка! и разделитесь сразу на точку меняю.
Интересно, а если вот так сократить, будет работать
Opt("WinTitleMatchMode",2)
WinActivate(WinWait($WinTitle))
Валидатор ошибку не выдает
Проверьте) я все равно думаю ввести глобальную переменную хендла окна, чтобы получать по нему ширину и высоту окна клиента.
Уже проверил. Работает)
@jemxx Зря закрыли, хотел предложить еще такую фичу У меня бывает подглючивает оф. клиент, и я переключаюсь на клиент Сирриса. Каждый раз лезть в ини и править - лениво, да и помнить надо, что последним в том ини написано. А при затыке прохода и старте не с 1й строки бот забывает, что где-то в начале я ему указывал, что клиент от Сирриса, поэтому сделал в главном окне чек-бокс "Клиент Sirris-а", если он взведен, то $win_title = "TSO Game", если погашен, то читаем из ини
Вроди бы как все добавил и закрыл. Можно конечно добавить, вопрос в том долго ли будет этот клиент работать) А так для него и место есть, вместо Повторять бесконечно, которое решили, но не убрали еще
Открою пока, так как обнаружил баг, что бы не забыть. Суть бага вот в чем. Есть 2 файла. Содержимое первого. Например такое
Клиент=Ник1
Разведчики=1,0,0,Сокровища,ОченьДолгий
Клиент=Ник2
Разведчики=1,0,0,Сокровища,ОченьДолгий
Содержимое второго
Разведчики=1,0,0,Сокровища,ОченьДолгий
Если сначала запустить первый, то отправит разведов как нужно. Сначала Ник1, а затем Ник2 А если затем запустить второй файл что бы отправить разведов у Ник3 то бот будет пытаться отправить разведов в окне Ник2. Хотя активно окно с Ник 3 и по логике должно браться название окна с ini. Но бот переходит на окно с Ник2
Отвечаю, чтобы закрыть хвосты.
Открою пока, так как обнаружил баг, что бы не забыть. Суть бага вот в чем. Есть 2 файла. Содержимое первого. Например такое
Клиент=Ник1 Разведчики=1,0,0,Сокровища,ОченьДолгий Клиент=Ник2 Разведчики=1,0,0,Сокровища,ОченьДолгий
Содержимое второго
Разведчики=1,0,0,Сокровища,ОченьДолгий
Если сначала запустить первый, то отправит разведов как нужно. Сначала Ник1, а затем Ник2 А если затем запустить второй файл что бы отправить разведов у Ник3 то бот будет пытаться отправить разведов в окне Ник2. Хотя активно окно с Ник 3 и по логике должно браться название окна с ini. Но бот переходит на окно с Ник2
Так это не баг, это фича. Правильно все работает. Посмотрите код, у Вас где $winTitle инициализируется? при старте самого бота, вот тут https://github.com/jemxx/autobot/blob/870991c40fc20785e07b22c7da5b697f1c193695/autobot.au3#L44
Теперь смотрим: бот запущен, открыт 1й тестовик, сначала $winTitle = Ник1, потом $winTitle = Ник2, бот и запомнил его, как последнее значение. Чтения-то из ини больше не будет, оно один раз при старте бота, а бот-то запущен уже. Чтобы при запуске 2го текстовика бот брал из ини, надо вставить, к примеру, вот сюда - при смене файла в комбобоксе
https://github.com/jemxx/autobot/blob/870991c40fc20785e07b22c7da5b697f1c193695/autobot.au3#L102
$windowTitle = ReadINI("main", "window_title", "The Settlers Online")
if $windowTitle == "" Then $windowTitle = "The Settlers Online"
Про живучесть клиента, ложка была дорога к обеду, а именно к этому Рождественскому ивенту, когда основной упор был на разведов, и можно было тех же твинов на виртуалке зарядить по кругу на каждые 3-6-9 часов. Мое предложение было 2.5 месяца назад. Теперь, когда поливента позади, версия 0.22 оказалась непригодной для основных масс, я не знаю, есть ли во всем этом дальнейший смысл. Имел счастье в лс пообщаться с Сиррисом по поводу этих всех нововведений. Если разрабы не придумают что-нибудь очень злое....хитрое, я надеюсь, что и подсветка, и клиент, и гиквесты и другие сервисы он будет оперативно править.
Upd. Даже лучше вот сюда, под этот вот If https://github.com/jemxx/autobot/blob/870991c40fc20785e07b22c7da5b697f1c193695/autobot.au3#L110
т.к. тогда, если Вы все же прикрутите чекбокс на клиента Сирриса, то все будет работать и при старте бота с новой строки, без смены файла в комбо. Я сделал так
If GUICtrlRead($Client) == $GUI_CHECKED Then
$WinTitle = "Client"
Else
$WinTitle = read_ini(9)
EndIf
На этом прощаюсь! Удачи Вам с этим недотырком в дальнейшей работе.
К счастью, в заголовке клиента отображается ник игрока, поэтому я сделал так ввел глобал переменную Global $WinTitle = "The Settlers" В основной юнит добавил обработчик команды Клиент
а по всем юнитам заменил строку
WinActivate("The Settlers Онлайн")
На группуПочему-то напрямую без поиска хендла у окна по части заголовка работать не хотело, поэтому решил так. С лета бегает без проблем на твинах.
Синтаксис Клиент=Браузер - должен работать в любом браузере, я не проверял. Сделано, если в одном текстовике надо, например, послать разведов у твинов в клиенте, а потом у себя в основе в браузере Клиент=часть_ника_игрока - будет работать в клиенте Сирриса. ник похоже регистрочувствительный