Not a member yet? Register for your free account!


You last visited: Today at 12:50

  • Did you know? elitepvpers has its own image host, epvpimg.com.

 

Mein erster Bot

This is a discussion on Mein erster Bot within the GW Bot Discussions / Questions forum part of the Guild Wars category; Guten Abend : Zuersteinmal möchte ich mich bei allen Bedanken die Tutorials bereitgestellt haben, vorallem das TT6 und GWCA hier ...

Reply
 
Thread Tools
Old 05-15-2010, 00:41   #1
Banned- Gw is DEAD
 
sunrise123's Avatar
 
Join Date: May 2010
Posts: 29
Received Thanks: 0
Mein erster Bot


Guten Abend :

Zuersteinmal möchte ich mich bei allen Bedanken die Tutorials bereitgestellt haben, vorallem das TT6 und GWCA hier im Board haben mich sehr dafür begeistert mit dem Scripten anzufangen.

Nunden, alzuschlau wurde ich einfach nicht aus den Turorials ich wusste zwar grob um was es ging, hatte jedoch keinerlei Bezug damit etwas anzufangen..

Aller Anfang ist schwer und ich habe eine geschlagene Woche gebraucht rauszufinden was Parameter sind, das ich vor einem Befehl cmd( brauche etc und es hinzubekommen das mein "Bot" dafür sorgt das mein Charackter sich bewegt.

Nunja hier meine Version 1.0 eines Drachenmoos Farmbots ausgehend von Saint Anikas Shrine:
(erstellt mit rev280 und deren graphics.dll)

Spoiler:


Er beinhaltet einfachste Weg, Cast funktionen, die meiner Meinung doch recht gut gelungen sind, vorallem das Timing.
Ob es sich lohnt?



Uploaded with [Only registered and activated users can see links. ]

Könnte mir jemand weiterhelfen; aka: Gui, Sell; Loot- ; etc Functions?

Liebe Grüße & einen Schönen restlichen Abend, Sunris3
__________________


Last edited by sunrise123; 05-15-2010 at 01:17.
sunrise123 is offline  
Old 05-15-2010, 08:58   #2
Member
 
Join Date: Dec 2009
Posts: 54
Received Thanks: 13
;MovetoPortal
Cmd($CA_Move, _FloatToInt(-11249), _FloatToInt(-23000))
MoveToEx(34534, 324523)
Sleep (8000) ; Need to be done Too long

schau dir mal WaitLoad an und mach kein Sleep(8000). Außerdem musst du überprüfen ob du auch wirklich im Gebiet bist, das machst du mit:

$cbType = "int"
CmdCB($CA_GETMAPID)

ansonsten reicht es wenn der MoveToEx(34534, 324523) einmal nicht funktioniert und dein Char steht für immer in der Stadt.

Anstatt von Cmd($CA_Move, _FloatToInt(-5185), _FloatToInt(15823)) ;
kannst du auch einfach MoveToEx aus der GuildWarsConstants.au3 nehmen.

; Have A Break; Have a Kitka.... wait... ITEM!
Sleep (5000)
cmd($CA_TargetNearestItem)

Für Items aufheben gibt es PickupItems(-1, 3500). Die ist auch in der GuildWarsConstants.au3.
OlafTank is offline  
Thanks
1 User
sunrise123 (05-15-2010)
Old 05-15-2010, 10:00   #3
kein Gast
 
Killerzwerg829's Avatar
 
Join Date: Feb 2009
Posts: 1,296
Received Thanks: 450
Ein guter Anfang
Ich würde aber mit Randoms verschiedene Laufwege nehmen. Und auch so den einen oder anderen Random.

Bei einem Sleep könnte das so aussehen:
Code:
Sleep(Random(6000, 8000, 1))
Bei einem Weg dann zB so:
Code:
$random = Random(1, 3, 1)
If $random = 1 Then
MoveToEx(18050.22265625, 14698.1982421875)
...
ElseIf $random = 2 Then
MoveToEx(18141.05859375, 14542.8447265625)
...
ElseIf $random = 3 Then
MoveToEx(18214.158203125, 14716.5546875, 3)
...
Endif
Für das warten, bis der in dem Dungeon ist, habe ich mir diese Funktion gecoded.

Code:
Func _SleepUpToDungeon()
	$load = CmdCB($CA_GetMapLoading)
	While Not $load[0] = 1
		Sleep(50)
		$load = CmdCB($CA_GetMapLoading)
	WEnd
	Sleep(Random(6000, 8000, 1))
EndFunc   ;==>_SleepUpToDungeon

Das könnte bei dir dann so aussehen:

Code:
...
;MovetoPortal
Cmd($CA_Move, _FloatToInt(-11249), _FloatToInt(-23000))
MoveToEx(34534, 324523)
_SleepUpToDungeon()

;ThenCastBonds
...
Killerzwerg829 is offline  
Thanks
1 User
sunrise123 (05-15-2010)
Old 05-15-2010, 10:37   #4
Banned- Gw is DEAD
 
sunrise123's Avatar
 
Join Date: May 2010
Posts: 29
Received Thanks: 0
Danke vielmals euch beiden aber; was ich nicht verstehe

$random = Random(1, 3, 1)
If $random = 1 Then
MoveToEx(-11124, 19339)
ElseIf $random = 2 Then
MoveToEx(-10531, 19339)
Endif

Wiso bei Radom (1,3,1) ? für was steht die erste 1 , die 3 , die 2te 1 ?
sunrise123 is offline  
Old 05-15-2010, 10:41   #5
kein Gast
 
Killerzwerg829's Avatar
 
Join Date: Feb 2009
Posts: 1,296
Received Thanks: 450
Die erste Zahl steht für den minimalsten wert, der rauskommen kann.
Die zweite Zahl für den höchsten Wert.
Die Dritte gibt an, dass ganze Zahlen rauskommen sollen.

Da du 2 Laufwege hast musst du $random = Random(1, 2, 1) schreiben, damit eine 1 oder 2 rauskommt.
Killerzwerg829 is offline  
Old 05-15-2010, 10:53   #6
Banned- Gw is DEAD
 
sunrise123's Avatar
 
Join Date: May 2010
Posts: 29
Received Thanks: 0
Wunderbar dankeschön

Die
Cmd($CA_Resign)

Cmd($CA_ReturnToOutpost)

Funktionen hab ich nun einfach mal hinters ItemPickup gehängt, mit nem Sleep(2500)

Wie packe ich diese ganze Misere nun in einen Endless Loop?
sunrise123 is offline  
Old 05-15-2010, 10:54   #7
kein Gast
 
Killerzwerg829's Avatar
 
Join Date: Feb 2009
Posts: 1,296
Received Thanks: 450
While 1

Dein Script

WEnd
Killerzwerg829 is offline  
Old 05-15-2010, 11:04   #8
Banned- Gw is DEAD
 
sunrise123's Avatar
 
Join Date: May 2010
Posts: 29
Received Thanks: 0
OwUUMQ3+UoR1DrE3VLBGEJA5iAEA habe zum einen das Build etwas verändert ( Energie hat man bei Weitem genug)

Zum anderen bringt er folgende Error :

J:\Programme\GUILD WARS\Drachenmoos_farm_1.1.au3(13,1) : ERROR: missing Wend.
Func
^
J:\Programme\GUILD WARS\Drachenmoos_farm_1.1.au3(12,1) : REF: missing Wend.
While
^
J:\Programme\GUILD WARS\Drachenmoos_farm_1.1.au3(120,1) : ERROR: syntax error
WEnd
^
J:\Programme\GUILD WARS\Drachenmoos_farm_1.1.au3 - 2 error(s), 0 warning(s)

Hier meinen Kompletten Code:

Spoiler:
sunrise123 is offline  
Old 05-15-2010, 12:05   #9
kein Gast
 
Killerzwerg829's Avatar
 
Join Date: Feb 2009
Posts: 1,296
Received Thanks: 450
Versuch es mal so:

Code:
; Drachenmoos Farm Monk/Mesm. HARDmode OwUUMQ3+UoR1DrE3VLBGEJA5iAEA 55hp Vvz. 20% , Quest: Eine neue Eskorte

;Interclude
#include "GWCAConstants.au3"
$cbType = "float" ;Change return type to float value

;CheckCoordinates
$myCoords = CmdCB($CA_GETCOORDS, -2) ;Get your own coordinates
ConsoleWrite("[Check 1] X: " & $cbVar[0] & ", Y: " & $cbVar[1] & @CRLF) ;Print to chat, notice that I use $cbVar array and not $myCoords. $cbVar only works until the next call to Cmd() or CmdCB(), but $myCoords will exist forever.
;Functions

While 1



	;X: -970051815, Y: -961359012

	;MovetoPortal

	$random = Random(1, 2, 1) ; Werte nochnicht "Random"
	If $random = 1 Then
		MoveToEx(-11240, -23500)
	ElseIf $random = 2 Then
		MoveToEx(-11231, -23500)
	EndIf

	_SleepUpToDungeon()

	;ThenCastBonds


	;Cmd($CA_UseSkill, 7, -2)
	Sleep(2500)
	Cmd($CA_UseSkill, 8, -2)
	Sleep(2500)

	;MovetoCastspot

	Cmd($CA_Move, _FloatToInt(-7390), _FloatToInt(18665)) ;1 Waypoint
	Sleep(9000)

	Cmd($CA_Move, _FloatToInt(-6498), _FloatToInt(17198)) ;2 Waypoint No Agro
	Sleep(9000) ; Need to be done

	Cmd($CA_UseSkill, 6, -2)
	Cmd($CA_UseSkill, 1, -2)
	Sleep(1000)

	Cmd($CA_UseSkill, 2, -2)
	Sleep(500)

	;Pull

	Cmd($CA_Move, _FloatToInt(-5185), _FloatToInt(15823)) ;3 Waypoint
	Sleep(7000) ; Need to be done
	cmd($CA_UseSkill, 3, -2)
	Sleep(1500)

	Cmd($CA_Move, _FloatToInt(-6379), _FloatToInt(18080)) ;4 Waypoint
	Sleep(7000) ; Need to be done
	cmd($CA_UseSkill, 1, -2)
	Sleep(1000)
	cmd($CA_UseSkill, 2, -2)
	Sleep(500)

	Cmd($CA_Move, _FloatToInt(-6596), _FloatToInt(18457)) ;5 Waypoint (last)
	Sleep(8000)

	; $CA_TargetNearestFoe(1)

	; Cmd($CA_UseSkill, 7, -1)


	; Cast

	Cmd($CA_UseSkill, 3, -2)
	Sleep(1100)

	Cmd($CA_UseSkill, 4, -2)
	Sleep(2100)
	Cmd($CA_UseSkill, 5, -2)
	Sleep(4100)

	cmd($CA_UseSkill, 1, -2)
	Sleep(1000)
	cmd($CA_UseSkill, 2, -2)
	Sleep(7500)
	cmd($CA_UseSkill, 1, -2)
	cmd($CA_UseSkill, 6, -2)
	Sleep(500)
	cmd($CA_UseSkill, 3, -2)
	Sleep(6000)
	cmd($CA_UseSkill, 1, -2)
	cmd($CA_UseSkill, 2, -2)
	Sleep(1000)
	cmd($CA_UseSkill, 4, -2)
	Sleep(2000)
	cmd($CA_UseSkill, 2, -2)
	Sleep(6000)
	cmd($CA_UseSkill, 3, -2)

	; Have A Break; Have a Kitka.... wait... ITEM!
	Sleep(12000)

	PickupItems(-1, 3500)

	Cmd($CA_Resign)
	Sleep(3000)

	Cmd($CA_ReturnToOutpost)
	Sleep(10000)

WEnd

Func _SleepUpToDungeon()
	$load = CmdCB($CA_GetMapLoading)
	While Not $load[0] = 1
		Sleep(50)
		$load = CmdCB($CA_GetMapLoading)
	WEnd
	Sleep(Random(4000, 6000, 1))
EndFunc   ;==>_SleepUpToDungeon
Killerzwerg829 is offline  
Old 05-15-2010, 12:08   #10
Member
 
Join Date: Dec 2009
Posts: 54
Received Thanks: 13
du hast da paar fehler mit Wend Und EndFunc

Code:
; Drachenmoos Farm Monk/Mesm. HARDmode OwUUMQ3+UoR1DrE3VLBGEJA5iAEA 55hp Vvz. 20% , Quest: Eine neue Eskorte

;Interclude
#include "GWCAConstants.au3"
$cbType = "float" ;Change return type to float value

;CheckCoordinates
$myCoords = CmdCB($CA_GETCOORDS, -2) ;Get your own coordinates
ConsoleWrite("[Check 1] X: "&$cbVar[0]&", Y: "&$cbVar[1]&@CRLF) ;Print to chat, notice that I use $cbVar array and not $myCoords. $cbVar only works until the next call to Cmd() or CmdCB(), but $myCoords will exist forever.
;Functions


Func wayout()

	$LeftTown = 0;
	
	While $LeftTown = 0	
		$random = Random(1, 2, 1) ; Werte nochnicht "Random"
		If $random = 1 Then
			MoveToEx(-11240, -23500)
		ElseIf $random = 2 Then
			MoveToEx(-11231, -23500)
		Endif

		WaitForLeave(1);	

		$cbType = "int"
		$aTmpMap = CmdCB($CA_GETMAPID)	
			
		If $aTmpMap[0] = 31337 Then																;hier kommt die ID von deiner OuterArea rein, ka was die ist musst selber suchen
			;LEFT TOWN																			;einfach rausgehen $aTmpMap = CmdCB($CA_GETMAPID) aufrufen und du hast sie
			$LeftTown = 1;
		Else	
			;RETRY
			Sleep(Random(1500,2000))
		EndIf
	WEnd
EndFunc
		
Func WaitForLeave($loading)

	$MAX_WAIT_TIME = 0
	;$loading should be "1" if waiting to load explorable area or "0" if outpost
	Do
		$cbType = "int"
		CmdCB($CA_GETMAPLOADING)
		sleep(Random(1000,1500))
		$MAX_WAIT_TIME += 1500;
		
		if $MAX_WAIT_TIME >= 40000 then
			Return;
		EndIf
		
	Until ($cbVar[0] = $loading)
EndFunc




While 1

	wayout();

	;ThenCastBonds


	;Cmd($CA_UseSkill, 7, -2)
	Sleep (2500)
	Cmd($CA_UseSkill, 8, -2)
	Sleep (2500)

	;MovetoCastspot

	Cmd($CA_Move, _FloatToInt(-7390), _FloatToInt(18665)) ;1 Waypoint
	Sleep (9000)

	Cmd($CA_Move, _FloatToInt(-6498), _FloatToInt(17198)) ;2 Waypoint No Agro
	Sleep (9000) ; Need to be done

	Cmd($CA_UseSkill, 6, -2)
	Cmd($CA_UseSkill, 1, -2)
	Sleep (1000)

	Cmd($CA_UseSkill, 2, -2)
	Sleep (500)

	;Pull

	Cmd($CA_Move, _FloatToInt(-5185), _FloatToInt(15823)) ;3 Waypoint
	Sleep (7000) ; Need to be done
	cmd($CA_UseSkill, 3, -2)
	Sleep (1500)

	Cmd($CA_Move, _FloatToInt(-6379), _FloatToInt(18080)) ;4 Waypoint
	Sleep (7000) ; Need to be done
	cmd($CA_UseSkill, 1, -2)
	Sleep (1000)
	cmd($CA_UseSkill, 2, -2)
	Sleep (500)

	Cmd($CA_Move, _FloatToInt(-6596), _FloatToInt(18457)) ;5 Waypoint (last)
	Sleep (8000)

	; $CA_TargetNearestFoe(1)

	; Cmd($CA_UseSkill, 7, -1)


	; Cast

	Cmd($CA_UseSkill, 3, -2)
	Sleep (1100)

	Cmd($CA_UseSkill, 4, -2)
	Sleep (2100)
	Cmd($CA_UseSkill, 5, -2)
	Sleep (4100)

	cmd($CA_UseSkill, 1, -2)
	Sleep (1000)
	cmd($CA_UseSkill, 2, -2)
	Sleep (7500)
	cmd($CA_UseSkill, 1, -2)
	cmd($CA_UseSkill, 6, -2)
	Sleep (500)
	cmd($CA_UseSkill, 3, -2)
	Sleep (6000)
	cmd($CA_UseSkill, 1, -2)
	cmd($CA_UseSkill, 2, -2)
	Sleep (1000)
	cmd($CA_UseSkill, 4, -2)
	Sleep (2000)
	cmd($CA_UseSkill, 2, -2)
	Sleep (6000)
	cmd($CA_UseSkill, 3, -2)

	; Have A Break; Have a Kitka.... wait... ITEM!
	Sleep (12000)

	PickupItems(-1, 3500)
	
	Sleep(1000)		
	Cmd($CA_Resign)
	Sleep(1000)	
	$cbType = "int"
	$WhileRuns = 0
	while 1 And $WhileRuns < 100
		$WhileRuns += 1
		CmdCB($CA_GetMyMaxHP)
		Sleep(200)
		If $cbVar[1] = 0 Then
			ExitLoop
		EndIf
	WEnd
	Sleep(Random(1000,2000))
	Cmd($CA_ReturnToOutpost)			
	WaitForLeave(0);	
	Sleep(Random(2000,4000))

WEnd
hab das nicht getestet hoffe da sind keine syntax fehler drin. Du musst nur noch die TownID vom Gebiet finden dann müsste es passen. Außerdem solltest du dich mal bisschen in Programmieren einlesen.


While 1
Func _SleepUpToDungeon()
$load = CmdCB($CA_GetMapLoading)
While Not $load[0] = 1
Sleep(50)
$load = CmdCB($CA_GetMapLoading)
WEnd
Sleep(Random(4000, 6000, 1))
EndFunc ;==>_S

du kannst nicht eine Funktion in einer While 1 Schleife deklarieren
OlafTank is offline  
Reply

Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Mein erster Bot <3 mrhamama Guild Wars 9 05-05-2010 18:09
Mein Erster C++ Baby Mario C/C++ 36 10-14-2009 15:20
Mein erster Bot! TQ! bingbongman GW Exploits, Hacks, Bots, Tools & Macros 45 08-17-2009 21:35
Mein erster Bot Frutex GW Exploits, Hacks, Bots, Tools & Macros 23 02-07-2009 21:44
Mein erster awa^^ RyZoOm... General Art 15 03-11-2006 14:50




All times are GMT +2. The time now is 12:50.


Powered by vBulletin®
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.