Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Старый 16.09.2011, 15:45   #1
 Разведчик
Аватар для karcun
 
karcun никому не известный тип
Регистрация: 10.09.2011
Сообщений: 35
Популярность: 16
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 2 сообщениях
 
По умолчанию [ВК, ММ: Паровозики]

[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]

Для использования бота нужно сделать и настроить.
Бот работает на платформе AutoIT
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]

Итак, начнем:

Копируем размещенный ниже код в "SciTE Script Editor", он идет в поставке с autoit

1) Строки 1 и 2.
Тут нужно вписать класс и заголовок окна Вашего браузера с активной вкладкой игры.
Открываем браузер, открываем страницу с игрой и смотрим на заголовок окна с помощью "AutoIt Window Info" и прицела (хватаем его и тащим)
[Ссылки могут видеть только зарегистрированные пользователи. ]
Это и есть нужные нам строки

2) Строки 4 и 5:
тут нужно указать координаты верхнего левого пикселя приложения флеш
Открываем "AutoIt Window Info", хватаем прицел и смотрим на координаты.
Для упрощения прицеливания идем в меню Options->Magnify
"AutoIt Window Info" рисует свою рамку вокруг приложения, ее то же надо захватить.
Но не белый фон страницы, там должен быть темный пиксел
[Ссылки могут видеть только зарегистрированные пользователи. ]
Заменяем то, что есть на то, что надо.

3) Строки 7 - 264
Тут нужно раскомментировать номер карты и координаты кнопки станции назначения, куда бот будет отправлять поезда
Ищем нужную станцию, над ней написан номер карты
Код:
$mapNo = (0-2)
$stationButtonX = $posX + X
$stationButtonY = $posY + Y
удаляем символ ";" в начале строки

Всё, бот настроен.
Сохраняем на диск, жмем F7 (в окне "SciTE Script Editor"), рядом с тем файлом, что мы сохранили появится экзешник.
Запускаем браузер, открываем страницу с игрой (лучше всего открыть отдельное окно для игры)
Запускаем наш exeшник и идем пить чай.
Или спать ложимся.
Или идем на работу.
Или едем в командировку.
Бот каждые 20 минут "отбирает" у Вас экран, делает свои дела и останавливается

Код бота:

Код:
$winClass = "Chrome_WidgetWin_0"
$winTitle = "Паровозики"

$posX = 351
$posY = 226

;Коэффициенты: доходность в секунду (ДС), Опыт в секунду (ОпС), общий коэффициент (ОбС)
;ДС		= Д		* 1000 / (Погр + Путь)
;ОпС	= Оп	* 1000 / (Погр + Путь)
;ОбС = ДС + ОпС
;На тысячу умножаем для читабельности
;							Погрузка
;							^		Время в пути
;Станция			Д	Оп	Погр	Путь	ДС		ОпС		ОбС
;------------------+---+---+-------+-------+-------+-------+-----
;Уэйконт			9	7	720		822		5,84	4,54	10,38
;Ричардссонс		6	7	360		822		5,08	5,92	11,00
;Хаскелло			15	20	540		2340	5,21	6,94	12,15
;Планос				9	12	360		1410	5,08	6,78	11,86
;Раундс Рокс		18	25	360		2940	5,45	7,58	13,03
;Чиллдресо			27	30	900		3528	6,10	6,78	12,87
;Хьюстона			30	30	540		3528	7,37	7,37	14,75
;Эль Пасос			36	40	900		4704	6,42	7,14	13,56
;Клиберна			45	50	1080	5882	6,46	7,18	13,65
;Кристис			60	70	360		8234	6,98	8,15	15,13
;Ранкинг			72	80	1440	9410	6,64	7,37	14,01
;Колорадо Сити		75	80	1080	9410	7,15	7,63	14,78
;Хантсвилла			81	90	900		10588	7,05	7,83	14,89
;Финикс				54	50	900		5882	7,96	7,37	15,33
;Форт Уэртос		72	80	900		9410	6,98	7,76	14,74
;------------------+---+---+-------+-------+-------+-------+-----

;$mapNo = 0;Даллас
;Уэйконт
;$stationButtonX = $posX + 120
;$stationButtonY = $posY + 347
;$timeLoading = 1000 * 720
;$timeTravel = 1000 * 822
;Дентон
;$stationButtonX = $posX + 169
;$stationButtonY = $posY + 397
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Ричардссонс
;$stationButtonX = $posX + 139
;$stationButtonY = $posY + 225
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Хаскелло
;$stationButtonX = $posX + 189
;$stationButtonY = $posY + 294
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Гарланд
;$stationButtonX = $posX + 219
;$stationButtonY = $posY + 351
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Планос
;$stationButtonX = $posX + 239
;$stationButtonY = $posY + 205
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Раундс Рокс
;$stationButtonX = $posX + 420
;$stationButtonY = $posY + 226
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Чиллдрессо
;$stationButtonX = $posX + 319
;$stationButtonY = $posY + 286
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Хьюстона
;$stationButtonX = $posX + 410
;$stationButtonY = $posY + 366
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Эль Пасос
;$stationButtonX = $posX + 289
;$stationButtonY = $posY + 356
;$timeLoading =  1000 *
;$timeTravel =  1000 *

$mapNo = 1;Маршал
;Клиберна
;$stationButtonX = $posX + 350
;$stationButtonY = $posY + 366
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Кристис
;$stationButtonX = $posX + 430
;$stationButtonY = $posY + 326
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Тайлер
;$stationButtonX = $posX + 430
;$stationButtonY = $posY + 387
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Ранкинг
;$stationButtonX = $posX + 245
;$stationButtonY = $posY + 366
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Фредриксберг
;$stationButtonX = $posX + 160
;$stationButtonY = $posY + 364
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Тексар
;$stationButtonX = $posX + 80
;$stationButtonY = $posY + 385
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Уичитос Фоллс
;$stationButtonX = $posX + 90
;$stationButtonY = $posY + 316
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Эйдрианс
;$stationButtonX = $posX + 90
;$stationButtonY = $posY + 215
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Колорадо сити
;$stationButtonX = $posX + 210
;$stationButtonY = $posY + 275
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Хантсвилла
;$stationButtonX = $posX + 190
;$stationButtonY = $posY + 215
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Финикс
$stationButtonX = $posX + 310
$stationButtonY = $posY + 264
$timeLoading = 1000 * 900
;$timeTravel = 1000 * 5882
;Форт Уэртос
;$stationButtonX = $posX + 420
;$stationButtonY = $posY + 265
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Галлвестонс
;$stationButtonX = $posX + 369
;$stationButtonY = $posY + 214
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Дэйтона
;$stationButtonX = $posX + 290
;$stationButtonY = $posY + 125
;$timeLoading =  1000 *
;$timeTravel =  1000 *

;$mapNo = 2;Эльдорадо
;Шерман
;$stationButtonX = $posX + 329
;$stationButtonY = $posY + 325
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Тахока
;$stationButtonX = $posX + 440
;$stationButtonY = $posY + 365
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Акрон
;$stationButtonX = $posX + 295
;$stationButtonY = $posY + 365
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Мерида
;$stationButtonX = $posX + 369
;$stationButtonY = $posY + 385
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Рино
;$stationButtonX = $posX + 225
;$stationButtonY = $posY + 365
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Чиуауа
;$stationButtonX = $posX + 150
;$stationButtonY = $posY + 385
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Пампа
;$stationButtonX = $posX + 190
;$stationButtonY = $posY + 326
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Пресидио
;$stationButtonX = $posX + 70
;$stationButtonY = $posY + 365
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Озона
;$stationButtonX = $posX + 190
;$stationButtonY = $posY + 276
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Роли
;$stationButtonX = $posX + 120
;$stationButtonY = $posY + 295
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Перритон
;$stationButtonX = $posX + 69
;$stationButtonY = $posY + 235
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Алпайн
;$stationButtonX = $posX + 225
;$stationButtonY = $posY + 225
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Корсикана
;$stationButtonX = $posX + 169
;$stationButtonY = $posY + 204
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Арчер Сити
;$stationButtonX = $posX + 294
;$stationButtonY = $posY + 225
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Диммит
;$stationButtonX = $posX + 370
;$stationButtonY = $posY + 206
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Сандерсон
;$stationButtonX = $posX + 330
;$stationButtonY = $posY + 275
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Фримонт
;$stationButtonX = $posX + 430
;$stationButtonY = $posY + 300
;$timeLoading =  1000 *
;$timeTravel =  1000 *
;Слейтон
;$stationButtonX = $posX + 440
;$stationButtonY = $posY + 235
;$timeLoading =  1000 *
;$timeTravel =  1000 *

;-------------------------------------------------------
$pause = False
$width = 729
$height = 554

$frameX0 = $posX + 56
$frameY0 = $posY + 37
$frameX1 = $posX + $width
$frameY1 = $posY + $height

Dim $color[4] = [ _
	0xC4CED8, _
	0x8EAFC9, _
	0x2A3772, _
	0x2E3E70 _
]

Dim $bad[6][3][3] = [ _
	[[$posX + 477,$posY + 125, 0x4F5317],[0,0,0],[0,0,0]], _;Шакалы
	[[$posX + 674,$posY + 228, 0x2D4B0A],[0,0,0],[0,0,0]], _;Повозка
	[[0,0,0],[0,0,0],[0,0,0]], _
	[[$posX + 484,$posY + 155 - 63, 0x6E5A23],[0,0,0],[0,0,0]], _;Бандиты
	[[$posX + 292,$posY + 450 - 63, 0x4C5811],[$posX + 442,$posY + 310 - 63, 0x4B5C15], [$posX + 534,$posY + 551 - 63, 0x34530B]], _;Отходы, страусы, нефть
	[[0,0,0],[0,0,0],[0,0,0]] _
]

Dim $actions[6][4] = [ _
	[$posX + $width - 1	, $posY + $height - 1	, $posX + $width - 1	, $posY + 1], _;вниз
	[$posX + 1			, $posY + 1				, $posX + $width - 1	, $posY + 1], _;влево
	[$posX + 1			, $posY + 1				, $posX + $width - 1	, $posY + 1], _;влево
	[$posX + 1			, $posY + 1				, $posX + 1				, $posY + $height - 100], _;вверх
	[$posX + $width - 1	, $posY + 1				, $posX + 1				, $posY + 1], _;вправо
	[$posX + $width - 1	, $posY + 1				, $posX + 1				, $posY + 1] _;вправо
]

AutoItSetOption("WinTitleMatchMode", 2)
WinSetState("classname=" & $winClass, $winTitle, @SW_SHOWNORMAL)
WinActivate($winTitle)

$buttonX = $posX + 158
$buttonY = $posY + 540
$buttonColor = PixelGetColor($buttonX, $buttonY)
MouseMove($posX + 158, $posY + 540)

MouseClickDrag("left", $posX + $width, $posY, $posX + 1, $posY + $height -1)
For $c in $color
	$coord = PixelSearch($frameX0, $frameY0, $frameX1, $frameY1, $c)
	While Not @error
		MouseClick("left", $coord[0], $coord[1] + 5)
		Sleep(1000)
		If PixelGetColor($buttonX, $buttonY) <> $buttonColor Then MouseClick("left", $posX + 363, $posY + 429)
		$coord = PixelSearch($frameX0, $frameY0, $frameX1, $frameY1, $c)
	WEnd
Next

HotKeySet("{F10}", "Quit")
HotKeySet("{Pause}", "TogglePause")
 Func Quit()
	MsgBox(0, "Bye!!!", "See you later )))", 1)
	Exit
EndFunc ;Quit
Func TogglePause()
	If Not $pause Then
		$pause = True
		MsgBox(0, "Pause", "Paused", 1)
	Else
		$pause = False
		MsgBox(0, "Pause", "Continue", 1)
	EndIf
EndFunc ;TogglePause
Func _restart_script()
	MouseClick("left", $posX - 1, $posY - 1)
	Sleep(200)
	Send("{F5}")
	Sleep(20000)
	If @Compiled = 1 Then
		Run(FileGetShortName(@ScriptFullPath))
	Else
		Run(FileGetShortName(@AutoItExe) & " " & FileGetShortName(@ScriptFullPath))
	EndIf
	Exit
EndFunc   ;==>_restart_script

While 1
	While $pause
		Sleep(100)
	WEnd
	WinSetState("classname=" & $winClass, $winTitle, @SW_SHOWNORMAL)
	WinActivate($winTitle)
	If PixelGetColor($buttonX, $buttonY) <> $buttonColor Then _restart_script()

	MouseClick("left", $posX + 180, $posY + 530)
	Sleep(2000)
	MouseClick("left", $posX + 53, $posY + 144)
	Sleep(200)
	MouseClick("left", $posX + 53, $posY + 144)
	Sleep(200)
	For $i = $mapNo - 1 To 0 Step -1
		MouseClick("left", $posX + 678, $posY + 144)
		Sleep(200)
	Next
	MouseClick("left", $stationButtonX, $stationButtonY)
	Sleep(1000)
	While Hex(PixelGetColor($posX + 617, $posY + 549), 6) = "438F29"
		MouseClick("left", $posX + 609, $posY + 538)
		Sleep(1000)
		MouseClick("left", $posX + 300, $posY + 630)
		Sleep(1000)
	WEnd
	Sleep(1000)
	MouseClick("left", $posX + 677, $posY + 109)

	For $i = 0 To 5
		MouseClickDrag("left", $actions[$i][0], $actions[$i][1], $actions[$i][2], $actions[$i][3])
		For $c in $color
			$coord = PixelSearch($frameX0, $frameY0, $frameX1, $frameY1, $c)
			While Not @error
				MouseClick("left", $coord[0], $coord[1] + 5)
				Sleep(1000)
				If PixelGetColor($buttonX, $buttonY) <> $buttonColor Then
					MouseClick("left", $posX + 363, $posY + 429)
					Sleep(1000)
				EndIf
				$coord = PixelSearch($frameX0, $frameY0, $frameX1, $frameY1, $c)
			WEnd
		Next
		For $c = 0 To 2
			If $bad[$i][$c][0] <> 0 And $bad[$i][$c][1] <> 0 And PixelGetColor($bad[$i][$c][0], $bad[$i][$c][1]) <> $bad[$i][$c][2] Then
				MouseClick("left", $bad[$i][$c][0], $bad[$i][$c][1])
				Sleep(2000)
				MouseClick("left", $posX + 322, $posY + 415)
				Sleep(500)
			EndIf
		Next
	Next
	Sleep($timeLoading)
WEnd
Этот бот не "ломает" игру.
Он не сделает из Вас супер пользователя.

Бот лишь следит за тем, что бы у Вас всё жило и цвело.
Вам придется самостоятельно выбирать стратегию поведения, выбирать локомотивы, ремонтировать их (пока я не включил этот момент в поведение бота)
Бот лишь собирает по карте синенькие кружочки и отправляет локомотивы, а так же удаляет всяких бандитов, страусов, мусор и прочие неприятности.

В принципе, для него было бы неплохо отвести отдельную виртуальную машину, но это тема уже для другого разговора )))
Велкам )))

Ругайте, предлагайте, дорабатывайте.
Поглядим, увидим )))

Обновил бота.
Устранил устранил "залипание" при открытии оповещалок.
Научил реагировать на обрыв связи с сервером.

Тестим, не стесняемся ))

Обновление.
Оптимизирован поиск денег и ремонта зданий на карте.
Оптимизирован поиск происшествий.
Оптимизирован пуск поездов со станции.

Внимание!!!
Добавлены переменные:

Время погрузки на станции:
Код:
$timeLoading = 1000 * T
,где T это количество секунд времени погрузки (мин * 60 + сек)
Время в пути
Код:
$timeTravel = 1000 * Т
,где T это количество секунд в пути (час * 60 * 60 + мин * 60 + сек)
$timeTravel - пока не используется

Последний раз редактировалось Hermein; 21.12.2011 в 00:25.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Паровозики pro100LooL Свободное обсуждение 2 22.09.2011 12:57
[Помогите!] Взлом игры "Паровозики" Kurt60 Свободное обсуждение 3 22.09.2011 12:53
[Mail.ru] Паровозики SerL Свободное обсуждение 4 08.11.2010 13:28
[Баг] Паровозики на mail.ru Alexander6107 Игры Mail.ru 5 22.07.2010 21:50

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 23:23.

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net