Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Guild Wars > GW Bots
You last visited: Today at 11:35

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

Advertisement



2 probleme im Script

Discussion on 2 probleme im Script within the GW Bots forum part of the Guild Wars category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2009
Posts: 69
Received Thanks: 1
2 probleme im Script

hab leider zwei Probleme in meinem Script, evtl. kann mir ja einer von euch weiter helfen.

1. die identifizierung des 5. Slots.
2. Das Identkit im Hintergrund verschieben.

zu 1.)

$ident_x = 40
$ident_y = 285
$Slot1_x = 40
$Slot1_y = 80

For $iy = $Slot1_y To $Slot1_y + 140 Step 45
For $ix = $Slot1_x To $Slot1_x + 160 Step 40
also,X-Wert von :
Slot1 ist 40
Slot2 +40
Slot3 +80
Slot4 +120
und Slot5 +160
also müsste das doch eigentlich funktionieren..., der identifiziert aber nur von Slot1 bis 4. Hab auch schon mit +150, 155, 165, und 170 ausprobiert.

zu 2.)
MouseClickDrag("left",36,315,43,108)
funktioniert nur im aktiven Fenster,
aber wie geht das im Hintergrund ?

hier auch mal mein Script:

Gildenhalle : Insel des Zauberers
Skill 4 : Symbol des Zorns
Skill 5 : Gesegnetes Siegel
Steuerung : Inventar:Alle Taschen anzeigen = . (Punkt)

PHP Code:
#cs ----------------------------------------------------------------------------

AutoIt Version3.3.0.0
Author
Micha7

Script 
Function:
TQ Farmbot

#ce ----------------------------------------------------------------------------
#cs
Script Start Add your code below here
Opt
("CaretCoordMode"1) ;1=absolute0=relative
Opt
("ExpandEnvStrings"0) ;0=don't expand, 1=do expand
Opt("MouseClickDelay", 10) ;10 milliseconds
Opt("MouseClickDownDelay", 10) ;10 milliseconds
Opt("MouseClickDragDelay", 250) ;250 milliseconds
Opt("MouseCoordMode", 1) ;1=absolute, 0=relative
Opt("MustDeclareVars", 0) ;0=no, 1=require pre-declare
Opt("PixelCoordMode", 1) ;1=absolute, 0=relative
Opt("RunErrorsFatal", 1) ;1=fatal, 0=silent set @error
Opt("SendAttachMode", 0) ;0=don'
t attach1=do attach
Opt
("SendCapslockMode"1) ;1=store and restore0=don't
Opt("SendKeyDelay", 5) ;5 milliseconds
Opt("SendKeyDownDelay", 1) ;1 millisecond
Opt("TrayIconDebug", 0) ;0=no info, 1=debug line info
Opt("TrayIconHide", 0) ;0=show, 1=hide tray icon
Opt("WinWaitDelay", 250) ;250 milliseconds
Opt("WinDetectHiddenText", 0) ;0=don'
t detect1=do detect
Opt
("WinSearchChildren"1) ;0=no1=search children also
Opt
("WinTitleMatchMode"1) ;1=start2=subStr3=exact4=...
Opt("WinWaitDelay"250) ;250 milliseconds
#ce

Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",4)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)


WinWait("Guild Wars","")
If 
Not WinActive("Guild Wars",""Then WinActivate("Guild Wars","")
WinWaitActive("Guild Wars","")
WinMove("Guild Wars","",0,0,800,600)


;- 
START HOTKEY mit PAUSE Taste könnt ihr den bot Pausieren lassen
HotKeySet
("{PAUSE}""TogglePause")

Global 
$Paused


Func TogglePause
()
$Paused NOT $Paused
While $Paused
sleep
(100)
ToolTip('Der Bot wurde angehalten',0,0)
WEnd
ToolTip
("Der Bot wird wieder ausgeführt")
If 
Not WinActivate("Guild Wars"Then
WinActivate
("Guild Wars")
WinMove("Guild Wars","",0,0,800,600)
EndIf
Sleep(2000)
EndFunc
;- ENDE HOTKEY mit PAUSE Taste könnt ihr den bot Pausieren lassen

;- START HOTKEY mit Ende beendet ihr das Script
hotkeyset
("{End}""end")

func end()
Exit
EndFunc
;- ENDE HOTKEY mit Ende beendet ihr das Script

;-Start HOTKEY Stealth Modus
HotKeySet
("{PGUP}""stealth_on")
HotKeySet("{PGDN}""stealth_off")

Func stealth_on()
WinSetState("Guild Wars","",@SW_HIDE)
EndFunc

Func stealth_off
()
WinSetState("Guild Wars","",@SW_SHOW)
EndFunc
;-Ende HOTKEY Stealth Modus

Func _MakeLong
($LoWord$HiWord)
Return 
BitOR($HiWord 0x10000BitAND($LoWord0xFFFF))
EndFunc ;==>_MakeLong

Func _MouseClick
($hWnd$button$x$y$times 1$delay 15)
If 
$hWnd 0 Then
SetError
(-1)
Return
EndIf

Local $ix
Local $lParam 
_MakeLong($x$y)
Local $user32 DllOpen("user32.dll")

$button StringLower($button)

If 
$button "left" Then
For $ix 1 To $times
DllCall
($user32"int""PostMessage""hwnd"$hWnd"int"0x200"int"0"long"$lParam)
DllCall($user32"int""PostMessage""hwnd"$hWnd"int"0x201"int"1"long"$lParam)
DllCall($user32"int""PostMessage""hwnd"$hWnd"int"0x202"int"0"long"$lParam)
If 
$ix $times Then Sleep($delay)
Next
ElseIf $button "right" Then
For $ix 1 To $times
DllCall
($user32"int""PostMessage""hwnd"$hWnd"int"0x200"int"0"long"$lParam)
DllCall($user32"int""PostMessage""hwnd"$hWnd"int"0x204"int"2"long"$lParam)
DllCall($user32"int""PostMessage""hwnd"$hWnd"int"0x205"int"0"long"$lParam)

If 
$ix $times Then Sleep($delay)
Next
Else
SetError(-2)
If 
$user32 <> -1 Then DllClose($user32)
Return
EndIf
If 
$user32 <> -1 Then DllClose($user32)
EndFunc ;==>_MouseClick

$hWnd 
WinGetHandle("Guild Wars")

;-
Start Eingabe von /resign
Send
("{Enter}")
Sleep(1000)
Send("/resign")
Sleep(1000)
Send("{Enter}")
;-
Ende Eingabe von /resign

Sleep
(1000)

;-
Start Farmen

While 1


;-Start Normalmode to Hardmode befor run Bot
ControlClick
($hWnd,"","","left",1,657,50)
;-
Ende Normalmode to Hardmode befor run Bot

;-Start Weg aus Tquellen
Global $Runden 0
Do
$Runden $Runden 1
Sleep
(2000)
ControlSend($hWnd,"","","ö")
Sleep(500)
ControlSend($hWnd,"","","{SPACE}")
Sleep(9000)
ControlSend($hWnd,"","","{w down}")
Sleep(2200)
ControlSend($hWnd,"","","{d down}")
Sleep(900)
ControlSend($hWnd,"","","{d up}")
Sleep(4000)
ControlSend($hWnd,"","","{w up}")
Sleep(4000)
;-
Ende Weg aus Tquellen

;-Start Tquellen Kampf Script
ControlSend
($hWnd,"","","{e down}")
Sleep(1500)
ControlSend($hWnd,"","","{e up}")
Sleep(500)
ControlSend($hWnd,"","","8")
Sleep(2500)
ControlSend($hWnd,"","","7")
Sleep(2500)
ControlSend($hWnd,"","","5")
Sleep(2500)
ControlSend($hWnd,"","","6")
Sleep(4000)
ControlSend($hWnd,"","","{w down}")
Sleep(2500)
ControlSend($hWnd,"","","{w up}")
Sleep(4000)
ControlSend($hWnd,"","","5")
Sleep(2500)
ControlSend($hWnd,"","","1")
Sleep(800)
ControlSend($hWnd,"","","2")
Sleep(1200)
ControlSend($hWnd,"","","{w down}")
Sleep(6000)
ControlSend($hWnd,"","","{w up}")
Sleep(500)
ControlSend($hWnd,"","","2")
Sleep(1000)
ControlSend($hWnd,"","","3")
Sleep(2000)
ControlSend($hWnd,"","","1")
Sleep(600)
ControlSend($hWnd,"","","c")
Sleep(500)
ControlSend($hWnd,"","","{SPACE}")
Sleep(3000)
ControlSend($hWnd,"","","2")
Sleep(1500)
ControlSend($hWnd,"","","5")
Sleep(2500)
ControlSend($hWnd,"","","1")
Sleep(2000)
ControlSend($hWnd,"","","4")
Sleep(3000)
ControlSend($hWnd,"","","2")
Sleep(1500)
ControlSend($hWnd,"","","1")
Sleep(3000)
ControlSend($hWnd,"","","2")
Sleep(3000)
ControlSend($hWnd,"","","1")
Sleep(1500)
;-
Ende Tquellen Kmpf Script

;-Start Drop´s einsammeln
$Einsammeln 
0
Do
$Einsammeln $Einsammeln 1
ControlSend
($hWnd,"","","{ö}")
Sleep(500)
ControlSend($hWnd,"","","{SPACE}")
Sleep(1000)
Until $Einsammeln ;Anzahl für´s aufheben
;-Ende Drop´s einsammeln

;-Start /resign
ControlSend
($hWnd,"","","{Enter}")
Sleep(800)
ControlSend($hWnd,"","","{Up}")
Sleep(800)
ControlSend($hWnd,"","","{Enter}")
;-
Ende /resign

Sleep
(4000)

;-
Start In den Aussenposten reisen
ControlClick
($hWnd,"","","left",1,409,300)
Sleep(6000)
;-
Ende In den Aussenposten reisen

Until $Runden 
24 ;Anzahl der Runden
;-Ende Farmen

;-Start Reise zur Gildenhalle
ControlSend
($hWnd,"","","{g}")
Sleep(500)
ControlClick($hWnd,"","","left",1,281,55)
Sleep(8000)
;-
Ende Reise zur Gildenhalle

;-Start Identifizieren
Opt
("MouseClickDelay"100)

ControlSend($hWnd"""""{.}")
Sleep(500)
$ident_x 40
$ident_y 
285
$Slot1_x 
40
$Slot1_y 
80

For $iy $Slot1_y To $Slot1_y 140 Step 45
For $ix $Slot1_x To $Slot1_x 160 Step 40
ControlClick
($hWnd"""""left"2$ident_x$ident_y)
Sleep(300)
_MouseClick($hWnd"left"$ix$iy180)
Next
Next
ControlSend
($hWnd"""""{.}")
;-
Ende Identifizieren
Sleep
(600000)


;-
Start Weg zum Kaufmann
ControlSend
($hWnd,"","","{d down}")
Sleep(100)
ControlSend($hWnd,"","","{d up}")
ControlSend($hWnd,"","","{r}")
Sleep(4400)
ControlSend($hWnd,"","","{d down}")
Sleep(1000)
ControlSend($hWnd,"","","{d up}")
Sleep(2500)
ControlSend($hWnd,"","","{v}")
ControlSend($hWnd,"","","{space}")
Sleep(3000)
;-
Ende Weg zum Kaufmann

;-Start Verkaufen
ControlClick
($hWnd,"","","left",1,500,40)
For 
$verkaufen 1 To 20
ControlClick
($hWnd,"","","left",1,640,525)
Sleep(500)
Next
;-Ende Verkaufen


;-Start Identkit verkaufen und neues kaufen
MouseClickDrag
("left",36,315,43,108)
Sleep(1000)
ControlClick($hWnd,"","","left",1,500,40)
Sleep(1000)
ControlClick($hWnd,"","","left",1,640,525)
Sleep(1000)
ControlClick($hWnd,"","","left",1,426,40)
Sleep(1000)
ControlClick($hWnd,"","","left",2,472,230)
Sleep(1000)
MouseClickDrag("left",43,108,43,315)
;-
Ende Identkit verkaufen und neues kaufen

sleep
(2000)

;-
Start Weg zur Truhe
ControlSend
($hWnd,"","","{x}")
Sleep(1000)
ControlSend($hWnd,"","","{r}")
Sleep(3000)
ControlSend($hWnd,"","","{a down}")
Sleep(1550)
ControlSend($hWnd,"","","{a up}")
Sleep(5000)
ControlSend($hWnd,"","","{v}")
ControlSend($hWnd,"","","{Space}")
Sleep(3000)
;-
Ende Weg zur Truhe

;-Start Gold in die Truhe legen
ControlClick
($hWnd,"","","left",1,687,260)
Sleep(1000)
ControlClick($hWnd,"","","left",1,398,297)
Sleep(1000)
ControlClick($hWnd,"","","left",1,345,330)
Sleep(1000)
;-
Ende Gold in Truhe legen

;-Start Fenster schließen
For $Fensterschliessen 1 To 3
ControlSend
($hWnd,"","","{Esc}")
Sleep(500)
Next
;-Ende Fenster schließen

;-Start Verlassen der Gildenhalle
ControlSend
($hWnd,"","","{m}")
Sleep(2000)
ControlClick($hWnd,"","","left",1,630,550)
Sleep(7000)
;-
Ende Verlassen der Gildenhalle

WEnd 
De Michel is offline  
Old 08/02/2009, 07:50   #2
 
elite*gold: 0
Join Date: Jun 2009
Posts: 69
Received Thanks: 1
Bleibt nur noch Punkt 2 übrig aber anscheinend kann mir hier keiner weiterhelfen.
Aber Danke.
De Michel is offline  
Old 08/02/2009, 10:00   #3


 
elite*gold: 0
Join Date: Jan 2009
Posts: 18,590
Received Thanks: 3,860
Das sieht aber alles übel nach c&p aus...
Dann kann es auch nicht funktionieren..Lerne erstmal überhaupt draus einzelne Funktionen zu machen...
Frutex is offline  
Old 08/02/2009, 10:49   #4
 
elite*gold: 0
Join Date: Jun 2009
Posts: 69
Received Thanks: 1
Ja, ist viel kopiert. Naja, eigentlich nur Funktion MakeLong und MouseClick, der rest ist schon auf meinem Mist gewachsen. Sieht halt sehr unübersichtlich aus. Aber ich weis auch schon nicht ob ich mit dem GUI oder mit dem Script selbst zuerst anfangen soll. Funktionen draus zu machen ist nicht das Problem. Die wiederrum vernünftig auf zu rufen dann schon eher. Ich hab keine oder zumindest nicht so viel Ahnung von AutoIt. Es gibt immer mehrere Möglichkeiten was zu erreichen und ich möchte erst testen bevor ich was so mache.
Von den ganzen Move To hab ich keinen Plan, kommt also erst evtl. viel, viel später.
Bis dahin muss der aber schon mal laufen um zu sehen wie er läuft und was geändert werden muss.
Mit dem Identen zum bsp. hab ich anders gemacht als Du mir mal gezeigt hast, auch wenn es hier noch so drin steht. Sieht zwar nicht so schön aus aber funktioniert.
Das größte Problem was ich hab ist das ich keinen kenne der mir mal was zeigen oder ausführlich erklären kann.
Und die erklärungen bzw. die Hilfe in AutoIt ist nicht schlecht aber es bleiben halt manchmal Fragen.
Hab im moment noch nen Bot für Holy-War angefangen, schon mit GUI und so; muss ich ja auch mal ausprobieren.
Aber da ich 4 Schicht arbeiten muss und mich um meine 11 Monate alte Tochter kümmern darf, hab ich zZ keine Zeit oder sehr wenig um mich intensiv damit zu beschäftigen.

Ich möchte keine Ideen, Progs, Scripts oder sonstiges klauen, kopieren um die dann zu verkaufen. Dafür gibt es bessere. Aber ich möchte nicht immer abhängig von anderen sein und warten müssen damit der Bot wieder läuft.
Sollte jetzt keine rechtfertigung sein aber als Info über meine Ansicht.

Und für jede Hilfe bin ich Sehr Dankbar.
De Michel is offline  
Old 08/02/2009, 12:57   #5
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 436
Identkit im Hintergrund verschieben wurde hier schonmal gelöst.
Dabei musst du nur deine _mouseklick func ein bisschen anpassen. Ich verrat dir mal was die einzelnen dll calls bezwecken:

- 0x200 move mouse
- 0x201 left down
- 0x202 left up
- 0x204 right down
- 0x205 right up
| Moep | is offline  
Thanks
1 User
Old 08/02/2009, 13:23   #6
 
elite*gold: 0
Join Date: Jun 2009
Posts: 69
Received Thanks: 1
Da die Mouseclick Funktion nicht von mir ist, versteh ich da leider so gut wie nichts.
Ob mir dein Tip weiterhilft.. mal sehen aber vielen Dank erstmal.
Hab schon keine Ahnung was dllcalls sind. dll = irgend eine Datei ?
De Michel is offline  
Old 08/02/2009, 14:26   #7


 
elite*gold: 0
Join Date: Jan 2009
Posts: 18,590
Received Thanks: 3,860
Also Dll Calls sind bestimmte Funktionen im Arbeitsspeicher die aufgerufen werden.
Frutex is offline  
Thanks
1 User
Old 08/03/2009, 07:42   #8
 
elite*gold: 0
Join Date: Jun 2009
Posts: 69
Received Thanks: 1
Hab mir das Stück nochmal angesehen und denke die Lösung gefunden zu haben.
Reicht das wenn ich hier in der Zeile die Delay Zeit änder ?
Func _MouseClick($hWnd, $button, $x, $y, $times = 1, $delay = 15)
Wenn ja, muss ich dann die Funktion nochmal neu mit geändertem Wert einfügen ?
(wegen dem MouseClick für´s Identifizieren)
oder macht das nichts wenn ich es in der einen Funktion änder ?
Wenn es nichts mit der Zeile zu tun haben sollte, kann es nur noch mit den 3 Zeilen für den linken Mausklick zu tun haben aber .... ich glaub nicht.
De Michel is offline  
Old 08/03/2009, 17:55   #9
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 436
Das delay ist die zeit zwischen zwei klicks.
Du willst aber etwas verschieben, der Ablauf davon ist also

mouse move
mouse down
mouse move
mouse up
..


edit: push the buttom if i helped u
| Moep | is offline  
Old 08/03/2009, 19:52   #10
 
elite*gold: 0
Join Date: Jun 2009
Posts: 69
Received Thanks: 1
Achso...danke.
Heute mal kurz versucht, klappt noch nicht.
Dauert wohl noch was.
De Michel is offline  
Old 08/06/2009, 11:19   #11


 
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,314
Received Thanks: 6,240
Dynamic Link Library ? Wikipedia
In deinem Fall die "user32.dll"
buFFy! is offline  
Old 08/08/2009, 19:33   #12
 
elite*gold: 0
Join Date: Jun 2009
Posts: 69
Received Thanks: 1
Hmm, bin wohl zu blöd.
Hab´s mal so probiert aber klappt nicht.
PHP Code:
Func _MouseClick2($hWnd$button$x$y$times 1$delay 15)
    If 
$hWnd 0 Then
        SetError
(-1)
        Return
    EndIf

    
Local $ix
    Local $lParam 
_MakeLong($x$y)
    
Local $user32 DllOpen("user32.dll")

    
$button StringLower($button)

    If 
$button "left" Then
        
For $ix 1 To $times
            DllCall
($user32"int""PostMessage""hwnd"$hWnd"int"0x200"int"0"long"$lParam)
            
DllCall($user32"int""PostMessage""hwnd"$hWnd"int"0x201"int"1"long"$lParam)
            
DllCall($user32"int""PostMessage""hwnd"$hWnd"int"0x200"int"0"long"$lParam)
            
DllCall($user32"int""PostMessage""hwnd"$hWnd"int"0x202"int"0"long"$lParam)
            If 
$ix $times Then Sleep($delay)
        
Next
    
ElseIf $button "right" Then
        
For $ix 1 To $times
            DllCall
($user32"int""PostMessage""hwnd"$hWnd"int"0x200"int"0"long"$lParam)
            
DllCall($user32"int""PostMessage""hwnd"$hWnd"int"0x204"int"2"long"$lParam)
            
DllCall($user32"int""PostMessage""hwnd"$hWnd"int"0x205"int"0"long"$lParam)

            If 
$ix $times Then Sleep($delay)
        
Next
    
Else
        
SetError(-2)
        If 
$user32 <> -1 Then DllClose($user32)
        Return
    EndIf
    If 
$user32 <> -1 Then DllClose($user32)
EndFunc   ;==>_MouseClick2 
De Michel is offline  
Old 08/21/2009, 19:35   #13
 
elite*gold: 0
Join Date: Jun 2009
Posts: 69
Received Thanks: 1
Kann man irgendwie sehen was in dieser dll-Datei drinsteht ?
De Michel is offline  
Old 08/21/2009, 19:49   #14
 
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,293
meinst du welche funktionen noch enthalten sind?



linke seite
kknb is offline  
Reply


Similar Threads Similar Threads
Probleme bei HP-Script von werdenator
07/15/2010 - Metin2 Private Server - 1 Replies
Hi, hab die 3.0erVersion installiert. Aber wie können Freunde darauf connecten und welche IP müssen sie eingeben? Und, wie kann man die Seiten bearbeiten. Brauch man dafür viel Kentnisse? Mfg
Probleme bei HP-Script von werdenator
07/01/2010 - Metin2 Private Server - 1 Replies
Hi, ich habe xamp gestartet und mysql und apache an. wenn ich auf 127.0.0.1 verbinde erscheinen keine felder zum eintragen. Man kommt auf die normale HP. Wie kommt man zu den Feldern, wie in der Anleitung beschrieben. Mfg
Probleme mit Homepage Script
04/18/2010 - Metin2 Private Server - 10 Replies
Hallo habe mir das MT2-HP V5.0.3 runtergeladen funktioniert auch alles 1 a nur irgendwie schleicht die page so derbst der server geht ab wie sonst was ( 8 gb arbeitspeicher :D ) aba die hp brauch 5 min für 1 seite kann mir wer helfen ? ^^ gibt auch bei guter und erfolgreicher hilfe nen gm posten :D



All times are GMT +2. The time now is 11:35.


Powered by vBulletin®
Copyright ©2000 - 2021, 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.

BTC: 33E6kMtxYa7dApCFzrS3Jb7U3NrVvo8nsK
ETH: 0xc6ec801B7563A4376751F33b0573308aDa611E05

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