|
You last visited: Today at 04:32
Advertisement
[Request] Metallurgy bot
Discussion on [Request] Metallurgy bot within the Mabinogi Hacks, Bots, Cheats & Exploits forum part of the Mabinogi category.
05/21/2012, 00:40
|
#1
|
elite*gold: 0
Join Date: May 2012
Posts: 1
Received Thanks: 0
|
[Request] Metallurgy bot
If anyone can send me a file with a metallurgy bot that would be very appreciated
|
|
|
05/21/2012, 03:52
|
#2
|
elite*gold: 0
Join Date: Nov 2011
Posts: 34
Received Thanks: 6
|
Go and look for Autobot.
You won't find many decent people here.
|
|
|
05/22/2012, 03:01
|
#3
|
elite*gold: 0
Join Date: Sep 2010
Posts: 33
Received Thanks: 3
|
Here's the source code for my homegrown bot, if you want it xD
Is very ugly since was only meant for me.
Code:
Dim $x,$y
Dim $c=08, $d, $e, $f, $g, $r, $i
Dim $loc[8]
Dim $s, $t, $scale[4]
$i=0
Do
$loc[$i]=0
$i+=1
Until $i=8
$Winpos=WinGetPos("Mabinogi")
OnAutoItExitRegister("OnExit")
Sleep(3000)
WinActivate("Mabinogi")
Sleep(1000)
Send("{F11}")
;Will run while the sieve is not broken and the map is working.
While Containerfunc()=1
Sleep(13000)
;Rotate the screen a few times.
$e=0
While $e<4
$e+=1
;Will run as long as silver is somewhere on the screen and the sieve is not broken.
While Active()=1
$e=0
Sleep(300)
Send("{ALTUP}")
Sleep(200)
$r=Random(0,20,1)
MouseMove($x,$y+20+$r,0)
Sleep(150)
MouseClick("Left")
Sleep(200)
Send("{ALTUP}")
Sleep(7000)
CollectOres()
Send("{ALTUP}")
Sleep(100)
Send("{F11}")
Sleep(5000)
WEnd
MouseMove((($Winpos[0]+$Winpos[2])/2)-100,($Winpos[1]+$Winpos[3])/2,2)
Sleep(200)
MouseDown("Right")
Sleep(200)
MouseMove((($Winpos[0]+$Winpos[2])/2)+100,($Winpos[1]+$Winpos[3])/2,2)
Sleep(200)
MouseUp("Right")
Sleep(200)
Wend
WEnd
Exit 1
;Moves to new site/Checks sieve
Func Containerfunc()
If SuperiorActive()=0 Then
Sleep(100)
If SuperiorActive()=0 Then Exit 3
EndIf
Return 1
EndFunc
Func SuperiorActive()
If Imagesearch2(".\BrokenSieve.png",1,$x,$y,50)=1 Then Rechecksieve()
If $c<15 Then $c+=1
If $c=15 Then $c=1
MouseMove(1777,187,0)
Sleep(500)
$i=0
Do
$loc[$i]=0
$i+=1
Until $i=8
$i=0
Do
$i+=1
If Imagesearch2(".\Map"&$i&".png",1,$x,$y,50)=1 Then $loc[$i-1]=1
Until $i=8
If $c<9 Then
If $loc[$c-1]=1 Then
ImageSearch2(".\Map"&$c&".png",1,$x,$y,50)
MouseMove($x,$y)
Sleep(150)
MouseClick("Left")
Sleep(200)
Return 1
EndIf
Else
$d=16-$c
If $loc[$d-1]=1 Then
ImageSearch2(".\Map"&$d&".png",1,$x,$y,50)
MouseMove($x,$y)
Sleep(150)
MouseClick("Left")
Sleep(200)
Return 1
EndIf
EndIf
$i=0
Do
If $loc[$i]=1 Then
ImageSearch2(".\Map"&$i+1&".png",1,$x,$y,50)
MouseMove($x,$y)
Sleep(150)
MouseClick("Left")
Sleep(200)
$c=$i
Return 1
EndIf
$i+=1
Until $i=8
Return 0
EndFunc
;Func to combine sieve + Imagesearch Checks
Func Active()
MouseMove(1601,267,0)
Send("{AltDown}")
Sleep(300)
If Imagesearch2(".\BrokenSieve.png",1,$x,$y,50)=1 Then
Send("{ALTUP}")
Rechecksieve()
Send("{ALTDOWN}")
EndIf
$i=0
Do
If ImageSearchScales(".\Gold.png",1,$x,$y,$i*25,$i*50,60)=1 Then Return 1
If ImageSearchScales(".\Silver.png",1,$x,$y,$i*25,$i*50,60)=1 Then Return 1
$i+=1
Until $i=30
If ImageSearch2(".\Gold.png",1,$x,$y,60)=1 Then Return 1
If ImageSearch2(".\Silver.png",1,$x,$y,60)=1 Then Return 1
Return 0
EndFunc
Func Rechecksieve()
Sleep(100)
Send("{TAB}")
Sleep(1500)
If Imagesearch2(".\BrokenSieve.png",1,$x,$y,10)=0 Then
Send("{F11}")
Return
EndIf
Sleep(100)
Send("{TAB}")
Sleep(1500)
If Imagesearch2(".\BrokenSieve.png",1,$x,$y,10)=0 Then
Send("{F11}")
Return
EndIf
Sleep(100)
Send("{TAB}")
Sleep(1500)
If Imagesearch2(".\BrokenSieve.png",1,$x,$y,10)=0 Then
Send("{F11}")
Return
EndIf
Exit 1
EndFunc
Func CollectOres()
Sleep(100)
Send("{AltDown}")
$f=0
Do
$f+=1
Sleep(200)
$g=ImageSearch1(".\orefrag.png",1,$x,$y,100)
If $f=47 Then Return
Until $g=1
$f=0
While $f<5
$f+=1
MouseMove((($Winpos[0]+$Winpos[2])/2),(($Winpos[1]+$Winpos[3])/2)-150,2)
Sleep(200)
While ImageSearch1(".\orefrag.png",1,$x,$y,100)=1
Sleep(200)
MouseMove($x,$y)
Sleep(200)
If ImageSearch1(".\orefrag1.bmp",1,$x,$y,30)=1 Then
Sleep(200)
MouseClick("left")
Sleep(1500)
EndIf
MouseMove((($Winpos[0]+$Winpos[2])/2),(($Winpos[1]+$Winpos[3])/2)-150,2)
Sleep(100)
WEnd
WEnd
Send("{AltUp}")
EndFunc
Func ImageSearch2($findImage,$resultPosition,ByRef $x, ByRef $y, $tolerance)
;MsgBox(0,"asd","" & $x1 & " " & $y1 & " " & $right & " " & $bottom)
if $tolerance>0 then $findImage = "*" & $tolerance & " " & $findImage
$result = DllCall(".\ImageSearchDLL.dll","str","ImageSearch","int",$Winpos[0],"int",$Winpos[1]+60,"int",$Winpos[2],"int",$Winpos[3]-200,"str",$findImage)
; If error exit
if $result[0]="0" then Return 0
; Otherwise get the x,y location of the match and the size of the image to
; compute the centre of search
$array = StringSplit($result[0],"|")
$x=Int(Number($array[2]))
$y=Int(Number($array[3]))
if $resultPosition=1 then
$x=$x + Int(Number($array[4])/2)
$y=$y + Int(Number($array[5])/2)
endif
return 1
EndFunc
Func ImageSearch1($findImage,$resultPosition,ByRef $x, ByRef $y, $tolerance)
;MsgBox(0,"asd","" & $x1 & " " & $y1 & " " & $right & " " & $bottom)
if $tolerance>0 then $findImage = "*" & $tolerance & " " & $findImage
$result = DllCall(".\ImageSearchDLL.dll","str","ImageSearch","int",(($Winpos[0]+$Winpos[2])/2)-150,"int",(($Winpos[1]+$Winpos[3])/2)-150,"int",(($Winpos[0]+$Winpos[2])/2)+250,"int",(($Winpos[1]+$Winpos[3])/2)+150,"str",$findImage)
; If error exit
if $result[0]="0" then return 0
; Otherwise get the x,y location of the match and the size of the image to
; compute the centre of search
$array = StringSplit($result[0],"|")
$x=Int(Number($array[2]))
$y=Int(Number($array[3]))
if $resultPosition=1 then
$x=$x + Int(Number($array[4])/2)
$y=$y + Int(Number($array[5])/2)
endif
return 1
EndFunc
Func ImageSearchScales($findImage,$resultPosition,ByRef $x, ByRef $y, $s ,$t , $tolerance)
;MsgBox(0,"asd","" & $x1 & " " & $y1 & " " & $right & " " & $bottom)
if $tolerance>0 then $findImage = "*" & $tolerance & " " & $findImage
$scale[0]=(($Winpos[0]+$Winpos[2])/2)-$s
If $scale[0]<$Winpos[0] Then $scale[0]=$Winpos[0]
$scale[1]=(($Winpos[1]+$Winpos[3])/2)-$t
If $scale[1]<$Winpos[1] Then $scale[1]=$Winpos[1]
$scale[2]=(($Winpos[0]+$Winpos[2])/2)+$s+50
If $scale[2]<$Winpos[2] Then $scale[2]=$Winpos[2]
$scale[3]=(($Winpos[1]+$Winpos[3])/2)+$t
If $scale[3]<$Winpos[3] Then $scale[3]=$Winpos[3]
$result = DllCall(".\ImageSearchDLL.dll","str","ImageSearch","int",$scale[0],"int",$scale[1],"int",$scale[2],"int",$scale[3],"str",$findImage)
; If error exit
if $result[0]="0" then Return 0
; Otherwise get the x,y location of the match and the size of the image to
; compute the centre of search
$array = StringSplit($result[0],"|")
$x=Int(Number($array[2]))
$y=Int(Number($array[3]))
if $resultPosition=1 then
$x=$x + Int(Number($array[4])/2)
$y=$y + Int(Number($array[5])/2)
endif
return 1
EndFunc
Func OnExit()
Send("{ALTUP}")
EndFunc
#cs
While $c<17
If $c<9 Then
ImageSearch2(".\Map"&$c&".png",1,$x,$y,50)
Else
$d=16-$c
ImageSearch2(".\Map"&$d&".png",1,$x,$y,50)
EndIf
MouseMove($x,$y)
Sleep(100)
$c+=1
WEnd
Exit
#ce
|
|
|
05/22/2012, 03:16
|
#4
|
elite*gold: 0
Join Date: Sep 2009
Posts: 1,528
Received Thanks: 613
|
Code:
Dim $x,$y
Dim $c=08, $d, $e, $f, $g, $r, $i
Dim $loc[8]
Dim $s, $t, $scale[4]
$i=0
Do
$loc[$i]=0
$i+=1
Until $i=8
$Winpos=WinGetPos("Mabinogi")
OnAutoItExitRegister("OnExit")
Sleep(3000)
WinActivate("Mabinogi")
Sleep(1000)
Send("{F11}")
;Will run while the sieve is not broken and the map is working.
While Containerfunc()=1
Sleep(13000)
;Rotate the screen a few times.
$e=0
While $e<4
$e+=1
;Will run as long as silver is somewhere on the screen and the sieve is not broken.
While Active()=1
$e=0
Sleep(300)
Send("{ALTUP}")
Sleep(200)
$r=Random(0,20,1)
MouseMove($x,$y+20+$r,0)
Sleep(150)
MouseClick("Left")
Sleep(200)
Send("{ALTUP}")
Sleep(7000)
CollectOres()
Send("{ALTUP}")
Sleep(100)
Send("{F11}")
Sleep(5000)
WEnd
MouseMove((($Winpos[0]+$Winpos[2])/2)-100,($Winpos[1]+$Winpos[3])/2,2)
Sleep(200)
MouseDown("Right")
Sleep(200)
MouseMove((($Winpos[0]+$Winpos[2])/2)+100,($Winpos[1]+$Winpos[3])/2,2)
Sleep(200)
MouseUp("Right")
Sleep(200)
Wend
WEnd
Exit 1
;Moves to new site/Checks sieve
Func Containerfunc()
If SuperiorActive()=0 Then
Sleep(100)
If SuperiorActive()=0 Then Exit 3
EndIf
Return 1
EndFunc
Func SuperiorActive()
If Imagesearch2(".\BrokenSieve.png",1,$x,$y,50)=1 Then Rechecksieve()
If $c<15 Then $c+=1
If $c=15 Then $c=1
MouseMove(1777,187,0)
Sleep(500)
$i=0
Do
$loc[$i]=0
$i+=1
Until $i=8
$i=0
Do
$i+=1
If Imagesearch2(".\Map"&$i&".png",1,$x,$y,50)=1 Then $loc[$i-1]=1
Until $i=8
If $c<9 Then
If $loc[$c-1]=1 Then
ImageSearch2(".\Map"&$c&".png",1,$x,$y,50)
MouseMove($x,$y)
Sleep(150)
MouseClick("Left")
Sleep(200)
Return 1
EndIf
Else
$d=16-$c
If $loc[$d-1]=1 Then
ImageSearch2(".\Map"&$d&".png",1,$x,$y,50)
MouseMove($x,$y)
Sleep(150)
MouseClick("Left")
Sleep(200)
Return 1
EndIf
EndIf
$i=0
Do
If $loc[$i]=1 Then
ImageSearch2(".\Map"&$i+1&".png",1,$x,$y,50)
MouseMove($x,$y)
Sleep(150)
MouseClick("Left")
Sleep(200)
$c=$i
Return 1
EndIf
$i+=1
Until $i=8
Return 0
EndFunc
;Func to combine sieve + Imagesearch Checks
Func Active()
MouseMove(1601,267,0)
Send("{AltDown}")
Sleep(300)
If Imagesearch2(".\BrokenSieve.png",1,$x,$y,50)=1 Then
Send("{ALTUP}")
Rechecksieve()
Send("{ALTDOWN}")
EndIf
$i=0
Do
If ImageSearchScales(".\Gold.png",1,$x,$y,$i*25,$i*50,60)=1 Then Return 1
If ImageSearchScales(".\Silver.png",1,$x,$y,$i*25,$i*50,60)=1 Then Return 1
$i+=1
Until $i=30
If ImageSearch2(".\Gold.png",1,$x,$y,60)=1 Then Return 1
If ImageSearch2(".\Silver.png",1,$x,$y,60)=1 Then Return 1
Return 0
EndFunc
Func Rechecksieve()
Sleep(100)
Send("{TAB}")
Sleep(1500)
If Imagesearch2(".\BrokenSieve.png",1,$x,$y,10)=0 Then
Send("{F11}")
Return
EndIf
Sleep(100)
Send("{TAB}")
Sleep(1500)
If Imagesearch2(".\BrokenSieve.png",1,$x,$y,10)=0 Then
Send("{F11}")
Return
EndIf
Sleep(100)
Send("{TAB}")
Sleep(1500)
If Imagesearch2(".\BrokenSieve.png",1,$x,$y,10)=0 Then
Send("{F11}")
Return
EndIf
Exit 1
EndFunc
Func CollectOres()
Sleep(100)
Send("{AltDown}")
$f=0
Do
$f+=1
Sleep(200)
$g=ImageSearch1(".\orefrag.png",1,$x,$y,100)
If $f=47 Then Return
Until $g=1
$f=0
While $f<5
$f+=1
MouseMove((($Winpos[0]+$Winpos[2])/2),(($Winpos[1]+$Winpos[3])/2)-150,2)
Sleep(200)
While ImageSearch1(".\orefrag.png",1,$x,$y,100)=1
Sleep(200)
MouseMove($x,$y)
Sleep(200)
If ImageSearch1(".\orefrag1.bmp",1,$x,$y,30)=1 Then
Sleep(200)
MouseClick("left")
Sleep(1500)
EndIf
MouseMove((($Winpos[0]+$Winpos[2])/2),(($Winpos[1]+$Winpos[3])/2)-150,2)
Sleep(100)
WEnd
WEnd
Send("{AltUp}")
EndFunc
Func ImageSearch2($findImage,$resultPosition,ByRef $x, ByRef $y, $tolerance)
;MsgBox(0,"asd","" & $x1 & " " & $y1 & " " & $right & " " & $bottom)
if $tolerance>0 then $findImage = "*" & $tolerance & " " & $findImage
$result = DllCall(".\ImageSearchDLL.dll","str","ImageSearch","int",$Winpos[0],"int",$Winpos[1]+60,"int",$Winpos[2],"int",$Winpos[3]-200,"str",$findImage)
; If error exit
if $result[0]="0" then Return 0
; Otherwise get the x,y location of the match and the size of the image to
; compute the centre of search
$array = StringSplit($result[0],"|")
$x=Int(Number($array[2]))
$y=Int(Number($array[3]))
if $resultPosition=1 then
$x=$x + Int(Number($array[4])/2)
$y=$y + Int(Number($array[5])/2)
endif
return 1
EndFunc
Func ImageSearch1($findImage,$resultPosition,ByRef $x, ByRef $y, $tolerance)
;MsgBox(0,"asd","" & $x1 & " " & $y1 & " " & $right & " " & $bottom)
if $tolerance>0 then $findImage = "*" & $tolerance & " " & $findImage
$result = DllCall(".\ImageSearchDLL.dll","str","ImageSearch","int",(($Winpos[0]+$Winpos[2])/2)-150,"int",(($Winpos[1]+$Winpos[3])/2)-150,"int",(($Winpos[0]+$Winpos[2])/2)+250,"int",(($Winpos[1]+$Winpos[3])/2)+150,"str",$findImage)
; If error exit
if $result[0]="0" then return 0
; Otherwise get the x,y location of the match and the size of the image to
; compute the centre of search
$array = StringSplit($result[0],"|")
$x=Int(Number($array[2]))
$y=Int(Number($array[3]))
if $resultPosition=1 then
$x=$x + Int(Number($array[4])/2)
$y=$y + Int(Number($array[5])/2)
endif
return 1
EndFunc
Func ImageSearchScales($findImage,$resultPosition,ByRef $x, ByRef $y, $s ,$t , $tolerance)
;MsgBox(0,"asd","" & $x1 & " " & $y1 & " " & $right & " " & $bottom)
if $tolerance>0 then $findImage = "*" & $tolerance & " " & $findImage
$scale[0]=(($Winpos[0]+$Winpos[2])/2)-$s
If $scale[0]<$Winpos[0] Then $scale[0]=$Winpos[0]
$scale[1]=(($Winpos[1]+$Winpos[3])/2)-$t
If $scale[1]<$Winpos[1] Then $scale[1]=$Winpos[1]
$scale[2]=(($Winpos[0]+$Winpos[2])/2)+$s+50
If $scale[2]<$Winpos[2] Then $scale[2]=$Winpos[2]
$scale[3]=(($Winpos[1]+$Winpos[3])/2)+$t
If $scale[3]<$Winpos[3] Then $scale[3]=$Winpos[3]
$result = DllCall(".\ImageSearchDLL.dll","str","ImageSearch","int",$scale[0],"int",$scale[1],"int",$scale[2],"int",$scale[3],"str",$findImage)
; If error exit
if $result[0]="0" then Return 0
; Otherwise get the x,y location of the match and the size of the image to
; compute the centre of search
$array = StringSplit($result[0],"|")
$x=Int(Number($array[2]))
$y=Int(Number($array[3]))
if $resultPosition=1 then
$x=$x + Int(Number($array[4])/2)
$y=$y + Int(Number($array[5])/2)
endif
return 1
EndFunc
Func OnExit()
Send("{ALTUP}")
EndFunc
#cs
While $c<17
If $c<9 Then
ImageSearch2(".\Map"&$c&".png",1,$x,$y,50)
Else
$d=16-$c
ImageSearch2(".\Map"&$d&".png",1,$x,$y,50)
EndIf
MouseMove($x,$y)
Sleep(100)
$c+=1
WEnd
Exit
#ce
Quoted in code tags for readability.
The actual script looks pretty good, perhaps someone could comment on how effective it is?
Balthamel, perhaps you could comment on your interface settings, what pictures to take (or show them examples of yours), etc?
|
|
|
05/22/2012, 04:18
|
#5
|
elite*gold: 0
Join Date: Sep 2010
Posts: 33
Received Thanks: 3
|
Thanks for the code tags, okay pretty much, since it's your own pictures it will run with any mod set, but it does use the 1-8 map edit from tiara and the names over metallurgy site, you can always edit your own in the data folder.
You need;
Autoit
ImagesearchDLL.dll
Screenshot|Named
"alt" text of "*ore fragment"|orefrag.png
hover over text of "*ore fragment"|orefrag1.png
"alt" text of "silver" and "gold"|Silver.png,Gold.png
a shot of a broken sieve equipped|BrokenSieve.png
the 8 map points on the tiara map edit|Map1.png to Map8.png
It still needs some work, if the metallurgy sites are regularly spaced it can wander a long way before returning to search for a Map marker which results in undesired behavior eg. sticking on the sea, a fix for that has been implemented however it is still beta and often results in the bot looping locations 6-8 due to imagesearch fails.
The code is quite foul because I learnt about commenting up for legibility after it was half written :-)
I'm cleaning it up as I go.
|
|
|
05/23/2012, 14:10
|
#6
|
elite*gold: 0
Join Date: Sep 2009
Posts: 1,528
Received Thanks: 613
|
Quote:
Originally Posted by Balthamel
Thanks for the code tags, okay pretty much, since it's your own pictures it will run with any mod set, but it does use the 1-8 map edit from tiara and the names over metallurgy site, you can always edit your own in the data folder.
You need;
Autoit
ImagesearchDLL.dll
Screenshot|Named
"alt" text of "*ore fragment"|orefrag.png
hover over text of "*ore fragment"|orefrag1.png
"alt" text of "silver" and "gold"|Silver.png,Gold.png
a shot of a broken sieve equipped|BrokenSieve.png
the 8 map points on the tiara map edit|Map1.png to Map8.png
It still needs some work, if the metallurgy sites are regularly spaced it can wander a long way before returning to search for a Map marker which results in undesired behavior eg. sticking on the sea, a fix for that has been implemented however it is still beta and often results in the bot looping locations 6-8 due to imagesearch fails.
The code is quite foul because I learnt about commenting up for legibility after it was half written :-)
I'm cleaning it up as I go.
|
Also requires the skill on F11.
Since I'm writing a script for another task, I took a closer look, and came up with some improvements you could add
You could make a pake module to read location packets, and write them to a text file for the script to read, or pick out the location data directly from memory, I once toyed with reading HP values from memory with a script (Unfortunately I don't have the script on this computer, or I'd paste it for you to use as an example), so it should be possible to read.
You could also use the script to input text commands to a module, so that you could use client sided items on the floor to get from location to location, instead of trying to read the map.
For instance "Spawn1 21000,21000" would spawn item 1, at those co-ordinates, which the script would then search for, and click on.
If you want to add those functions, pretty much anyone here can make that module for you.
|
|
|
05/23/2012, 16:13
|
#7
|
elite*gold: 0
Join Date: Sep 2010
Posts: 33
Received Thanks: 3
|
Well from what I see here spoonfeeding too much is frowned upon :P
That module would really improve almost all my bots, from this to a pet gathering mod that feeds mp pots to a pet and constantly gathers herbs/wool etc and also gave stamina to me...I really have no knowledge of constructing pake functions. I started looking into it but I haven't got time to spare to learn a new skill right now.
I do know autoit can access specified memory modules by handle(if i remember right)
The items on the map are reliable for me, the only problem is that the program has no way to tell where the character is, for an example, Once i set this script running at location one, and there was an unbroken line of metal deposits all the way to location 8, then when it had gathered everything at 8 it tried to move to location 2...and got confused and ran at the sea for a while xD now it works better but I do need to just add a feature to check whether it's going in the 1->8 direction or 8->1 hence the looping 6-8 problem.
I assume a module could be written to find where the character is?
|
|
|
05/23/2012, 21:21
|
#8
|
elite*gold: 0
Join Date: Sep 2009
Posts: 1,528
Received Thanks: 613
|
Quote:
Originally Posted by Balthamel
Well from what I see here spoonfeeding too much is frowned upon :P
That module would really improve almost all my bots, from this to a pet gathering mod that feeds mp pots to a pet and constantly gathers herbs/wool etc and also gave stamina to me...I really have no knowledge of constructing pake functions. I started looking into it but I haven't got time to spare to learn a new skill right now.
I do know autoit can access specified memory modules by handle(if i remember right)
The items on the map are reliable for me, the only problem is that the program has no way to tell where the character is, for an example, Once i set this script running at location one, and there was an unbroken line of metal deposits all the way to location 8, then when it had gathered everything at 8 it tried to move to location 2...and got confused and ran at the sea for a while xD now it works better but I do need to just add a feature to check whether it's going in the 1->8 direction or 8->1 hence the looping 6-8 problem.
I assume a module could be written to find where the character is?
|
Yep, you could indeed have a function that checks it's location, that was actually what I was suggesting, but you would need to set a radius for each number, as the location is stated as co-ordinates.
|
|
|
Similar Threads
|
request metallurgy bot
04/20/2012 - Mabinogi Hacks, Bots, Cheats & Exploits - 6 Replies
there is a metallurgy bot ?
ty
|
Request: Metallurgy Labels in Nekojima
04/04/2010 - Mabinogi - 4 Replies
If anyone can provide a tutorial on how to make this edit, it would be greatly appreciated. The spot do get kind of annoying to see when it's daylight.
|
[Question] Metallurgy
12/19/2009 - Mabinogi - 21 Replies
Is there any current bots that allow them to do metallurgy while you afk? I've been having some trouble managing my time wisely, and I believe that if I had this bot, I'd be able to do another task more efficiently with the time saved >.< Thanks for any replies.
|
[Idea]Metallurgy Bot
11/26/2009 - Mabinogi - 10 Replies
well can Dark Raccoon make a Metallurgy Bot ?
That only picks up Certain Ores and Gems coz i get tired trying to find gems for my spirit
|
All times are GMT +2. The time now is 04:32.
|
|