Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 09:34

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Von der Mitte aus suchen

Discussion on Von der Mitte aus suchen within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: May 2015
Posts: 2
Received Thanks: 0
Von der Mitte aus suchen

Hi Leute

Gibt es eine Möglichkeit, das die ImageSearch Funktion immer von der Mitte aus "berechnet" wird?

Hier ein kleines Beispiel:


Das Blaue Kreutz in der Mitte soll die Desktopmitte und zugleich den "Charakter" symbolisieren.
Der Charakter soll die Sterne, die von eins bis vier gekennzeichnet sind, einsammeln.

Zur Zeit wählt die ImageSearch Funktion bei mir willkürlich aus, sprich:
Es ergibt sich kein "intelligentes Muster"
Er könnte sie 1-3-4-2, 4-1-3-2, 1-4-2-3 etc. einsammeln. Dadurch würde er eine längere Laufzeit und somit suboptimale Effektivität garantieren.

Ich würde es gerne so hinkriegen, dass wenn das gesuchte Ziel mehrfach auf dem Bildschirm zu sehen ist, immer von der Mitte aus berechnet wird, welcher (in diesem Falle Stern) am nächsten liegt.

Sprich:
Der Charakter würde zu Stern 3 laufen, den Stern einsammeln und von der eingesammelten Position neu berechnen, welcher Stern näher liegt - in diesem Falle Stern 4.
Somit wäre der Zyklus 3-4-2-1 und das immer wieder.

Ist das mit AutoIt möglich, oder muss man dafür andere Sprachen wie C+ oder der Gleichen benutzen?
Questhilfe is offline  
Old 05/20/2015, 01:30   #2
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Das kann man auch in AutoIt machen. Entweder holst du die Positionen der Sterne über ImageSearch oder MemoryReads.

Danach ist das eigentlich nur noch lineare Algebra.
Code:
Distanz = Sqrt((X2 - X1)^2 + (Y2 - Y1)^2)
X,Y 1 sind dabei die X und Y Koordinaten des Charakters.
Du berechnest den Abstand von jedem Punkt zum Spieler und nimmst den kleinsten Abstand, schmeißt den aus der Liste raus und vergleichst wieder die Abstände, schmeißt den kleinsten raus etc
alpines is offline  
Old 05/20/2015, 02:12   #3
 
Crossside's Avatar
 
elite*gold: 0
Join Date: Dec 2013
Posts: 2,095
Received Thanks: 506
Das ganze ist im Grunde ziemlich einfach.

Ablauf in etwa:

1) ImageSearch komplett durchlaufen lassen, jeden Punkt den du findest in ein Array packen (die Position)
2) Nun den Abstand von deiner Position (Mitte) zu allen gefundenen Punkten berechnen
3) Nun das Ziel was am nächsten zu dir ist ansteuern. Anschließend das ganze repeaten



Kleine Skizze..

grüße
Crossside is offline  
Old 05/20/2015, 02:20   #4


 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,495
Received Thanks: 1,769
Quote:
Originally Posted by Crossside View Post
1) ImageSearch komplett durchlaufen lassen, jeden Punkt den du findest in ein Array packen (die Position)
Wie bekommt man denn alle gefundenen Bilder von ImageSearch? Soweit ich weiß sucht ImageSearch das Bild von oben links nach unten rechts und liefert nur 0 bzw. 1 zurück wenn es ein Bild gefunden hat.
Moneypulation is offline  
Old 05/20/2015, 09:14   #5
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Quote:
Originally Posted by Crossside View Post
...
Und worin unterscheidet sich das zu meinem Vorschlag?

@Moneypulation, das ist doch ganz einfach. Du suchst die Koordinaten entweder per MemoryRead oder du scannst kleinere Bereiche des Bildschirms ab.
alpines is offline  
Old 05/20/2015, 09:21   #6


 
Moneypulation's Avatar
 
elite*gold: 138
Join Date: Apr 2012
Posts: 3,495
Received Thanks: 1,769
Quote:
Originally Posted by alpines View Post
Und worin unterscheidet sich das zu meinem Vorschlag?

@Moneypulation, das ist doch ganz einfach. Du suchst die Koordinaten entweder per MemoryRead oder du scannst kleinere Bereiche des Bildschirms ab.
Mit MemoryRead konnte ichs mir vorstellen aber nicht mit ImageSearch.



Wenn man jetzt sein Bildschirm in z.b. 4 rechtecke teilt, dann ist das nur zum teil besser, weil er den 3. stern zuerst einsammeln wird obwohl der 2. viel näher ist, weil ImageSearch für oben links nur die koordinaten von stern 1 zurückgibt. Ich schätze es würde sich erst lohnen wenn man sein bildschirm in 16 rechtecke teilt. Aber 16x imagesearch dauert sicher 3-6 sekunden und ist daher ineffizient
Moneypulation is offline  
Old 05/20/2015, 10:16   #7
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Wenn es keine animierten Sachen sind könnte man mit PixelPattern sicherlich noch was an der Geschwindigkeit retten. Dann suchst man nicht mehr nach dem Bild sondern nach einer bestimmten Anordnung von Pixeln.
alpines is offline  
Old 05/20/2015, 16:20   #8
 
Crossside's Avatar
 
elite*gold: 0
Join Date: Dec 2013
Posts: 2,095
Received Thanks: 506
Quote:
Originally Posted by alpines View Post
Und worin unterscheidet sich das zu meinem Vorschlag?

Hab ich behauptet das es das tut?
Ich hab lediglich dem OP geantwortet wie ich es machen würde.
Und da ich sonst nicht so viel Autoit (=garnicht) mache, hab ich ihm nur erklärt wie man es Theoretisch macht. Die Lösung ist halt nur auf einer Art wirklich gut lösbar (also wenn man pixelbots bauen will).. von daher ist deine Methode halt gleich / ähnlich.. was ist daran schlimm?

@OP
Gibts in Autoit keine Methode um einzelne Pixel anhand von Farben zu durchsuchen? Dann könntets du es damit lösen (maybe).
Wobei es sicher aber auch einfacher gehen würde wenn du mit Memory Reading hantieren würdest. Sofern das ganze wie es aussieht eine Art Seafight Bot werden soll musst du dir was einfallen lassen.
Crossside is offline  
Old 05/22/2015, 05:40   #9
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
ImageSearch & Pixelsearch haben nen param wo die mit suchen anfangen sollen.....
YatoDev is offline  
Old 05/24/2015, 19:04   #10
 
elite*gold: 0
Join Date: May 2015
Posts: 2
Received Thanks: 0
Es handelt sich um ein BrowserGame, wodurch die Verwendung von MemoryRead meines Erachtens nach nicht greifen kann. Jedenfalls überschreitet dies meine Fähigkeiten.

Hab bis Dato immer noch keine richtige Lösung finden können.

@VP:
Meinst du den Parameter bei ImageSearchArea, wodurch nicht der ganze Desktop abgesucht wird?
Questhilfe is offline  
Reply


Similar Threads Similar Threads
[S3] AD Kennen top/mitte
09/07/2013 - League of Legends Guides & Strategies - 9 Replies
Inhaltsverzeichnis: 0. Einleitung 1. Runen 2. Items 3. Skillorder 4. Laning 5. Summoner Spells 6. Taktisches Verhalten Schlussworte/Sonstiges 7. Masteries
[Buying] Suche LVL 30 ACC EU MITTE
05/26/2013 - League of Legends Trading - 0 Replies
Jo Leute , ich suche einen LVL 30 account, Skinns sind egal aber runen und einige champs sollten vorhanden sein,wenige sperrungen sind genauso vorraussetzungen :) Freue mich auf eure Angebote!
Fadenkreuz bis in Mitte?
03/05/2012 - Counter-Strike - 5 Replies
Wie kann man das Fadenkreuz, wie der in diesem Video tweeday "Kai "Kaiii" Schäfer - INFLAMED ARDOR" CSS PRO Frag Movie - YouTube Bis in die Mitte laufen lassen, also das die Striche bis in die Mitte gehen, bei mir gehen die nicht so weit zusammen?:D
sigi in die mitte
09/09/2011 - Off Topic - 5 Replies
joar wollt ma fragen wie man ne sigi in die mitte macht ?



All times are GMT +2. The time now is 09:34.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.