Register for your free account! | Forgot your password?

You last visited: Today at 04:32

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

Advertisement



[Request] Metallurgy bot

Discussion on [Request] Metallurgy bot within the Mabinogi Hacks, Bots, Cheats & Exploits forum part of the Mabinogi category.

Reply
 
Old   #1
 
xibuun's Avatar
 
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
xibuun is offline  
Old 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.
Somebody Fake is offline  
Thanks
1 User
Old 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
Balthamel is offline  
Thanks
2 Users
Old 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?
adam_j is offline  
Thanks
1 User
Old 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.
Balthamel is offline  
Old 05/23/2012, 14:10   #6
 
elite*gold: 0
Join Date: Sep 2009
Posts: 1,528
Received Thanks: 613
Quote:
Originally Posted by Balthamel View Post
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.
adam_j is offline  
Thanks
1 User
Old 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?
Balthamel is offline  
Old 05/23/2012, 21:21   #8
 
elite*gold: 0
Join Date: Sep 2009
Posts: 1,528
Received Thanks: 613
Quote:
Originally Posted by Balthamel View Post
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.
adam_j is offline  
Thanks
1 User
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.