brauche hilfe bei nem script

11/19/2008 20:14 Knorax#1
folgendes script sollte nach pixelfarbe 0xC6C3BD in einem viereckicgen bereich eines aktive desktops suchen, drauf klicken. script macht folgendes: nach starten geht es auf den win titel an 2 positionen einmal links einmal rechts, danach drückt es alt dann auf coord x und wieder auf wintitel.

kann mir jemand helfen das das script das tut was es tun soll? :(


HotKeySet("{PAUSE}", "EndScript")

$win_title = "FW Client - Beta - Final : 7319.1029.0003.0000"
$mob_found = 0;
$mob_alive = 0;
$win_size = WinGetPos($win_title)

WinActivate($win_title, "")
WinSetOnTop($win_title, "", 0)
Sleep(1000)


While 1
Sleep(Int(Random(500,1000)))

FindMobRight()
If $mob_found == 1 Then
RightClick()
Sleep(1000)
MobLiving()
While $mob_alive == 1
Sleep(1000)
MobLiving()
WEnd
Sleep(Int(Random(1500,2000)))
AutoLoot()
EndIf

FindMobLeft()
If $mob_found == 1 Then
RightClick()
Sleep(1000)
MobLiving()
While $mob_alive == 1
Sleep(1000)
MobLiving()
WEnd
Sleep(Int(Random(1500,2000)))
AutoLoot()
EndIf
WEnd

Func MobLiving()
$check_pix = PixelGetColor( 830 , 58 )
$mob_alive = 0
If Hex($check_pix, 6) == 0xC6C3BD Then
$mob_alive = 1
EndIf
EndFunc

Func AutoLoot()
Send("{ALTDOWN}")
MouseMove(1007,251)
LeftClick()
Sleep(10)
Send("{ALTUP}")
Sleep(1000)
EndFunc

Func FindMobRight()
$pos = PixelSearch ( $win_size[0]+550, $win_size[1], $win_size[2]-100, $win_size[3]-100, 0xC6C3BD, 50)
$mob_found = 0
If Not @error Then
MouseMove($pos[0], $pos[1]+10)
$mob_found = 1
EndIf
EndFunc

Func FindMobLeft()
$pos = PixelSearch ( $win_size[0]+100, $win_size[1], $win_size[2]-350, $win_size[3]-100, 0xC6C3BD, 50)
$mob_found = 0
If Not @error Then
MouseMove($pos[0], $pos[1]+10)
$mob_found = 1
EndIf
EndFunc

Func EndScript()
Exit
EndFunc

Func LeftClick()
MouseDown("left")
Sleep(100)
MouseUp("left")
EndFunc

Func RightClick()
MouseDown("right")
Sleep(100)
MouseUp("right")
EndFunc
11/20/2008 09:58 Knorax#2
*schubs
11/20/2008 15:05 Atheuz#3
Phoenix Dynasty oder? Lass das lieber mit der Pixel Farbe. Löse es lieber mit einer Speicheradresse. Ist zwar kein AutoIt aber sollte in etwa die Idee sein die du verwenden kannst;

Code:
  attach( findWindow("FW Client - Beta - Final : *") ); -- Maus/Tastatur hooken
  proc = openProcess( findProcess("FW Client - Beta - Final : *") ); -- Speicher öffnen
[...]
function CheckTarget()
    Target = memoryReadIntPtr(proc, 0x0094ABD0, 316);
	if( Target == 1 and TargetSelected == 0 ) then -- Überprüfen ob sich am Mauszeiger ein Monster befindet, nur möglich wenn man im Moment nicht angreift
 	mouseRClick();
 	rest(10);
 	mouseSet(511, 440);
 	mouseSet(511, 270);
    end
    
    TargetSelected = memoryReadIntPtr(proc, 0x0094ABD4, 316);
    if( TargetSelected == 1 ) then -- Wird ausgeführt solange ein Monster angegriffen wird z.B Timeout einfügen
    rest(100);
    end

-- Zufällig die Maus positionieren. Bzw Monstersuche.
    if( Target == 0 and TargetSelected == 0 ) then
    X = math.random(1000);
    Y = math.random(700);
    if( X > 400 and X < 565) then
	mouseSet(0,0);
    end
    if( Y > 285 and Y < 439 ) then
    mouseSet(0,0);
    end
    mouseSet(X, Y);
    rest(10);
    end
end
Ziemlich alter Codeschnippsel noch von mir, die Adressen müssen geupdatet werden.
Hätte ich PD noch installiert würde ich dir das Grafisch darstellen, aber du musst nur wissen das Target entweder 1 oder 0 ausgibt jenachdem ob sich ein Mob am Mauszeiger befindet.
Der restliche Code sucht einfach zufällig nach Mobs bzw auch Mobs die einen angreifen.
11/20/2008 15:29 Knorax#4
ich dneke dazu hab ich zu wenig erfahrung um das zu verstehen
C:\Dokumente und Einstellungen.... (5) : ==> Missing separator character after keyword.:
Target = memoryReadIntPtr(proc, 0xC6C3BD 316)
Target = memoryReadIntPtr(proc^ ERROR
>Exit code: 1 Time: 0.220
kommt dann.. ohman :( bekomm das nicht gebacken n bot dafür herzubekommen/zu schreiben

aber danke für den hilfe versuch
11/21/2008 00:32 Atheuz#5
Quote:
Originally Posted by Knorax View Post
ich dneke dazu hab ich zu wenig erfahrung um das zu verstehen
C:\Dokumente und Einstellungen.... (5) : ==> Missing separator character after keyword.:
Target = memoryReadIntPtr(proc, 0xC6C3BD 316)
Target = memoryReadIntPtr(proc^ ERROR
>Exit code: 1 Time: 0.220
kommt dann.. ohman :( bekomm das nicht gebacken n bot dafür herzubekommen/zu schreiben

aber danke für den hilfe versuch
Quote:
kein AutoIt
;) Wie die Funktionen zum Speicherauslesen in AutoIt heißt weiß ich nicht, google einfach mal nach NomadMemory. Ansonsten lad ich mir morgen Mittag wieder PDO runter und schreibe den Bot fertig damit du siehst was ich meine. Welches Level bist du eigentlich?
11/21/2008 11:11 Knorax#6
:O das wäre mehr als toll :O 51 bin ich nun :$
11/21/2008 14:36 Atheuz#7
Quote:
Originally Posted by Knorax View Post
:O das wäre mehr als toll :O 51 bin ich nun :$
Ich hab eine Cheat Engine Table angehängt die jeweils das was du zum angreifen brauchst hat. Ich nehme mal an du kennst dich mit Cheat Engine aus?

Danach musst du das in Autoit in etwa so einbinden;
if(MouseTarget == 1)
mouseRclick();

Sobald du das soweit hast kannst du sehen worrauf ich hinaus will.
11/21/2008 15:55 Knorax#8
das hilft mir .. nicht weiter :( leider.. dazu fehlen mir die kenntnisse
11/21/2008 16:02 Knorax#9
was hilfreich wäre, ist ein script ausschnitt für autoit das mobs findet. sei es mit eingabe der farbe manuell oder nicht. hauptsahe er macht es :/
11/21/2008 21:15 Atheuz#10
Quote:
Originally Posted by Knorax View Post
was hilfreich wäre, ist ein script ausschnitt für autoit das mobs findet. sei es mit eingabe der farbe manuell oder nicht. hauptsahe er macht es :/
Das Script oben zu porten sollte doch wohl kein Problem sein hm?
Zufällige Zahlen generieren, einen Bereich erstellen wo der Mauszeiger nicht hinsoll und dann den Mauszeiger mit den zufälligen Zahlen füttern. Mobs sind so in 0,5 Sekunden gefunden :O
11/21/2008 21:55 Knorax#11
für mich leider schon. :(
11/24/2008 12:51 Knorax#12
schubs*
11/30/2008 14:27 Knorax#13
*schubs