Frage zu GWAC

01/24/2010 18:21 0ojako0#1
hallo erst mal ,

ich bin neu hier und habe auch nicht die bessten referenzen was programieren angeht.

Zum Problem , ich hab mir ein denke ich relatif leichtes ziel gesetzt.Ich möchte einen bot Programieren der im Guild Wars Prophecies Tutorial vom Aussenposten "Aschfurt-Abtei" aus rauslauft und die 8 gegner vom quest „Schutzgebete“ mit Feuersturm töten die sachen einsammelt und dann wieder von vore anfängt.

Bisher sieht das ganze so aus
#include "GWCAConstants.au3"
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

WinWait("Guild Wars","")
If Not WinActive("Guild Wars","") Then WinActivate("Guild Wars","")
WinWaitActive("Guild Wars","")
sleep(500)

func wayout()
$NPC = GetNearestNpcToCoords(-969792512,-976642048)
Cmd($CA_GoNpc, $NPC)
EndFunc

es werden wahrscheinlich mehere fehler drin sein ! mein problem jetzt schon ist das ich nicht weis wie ich die koordinaten vom kaufmann auslese um zu ihm zu laufen.
denn man hat ja drei verschiedene spanpunke wenn man in die stadt reist und für den wayout benötige ich ja nen fixounkt da der kaufmann dierekt am ausgang steht dachte ich währe er gut geeignet als fixpunkt und mann könnte alle 10 runs auch mal verkaufen.

nun ist halt die frage wie ich die sache am bessten angehe .
01/24/2010 21:22 73rm1n4t0r#2
innerhalb von Städten brauchste eig nur einen Waypoint angeben dann läuft dein Charr da automatisch hin. Innerhalb der Städte läufste nämlich mit nem pathingallgo
01/25/2010 09:19 0ojako0#3
Ja und wo bekomme ich die koordinaten her und ein beispiel dazu wie die zeile dann aussieht währe super.
01/25/2010 11:23 in MIND#4
Code:
CmdCB($CA_GETCOORDS, -2)
damit findest du die coords raus
Code:
MoveTo($x, $y)
damit bewegst du dich dahin
01/25/2010 14:04 ddl#5
kleine Korrektur:

Code:
MoveToEx($x,$y)
01/25/2010 16:56 in MIND#6
jop sry, bin von meiner eigenen func ausgegangen
01/25/2010 17:11 0ojako0#7
Gut das hat jetzt alles schon recht gut geklappt danke schon mal !!!
der bot funktioniert auch schon (für meine verhältnisse TOP ^^)

hier mal das script
Quote:
#include "GWCAConstants.au3"
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

sleep(500)
WinWait("Guild Wars","")
If Not WinActive("Guild Wars","") Then WinActivate("Guild Wars","")
WinWaitActive("Guild Wars","")
sleep(500)
call("main")

func main()
call("rand")
call("wayto")
call("fight")
call("loot")
call("travel")
call("main")
EndFunc

func rand()
Global $t = random(450,550)
Global $c = random(200, 600)
Global $xxx = random(1,17)
Global $a = Random(7000, 8000)
Global $b = Random(10000, 11000)
Global $g = random(1800,2400)
Global $h = random(4000,5000)

EndFunc

func fight()
Cmd($CA_useskill,1,-2)
sleep($h)
cmd($CA_TargetNearestFoe)
sleep($h)
Cmd($CA_useskill,2,0)
sleep($b)

EndFunc

func loot()

for $i = 1 to 8
send("ö")
sleep($c)
send("{space}")
sleep($t)
Next

EndFunc

func travel()
sleep($h)
Local $xy = random(1,5)
send("m")
sleep($c)
MouseClick("left", 561+$xy, 546+$xy)
Sleep($c)
MouseClick("left", 887+$xy, 487+$xy)
sleep(8000+$t)

endfunc
func wayto()
MoveToex(-11712,-6299)
Sleep($g)
movetoex(-7906,-6261)
sleep(6000)
MoveToex(-7181,-2998)
sleep($h)
movetoex(-5437,-2494)
sleep(5000)
EndFunc
Jetzt möchte ich das ganze etwas verbessern
-ich wollte die zonemap funktion einbauen aber weiss nicht wie(beim travel)
-kaufmann mit einbauen so alle 10-15 runs zufällig
-ist es möglich die MoveToEx befehle auch über Variable zu steuern um mehr "Zufall" reinzubringen ?
zb.:
$1 = (-2300,-2310) glaube es fehlt ein random ^^aber wo?)
$2 = (-2600,-2610)
MoveToEx($1,$2) ?????
-ist es möglich mit zb ein schleife bei einsammeln zu sagen wenn er das Item x anvisiert = fertig und zurück in den aussenposten ? weil in dem quest ist diese kassette die er immer aufheben will nachdem er alle drops aufgehoben hat aber das soll er nicht.

Wie setzt ich das ganze um oder gibts an dem jetztigen script schon grobe fehler ?
01/27/2010 13:26 0ojako0#8
Ich hab die sache schon mal leicht überarbeitet ^^

Quote:
#include "GWCAConstants.au3"
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

sleep(500)
WinWait("Guild Wars","")
If Not WinActive("Guild Wars","") Then WinActivate("Guild Wars","")
WinWaitActive("Guild Wars","")
sleep(500)
call("main")

func main()
call("rand")
call("wayto")
call("fight")
call("loot")
call("travel")
call("main")
EndFunc

func rand()
Global $t = random(450,550)
Global $c = random(200, 600)
Global $xxx = random(1,17)
Global $a = Random(7000, 8000)
Global $b = Random(10000, 11000)
Global $g = random(1800,2400)
Global $h = random(4000,5000)

EndFunc

func fight()
Cmd($CA_useskill,1,-2)
sleep($t)
cmd($CA_UseSkill ,2,52)
sleep($b)

EndFunc

func loot()

for $i = 1 to 8
cmd($CA_TargetNearestItem)
sleep($c)
cmd($CA_PickUpItem,-1)
sleep($t)
Next

EndFunc

func travel()
sleep($h)
cmd($CA_ZoneMap,164)
sleep($h+200)
cmd($CA_changedistrict,3)
sleep(8000+$t)

endfunc
func wayto()
MoveToex(-11712,-6299)
Sleep($g)
movetoex(-7906,-6261)
sleep(6000)
MoveToex(-7181,-2998)
sleep($h)
movetoex(-5437,-2494)
sleep(1000)
EndFunc
jetzt ist eigendlich erst mal am wichigsten

-kaufmann mit einbauen wenn tasche 1 voll ist
-kann mann auch blaue item auslesen und identen ?
-bei CA_ZoneMap kann man da nicht gleich in ei9nen bestimmten ausländischen dis wechseln er kommt immer wieder bei englisch an egal von wo ich starte . deshalb jetzt der cmd($CA_changedistrict,3)
01/27/2010 14:44 Syc0n#9
Die ganzen Includes bringen gar nix! Und wieso jede Funktion callen?
01/27/2010 17:10 0ojako0#10
die Includes sind für später da ja noch mehr funktionen reinkommen sollen (GUI) und ich kenn mich und vergess es dann ^^(und dann reg ich mich auf weil nix klappt)
zum call ich habe mich am thermalquellenbot orientiert.

wenn du ne bessere möglichkeit kennst klär mich auf bin bereit infos aufzunehen.
01/27/2010 17:32 Syc0n#11
Dein Code wird zu:

Code:
#include "GWCAConstants.au3"

Global $t = random(450,550)
Global $c = random(200, 600)
Global $xxx = random(1,17)
Global $a = Random(7000, 8000)
Global $b = Random(10000, 11000)
Global $g = random(1800,2400)
Global $h = random(4000,5000)

While 1
Main()
Wend

func Main()
MoveToex(-11712,-6299)
Sleep($g)
movetoex(-7906,-6261)
sleep(6000)
MoveToex(-7181,-2998)
sleep($h)
movetoex(-5437,-2494)
sleep(1000)
Cmd($CA_useskill,1,-2)
sleep($t)
cmd($CA_UseSkill ,2,52)
sleep($b)
for $i = 1 to 8
cmd($CA_TargetNearestItem)
sleep($c)
cmd($CA_PickUpItem,-1)
sleep($t)
Next
sleep($h)
cmd($CA_ZoneMap,164)
sleep($h+200)
cmd($CA_changedistrict,3)
sleep(8000+$t)
EndFunc
01/28/2010 11:12 0ojako0#12
hab ein problem

wenn er zum ersten wegpunkt läuft (im aussenposten[MoveToex(-11712,-6299)])
dan geht er auf der stelle hin und her weiss nicht wie ich es erklären soll.
es hängt damit zusammen an welchem der drei punkte im aussenposten er rein kommt.
der punkt der dicht am ausgang ist ist der wo er fachsen macht . versteh ich nicht !
an den anderen punktenm klappt es tadellos.

ein tipp wie ich die kaufmann funktionen einbau währe echt cool

-wenn rucksack voll = geh zum kaufmann($ID)
checken ob blau item identifiziert sind
-wenn nicht = identen
-wenn kein werkzeug = dann kaufen
andenfals alles verkaufen

so in etwa dachte ich es mir ^^