Register for your free account! | Forgot your password?

You last visited: Today at 00:37

  • Please register to post and access all features, it's quick, easy and FREE!

 

Farming Bot

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2009
Posts: 6
Received Thanks: 0
Farming Bot

SO. Nachdem ich jetzt viel Tage nach einem Bot gesucht habe, der mit hilft den akuten Mangel an Rohstoffen zu bekämpfen, wende ich mich an euch...
Kennt hier irgendjemand irgendeinen Bot der einigermaßen so viel taugt, dass er Rohstoffe sammeln kann?
Ist es in RoM überhaupt möglich Rohstoffe über Bots zu sammeln?
Und an alle die meinen sie müssen mich als dummen CheatOr beschimpfen: Ne Gilde auf Stufe 5 zu bringen, bringt einen um all seine Rohstoffe.. (die man in ehrlicher Arbeit in vielen Stunden gesammelt hat)



Killerzelle is offline  
Old   #2
 
elite*gold: 271
Join Date: Mar 2008
Posts: 9,462
Received Thanks: 2,082
es gibt bisher noch keine public mat farm bots tut mir leid..


Mark- is offline  
Thanks
1 User
Old   #3
 
elite*gold: 0
Join Date: Dec 2008
Posts: 18
Received Thanks: 62
deswegen sammeln auch alle in der gilde wenn du 30 leute in der gilde hast
die alle etwas sammeln und dann hin und wieder mal was spenden biste ruck zuck auf 5

zum thema bot
so etwas gibt es noch nicht und ich denke mal das ist auch nicht leicht zu machen
Babsti is offline  
Thanks
1 User
Old   #4
 
elite*gold: 0
Join Date: Apr 2009
Posts: 6
Received Thanks: 0
Ok vielen dank für eure schnelle Antwort bitte haltet mich trotzdem auf dem Laufendem falls sich was tut..
Danke noch mal


Killerzelle is offline  
Old   #5
 
elite*gold: 0
Join Date: Jan 2007
Posts: 126
Received Thanks: 83
Ich habe versuche so einen Bot zu bauen ... aber es scheitert einfach daran dass man nicht an die Daten der Objekte in der Umgebung kommt:


Ich habe die blöde Vermutung das die Pointer zu den Objekten auf dem Stack liegen. Das wird SEHR schwierig da ran zu kommen. Bei WoW an die Objekte zu kommen war deutlich einfacher...

Ich hätte 2 Lösungen dafür aber beide sind schlecht:

1. Den RoM-Speicher nach einem Muster durchsuchen um Objekte ausfindig zu machen, Problem hier wäre ein geeignetes Muster zu finden um so ein Objekt 100%ig zu identifizieren, eventl. kann man hier um die Geschwindigkeit zu erhöhen die Suche auf einen bestimmten Speicherbereich begrenzen

2. Eine Codeinjection an einer geeigneten Stelle vornehmen z.B.:
00630DCC - 8B 01 - mov eax,[ecx] // greift auf alle Objektbasisadressen zu
Die Basisadresse in ecx kopieren und an einer geeigneten Stelle im RoM Speicher ablegen, das ganze macht man in einer Schleife für sagen wir mal 150 Objekte, dann wird das 151ste Objekt wieder an die Adresse vom ersten Objekt geschrieben (man weiß ja leider nicht wann die Mainloop anfäng und aufhört), mit einem externem Programm (dem Bot) ließt man diese 150 Adressen aus, sortierte doppelte Adressen heraus und filtert die sammelbaren Objekte heraus, dann nur noch nach Entfernung zwischen Objekt und Spieler sortieren und der Rest ist easymode
Nachteil: riskant (Crashes), sehr viel Anpassungsarbeit nach einem Update, nicht gerade der schnellste Weg, man braucht Platz für das Codecave und man braucht für 150Objekte*4Bytes 600Bytes freien Speicher innerhalb RoM mit Schreib- und Leserechten

Beide Lösungen sind ... und das ist noch untertrieben... einfach nur scheiße. Ein sauberes Auslesen der Objekte aus eine Linked List wäre schneller und sicherer.

Ich bin ganz Ohr wenn jemand eine Lösung hat ...
run32.dll is offline  
Old   #6
 
elite*gold: 1
Join Date: Jul 2008
Posts: 419
Received Thanks: 89
hab mich ach mal dran gesetzt gehabt, meiner scheitert an 2 dingen, als erstes sind bestimmte farbwerte eines mats nur aus einer bestimmten position sichtbar, und das 2 Problem ist, das diese Farbwerte ähnlich der Farbwerte der umgebung sind
hab hier mal meinen ansatz

HotKeySet ( "{F7}" , "Start" ) ; Der Taste Numpad7 ist nun die Info Start hinzugefügt
HotKeySet ( "{F8}" , "Ende" ) ; Der Taste Numpad8 ist nun die Info Ende hinzugefügt

Opt('PixelCoordMode', 2) ; falls window als option gewählt wurde
Opt('MouseCoordMode', 2) ; falls window als option gewählt wurde

While (1) ; Endlosschleife anfang und 1 für an
Sleep (10) ;
Wend ; Endlosschleife ende

Func Start ()
While (1)
Sleep (200)

$Bergsuche = PixelSearch( 0, 0, 1200, 700, 0x2A4413 )
If IsArray($Bergsuche) = True Then

Mouseclick("left", $Bergsuche[0], $Bergsuche[1], 5)
EndIf
WEnd

Endfunc

Func Ende ()
Exit ; Programm beendet sich
EndFunc
ivits is offline  
Old   #7
 
elite*gold: 0
Join Date: Jan 2007
Posts: 126
Received Thanks: 83
Sieht mir nach AutoIT aus, richtig?

Nimms mir nicht übel aber davon halte ich nicht viel. Selbst wenn man so eine Pixelsuche ordentlich hinbekommt, wie bewegt man so Charakter von einem Erzvorkommen zum nächsten. Man kommt nicht wirklich um das Auslesen der Objektdaten herum.

Aber wenn ich deinen Code richtig verstehe wollstest du damit nur ein automatisches Abbauen des Erz realisieren oder? OK dafür könnte man es eventl. verwenden.

Ich stell mir so die Situation vor: Man baut ein seltenes Erz ab, irgend so ein anderer Pennerspieler sieht das und will auch was davon ... beide müssten also wie blöd um die Wette klicken. Jetzt aktiviert man einfach per Hotkey das Pixelsearchscript. WIN! ... aber ich bezweifle das es in der Praxis sauber funktioniert.
run32.dll is offline  
Old   #8
 
elite*gold: 0
Join Date: Apr 2007
Posts: 73
Received Thanks: 14
naja, da die rohstoffe ja immer an den selben stellen sind, bräucht ich nur nen bot, der wegpunkte ab läuft und jeweils an denen, die ich für rohstoffe markiere, für gewisse zeit pausiert.
in dem fall würd ich die sichtrichtung so stellen, das er möglichst steil nach unten schaut und den cursor auf die füße. dazu via autoit mouseklick script an und shift einklemmen.
nachteil: das ganze müsst immer im vordergrund laufen, was mich aber weniger stören würde. 2 normale bots im hintergrund und den dann im vordergrund
madadayo is offline  
Old   #9
 
elite*gold: 1
Join Date: Jul 2008
Posts: 419
Received Thanks: 89
naja das war nur der ansatz, ich dachte mir, das ich die minimap so absuchen lasse, dass wenn die mats symbole erscheinen sich der character in die richtung dreht, allerdings da das normale abbauen schon nicht funktioniert hab ich nicht weiter rein geguckt.
wenn es so einfach wäre wie du denkst wäre das alles kein Problem.
mit dem bewegen ist nicht viel zu machen als zu sagen wenn auf der karte nichts ist renn so und so lang grade aus, dann geh in ne andere richtung und renn wieder grade aus.
Beim Kampf ums erz muss man ja nur skils benutzen, die auf den anderen wirken wie z.B. der hot vom prist, dann wird das abbauen nämlich unterbrochen
ivits is offline  
Old   #10
 
elite*gold: 0
Join Date: Mar 2008
Posts: 66
Received Thanks: 3
Sorry can not read this to well, but I just wanted to suggest the addon that records the nodes.

Maybe there is a way to use it to import a database into a bot? I mean it would take time for the bot to gather all the locations, but as you run by nodes it records them, so it must have a way to pick up the node to record it.
corvox is offline  
Old   #11
 
elite*gold: 0
Join Date: Jan 2007
Posts: 126
Received Thanks: 83
I dont think these addons store the nodelocation in the *real* ingame XYZ coordinates, I think they store them in xy mapcoordinates only - like 43,20 ... but I dont kown.

I think searching the memory with a pattern would be the best way for now - may be I'll try it tomorrow... one possible stard would be a scan for 8099892, which is the sig. of the unitbase (if my **** textfile isn't outdatet here...)

I dont like all this Pixelsearch-, Addon-, AutoIT-stuff -> limited possibilities

but anyway - good idea
run32.dll is offline  
Old   #12
 
elite*gold: 0
Join Date: Jan 2008
Posts: 221
Received Thanks: 16
vielleicht solltet ihr euch das addon "yGather" mal anschauen, das erkennt zumindest die materialien udn amkiert sie auf karte, ihr braucht die erkennungsmethode doch eigt nur übernhemen?. . .
king_n91 is offline  
Old   #13
 
elite*gold: 0
Join Date: Jan 2007
Posts: 126
Received Thanks: 83
guess I'll type in english even if it sucks, so nobody should cry "translate plz, can't read damn s*it!!!111"

Well I checked the *search the memory*-method and that rly sucked. I ended up reading ~960MB ...to slooooow

Now here is a start using codeinjection, this codecave continously creates a copy of 150 objectbase-addresses and stores them at 0x008F0D00 ... thats at the end of the datasection if I remember correct.

Now its time to modify my bot to read out these 150objects ... easymode funstuff inc
I now just have to find a fast way to identify a *collectable object* like wood. I could compare the objectname at offset 0x278 but that would be very slow and retarted ... there must be a better way ... I'm sure there is some kind of flag for this somewhere.

important: filter multiple addresses before doing anything!

Code:
[COLOR="Blue"]the location for codeinjection:
00630DC2 - 3b 7e 04                   - cmp edi,[esi+04]
00630DC5 - 75 02                      - jne 00630dc9
00630DC7 - ff d3                      - call ebx
00630DC9 - 8b 4f 0c                   - mov ecx,[edi+0c]
00630DCC - 8b 01                      - mov eax,[ecx]			// RoM reads objectbaseaddress
00630DCE - 8b 90 08 01 00 00          - mov edx,[eax+00000108]
00630DD4 - 6a 00                      - push 00
00630DD6 - ff d2                      - call edx
00630DD8 - 8d 4c 24 10                - lea ecx,[esp+10]

JUMP:
00630DC9 - e9 d2 8c 17 00             - jmp 007a9aa0			// jump to codecave
00630DCE <--------------------------------------------------------------------------------------------------------+
                                                                                                                  ^
VARS:                                                                                                             |
008F0CFC - counter                                                                                                |
                                                                                                                  |
CODECAVE:                                                                                                         |
007A9AA0 - 8b 4f 0c                      - mov ecx,[edi+0c]		// restore originalcode destroyed by jump |
007A9AA3 - 8b 01                         - mov eax,[ecx]		// restore originalcode destroyed by jump |
007A9AA5 - 81 3d fc 0c 8f 00 58 02 00 00 - cmp [008f0cfc],00000258	// compare counter to 600                 |
007A9AAF - 7c 0a                         - jnge 007a9abb		// jump if counter is < than 600 ------+  |
007A9AB1 - c7 05 fc 0c 8f 00 00 00 00 00 - mov [008f0cfc],00000000	// reset counter to zero               |  |
007A9ABB - 53                            - push ebx			// backup ebx  <-----------------------+  |
007A9ABC - 31 db                         - xor ebx,ebx			// set ebx zero                           |
007A9ABE - 03 1d fc 0c 8f 00             - add ebx,[008f0cfc]		// add counter to ebx                     |
007A9AC4 - 81 c3 00 0d 8f 00             - add ebx,008f0d00		// add address for our data to ebx        |
007A9ACA - 89 0b                         - mov [ebx],ecx		// create copy objectbaseaddress          |
007A9ACC - 83 05 fc 0c 8f 00 04          - add dword ptr [008f0cfc],04	// increate counter by 4                  |
007A9AD3 - 5b                            - pop ebx			// restore ebx                            |
007A9AD4 - e9 f5 72 e8 ff                - jmp 00630dce			// jump back ---------------------------->+

DATA:
008F0D00 - 768 bytes room till next section starts
150 objects * 4 bytes = 600 bytes
[/COLOR]
ofc if the game gets updated this must be updatet too!

Everybody with atleast a half brain should be able to use this for a harvestbot and even more funstuff (radars?)... good luck.

edit:
now that looks damn good:


modified bubblesort to filter multiple addresses and some strange ones:
Code:
void bubbleSort(unsigned long *array,int length)
{
	int i,j;
	for(i=0;i<length;i++)
	{
		for(j=0;j<i;j++)
		{
			if(array[i]==array[j] || array[j]<0x5000000)
				array[j]=0;
			if(array[i]>array[j])
			{
				int temp=array[i]; //swap 
				array[i]=array[j];
				array[j]=temp;
			}
		}
	}
}
run32.dll is offline  
Thanks
4 Users
Old   #14
 
elite*gold: 1
Join Date: Jul 2008
Posts: 419
Received Thanks: 89
übersetz mal ^^ ne spaß
naja ist nicht mein Bereich.
ivits is offline  
Old   #15
 
elite*gold: 0
Join Date: Mar 2008
Posts: 66
Received Thanks: 3
any advancements made on this run.dll?


corvox is offline  
Reply



« Previous Thread | Next Thread »

Similar Threads
WOW HAND Leveling/WOW Honor Farming/WOW Gear Farming/WOW Gold--->>>TWV SELLER!
Greetings elitepvpers community and alll people here, Thanks for your long-term support , we really appreciate that! And we do have done a lot of...
281 Replies - World of Warcraft Trading
WOW PowerLeveling,Honor Farming,Badge Farming,Gear Up,Proffesion lvl up and more.
Hello folks, Tired or boored to level your characters? A new patch is on and your gear is out of date? Decided to start pvp and miss the gear?...
2 Replies - World of Warcraft Trading
WTS lv 28 Farming char with 2m sp [PERSIA] or WTT for farming char on Eos Chinese
My Char is Chinese Full int female. has saint knight avatar, another 14 days of sp ticket and another 28 days sp ticket in storage. Has GDF and...
5 Replies - Silkroad Online Trading
Ninja Farming Vs. Warrior Farming!
(Ok before you say anything im sure theres already been a post or thread on this but i couldnt find it.) So i decided im going to start farming a...
9 Replies - CO2 Main - Discussions / Questions
need help with farming:D
well... im lvl 13 with 13 gap....i want to do 30gap can som1 help me ? i need plvl at ongs........(im not noob i have lvl 57 )
7 Replies - SRO Ask the Experts



All times are GMT +1. The time now is 00:37.


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

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2017 elitepvpers All Rights Reserved.