*** aktuelle
Bot Versionen bitte auf der [Linkleri görebilmek için üye olun veya giriş yapın.] runterladen bzw. die
allerneusten Entwicklungen gibt es im SVN (Source Code Repository). Wie
das geht steht [Linkleri görebilmek için üye olun veya giriş yapın.]. Hier erfolgen von
mir keine Updates mehr. Ich muss wieder mal was anderes machen ... RL is
calling ... 12.11.09 ***
EDIT: neuste Bot Version SVN 398 (09.11.09) Autosell nun mit Dura/Stat
Check
Hier eine 'kurze' :-) Anleitung (die Anleitung steht unter der GNU-Lizenz für freie Dokumentation 1.3 oder jede spätere
Version), wie man Elverions RoM Bot schnell zum Laufen bekommt. Die
Anleitungen enthält ins deusche übersetzte Inhalte aus dem englischen
Forum
Die Highlights von Elverions RoM Bot
Man kann mit dem Bot fast alles machen, was als Spieler möglich ist:
vor und kann mit entsprechenden Kenntnissen selbst modifiziert werden.
Die Einstellung erfolgt in Profilen. Das macht es am Anfang etwas
unübersichtlich. Dafür ist das Ganze sehr flexibel.
Damit es übersichtlicher ist, beschreibe ich das Ganze in mehreren
Lektionen:
Lektion 1 - Dateien runterladen, installieren und erster
Testlauf
Lektion 2 - die wichtigsten Einstellungen im Profile (ohne Skills)
Lektion 3 - das Einstellen der Skills im Profile
Lektion 4 - eigene Wegepunktedateien anlegen
Lektion 5 - Ressourcen farmen mit Elverions RoM Bot
Lektion 6 - automatische Level von Stufe 1-10
Lektion 7 - Autorepair, Einkaufen und automatisches Verkaufen
Lektion 8 - Automatische Questabgabe
Lektion 9 - besondere Funktionen für Wegepunktedateien
Hier geht es los:
Lektion 1 - Dateien runterladen, installieren und erster
Testlauf
Diese kleine 'Demo' levelt Dir Deinen Charakter am Pionierdorf von Level
1 - 10 und läuft dann nach Varanas in die Klassenhalle (am besten
funktionieren Magier, Priester oder Kundschafter ... in dieser
Reihenfolge).
Das war es auch schon. Das war der kurzeTeil! Lektion 1 erfüllt. Der Bot
funktioniert grundsätzlich.
Weiter geht es mit der Lektion 2, in der ich die wichtigsten
Einstellungen, mit denen man den Bot an seine eigene Anforderungen
anpassen kann.
Lektion 2 - die wichtigsten Einstellungen im Profile
(ohne Skills)
Datei 'rom/settings.xml'
Wer vom RoM Standard abweichende Tastatureinstellungen für die
Bewegungstasten oder die Ziel auswählen Taste hat, muss unter Umständen
die Datei 'rom/settings.xml' mit einem Editor öffnen und anpassen.
Zuerst wird der Bot jedoch versuchen, die Bewegungstasten direkt aus den
Ingame Einstellungen einzulesen. Nur wenn er die Datei bindings.txt
nicht findet, greift er auf die Einstellungen in der settings.xml
zurück.
Code:
...
Das 'VK_' muss erhalten bleiben. Modifier wie 'ALT' usw. können im
Moment nicht benutzt werden! Ansonsten einfach den Buchstaben
oder die Zahl ändern. 'TAB' steht für die Tabulator-Taste.
Wer den Bot in deutsch möchte, der stellt das in dieser Zeile ein
Code:
. bzw. stellt sich der Bot seit kurzem automatisch auf die
Client Sprache um, wenn man die Option
Code:
so lässt wie sie ist.
Profildatei 'charactername.xml'
Code:
-- choose ranged/melee if not class default
'COMBAT_TYPE' nur angeben, wenn man abweichend vom Standard z.B.
mit einem Kundschafter als Nahkämpfer arbeiten möchte. Ansonsten gilt
der Klassenstandard. 'COMBAT_RANGED_PULL' auf 'true' stellen, damit man
als Nahkämpfer mit Fernkampfattacken pullen kann. Und 'COMBAT_DISTANCE'
auf die eigenene maximale Reichweite einstellen.
Code:
'HP_LOW', Wert ab dem der Bot Heilsprüche benutzen kann. Den
sollte man höher einstellen, wenn man mit HOTs (Heilsprüchen über Zeit
wie z.B. Regenerieren) arbeitet. Die beiden andere Werte geben an, ab
wann der Bot Manatränke und ab wann Heiltränke nehmen soll. Damit das
Selbstheilen funktioniert, Ingame bitte 'automatischen Selbstzauber'
in den Interfaceoptionen aktivieren.
Code:
Hier gibt man unter 'WAYPOINTS' den Namen der Wegepunktdatei an,
die dem Bot sagt wo er lang laufen soll und unter 'RETURNPATH' die
Wegedatei, mit der der Bot wenn er stirbt, den Weg vom Friedhof zum
Botplatz zurück findet. Je nachdem wie nahe man dem Friedhof ist, kann
man sich das auch sparen. Gibt man nichts an, wird einem eine Liste der
Wegepunktedateien zur Auswahl angezeigt. Wie man eigene
Wegepunktedateien anlegt, lernen wir in Lektion 3
Code:
Wenn man mit Wegepunktendateien arbeite, steht 'PATH_TYPE' auf
'waypoints'. Möchte man einfach eine an einer Stelle stehen und
sternförmig hin und herlaufen, dann stellt man den 'PATH_TYPE' auf
'wander' und gibt mit 'WANDER_RAIDUS' an, weit der Bot vom Startpunkt
aus hin- und herlaufen soll.
Code:
Wenn 'QUICK_TURN' auf 'true' steht, wird zum Drehen des Chars eine
Funktion im Speicher benutzt. Ansonsten werden die normalen
Tastaturbefehle benutzt. Die das Drehen mit der Speicherfunktion ist
viel schneller und sieht für Beobachter natürlicher aus.
Code:
'LOOT' gibt an, ob man looten möchte ("true") oder nicht
("false"). Mit 'LOOT_IN_COMBAT' sagt man, ob man auch dann schon looten
möchte, wenn man sich noch im Kampf befindet. 'LOOT_DISTANCE' gibt die
Entfernung an, bis zu der man zu einem toten Mob hinläuft um Ihn zu
looten. Wenn der Mob weiter weg liegt, wird er nicht gelootet. Und
'LOOT_PAUSE_AFTER' gibt die Wahrscheinlichkeit in Prozent an, mit der
man nach dem Looten eine Pause zwischen 3-6 Sekunden einlegt um
'menschlicher' auszusehen.
Ingame unbeding die Option 'automatisches Looten' und 'Klicken zum
Bewegen' aktivieren.. Sonst holt der Bot nix aus dem Beutel.
Code:
Wenn der Bot weniger als 15% Mana oder 15% Gesundheitspunkte hat,
legt er vor dem nächsten Kampf eine Pause ein. Man sollte jedoch immer
genügend Mana/HP-Tränke haben, damit derartige Pausen nur im Notfall
eingelegt werden. Tränke gibt es genügend beim Gemischtwarenhändler zu
kaufen.
Code:
Hier also die Hotkeys. In der aktuellen Version braucht man hier
nur noch einen Hotkey. Die Übergabe der Befehle für Tränke nehmen,
Wiederbelegen, Ausloggen, ... erfolgt über interne Macros, die vom Bot
erzeugt und über die hier angegebene Taste ausgeführt werden. Damit das
funktioniert, muss man ingame noch ein leeres Makro anlegen und ingame
auf den entsprechenden Button ziehen (in diesem Beispiel wäre es der
Button mit der Taste 0).
Lektion 3 - das Einstellen der Skills im Profil
Der Bereich Skill im Profil beschreibt, wann der Bot welche Skills
benutzen soll. Da die benutzbaren Skills davon abhängen, mit welcher
Primärklasse man gerade spielt, hinterlegt man diese Skills je
Primärklasse:
Hier ein Beispiel für einen Magier/Priester:
Code:
Eine Auflistung aller möglichen Skills findet man in der Datei
'rom/database/skills.xml'. Die möglichen Optionen sind:
hotkey
Die Ingame Taste auf der der entsprechende Skill liegt.
priority
Gibt die Wichtigkeit an, in der die Skills ausgewählt werden. Skills mit
höherer Priorität werden zuerst angearbeitet bzw. benutzt, wenn alle
Bedingungen erfüllt sind. Dem entsprechend sollten wichtige Heilsprüche
die höchste Priorität haben, dann die Damage Skills, dann eventuell
Regenerieren und zum Schluss die Buffs.
hpper
Der Gesundheitsstand in Prozent, ab der der entsprechende Skill
eingesetzt werden soll. Sinnvoll für Heil- und Schutzfähigkeiten.
inbattle
Bei 'true' wird der Skill nur im Kampf benutzt. Bei 'false' nur
ausserhalb des Kampfs. Wenn diese Option nicht gesetzt ist, gibt es
keine Einschränkung und der Skill kann in und aus dem Kampf benutzt
werden. In diesem Beispiel wird die "Holy Aura" nur im Kampf benutzt.
Ausserhalb wäre ja eine Verschwendung diese Schutzskills mit einer
Abklingzeit von 5 Minuten.
pullonly
Der Skill wird nur während dem Pullen benutzt (gilt nur für Nahkämpfer).
maxuse
Der Skill wird nur maxuse-mal innerhalb von einem Kampf benutzt.
manaper
Mana in Prozent ab dem der Skill benutzt werden kann. Das Mana muss
unter diesem %-Satz sein um die Fähigkeit zu nutzen.
targethp
Gesundheitspunkte des Ziels müssen unter diesem Wert sein, um die
Fähigkeit zu benutzen.
targethpper
Gesundheitspunkte in Prozent des Ziels müssen unter diesem Wert sein, um
die Fähigkeit zu benutzen.
rebuffcut
Benutze die Fähigkeit x Sekunden bevor die Dauer ausläuft (Cooldown).
Sinnvoll für eigene Buffs.
cooldown
Abkühlzeit/Dauer der Fähigkeit. Wenn der Wert nicht angegeben wird, gilt
der Defaultwert der Fähigkeit. Diesen Wert hier setzt man eigentlich
nur für Spezialsituationen.
autouse
Fähigkeiten mit 'autouse=false' werden nicht automatisch benutzt. Die
ist sinnvoll für Fähigkeiten, die man z.B. manuell im Event
'' benutzt. Dadurch kann man hier den entsprechenden
Hotkey angeben.
Lektion 4 - eigene Wegepunktedateien anlegen
Ein paar Tipps für bessere Wegepunktdateien: Kreisartig laufen,
keine 'harten' Ecken, oder reine vor und zurück Aktionen. Das sieht
sonst später beim Boten 'bottish' aus. Je kleiner der Platz, um so mehr
voneinander abweichende Runden sollte man laufen.
Nun haben wir eine eigene Wegepunkedatei. Wenn der Botplatz weit vom
Friedhof entfernt ist, sollten wir auch noch eine Rücklaufdatei vom
Friedhof zum Botplatz anlegen. Diese benennen wir dann
'Level2-4_return'. Durch die Endung '_return' wird diese Datei vom Bot
automatisch gefunden.
Zum Benutzen der Wegepunkte Datei, trägt man diese nun entweder in
seinem Profile ein (in unserem Beispiel im Profile hugoline.xml):
Code:
oder gibt beim Botstart im Micromacro Fenster an, dass er diese
Wegepunktdatei benutzen soll.
Code:
bot/lua path:level2-4
Wenn man nichts angibt und der Eintrag im Profile leer ist,
bekommt man eine Liste aller Wegepunktedateien angezeigt und kann dann
eine Datei auswählen.
Lektion 5 - Ressourcen farmen mit Elverions RoM Bot
Ob der Bot Ressourcen farmt oder nicht, wird bei den einzelnen
Wegepunkten in der Wegepunktdatei angegeben. Man muss also ingame zu den
einzelnen Ressourcenpunkte hinlaufen und diese Punkte 'markieren'. Im
MM Fenster den Befehl 'rom/createpath.lua' eingeben. Mit der NUM-2 Taste
markiert man die akutelle Ingame Position als Ressourcenpunkt.
Das war es auch schon. Wenn man alle Punkte hat, die Datei speichern
(z.B. als 'farmen.xml') und im Profile eintragen. Oder den Bot mit
fester Wegepunktdatei aufrufen
Code:
rom/bot.lua path:farmen
Das war es eigentlich auch schon. Wer möchte kann die
Wegepunktedatei nun benutzen oder in Kapitel 6 weiterlesen, was es noch
für Spezialitäten für die Wegepunktedatei gibt.
wichtige Tipps zum Ressourcen abbauen:
Wer nicht möchte, dass der Bot während dem Farmen Mobs angreift,
entweder die erste Zeile der Wegepunktedatei um den Typ TRAVEL ergänzen:
Code:
oder im Profile die Option für die Mobauswahl nach Level so
einstellen, dass der Bot nichts auswählt (negative Werte)
Code:
Damit man beim erstmaligen Erstellen einer Farmdatei schon
möglichst alle Ressourcenpunkte ablaufen kann, empfiehlt es sich, das
Addon ygather zu installieren und einfach ein paar Runden zu drehen,
ohne zu sammeln. ygather merkt sich alle Ressourcenpunkte und zeigt
diese später auf der Mnimap an, auch wenn die Ressource gerade nicht
verfügbar ist.
Zum Nachträglichen editieren der Farmdatei empfiehlt es sich,
'createpath.lua' in einem zweiten MicroMacro Fenster zu starten. Damit
kann man neue Punte aufzeichnen oder verändern, während im anderen
Fenste der Bot läuft. Die Nummerierung in der Wegepunktdatei ist nur
eine Orientierungshilfe. Sie ist ansonsten unwichtig. Ich würde einen
Editor mit Zeilennummerierung emfpehlen, damit man schnell die richtigen
Punkte in der Datei findet. Ich benutze z.B. [Linkleri görebilmek için üye olun veya giriş yapın.].
Lektion 6 - automatische Level von Stufe 1-10
Die Wegepunktdateien, um einen Charakter von Level 1 bis Level 10 zu
leveln und danach in die Klassenhalle zu laufen, sind bereit vorhanden.
Am besten geeignet ist der Magier, danach der Priester. Auch der
Kundschafter geht noch. Bei den anderen Klassen braucht man eigentlich
mit Level 5 eine neue Waffe, damit das Level einigermaßen schnell geht.
Wer also ein paar Twinks level möchte um Ladungen für den arkanen
Umwandler zu farmen, sollte einen Magier oder Priester anlegen (einen
Menschen). Leeres Makro anlegen und auf den entsprechenden Button legen
(Default 0). Dann im Pionierdorf den Bot mit
Code:
rom/bot.lua profile:l1-10
starten.
Der Bot öffnet automatisch die Geschenkbeutel, legent die entsprechenden
Items an und levelt die Skill bei jedem Levelup hoch.
Welche Skill gelevelt werden ist fest programmiert und wird in dem
Profil 'l1-10.xml' durch den Aufruf der Funktion
Code:
levelupSkills1To10();
durchgeführt. Für das Öffnen der Geschenkbeutel ist die Funtion
Code:
openGiftbags1To10()
zuständig. Soviel nur zur Information. Ändern und Einstellen muss
man dazu eigentlich nicht. Bot starten, zurücklehnen und nach ca. einer
Stunde den nächsten Twink anlegen. Natürlich geht das auch mit mehren
Twinks parallel.
Lektion 7 - Autorepair, Einkaufen und automatisches
Verkaufen
Um bei einem Händler automatisch zu Reparieren, einzukaufen und Sachen
zu verkaufen, den Händler in der Wegepunktdatei mit der Funktion:
Code:
player:merchant( npc_name );
auswählen. Der Bot repariert nun und kauf tentsprechend den
Einstellungen im Profile ein, bzw. verkauft:
Code:
Zum Verkaufen sind folgende Profileeinstellungen erforderlich:
Code:
Des weiteren kann man einstellen, dass Items mit einer bestimmten
Haltbarkeit oder mit bestimmten Stats nicht verkauft werden. Damit das
funktioniert, muss man jedoch das Miniaddon IGF (Ingamefunctions)
installieren. Dazu einfach den Ordner 'ingamefunctions' von
'/rom/devtools' in eure RoM Installation unter '/interface/addons'
kopieren.
Code:
Für die Stats wird der gesamte rechte Tooltiptext durchsucht! Die
Option INV_AUTOSELL_STATS_SELL überschreibt die Option
INV_AUTOSELL_STATS_NOSELL. In dem Beispiel oben, würden durch das
Suchtext 'X' alle Items mit 'IX, X und XI' Stats nicht verkauft. Durch
die Einstellung in INV_AUTOSELL_STATS_SELL werden 'IX' Stats aber
trotzdem verkauft.
Wenn es Schwierigkeiten beim Einstellen gibt, hilft vielleicht die
Profileoption
Code:
die Ursache zu finden.
Lektion 8 - Automatische Questabgabe
Mit dem Bot kann man auch Questgeber anlaufen. Wir öffnen unsere Datei
'level2-4.xml' mit einem Editor:
Code:
Man sieht eine Auflistung der Punkte die der Bot nacheinander
auswählt. Unsere Spezialaktionen werden als Befehle direkt zwischen die
'*** hier hinein
*** ' Tags geschrieben:
Code:
player:target_NPC( npc_name );
Damit wird der NPC mit dem angegbenen Namen gesucht und das
Dialogfenster des NPC geöffnet.
Code:
player:mouseclickL(x, y [RoM window wide, RoM window high]);
Damit wird mit der Maus an die angegebene Bildschirmstelle
geklickt. Damit die Koordinaten auch mit anderen Fenstergrößen
funktionieren, kann man die Fenstergröße angeben, für die die
Koordinaten gelten. Dann werden die Koordinaten bei einer anderen
Fenstergröße automatisch umgerechnet.
Code:
player:rest(2);
Dies ist eine Pause von 2 Sekunden, damit sich z.B. das
Dialogfenster öffnen kann.
Eine entsprechende Wegepunktdatei würde z.B. so aussehen:
Code:
player:target_NPC("York");
player:rest(2);
player:mouseclickL(130, 200, 800, 617);
player:rest(2);
player:mouseclickL(130, 300, 800, 617);
Für weitere Interaktionen mit den NPCs können die [Linkleri görebilmek için üye olun veya giriş yapın.] ganz hilfreich sein. API
Funktionen ruft man mit folgendem Befehl auf:
Code:
sendMacro("Funktion");
. Somit könnte man z.B. eine Quest abgeben mit
Code:
sendMacro("CompleteQuest();");
Lektion 9 - besondere Funktionen für
Wegepunktedateien
Hier nun noch eine paar Spezialbefehle für die Wegepunktdatei. Wir
öffnen unsere Datei 'level2-4.xml' mit einem Editor:
Code:
Man sieht eine Auflistung der Punkte die der Bot nacheinander
auswählt. Ist er bei dem letzten Punkt angelangt, fängt er wieder bei
Punkt 1 an. Daher sollte man Kreise laufen.
Während der Bot zu einem Wegepunkt läuft, sucht er nach gültigen Zielen
und greif diese an. Das ist das normale Verhalten. Wenn man ein anderes
Verhalten möchte, kann man den Wegepunktetyp ändern. Das sieht dann z.B.
so aus:
Code:
oder so
Code:
[Resimleri görebilmek için üye olun veya giriş yapın.]:
Code:
if( player.Level > 2 ) then
load_paths("demo2");
end
Der LUA Code muss natürlich gültig sein und zwischen dem
Tag stehen.
Mögliche Funktionen sind z.B.:
Code:
player:restrnd([probability [, minrest [, maxrest]]]);
e.g. 'player:restrnd(30, 3, 10);' Pausiere mit einer
Wahrscheinlichkeit von 30% an diesem Wegepunkt für 3 bis 10 Sekunden.
Der Bot wehrt sich, wenn er angegriffen wird und läuft danach weiter.
Ähnliche Funktionen sind 'stopPE()' and 'player.sleep()'.
Code:
player:sleep();
Der Bot geht an dem angegebenen Wegepunkt in den Schlafmodus. Der
Bot wehrt sich, wenn er angegriffen wird und schläft danach wieder ein.
Wenn man 'ENTF' drückt geht es weiter. Ähnliche Funktionen sind
'player.restrnd()' and 'stopPE()'.
Code:
stopPE();
Der Bot pausiert an dem angegebenen Wegepunkt und reagiert nicht
mehr. Wenn man 'ENTF' drückt geht es weiter. Ähnliche Funktionen sind
'player.restrnd()' and 'player.sleep()'.
Code:
player:logout([true])
Der Bot logt aus RoM aus. Mit 'player:logout(true)' wird
anschließend der PC heruntergefahren.
Code:
load_paths( [path] [,returnpath] );
Lädt eine neue Wegepunktdatei und wenn vorhanden den Default
Rückkehrpfad zu dieser Wegepunktdatei. z.B. 'load_paths("l7-9");' lädt
die Wegepunktdatei 'l7-9.xml' und wenn vorhanden die Rückkehrpfad Datei
'l7-9_return.xml'.
Code:
player:harvest();
Der Bot sucht an dem Wegepunkt nach einer Ressource und erntet
diese ab (diese Funktion funktioiert nur, wenn das RoM Fenster im
Vordergrund ist)
Code:
if( player.Level > 9 ) then
printf("do some other coding stuff");
end;
Die angebenen Befehle werde nur ausgeführt, wenn die angegebene
Stufe erreicht ist. Das kann z.B. genutzt werden, um beim Erreichen
einer bestimmten Stufe eine neue Wegepunktedatei zu laden.
Code:
player:mouseclickL(x, y [RoM window wide, RoM window high]);
Left click a screen point and by that, interact with a NPC. x, y
is relative to the RoM window. So it is your fiddly task to find the
right values to click the right buttons. Remember the RoM windows size
for that click positions. By doing that, we can later recalculate the
mouse click points if we run the bot in a different RoM windows size.
Das war es erst mal von meiner Seite. Weitere
und aktuellere Informationen gibt es auf englisch im [Linkleri görebilmek için üye olun veya giriş yapın.].
wichtige weiterführende Links:
[Linkleri görebilmek için üye olun veya giriş yapın.]
RoM Bot Online Wiki mit weiteren Tipps und Tricks
(englisch)
Credits:
Elverion - scripting
Zephyr - helped with skill database, testing
Zilvermoon - fixes, SVN
memcpy - scripting fixes/improvements
d003232 - scripting fixes/improvements
Attached Files
Please always scan the files you
downloading with [Linkleri görebilmek için üye olun veya giriş yapın.]
Bot Versionen bitte auf der [Linkleri görebilmek için üye olun veya giriş yapın.] runterladen bzw. die
allerneusten Entwicklungen gibt es im SVN (Source Code Repository). Wie
das geht steht [Linkleri görebilmek için üye olun veya giriş yapın.]. Hier erfolgen von
mir keine Updates mehr. Ich muss wieder mal was anderes machen ... RL is
calling ... 12.11.09 ***
EDIT: neuste Bot Version SVN 398 (09.11.09) Autosell nun mit Dura/Stat
Check
Hier eine 'kurze' :-) Anleitung (die Anleitung steht unter der GNU-Lizenz für freie Dokumentation 1.3 oder jede spätere
Version), wie man Elverions RoM Bot schnell zum Laufen bekommt. Die
Anleitungen enthält ins deusche übersetzte Inhalte aus dem englischen
Forum
Die Highlights von Elverions RoM Bot
Man kann mit dem Bot fast alles machen, was als Spieler möglich ist:
- Ressourcen
ernten - Automatisch reparieren
- automatisch einkaufen
- automatisch Geschenkbeutel öffnen und Gegenstände ausrüsten
- Quests abgeben
- mehrere Bots parallel laufen lassen
- Einen Charakter an einem Stück z.B. von Level 1-10 leveln und dabei
die Botplätze wechseln und anschließend nach Varanase laufen/porten
(komplette Wegepunktedabeiten dabei!). - Modus 'nur Kampfunterstützung' ohne Wegepunktdateien
- Elverions RoM Bot gibt es in Deutsch, Französisch, Russisch und
Englisch (in settings.xml einstellen)
vor und kann mit entsprechenden Kenntnissen selbst modifiziert werden.
Die Einstellung erfolgt in Profilen. Das macht es am Anfang etwas
unübersichtlich. Dafür ist das Ganze sehr flexibel.
Damit es übersichtlicher ist, beschreibe ich das Ganze in mehreren
Lektionen:
Lektion 1 - Dateien runterladen, installieren und erster
Testlauf
Lektion 2 - die wichtigsten Einstellungen im Profile (ohne Skills)
Lektion 3 - das Einstellen der Skills im Profile
Lektion 4 - eigene Wegepunktedateien anlegen
Lektion 5 - Ressourcen farmen mit Elverions RoM Bot
Lektion 6 - automatische Level von Stufe 1-10
Lektion 7 - Autorepair, Einkaufen und automatisches Verkaufen
Lektion 8 - Automatische Questabgabe
Lektion 9 - besondere Funktionen für Wegepunktedateien
Hier geht es los:
Lektion 1 - Dateien runterladen, installieren und erster
Testlauf
- Die Datei im Anhang enthält
die Micromacro Laufzeitumgebung und das bereits fertig installierte Bot
Skript im Verzeichnis '/scripts/rom'. Datei runterladen und irgendwohin
entpacken (die jeweils aktuellste Final Version gibt es im [Linkleri görebilmek için üye olun veya giriş yapın.], die aktuelle Entwicklerversion
im SVN).
Das war es auch schon mit der Installation, nun kann der erste Test des
Bots erfolgen. - Micromakro aufrufen, d.h. im entpackten Verzeichnis '/micromacro'
auf die Datei 'micromacro.exe' klicken. Nun öffnet sich das MM Fenster. - Wer die Standard Ingame Tastaturbelegung benutzt, kann den Bot schon
mal ohne weitere Einstellungen laufen lassen: Hierzu Einloggen, einen
neuen Charakter anlegen (Mage oder Priest wird empfohlen) und die RoM
Spielewelt beim Pionierdorf betreten. - Auf dem ersten Makroplatz ein leeres Makro anlegen und auf den
Actionbar Button mit der Taste 0 ziehen. Ingame Settings für
'Automatisch Looten', 'automatischer Selbstzauber' und 'Klicken zum
Bewegen' aktivieren. (Wer die Ingame Tastatureinstellungen selbst
belegt hat, muss erst mal kurz in Lektion 2 weiterlesen, aber auch nur
halb, weil der Bot eigentlich versucht, direkt die RoM Einstellungen zu
lesen). - Zum Micromacro Fenster wechseln und den Bot mit dem Befehl
Code:
rom/bot.lua profile:l1-10
starten. Zum RoM Fenster wechseln und die Taste 'ENTF' drücke.
Aus der Wegepunktliste die Wegepunktdatei '1-10Pi../l1t_start.xml'
auswählen. Nun sollte der Bot loslegen und im MM Fenster sieht man, was
er tut.
Diese kleine 'Demo' levelt Dir Deinen Charakter am Pionierdorf von Level
1 - 10 und läuft dann nach Varanas in die Klassenhalle (am besten
funktionieren Magier, Priester oder Kundschafter ... in dieser
Reihenfolge).
Das war es auch schon. Das war der kurzeTeil! Lektion 1 erfüllt. Der Bot
funktioniert grundsätzlich.
Weiter geht es mit der Lektion 2, in der ich die wichtigsten
Einstellungen, mit denen man den Bot an seine eigene Anforderungen
anpassen kann.
Lektion 2 - die wichtigsten Einstellungen im Profile
(ohne Skills)
Datei 'rom/settings.xml'
Wer vom RoM Standard abweichende Tastatureinstellungen für die
Bewegungstasten oder die Ziel auswählen Taste hat, muss unter Umständen
die Datei 'rom/settings.xml' mit einem Editor öffnen und anpassen.
Zuerst wird der Bot jedoch versuchen, die Bewegungstasten direkt aus den
Ingame Einstellungen einzulesen. Nur wenn er die Datei bindings.txt
nicht findet, greift er auf die Einstellungen in der settings.xml
zurück.
Code:
...
Das 'VK_' muss erhalten bleiben. Modifier wie 'ALT' usw. können im
Moment nicht benutzt werden! Ansonsten einfach den Buchstaben
oder die Zahl ändern. 'TAB' steht für die Tabulator-Taste.
Wer den Bot in deutsch möchte, der stellt das in dieser Zeile ein
Code:
. bzw. stellt sich der Bot seit kurzem automatisch auf die
Client Sprache um, wenn man die Option
Code:
so lässt wie sie ist.
Profildatei 'charactername.xml'
- Üblicherweise legt man je
Charaktername ein Profile an, das die Einstellungen und Skills für
diesen Charakter enthält. Beim Starten des Bots mit 'rom/bot.lua' sucht
sich dieser entsprechend dem aktuellen Charakternamen die entsprechende
Profil Datei. Man kann den Bot aber auch mit einem erzwungenen Profile
starten:
Code:
rom/bot.lua profile:xyz
. Wir gehen also in den Ordner 'rom/profiles/' und kopieren uns
die Datei 'default.xml' entsprechend unserem Charakternamen (unser LvL 1
Char heisst 'Hugoline') in 'hugoline.xml'. - Nun öffnen wir die neue Datei 'hugoline.xml' mit einem Editor und
bearbeiten die wichtigsten Einstellungen. Die wichtigsten sind die
Einstellungen zu den Wegepunktdateien, die Tastenbelegungungen und die
zu Skill, die der Bot benutzen soll. Den Rest kann man normalerweise so
lassen wie er ist.
Code:
-- choose ranged/melee if not class default
'COMBAT_TYPE' nur angeben, wenn man abweichend vom Standard z.B.
mit einem Kundschafter als Nahkämpfer arbeiten möchte. Ansonsten gilt
der Klassenstandard. 'COMBAT_RANGED_PULL' auf 'true' stellen, damit man
als Nahkämpfer mit Fernkampfattacken pullen kann. Und 'COMBAT_DISTANCE'
auf die eigenene maximale Reichweite einstellen.
Code:
'HP_LOW', Wert ab dem der Bot Heilsprüche benutzen kann. Den
sollte man höher einstellen, wenn man mit HOTs (Heilsprüchen über Zeit
wie z.B. Regenerieren) arbeitet. Die beiden andere Werte geben an, ab
wann der Bot Manatränke und ab wann Heiltränke nehmen soll. Damit das
Selbstheilen funktioniert, Ingame bitte 'automatischen Selbstzauber'
in den Interfaceoptionen aktivieren.
Code:
Hier gibt man unter 'WAYPOINTS' den Namen der Wegepunktdatei an,
die dem Bot sagt wo er lang laufen soll und unter 'RETURNPATH' die
Wegedatei, mit der der Bot wenn er stirbt, den Weg vom Friedhof zum
Botplatz zurück findet. Je nachdem wie nahe man dem Friedhof ist, kann
man sich das auch sparen. Gibt man nichts an, wird einem eine Liste der
Wegepunktedateien zur Auswahl angezeigt. Wie man eigene
Wegepunktedateien anlegt, lernen wir in Lektion 3
Code:
Wenn man mit Wegepunktendateien arbeite, steht 'PATH_TYPE' auf
'waypoints'. Möchte man einfach eine an einer Stelle stehen und
sternförmig hin und herlaufen, dann stellt man den 'PATH_TYPE' auf
'wander' und gibt mit 'WANDER_RAIDUS' an, weit der Bot vom Startpunkt
aus hin- und herlaufen soll.
Code:
Wenn 'QUICK_TURN' auf 'true' steht, wird zum Drehen des Chars eine
Funktion im Speicher benutzt. Ansonsten werden die normalen
Tastaturbefehle benutzt. Die das Drehen mit der Speicherfunktion ist
viel schneller und sieht für Beobachter natürlicher aus.
Code:
'LOOT' gibt an, ob man looten möchte ("true") oder nicht
("false"). Mit 'LOOT_IN_COMBAT' sagt man, ob man auch dann schon looten
möchte, wenn man sich noch im Kampf befindet. 'LOOT_DISTANCE' gibt die
Entfernung an, bis zu der man zu einem toten Mob hinläuft um Ihn zu
looten. Wenn der Mob weiter weg liegt, wird er nicht gelootet. Und
'LOOT_PAUSE_AFTER' gibt die Wahrscheinlichkeit in Prozent an, mit der
man nach dem Looten eine Pause zwischen 3-6 Sekunden einlegt um
'menschlicher' auszusehen.
Ingame unbeding die Option 'automatisches Looten' und 'Klicken zum
Bewegen' aktivieren.. Sonst holt der Bot nix aus dem Beutel.
Code:
Wenn der Bot weniger als 15% Mana oder 15% Gesundheitspunkte hat,
legt er vor dem nächsten Kampf eine Pause ein. Man sollte jedoch immer
genügend Mana/HP-Tränke haben, damit derartige Pausen nur im Notfall
eingelegt werden. Tränke gibt es genügend beim Gemischtwarenhändler zu
kaufen.
Code:
Hier also die Hotkeys. In der aktuellen Version braucht man hier
nur noch einen Hotkey. Die Übergabe der Befehle für Tränke nehmen,
Wiederbelegen, Ausloggen, ... erfolgt über interne Macros, die vom Bot
erzeugt und über die hier angegebene Taste ausgeführt werden. Damit das
funktioniert, muss man ingame noch ein leeres Makro anlegen und ingame
auf den entsprechenden Button ziehen (in diesem Beispiel wäre es der
Button mit der Taste 0).
Lektion 3 - das Einstellen der Skills im Profil
Der Bereich Skill im Profil beschreibt, wann der Bot welche Skills
benutzen soll. Da die benutzbaren Skills davon abhängen, mit welcher
Primärklasse man gerade spielt, hinterlegt man diese Skills je
Primärklasse:
Hier ein Beispiel für einen Magier/Priester:
Code:
Eine Auflistung aller möglichen Skills findet man in der Datei
'rom/database/skills.xml'. Die möglichen Optionen sind:
hotkey
Die Ingame Taste auf der der entsprechende Skill liegt.
priority
Gibt die Wichtigkeit an, in der die Skills ausgewählt werden. Skills mit
höherer Priorität werden zuerst angearbeitet bzw. benutzt, wenn alle
Bedingungen erfüllt sind. Dem entsprechend sollten wichtige Heilsprüche
die höchste Priorität haben, dann die Damage Skills, dann eventuell
Regenerieren und zum Schluss die Buffs.
hpper
Der Gesundheitsstand in Prozent, ab der der entsprechende Skill
eingesetzt werden soll. Sinnvoll für Heil- und Schutzfähigkeiten.
inbattle
Bei 'true' wird der Skill nur im Kampf benutzt. Bei 'false' nur
ausserhalb des Kampfs. Wenn diese Option nicht gesetzt ist, gibt es
keine Einschränkung und der Skill kann in und aus dem Kampf benutzt
werden. In diesem Beispiel wird die "Holy Aura" nur im Kampf benutzt.
Ausserhalb wäre ja eine Verschwendung diese Schutzskills mit einer
Abklingzeit von 5 Minuten.
pullonly
Der Skill wird nur während dem Pullen benutzt (gilt nur für Nahkämpfer).
maxuse
Der Skill wird nur maxuse-mal innerhalb von einem Kampf benutzt.
manaper
Mana in Prozent ab dem der Skill benutzt werden kann. Das Mana muss
unter diesem %-Satz sein um die Fähigkeit zu nutzen.
targethp
Gesundheitspunkte des Ziels müssen unter diesem Wert sein, um die
Fähigkeit zu benutzen.
targethpper
Gesundheitspunkte in Prozent des Ziels müssen unter diesem Wert sein, um
die Fähigkeit zu benutzen.
rebuffcut
Benutze die Fähigkeit x Sekunden bevor die Dauer ausläuft (Cooldown).
Sinnvoll für eigene Buffs.
cooldown
Abkühlzeit/Dauer der Fähigkeit. Wenn der Wert nicht angegeben wird, gilt
der Defaultwert der Fähigkeit. Diesen Wert hier setzt man eigentlich
nur für Spezialsituationen.
autouse
Fähigkeiten mit 'autouse=false' werden nicht automatisch benutzt. Die
ist sinnvoll für Fähigkeiten, die man z.B. manuell im Event
'
Hotkey angeben.
Lektion 4 - eigene Wegepunktedateien anlegen
- Zum Anlegen eigener
Wegepunktdateien in RoM den Charakter an die entsprechende Stelle
bewegen, wo man später botten möchte. - Nun im MM Fenster den Befehl 'rom/createpath.lua' eingeben.
- Ins RoM Fenster gehen 'ENTF' drücken, damit der Aufzeichnungsprozess
startet und nun die gewünschten Wegepunkte ablaufen. An jedem Punkt, zu
dem der Bot später laufen soll die NUM-1 Taste drücken. - Wenn so alle Punkte gemerkt sind die NUM-3 Taste drücken um das
Ganze zu speichern. - Wieder ins MM Fenster wechseln und dort einen Namen für die Datei
eingeben, z.B. 'level2-4'. Das 'xml' wird automatisch drangehängt.
Ein paar Tipps für bessere Wegepunktdateien: Kreisartig laufen,
keine 'harten' Ecken, oder reine vor und zurück Aktionen. Das sieht
sonst später beim Boten 'bottish' aus. Je kleiner der Platz, um so mehr
voneinander abweichende Runden sollte man laufen.
Nun haben wir eine eigene Wegepunkedatei. Wenn der Botplatz weit vom
Friedhof entfernt ist, sollten wir auch noch eine Rücklaufdatei vom
Friedhof zum Botplatz anlegen. Diese benennen wir dann
'Level2-4_return'. Durch die Endung '_return' wird diese Datei vom Bot
automatisch gefunden.
Zum Benutzen der Wegepunkte Datei, trägt man diese nun entweder in
seinem Profile ein (in unserem Beispiel im Profile hugoline.xml):
Code:
oder gibt beim Botstart im Micromacro Fenster an, dass er diese
Wegepunktdatei benutzen soll.
Code:
bot/lua path:level2-4
Wenn man nichts angibt und der Eintrag im Profile leer ist,
bekommt man eine Liste aller Wegepunktedateien angezeigt und kann dann
eine Datei auswählen.
Lektion 5 - Ressourcen farmen mit Elverions RoM Bot
Ob der Bot Ressourcen farmt oder nicht, wird bei den einzelnen
Wegepunkten in der Wegepunktdatei angegeben. Man muss also ingame zu den
einzelnen Ressourcenpunkte hinlaufen und diese Punkte 'markieren'. Im
MM Fenster den Befehl 'rom/createpath.lua' eingeben. Mit der NUM-2 Taste
markiert man die akutelle Ingame Position als Ressourcenpunkt.
Das war es auch schon. Wenn man alle Punkte hat, die Datei speichern
(z.B. als 'farmen.xml') und im Profile eintragen. Oder den Bot mit
fester Wegepunktdatei aufrufen
Code:
rom/bot.lua path:farmen
Das war es eigentlich auch schon. Wer möchte kann die
Wegepunktedatei nun benutzen oder in Kapitel 6 weiterlesen, was es noch
für Spezialitäten für die Wegepunktedatei gibt.
wichtige Tipps zum Ressourcen abbauen:
Wer nicht möchte, dass der Bot während dem Farmen Mobs angreift,
entweder die erste Zeile der Wegepunktedatei um den Typ TRAVEL ergänzen:
Code:
oder im Profile die Option für die Mobauswahl nach Level so
einstellen, dass der Bot nichts auswählt (negative Werte)
Code:
Damit man beim erstmaligen Erstellen einer Farmdatei schon
möglichst alle Ressourcenpunkte ablaufen kann, empfiehlt es sich, das
Addon ygather zu installieren und einfach ein paar Runden zu drehen,
ohne zu sammeln. ygather merkt sich alle Ressourcenpunkte und zeigt
diese später auf der Mnimap an, auch wenn die Ressource gerade nicht
verfügbar ist.
Zum Nachträglichen editieren der Farmdatei empfiehlt es sich,
'createpath.lua' in einem zweiten MicroMacro Fenster zu starten. Damit
kann man neue Punte aufzeichnen oder verändern, während im anderen
Fenste der Bot läuft. Die Nummerierung in der Wegepunktdatei ist nur
eine Orientierungshilfe. Sie ist ansonsten unwichtig. Ich würde einen
Editor mit Zeilennummerierung emfpehlen, damit man schnell die richtigen
Punkte in der Datei findet. Ich benutze z.B. [Linkleri görebilmek için üye olun veya giriş yapın.].
Lektion 6 - automatische Level von Stufe 1-10
Die Wegepunktdateien, um einen Charakter von Level 1 bis Level 10 zu
leveln und danach in die Klassenhalle zu laufen, sind bereit vorhanden.
Am besten geeignet ist der Magier, danach der Priester. Auch der
Kundschafter geht noch. Bei den anderen Klassen braucht man eigentlich
mit Level 5 eine neue Waffe, damit das Level einigermaßen schnell geht.
Wer also ein paar Twinks level möchte um Ladungen für den arkanen
Umwandler zu farmen, sollte einen Magier oder Priester anlegen (einen
Menschen). Leeres Makro anlegen und auf den entsprechenden Button legen
(Default 0). Dann im Pionierdorf den Bot mit
Code:
rom/bot.lua profile:l1-10
starten.
Der Bot öffnet automatisch die Geschenkbeutel, legent die entsprechenden
Items an und levelt die Skill bei jedem Levelup hoch.
Welche Skill gelevelt werden ist fest programmiert und wird in dem
Profil 'l1-10.xml' durch den Aufruf der Funktion
Code:
levelupSkills1To10();
durchgeführt. Für das Öffnen der Geschenkbeutel ist die Funtion
Code:
openGiftbags1To10()
zuständig. Soviel nur zur Information. Ändern und Einstellen muss
man dazu eigentlich nicht. Bot starten, zurücklehnen und nach ca. einer
Stunde den nächsten Twink anlegen. Natürlich geht das auch mit mehren
Twinks parallel.
Lektion 7 - Autorepair, Einkaufen und automatisches
Verkaufen
Um bei einem Händler automatisch zu Reparieren, einzukaufen und Sachen
zu verkaufen, den Händler in der Wegepunktdatei mit der Funktion:
Code:
player:merchant( npc_name );
auswählen. Der Bot repariert nun und kauf tentsprechend den
Einstellungen im Profile ein, bzw. verkauft:
Code:
Zum Verkaufen sind folgende Profileeinstellungen erforderlich:
Code:
Des weiteren kann man einstellen, dass Items mit einer bestimmten
Haltbarkeit oder mit bestimmten Stats nicht verkauft werden. Damit das
funktioniert, muss man jedoch das Miniaddon IGF (Ingamefunctions)
installieren. Dazu einfach den Ordner 'ingamefunctions' von
'/rom/devtools' in eure RoM Installation unter '/interface/addons'
kopieren.
Code:
Für die Stats wird der gesamte rechte Tooltiptext durchsucht! Die
Option INV_AUTOSELL_STATS_SELL überschreibt die Option
INV_AUTOSELL_STATS_NOSELL. In dem Beispiel oben, würden durch das
Suchtext 'X' alle Items mit 'IX, X und XI' Stats nicht verkauft. Durch
die Einstellung in INV_AUTOSELL_STATS_SELL werden 'IX' Stats aber
trotzdem verkauft.
Wenn es Schwierigkeiten beim Einstellen gibt, hilft vielleicht die
Profileoption
Code:
die Ursache zu finden.
Lektion 8 - Automatische Questabgabe
Mit dem Bot kann man auch Questgeber anlaufen. Wir öffnen unsere Datei
'level2-4.xml' mit einem Editor:
Code:
Man sieht eine Auflistung der Punkte die der Bot nacheinander
auswählt. Unsere Spezialaktionen werden als Befehle direkt zwischen die
'
***
Code:
player:target_NPC( npc_name );
Damit wird der NPC mit dem angegbenen Namen gesucht und das
Dialogfenster des NPC geöffnet.
Code:
player:mouseclickL(x, y [RoM window wide, RoM window high]);
Damit wird mit der Maus an die angegebene Bildschirmstelle
geklickt. Damit die Koordinaten auch mit anderen Fenstergrößen
funktionieren, kann man die Fenstergröße angeben, für die die
Koordinaten gelten. Dann werden die Koordinaten bei einer anderen
Fenstergröße automatisch umgerechnet.
Code:
player:rest(2);
Dies ist eine Pause von 2 Sekunden, damit sich z.B. das
Dialogfenster öffnen kann.
Eine entsprechende Wegepunktdatei würde z.B. so aussehen:
Code:
player:target_NPC("York");
player:rest(2);
player:mouseclickL(130, 200, 800, 617);
player:rest(2);
player:mouseclickL(130, 300, 800, 617);
Für weitere Interaktionen mit den NPCs können die [Linkleri görebilmek için üye olun veya giriş yapın.] ganz hilfreich sein. API
Funktionen ruft man mit folgendem Befehl auf:
Code:
sendMacro("Funktion");
. Somit könnte man z.B. eine Quest abgeben mit
Code:
sendMacro("CompleteQuest();");
Lektion 9 - besondere Funktionen für
Wegepunktedateien
Hier nun noch eine paar Spezialbefehle für die Wegepunktdatei. Wir
öffnen unsere Datei 'level2-4.xml' mit einem Editor:
Code:
Man sieht eine Auflistung der Punkte die der Bot nacheinander
auswählt. Ist er bei dem letzten Punkt angelangt, fängt er wieder bei
Punkt 1 an. Daher sollte man Kreise laufen.
Während der Bot zu einem Wegepunkt läuft, sucht er nach gültigen Zielen
und greif diese an. Das ist das normale Verhalten. Wenn man ein anderes
Verhalten möchte, kann man den Wegepunktetyp ändern. Das sieht dann z.B.
so aus:
Code:
oder so
Code:
Code:
if( player.Level > 2 ) then
load_paths("demo2");
end
Der LUA Code muss natürlich gültig sein und zwischen dem
Mögliche Funktionen sind z.B.:
Code:
player:restrnd([probability [, minrest [, maxrest]]]);
e.g. 'player:restrnd(30, 3, 10);' Pausiere mit einer
Wahrscheinlichkeit von 30% an diesem Wegepunkt für 3 bis 10 Sekunden.
Der Bot wehrt sich, wenn er angegriffen wird und läuft danach weiter.
Ähnliche Funktionen sind 'stopPE()' and 'player.sleep()'.
Code:
player:sleep();
Der Bot geht an dem angegebenen Wegepunkt in den Schlafmodus. Der
Bot wehrt sich, wenn er angegriffen wird und schläft danach wieder ein.
Wenn man 'ENTF' drückt geht es weiter. Ähnliche Funktionen sind
'player.restrnd()' and 'stopPE()'.
Code:
stopPE();
Der Bot pausiert an dem angegebenen Wegepunkt und reagiert nicht
mehr. Wenn man 'ENTF' drückt geht es weiter. Ähnliche Funktionen sind
'player.restrnd()' and 'player.sleep()'.
Code:
player:logout([true])
Der Bot logt aus RoM aus. Mit 'player:logout(true)' wird
anschließend der PC heruntergefahren.
Code:
load_paths( [path] [,returnpath] );
Lädt eine neue Wegepunktdatei und wenn vorhanden den Default
Rückkehrpfad zu dieser Wegepunktdatei. z.B. 'load_paths("l7-9");' lädt
die Wegepunktdatei 'l7-9.xml' und wenn vorhanden die Rückkehrpfad Datei
'l7-9_return.xml'.
Code:
player:harvest();
Der Bot sucht an dem Wegepunkt nach einer Ressource und erntet
diese ab (diese Funktion funktioiert nur, wenn das RoM Fenster im
Vordergrund ist)
Code:
if( player.Level > 9 ) then
printf("do some other coding stuff");
end;
Die angebenen Befehle werde nur ausgeführt, wenn die angegebene
Stufe erreicht ist. Das kann z.B. genutzt werden, um beim Erreichen
einer bestimmten Stufe eine neue Wegepunktedatei zu laden.
Code:
player:mouseclickL(x, y [RoM window wide, RoM window high]);
Left click a screen point and by that, interact with a NPC. x, y
is relative to the RoM window. So it is your fiddly task to find the
right values to click the right buttons. Remember the RoM windows size
for that click positions. By doing that, we can later recalculate the
mouse click points if we run the bot in a different RoM windows size.
Das war es erst mal von meiner Seite. Weitere
und aktuellere Informationen gibt es auf englisch im [Linkleri görebilmek için üye olun veya giriş yapın.].
wichtige weiterführende Links:
[Linkleri görebilmek için üye olun veya giriş yapın.]
RoM Bot Online Wiki mit weiteren Tipps und Tricks
(englisch)
Credits:
Elverion - scripting
Zephyr - helped with skill database, testing
Zilvermoon - fixes, SVN
memcpy - scripting fixes/improvements
d003232 - scripting fixes/improvements
Attached Files
[Resimleri görebilmek için üye olun veya giriş yapın.] | Elverions RoM Bot SVN 398 20091109 inkl MicroMacro 1.0 b7.zip (678.8 KB, 851 views) |
Please always scan the files you
downloading with [Linkleri görebilmek için üye olun veya giriş yapın.]