1.) Bemerkungen
Hier sind einige Fakten über eigene Profile:
- Wenn mehr als ein Profil in dem Ordner enthalten ist, wird beim Betreten des BGs ein zufälligs davon ausgewählt
- Ein "Custom-Profil" muss immer eine XML-Datei sein (Mit .XML enden)
- Die XML-Dateien sind nur funktionsfähig, wenn sie im jeweils richtigen Ordner sind, z.B.: profiles/alterac
- Schau dir die Datei profiles/alterac/test.xml an - Das sollte dir ein Verständnis dafür geben, wie deine Datei später aussieht
- Dieser Guide zeigt euch, wie man ein Alteractal-Profil erstellt... Andere BGs werden später auch noch hinzugefügt, das Prinzip bleibt jedoch das gleiche
- Wenn ein Horde UND Allianz Profil im Profiles Ordner profiles/alterac vorhanden sind, wird der Bot nicht funktionieren, da er (wie oben beschrieben) ein zufälliges ausführt und nunja... Allianz Charaktere mit Horde Wegpunkten und andersherum scheinen keine gute Idee zu sein ^^
2.) Schritt 1 - Erstelle deine eigene Datei/dein eigenes Profil
Dann lass uns mal anfangen, befolge einfach die folgenden Anweisungen und du wirst schon bald dein eigenes Profil haben.
- Erstelle eine neue Datei und nenne sie beliebigername.XML (Bemerkung: Sollten die Profile bei euch nicht erkannt werden, wie bei mir, nennt sie "1" (ohne .XML !) (Siehe Post weiter oben für Details)
- Kopiere die Datei in den Ordner profiles/alterac
- Öffne die XML Datei mit einem beliebigen Text-Editor (Editor,WordPad...)
- Kopiere die Struktur des unten angegebenen Codes in deine XML Datei:
Grundstruktur:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<FloProfile>
<BG>Alterac</BG>
<Faction></Faction>
<BeforeStart>
</BeforeStart>
<AfterStart>
</AfterStart>
<FrostwolfGY>
</FrostwolfGY>
<DunBaldarPassGY>
</DunBaldarPassGY>
<FrostwolfReliefHutGY>
</FrostwolfReliefHutGY>
<IcebloodGY>
</IcebloodGY>
<RockOfDurotanGY>
</RockOfDurotanGY>
<SnowfallGY>
</SnowfallGY>
<StonehearthGY>
</StonehearthGY>
<StormpikeGY>
</StormpikeGY>
<StormpikeAidStationGY>
</StormpikeAidStationGY>
</FloProfile>
Nun kommt der Anpassungsteil
3.) Schritt 2 - Grundlegende Änderungen
Nur ein kleiner Schritt, passe deine Fraktion an. Entweder
Code:
<Faction>Alliance</Faction>
oder
Code:
<Faction>Horde</Faction>
4.) Die XML Datei verstehen
Nun kommt der wichtige Teil der Arbeit:
Die Grundstruktur der XML Datei muss immer die selbe bleiben, egal was ihr editiert/ändert. Die oben geposteten Zeilen müssen immer in der XML Datei enthalten sein.
Wir veranschaulichen das ganze an einem Beispiel: Wenn du willst, dass dein Bot zum Tor rennt, bevor es sich öffnet (oder auch nachdem sie geöffnet wurden), musst du folgendes tun:
Code:
<BeforeStart>
<Exec>WP(x,y,z)</Exec>
<Exec>WP(x2,y2,z2)</Exec>
</BeforeStart>
Der Bot wird nun folgendes machen: Am Anfang eines BGs (BG hat bereits angefangen oder nicht) wird dein Charakter zu den Koordinaten x,y,z laufen. Dort angekommen, läuft er weiter zu den Koordinaten x2,y2,z2. Dort wird er warten, bis das BG beginnt - wenn es bereits begonnen hat, sollte nun 'AfterStart' ausgeführt werden. (Dort müsst ihr wieder entsprechende Koordinaten eintragen!)
Beispiel 2:
Code:
<AfterStart>
<Exec>WP(x,y,z)</Exec>
<Exec>MountingUp()</Exec>
<Exec>WP(x2,y2,z2)</Exec>
<Exec>AntiAfkWithAutoAttack()</Exec>
</AfterStart>
Nachdem sich das Tor geöffnet hat (das BG angefangen hat) läuft dein Bot zum Wegpunkt WP(x,y,z) (das sollte direkt vor der Höhle sein) und mountet auf (durch MountingUp()). Nach dem aufmounten sollte dein Bot zum nächsten Wegpunkt laufen ( WP(x2,y2,z2) ). Nach dem erreichen dieses Wegpunktes geht dein Charakter in einen "Verteidigungs"-Modus.. bewegt sich ab und an und wenn euch ein Spieler/Mob töten will, greift der bot diesen an. (Dies wird durch die Funktion AntiAfkWithAutoAttack() möglich.)
Beispiel 3:
Code:
<IcebloodGY>
<Exec>WP(x,y,z)</Exec>
<Exec>AntiAfkWithAutoAttack()</Exec>
<IcebloodGY>
Nachdem du am Eisblut Friedhof (IcebloodGY) wiederbelebt wurdest, (dies funktioniert an allen Friedhöfen.. siehe Grundstruktur) läuft dein Charakter zum angegebenen Wegpunkt und ergibt sich erneut in den "Verteidigungs-Modus, wie oben beschrieben.
Notizen:
- Jeder auszuführende Befehl muss so aussehen: <Exec>Befehl</Exec>
- Du kannst so viele <Exec>-Tags einfügen, wie du willst
- Nutze AUSSCHLIEßLICH die unten angegebenen Funktionen innerhalb des <Exec>-Tags. (WP() und MountingUp() sind 2 davon)
Mit diesen Informationen sollte es dir möglich sein, dein Profil zu modifizieren bzw. eines zu erstellen.
5.) Schritt 3 - Eigene Waypoints erstellen
Einen Wegpunkt erstellen ist sehr einfach:
- Öffne die Datei record_path.exe
- Lauf mit deinem Charakter wohin auch immer du möchtest, um dort einen Wegpunkt zu erstellen. (Zwischen den Wegpunkten MUSS seine Sichtlinie vorhanden sein, sonst rennst du gegen Wände/Bäume... Setzt also alle paar Meter einen Wegpunkt! Die Entfernung sollte jeweils mind. 3 Meter zum vorigen Wegpunkt betragen)
- Klicke auf "Create Waypoint" (Im Fenster des Programms record_path.exe)
- Wiederhole die oben genannten Schritte so oft du willst
- Schließe das Programm - Fertig. Nun wird eine Datei in dem Ordner "created" erstellt, die deine Wegpunkte enthält.
Diese Wegpunkte können, wie oben beschrieben, nun in deine XML Datei kopiert werden.
Beachte, dass das Programm (record_path) neugestartet werdenn muss, wenn du die Zone gewechselt hast. (z.B.: Alterac->Stadt ...), ansonsten können die Wegpunkte völlig falsch sein!
6.) Vorhandene Funktionen
Referenz erlaubter Funktionen innerhalb des <Exec>-Tags.
- WP(x,y,z, [AttackWhileRunning = 0], [moving = 1], [LoopBreakDistance = 3])
x : x-coordinate
y : y-coordinate
z : z-coordinate [ansich nutzlos für diese Funktion, wie auch immer..]
[AttackWhileRunning] : wenn ein neues Ziel gefunden wurde (ein Spieler greift dich an), schlägt dein Charakter zurück, wenn dies auf 1 gesetzt wird (standardmäßig 0) während du zu dem angegeben WP läufst
[Moving] : 0 = zuerst drehen, bevor du vorwärts läufst; 1 = bereits drehen, wenn du schon vorwärts läufst (im Laufen)
[LoopBreakDistance] : Distanz in Metern, damit die Funktion ok zurückgibt
- SleepIt(sec)
sec : Zeit in Millisekunden um zu "sleepen" (warten/pause)
- SendIt(send)
send : Welche Taste an WoW gesendet werden soll - wie z.B.: SendIt("{TAB}") - siehe AutoIT "send()" Funktion für Referenzen
- TurnToHeading(Heading)
Heading: Neue Ausrichtung in Grad. Westen = pi/2, Süden = pi, Osten = 3*pi/2, Norden = 0
- SimpleAttackTarget()
Greift das aktuelle Ziel an (es muss bereits ein Ziel vorhanden sein)
- MountingUp()
Sendet die von dir festgelegte "Mount" Taste an WoW und wartet ca. 4 Sekunden
- JustAntiAfk([$MaxTime = 0])
[MaxTime] : Zeit in Millisekunden um diese Funktion auszuführen... 0 bedeutet unendlich lange
- AntiAfkWithAutoAttack([$MaxTime = 0],[ $SendTab = 30])
[MaxTime] : Zeit in Millisekunden um diese Funktion auszuführen... 0 bedeutet unendlich lange
[SendTab] : Wie oft die TAB-Taste an WoW gesendet werden soll (in Sekunden!) 0 bedeutet, dass sie nie gesendet wird
/edit:
'Thanks' für die Arbeit wäre sehr nett :)