Pixelbot Bild/Text suchen ? Sound abspielen ...

11/30/2011 08:10 defux#1
Möchte, das wenn im inGameChat eines Spiels ein bestimmtes Wort erscheint ein Sound ertönt. Ist das mit AutoIt möglich ? Ist ein Pixelbot eine Möglichkeit dafür ?

Der Chattext steht ja in keiner Datei die man auslesen könnte. Der Chathintergrund ist einfarbig, vielleicht kann man das Wort als Bild speichern, das es verglichen wird ?
11/30/2011 12:21 Black_Beserker#2
welches spiel denn?
wenn dan verusch doch mal mit packetbot das zu machen (falls das damit möglich ist ..:: P )

mfg. Black_Beserker
11/30/2011 13:34 defux#3
League of Legends ...

Ich bekomme oft nicht mit wenn jemand miss schreibt. Dann steht direkt jemand neben mir und ich weiß von nichts :>
11/30/2011 20:57 butter123#4
ja über pixel könntest du es machen, geht aber auf kosten der cpu


hmm nur so ne idee:

irgendwo muss ja der text gespeicehrt sein, der in dem chat angezeigt wird, also mit cheatengine die adresse raussuchen und die dann überprüfen.

kp ob das geht^^
12/02/2011 19:26 snow21#5
hi du, sollte ca. so aussehen

Quote:
#include <GUIConstants.au3>

GUICreate("League RING-DING", 200, 100)
$startbutton = GUICtrlCreateButton("start", 10, 10, 60)
$closebutton = GUICtrlCreateButton("close", 10, 40, 60)
GUISetState(@SW_SHOW)


While 1
$msg = GUIGetMsg()
Select
Case $msg = $startbutton
$farbe1 = PixelSearch(1423, 76, 1650, 235, 0xE9B001, 5)
If IsArray($farbe1) Then
SoundPlay("far10.wav", 5)
Sleep(15000)
EndIf
Case $msg = $closebutton
ExitLoop
EndSelect
WEnd
das ist das simpelste wie man das machen kann. wegen der cpu auslastung habe ich eine sleep von 15000 = 15 sek eingebaut kann man anpassen wie man will aber nie <50

wer es noch genauer will kann es mit imagesearch machen aber da muss man dann jeden buchstaben suchen lassen und das benötigt einfach mehr arbeit. man kann auch mit der variante ganze texte suchen lassen die müssen dann aber fast genau so wieder gegeben werden wie beim ersten mal wo man das bild gespeichert hat. also ist ein satzteil anders oder ein wort fehlt ist die chks = checksumm nicht mehr = und es wird nicht mehr gefunden deswegen würde ich eher pixelorientiert arbeiten.

wenn du es wie ein profi machen willst sniffst du den transfer und liest den text aus aber das kann ich leider nicht bin nur ein fun progger ^^

hoffe konnte dir helfen



SoundPlay("far10.wav", 5)
hier far10.wav durch deinen sound ersetzen

PixelSearch(1423, 76, 1650, 235, 0xE9B001, 5)
hier den farbwert eintragen und die abweichung anpassen farbe wäre hier gelb/gold 0xE9B001 kann man mit autoit machen dazu haben die ein kleines tool unter start - autoit. frag mich aber gerade nicht wie dies heisst habe gerade kein autoit drauf ^^
12/03/2011 19:46 defux#6
hey, danke

ich habe von autoit garkeinen plan, scheint mir nur das leichteste zu sein.
beim pixel search sucht er doch aber nur z.b. weiße pixel in einem bereich oder nicht ?

der text im chat ist ja immer einfarbig abgesehen vom spielernamen. :confused:

habe es mal mit ImageSearch versucht... in windows gehts wenn ich das bild öffne auch aufm nem screenshot, ingame nicht mehr ?!

Quote:
#include<ImageSearch.au3>

$x1 = 0
$y1 = 0

HotKeySet("{NUMPAD2}","starten")
HotKeySet("{NUMPAD3}","beenden")

While 1
sleep(1)
WEnd

Func starten()
While 1
$result=_ImageSearch("miss.png", 1, $x1, $y1, 0)
If $result=1 Then
SoundPlay("miss.wav", 5)
sleep(7000)
EndIf
WEnd
EndFunc

Func beenden()
exit 0
EndFunc
12/04/2011 09:33 Lawliet#7
Warscheinlich ne anti cheat protection
12/04/2011 11:41 defux#8
hm... das einzige was mir auffällt ist, das die fps um 10-15 sinken vielleicht muss ich die toleranz mal was ändern und nochmal testen, man bekommt den hintergrund nicht ganz schwarz