Spawnpoint herausfinden (Guild Wars)

07/24/2010 12:00 GWplayer#1
Hi Community
Als blutiger Neuling habe ich eine Frage zu AutoIt:
Also ich würde gerne nen gaaanz einfachen Bot schreiben (für Guild Wars) nun ist das Problem jedoch das man im Aussenposten an verschiedenen Stellen respawnt. Nun weiss ich nicht

1. Wie man einen Waypointer bedient (und ob das überhaupt das richtige Tool für sowas ist, Hab die SuFu benutzt aber alle Tuts waren auf Englisch und der Waypointer von Blauwiggle funzt iwie nicht.)

2. Wie man das ganze dann in seinen Bot einbaut.

Komme echt nicht mehr weiter und binn kurz davor AutoIt wieder aufzugeben-.-

thx für eure Hilfe
mfg
07/24/2010 12:07 Shadow992#2
Quote:
Originally Posted by GWplayer View Post
Hi Community
Als blutiger Neuling habe ich eine Frage zu AutoIt:
Also ich würde gerne nen gaaanz einfachen Bot schreiben (für Guild Wars) nun ist das Problem jedoch das man im Aussenposten an verschiedenen Stellen respawnt. Nun weiss ich nicht

1. Wie man einen Waypointer bedient (und ob das überhaupt das richtige Tool für sowas ist, Hab die SuFu benutzt aber alle Tuts waren auf Englisch und der Waypointer von Blauwiggle funzt iwie nicht.)

2. Wie man das ganze dann in seinen Bot einbaut.

Komme echt nicht mehr weiter und binn kurz davor AutoIt wieder aufzugeben-.-

thx für eure Hilfe
mfg
Schau mal hier vorbei:
[Only registered and activated users can see links. Click Here To Register...]
und da:
[Only registered and activated users can see links. Click Here To Register...]

Mit der TT6 MoveTo-Engine sollte es kaum Probleme geben, damit sind die Bots ruckzuck gemacht:
[Only registered and activated users can see links. Click Here To Register...]
07/24/2010 12:21 | Moep |#3
Du musst dir die Coords deines Chars erst mit Cheatengine raussuchen, damit du damit arbeiten kannst.
Dann schreibst du dir die Coords von allen möglichen Spawnpunkten raus.
Dann vergleichst du ob die aktuelle position des Chars sich in einem der vorher notierten Spawnpunkte befindet.

Hab hier mal ne Spawnfunktion aus meinem Uralt HFFF Bot (von 2008, lol). Vielleicht hilfts dir ja.
north, south middle sind übrigens die 3 Spawnpunkte von der Map ;)

Code:
Func _SPAWN()
	
	$MERKER = 0

	$RND = Random(1500, 2500)
	Sleep($RND)
	
	$ROLL_1 = Random(1, 6, 1)
	

	Select
		Case $ROLL_1 = 6
			$RND = Random(30000, 100000)
			Sleep($RND)
	EndSelect
	$T_INIT_SPAWN = TimerInit()
	$ZONE = _MemoryRead($ZONE_ADRESS, $PID)
	Select
		Case $ZONE = 129
			Do
				
				$T_DIFF_SPAWN = TimerDiff($T_INIT_SPAWN)

				$READ_X = _MemoryRead($POS_X_ADRESS, $PID)
				$READ_Y = _MemoryRead($POS_Y_ADRESS, $PID)
				Select
					Case ($READ_X > 3324071967 And $READ_X < 3324394360) And ($READ_Y > 1159184346 And $READ_Y < 1160550115) ;north
						Send("{NUMPAD0}")
						$RND = Random(200, 400)
						Sleep($RND)
						Send("{NUMPAD0}")
						$RND = Random(200, 400)
						Sleep($RND)
						_MOUSE_MOVE(-10, 0, Random(99, 101, 1))
						$RND = Random(200, 400)
						Sleep($RND)
						Send("{Space}")
						$RND = Random(11400, 11600)
						Sleep($RND)
						Send("{r}")

						$MERKER = 1

					Case ($READ_X > 3324074163 And $READ_X < 3324405017) And ($READ_Y > 1152526703 And $READ_Y < 1155581531) ;middle

						Send("{NUMPAD0}")
						$RND = Random(200, 400)
						Sleep($RND)
						Send("{NUMPAD0}")
						$RND = Random(200, 400)
						Sleep($RND)
						_MOUSE_MOVE(-10, 0, Random(99, 101, 1))
						$RND = Random(200, 400)
						Sleep($RND)
						Send("{Space}")
						$RND = Random(8300, 8350)
						Sleep($RND)
						Send("{r}")

						$MERKER = 1

					Case ($READ_X > 3323968247 And $READ_X < 3324398145) And ($READ_Y > 3288969411 And $READ_Y < 3296228729) ;south


						Send("{NUMPAD0}")
						$rndnumber = Random(200, 400)
						Sleep($rndnumber)
						Send("{NUMPAD0}")
						$rndnumber = Random(200, 400)
						Sleep($rndnumber)
						_MOUSE_MOVE(10, 0, Random(30, 32, 1))
						$rndnumber = Random(200, 400)
						Sleep($rndnumber)
						Send("{Space}")
						$rndnumber = Random(7410, 7415)
						Sleep($rndnumber)
						Send("r")
						$rndnumber = Random(390, 400)
						Sleep($rndnumber)
						Send("{a down}")
						$rndnumber = Random(101, 104)
						Sleep($rndnumber)
						Send("{a up}")

						$MERKER = 1
				EndSelect

				
				$T_DIFF_SPAWN = TimerDiff($T_INIT_SPAWN)
			Until ($T_DIFF_SPAWN > 30000) Or $MERKER = 1
			Sleep(1000)
			Select
				Case $T_DIFF_SPAWN > 30000
					_CLOSE_WINDOWS()
					_DISCHANGE()
					_LOAD()
					_SPAWN()
			EndSelect
		Case $ZONE <> 129
			_RECONNECT()
			_SPAWN()
	EndSelect
EndFunc   ;==>_SPAWN
07/24/2010 14:21 GWplayer#4
ty für die schnellen Antworten^^:handsdown: Werds mal ausprobieren geb dann ne rückmeldung.:D
09/16/2010 19:37 GWplayer#5
ähm ich hab da noch ne Frage: Wie findet man die Coords des Chars heraus?
09/16/2010 21:23 omer36#6
nach unknown suchen, --float
bewegen, --changed value suchen.
bewegen, --changed value suchen.
bewegen, --changed value suchen.
stehen bleiben! , --unchanged value suchen.
immernoch stehen bleiben,inventar öffnen,schließen , --unchanged value suchen.
bewegen, --changed value suchen.
bewegen, --changed value suchen.

usw...
irgentwann werden da inetwa 3-10adressen ürig bleiben... (wenn du glück hast genau 3)
und 3 brauchs tdu auch -- x/y/z