Что нового

[Автоматизация] [ExGods] пишем бота

leon001

Новичок
Сообщения
22
Репутация
1
нужна автоматизация некоторых процессов в игре, готов рассмотреть ваши предложения
писать СЮДА
игра написана на флеше, виндовс инфо ничего не дает фактически, единственный вариант, который я вижу - имаже серч) самому писать лень.
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
Этот форум не для ленивых
 
Автор
L

leon001

Новичок
Сообщения
22
Репутация
1
winstan, очень прошу, либо по сути, либо в лес.
Nik_rus, суть в том, что я не уверен, что кто-то будет помогать, а будет так же умничать, вам туда, вам сюда.
если будет помощь предложена от кого-то, кул, нет буду сам писать, просто времени нет. А бот нужен уже или как можно быстрее

у меня есть наработки с друго проекта на основе пиксель серча, скрипт работает под корагейм, но его надо адаптировать и очень даже серьезно, + не до конца понимаю почему сохраненные принт скрины не соответствуют тому, что на экране. Хотя пока это не самое важное


Добавлено:
Сообщение автоматически объединено:

Уважаемые форумчане, в этом теме либо не пишем, либо пишем по теме:
вот это можно сделать так: ....
а вот это я бы сделал так: ...

и это желательно подкрепить ссылкой. а еще лучше частью кода..

З.ы. кто знает секрет почему скрин не соответствует изображению на экране?


Добавлено:
Сообщение автоматически объединено:

winstan, совсем забыл, уважаемый, Автоматизация - ни что иное как лень!
 

Nik_rus

Python The Snake.
Сообщения
214
Репутация
62
leon001 [?]
Nik_rus, суть в том, что я не уверен, что кто-то будет помогать, а будет так же умничать, вам туда, вам сюда.
если будет помощь предложена от кого-то, кул, нет буду сам писать, просто времени нет. А бот нужен уже или как можно быстрее
Так почему бы не попытать счастья в Столе заказов?
у меня есть наработки с друго проекта
А почему не показали? Если уж "мы" пишем бота, то давайте делитесь, телепатов нет.
Автоматизация - ни что иное как лень
шта? Автоматизация - это решение для тех, кому лень выполнять рутинные задачи, а не тех, кому лень автоматизировать.

Ну и чтобы моё сообщение несло смысловую нагрузку:
Вызвать окно для отладки какой-нибудь переменной можно так:
Код:
$variable = "Some variable"
MsgBox(0,"Info",$variable)

MsgBox
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
leon001 [?]
winstan, совсем забыл, уважаемый, Автоматизация - ни что иное как лень!
Лень истенный двигатель прогресса, однажды и человек заметил что круглое катить легче чем квадратное.

Ну а по теме не думаю что вам тут кто то возьмётся просто так полностью написать бота, помочь всегда пожалуйста как видите даже в ночь тут есть люди.
Такчто читайте справку, изучайте имеющийся у вас код бота а что не понятно всегда можно узнать тут на форуме или в конференции
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
В будущем будет добавлено правило, гласящее что все "Мне лень", должны заявляться с уже озвученной денежной суммой (начиная от 1000р), конкретной озвученной задачей, названием игры и конкретными пожеланиями. Всё в открытом виде, любые сторонние способы связи будут просто напросто вырезаться. И переводить всё заявленное вознаграждение мне как гаранту. И только после этого, вы можете начинать кривляться своими "Кому не нравится - в лес".

Раз уж вас, личей по теме ботов вытравливают из открытого раздела к нам, то у меня, вы будете ходить по струне, коли не хотите искать исполнителей заказов на фрилансе за баснословные деньги.
 
Автор
L

leon001

Новичок
Сообщения
22
Репутация
1
Nik_rus, очень актуально для флеша


Добавлено:
Сообщение автоматически объединено:

Belfigor, пока такого правила нет? ой, и правда нет. ну значит разрешено.
а наработки выложу в ближайшее время


Добавлено:
Сообщение автоматически объединено:

winstan, 2 поста, ценность содержимого чуть выше нуля.


Добавлено:
Сообщение автоматически объединено:

повторю вопрос, кто знает почему скрин не соответствует изображению на экране? формат скрина bmp 24-разрядный
 

nowost

Знающий
Сообщения
178
Репутация
17
интересно человек тролит всех или он действительно серьёзно считает что добрый дяденька за него все напишет ?
 
Автор
L

leon001

Новичок
Сообщения
22
Репутация
1
nowost, интересно на этом форуме есть не флудеры... *сомнения*
ну или хотя бы те, кто умеют читать *сомнения*


Добавлено:
Сообщение автоматически объединено:

может кто подсказать почему скрин в bmp-24 разрядный не соответствует тому изображению, что на экране? и как это поправить?


Добавлено:
Сообщение автоматически объединено:

Код:
#include-once
; ------------------------------------------------------------------------------
;
; AutoIt Version: 3.0
; Language:       English
; Description:    Functions that assist with Image Search
;                 Require that the ImageSearchDLL.dll be loadable
;
; ------------------------------------------------------------------------------

;===============================================================================
;
; Description:      Find the position of an image on the desktop
; Syntax:           _ImageSearchArea, _ImageSearch
; Parameter(s):     
;                   $findImage - the image to locate on the desktop
;                   $tolerance - 0 for no tolerance (0-255). Needed when colors of 
;                                image differ from desktop. e.g GIF
;                   $resultPosition - Set where the returned x,y location of the image is.
;                                     1 for centre of image, 0 for top left of image
;                   $x $y - Return the x and y location of the image
;
; Return Value(s):  On Success - Returns 1
;                   On Failure - Returns 0 
;
; Note: Use _ImageSearch to search the entire desktop, _ImageSearchArea to specify
;       a desktop region to search
;
;===============================================================================
Func _ImageSearch($findImage,$resultPosition,ByRef $x, ByRef $y,$tolerance)
   return _ImageSearchArea($findImage,$resultPosition,0,0,@DesktopWidth,@DesktopHeight,$x,$y,$tolerance)
EndFunc

Func _ImageSearchArea($findImage,$resultPosition,$x1,$y1,$right,$bottom,ByRef $x, ByRef $y, $tolerance)
	;MsgBox(0,"asd","" & $x1 & " " & $y1 & " " & $right & " " & $bottom)
	if $tolerance>0 then $findImage = "*" & $tolerance & " " & $findImage
	$result = DllCall("ImageSearchDLL.dll","str","ImageSearch","int",$x1,"int",$y1,"int",$right,"int",$bottom,"str",$findImage)

	; If error exit
    if $result[0]="0" then return 0
	
	; Otherwise get the x,y location of the match and the size of the image to
	; compute the centre of search
	$array = StringSplit($result[0],"|")
   
   $x=Int(Number($array[2]))
   $y=Int(Number($array[3]))
   if $resultPosition=1 then
      $x=$x + Int(Number($array[4])/2)
      $y=$y + Int(Number($array[5])/2)
   endif
   return 1
EndFunc

;===============================================================================
;
; Description:      Wait for a specified number of seconds for an image to appear
;     
; Syntax:           _WaitForImageSearch, _WaitForImagesSearch
; Parameter(s):     
;					$waitSecs  - seconds to try and find the image
;                   $findImage - the image to locate on the desktop
;                   $tolerance - 0 for no tolerance (0-255). Needed when colors of 
;                                image differ from desktop. e.g GIF
;                   $resultPosition - Set where the returned x,y location of the image is.
;                                     1 for centre of image, 0 for top left of image
;                   $x $y - Return the x and y location of the image
;
; Return Value(s):  On Success - Returns 1
;                   On Failure - Returns 0 
;
;
;===============================================================================
Func _WaitForImageSearch($findImage,$waitSecs,$resultPosition,ByRef $x, ByRef $y,$tolerance)
	$waitSecs = $waitSecs * 1000
	$startTime=TimerInit()
	While TimerDiff($startTime) < $waitSecs
		sleep(100)
		$result=_ImageSearch($findImage,$resultPosition,$x, $y,$tolerance)
		if $result > 0 Then
			return 1
		EndIf
	WEnd
	return 0
EndFunc

;===============================================================================
;
; Description:      Wait for a specified number of seconds for any of a set of
;                   images to appear
;     
; Syntax:           _WaitForImagesSearch
; Parameter(s):     
;					$waitSecs  - seconds to try and find the image
;                   $findImage - the ARRAY of images to locate on the desktop
;                              - ARRAY[0] is set to the number of images to loop through
;								 ARRAY[1] is the first image
;                   $tolerance - 0 for no tolerance (0-255). Needed when colors of 
;                                image differ from desktop. e.g GIF
;                   $resultPosition - Set where the returned x,y location of the image is.
;                                     1 for centre of image, 0 for top left of image
;                   $x $y - Return the x and y location of the image
;
; Return Value(s):  On Success - Returns the index of the successful find
;                   On Failure - Returns 0 
;
;
;===============================================================================
Func _WaitForImagesSearch($findImage,$waitSecs,$resultPosition,ByRef $x, ByRef $y,$tolerance)
	$waitSecs = $waitSecs * 1000
	$startTime=TimerInit()
	While TimerDiff($startTime) < $waitSecs
		for $i = 1 to $findImage[0]
		    sleep(100)
		    $result=_ImageSearch($findImage[$i],$resultPosition,$x, $y,$tolerance)
		    if $result > 0 Then
			    return $i
		    EndIf
		Next	
	WEnd
	return 0
EndFunc



Добавлено:
Сообщение автоматически объединено:

Код:
;===========================================================================================================
;@Author Ewvyx  I wrote this so please don't slap your name on it.

;This script searches the desktop for a specified image.
;It is useful for testing whether or not your images can be found using the other scripts.
;It is designed for a 1920x1080 display
#RequireAdmin
#include <ImageSearch.au3>

$img = "chiron"  ;Change this to the name of the image you want to find
;===========================================================================================================
 
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("q","findImage")
Global $Paused
Global $gX = 0
Global $gY = 0
Global $pics = @ScriptDir & "\"
$managogsDir = $pics & "Managogs\"
$buttonsDir = $pics & "Buttons\"
$farmDir = $pics & "Farm\"
$astralsDir = $pics & "Astrals\"
$imgExt = ".bmp"


Func TogglePause()
    $Paused = Not $Paused
    While $Paused
        Sleep(100)
        ToolTip('Script is "Paused"', 0, 0)
    WEnd
    ToolTip("")
EndFunc   ;==>TogglePause

Func Terminate()
    Exit 0
EndFunc   ;==>Terminate

Func findImage()
   ToolTip("")
   $result = _ImageSearch($astralsDir & $img & $imgExt,1,$gX,$gY,70)  ;<=== Change the $...Dir variable to the Directory of your choice.
   If $result = 1 Then
	  ToolTip("")
	  MsgBox(0,"Result","Found!")
	  MouseMove($gX, $gY, 10)
   Else
	  ToolTip("Nope",0,0)
   EndIf
EndFunc


While 1
	ToolTip("Press 'q' to begin",0,0)
	Sleep(100)
WEnd
 

mef-t

Осваивающий
Сообщения
306
Репутация
30
leon001, Ваше сообщение выглядит в точности как мой последующий ответ.

"Суть в том что (продолжение выложу позже)"
или
"Потому что переменная X не может быть равна переменной Y".
(где X и Y условные переменные, правила и значения которых я выложу позже).

А по существу, leon001, следует выкладывать всю информацию, чтобы получить ответ.
Т.е. если что-то хочешь получить, предоставь в замен что-то свое.
На этом форуме принимаются и такие ценности как исходные данные.
За все время моего пребывания я не видел, чтобы отказывали, если правильно объяснить суть дела и предоставить все что требуется.

Также считаю, что данную тему следует закрыть. Особенно, если автор все еще не понял, по какой причине он не может получить желаемого.
При этом автор уже создал новую тему в разделе "Стол заказов". Смею предположить, что бот требуется все тот же.
 
Автор
L

leon001

Новичок
Сообщения
22
Репутация
1
mef-t, насколько я понимаю, либо это разговор слепого с глухим по скайпу, либо я чего-то в этой жизни не понимаю.
У меня был бот, работающий под другую игру, он искал картинки и тыкал на них. появилось желание сделать аналогично для этого проекта, где играют друзья. Появилось несколько проблем. Картинки которые делаются через принтскрин BMP 24-разрядный, перестали распознаваться после сохранения. Тыкаешь вставить в паинт, все гуд, прога тыкает на паинт. Сохраняешь и скрипт уже не узнает эту картинку. я не могу понять почему. А про стол заказов там пока помощи как и тут ноль. так что чувствую, что проще самому написать, чем ждать пока кто-то снизойдет до такого, чтоб написать это даже за деньги.


Добавлено:
Сообщение автоматически объединено:

на картинку тыкаю вот так:
Код:
Func CheckForImage1()
	If $rechargeTrees = False Then
		Return
	EndIf
	If ClickImage($farmDir1,"image1") Then
		Do
			Sleep(100)
		Until ClickImage($farmDir,"image2") = False
	EndIf
EndFunc
 

mef-t

Осваивающий
Сообщения
306
Репутация
30
mef-t, насколько я понимаю, либо это разговор слепого с глухим по скайпу, либо я чего-то в этой жизни не понимаю.
Иногда стоит думать и том, что проблема именно в Вас, в частности "либо я чего-то в этой жизни не понимаю". Об этом тут было неоднократно сказано.
А по делу.
1. Нет ни одного примера картинок. Т.е. вы говорите, что у Вас картинки не сравниваются. Прикладываете (уже через большое кол-во сообщений) код, в котором вызывается функция сравнения, при этом нет ни файла @ScriptDir\Astrals\chiron.bmp, ни того, что у Вас на экране.
2. Вы сейчас указали, что программа работает, если картинки идентичны. Т.е. см. п.1 и под лупой сравнивайте картинки, 100% есть расхождения хотя бы в одном пикселе.
3. Никому это не нужно кроме Вас. Тут люди работают всего лишь за "спасибо". Это ничто для материального мира. От этого у Вас в кошельке не убудет. А когда человек начинает как Вы, от него вряд ли будет "спасибо".

Далее делайте выводы. Я вроде как разжевал практически все.
 
Автор
L

leon001

Новичок
Сообщения
22
Репутация
1
тему можно закрывать, уже не актуально. разобрался сам
 
Верх