mr-tron / bot Goto Github PK
View Code? Open in Web Editor NEWбот для сеттлерс он-лайн
бот для сеттлерс он-лайн
указать в your_task или еще где что надо чтобы работало.
ну по наитию ясно что лучше слить все файлы в одну папку, но все же.
и вообще, можно подумать о каком-то инсталл-паке с формой редактирования своих заданий.
основная цель - получить доступ к каналу чата news.
я тут начал писать и выяснил чо в отличии от чата и торговли новости проходят не через xmpp. видимо они зашифрованны в amf. как с помощью pyamf их расшифровывать я так и не воткнул.
свою попытку парсера под никсу залил под именем tcp_parser.py
запускается из-под рута.
Должна на странице www.diesiedleronline.de/de/spielen находить кнопку начала игры, ждать пока она не загрузится. в случае если идут профилактическе работы или не грузится должна возвращать ошибку.
Требуется кроссплатформенно получить размеры окна флэш-плагина с игрой, то есть:
(
left # x-координата относительно экрана левого верхнего угла
top # y-координата относительно экрана левого верхнего угла
width # ширина клиента
height # высота клиента
)
Пока рабочий код из автоита. С небольшими правками должен работать.
https://gist.github.com/915744
В кратце так:
import win32gui
hwnd = win32gui.НайтиОкноКонтролаПоЗаданнымПараметрам(class_name, window_name)
win32gui.ActivateWindow(hwnd)
l, t, r, b = win32gui.GetWindowRect(hwnd)
Через скриншот это сделать проблематично, т.к. зацепиться не за что. В особенности правый нижний угол...
Так что надо что-то придумывать!!! Без этого никуда не двинемся!
Окошко активируется так:
import wnck
import gtk
from time import time
browser_title = 'Google Chrome'
wnck_screen = wnck.screen_get_default()
while gtk.events_pending(): gtk.main_iteration()
wnck_windows = [w for w in wnck_screen.get_windows() if w.get_name().find(browser_title) >= 0]
if len(wnck_windows) == 0:
print 'Not found browser window'
else:
wnck_window = wnck_windows[0]
wnck_window.activate(int(time()))
Кстати, wnck
- гномовская тема, она вообще будет не в гноме работать? Кто знает?
??
в целях реализации http://settlers.onbb.ru/viewtopic.php?id=124#p1600
задачи:
0. определение количества ресурсов
Пытаюсь наклепать тот функционал, что есть в автоитовской версии.
Не хватает для полного счастья:
В первую очередь нужны сниппеты под unix
mouse.wheelup(5)
, mouse.wheeldown(5)
.Кто чего знает - отзовись!
Т.к. клавиши 1-9 теперь не действуют, нужна новая система позиционирования.
Т.к. действует клавиша 0 - от неё и плясать будем.
Далее, варианта 2:
Ну, и, собственно, надо написать что-типо client.goto(some_in_game_coordinate)
Для нахождения ключевых элементов окна, всех видов всплывающих окон и иконок бафов в звезде.
Должна принимать кортеж с координатой товара на продажу вида (вкладка, строка, столбец), координаты товара на покупку, кол-во того и другого.
Надо сделать чтобы не мешало.
http://settlers.onbb.ru/viewtopic.php?id=104&p=4#p1498
1 сажать поля ферм
2 сажать колодцы
реализовать путем поиска высохших колодцев и высохших ферм и обновлением их на новые
во время обновления надо ждать завершения 3х слотов строительства
обновлять пока может находить высохшие фермы и колодцы
Автологин
http://settlers.onbb.ru/viewtopic.php?id=104&p=6#p1586
Кстати, я пропатчил малость функцию _BitmapMatch в autofeed, теперь она находит большую часть засохших ферм и родников - кроме тех, которые зданиями и деревьями закрыты. Суть в том, что 1-3 пикселя не совпадают в квадрате 5х5 пикселей:
; Для целей BitmapSearch - проверяет соответствие $bitmap и экрана в точке ($x0; $y0)
Func _BitmapMatch($bitmap, $x0, $y0, $tolerance = 0)
Local $x, $y
Local $falses = 0
For $x = 0 To UBound($bitmap, 1) - 1
For $y = 0 To UBound($bitmap, 2) - 1
If Not ColorMatches(PixelGetColor($x0 + $x, $y0 + $y), $bitmap[$x][$y], 0) Then $falses=$falses + 1
if $falses > 0 and $x = 0 and $y = 0 then return False
if $falses > 3 then return False
Next
Next
Return True
EndFunc
Если надо, хеши:
1257575554 новый хеш корма для животных
1021843579 +250 к емкости шахты
2416911497 +2к рыбы
необходима возможность сделать скрипт
цикл ожидания клавиши esc либо наступления 22:00 {
здесь указаны задачи и время их выполнения
}
подробнее описание:
+еще туду: построить шахту на свободном месте.
либо тупо запрос постройки шахты + выбор какой.
+еще очень нужное туду:
расписание задач!!!! добавить время рядом с каждой задачей время выполнения ( в скобках например)
по умолчанию - "после предыдущей", но и чтобы юзер сам мог указать условия запуска задачи.
возможные значения:
1 "после предыдущей"
2 "по завершении очереди строительства"
3 "через Х минут после завершения предыдущей задачи"
4 "в указанное время: ХХ:ХХ"
простейший пример использования:
отправить геолога - камень
отправить геолога - камень - через 20 минут
отправить геолога - золото - через 20 минут
отправить геолога - золото - через 3 часа 10 минут
отправить геолога - камень ...
либо параллельная очередь:
постройка шахт золота \ меди \ руды каждые 2 часа - 10 задач.
понятно что все ограничиваться может на время жизни сессии. в таком случае сам может смотреть что если суммарное время выполнения задач более 2х часов - то последующие задачи можешь не принимать с надписью "невозможно запустить ввиду ограничения времени жизни кук" или чтото в этом роде.
Возможный пример чего хочется:
TaskList[] = { Drop, Feed, Settle , Build("gold_mine", "15:00"), Build(gold_mine, "after before"), SendGeolog("stone","16:00")};
Exec(TaskList); - разовое выполнение задач с их удаление по завершении \ ошибке
Loop_Exec(TaskLIst) - бесконечное выполнение задач в цикле, выход - ESC
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.