Bueno aqui dejo mi macro de separar ores que me va muy bien
Espero que la disfruteis.

Código:
; Macro by Alex (Ultima Alianza)
; Para Separar ores y fundirlos.
; Necesitamos un cofre donde tengamos los ores a separar y poder dejar los lingotes,
; junto a una forja, vigilad que tengamos linea de visión con ambos.
; Primero tenemos que poner cuantos ores debe separar y fundir
; es recomendable poner de 50 a 100 para que no tengamos sobrepeso
; Al empezar deberemos configurar el Cofre y un punto de nuestra mochila.
; Los pasos se explican en el UO al darle a empezar, fijaros en la barra superior del UO.
; Una vez configurado la macro empezará sola a separar, fundir y guardar.
; Macro para funcionar en Ultima Alianza
; IMPORTANTE: Haced paquetes de 200 en 200 de los minerales, no superiores (dentro del baúl).
; Poner aquí el número de ores que irá separando y fundiendo cada vez. (10, 20, 30,...)
;--------------------------
set %sep 100
:--------------------------
initevents
set %confp 1
chooseskill mini
set %skillini #skill

configurar:
if %confp = 1
{
	Event sysmessage Abre el cofre en el que tienes los ores a separar y manten el cursor en el.
	event sysmessage Y presiona la tecla ESC
	setuotitle  Abre el contenedor que contiene los ores y luego manten el cursor en el y presiona ESC
	set %conf 1
	set %confp 2
	goto TESC
}
if %confp = 2
{
	setuotitle  Pon el cursor donde quieras llevar el objeto a separar de tu mochila y presiona ESC
	event sysmessage Pon el cursor donde desees dejar el objeto a separar
	event sysmessage Y presiona la tecla ESC
	set %conf 2
	goto TESC
}

TESC:
onHotKey ESC
{
	if %conf = 1
	{
		set %cofre #LOBJECTID
		set %cofrex #CURSORX
		set %cofrey #CURSORY
		goto configurar
	}
	if %conf = 2
	{
		set %dejarx #CURSORX
		set %dejary #CURSORY
		set %tot 0
		set %vez 0
		set %fin 0
		goto separar
	}
}
goto TESC


separar:
set %skillinc #SKILL - %skillini
for %vecesS 1 %sep
{
	finditem TVJ c_ , %cofre
	if #FINDSTACK = 0
	{
		findItem GWJ C_ , %cofre
		if #FINDSTACK = 0
		{
			findItem EWJ C_ , %cofre
			if #FINDSTACK = 0
			{
				findItem DWJ C_ , %cofre
				if #FINDSTACK = 0
				{
					set %fin 1
				}
			}

		}
	}
	event drag #FINDID
	wait 10
	msg 1 $
	click %dejarx %dejary p
	wait 10
	setuotitle  Accion: Separando | Cantidad: ( %vecesS / %sep ) | Veces: %vez | Guardado: %tot | S. Inicial: %skillini | S. Actual: #SKILL | S. Inc: %skillinc
}

fundir:
findItem TVJ C_ , #BACKPACKID
if #FINDSTACK > 0
{
	set #LOBJECTID #FINDID
	event macro 17
	set %vecesF %vecesF + 1
	setuotitle  Accion: Fundiendo | Cantidad: ( %vecesF / %sep ) | Veces: %vez | Guardado: %tot | S. Inicial: %skillini | S. Actual: #SKILL | S. Inc: %skillinc
	wait 10
	goto fundir
}
if %fin = 1
{
	set %fin 2
}
set %vecesF 0

guardar:
setuotitle  Accion: Guardando | Veces: %vez | Guardado: %tot | Inicial: %skillini | Actual: #SKILL | Inc: %skillinc
findItem RMK C_ , #BACKPACKID
if #FINDSTACK = 0
{
	findItem NMK C_ , #BACKPACKID
	if #FINDSTACK = 0
	{
		findItem XMK C_ , #BACKPACKID
		if #FINDSTACK = 0
		{
			findItem TMK C_ , #BACKPACKID
		}

	}

}
event drag #findid
wait 10
KEY ENTER
wait 10
click %cofrex %cofrey p
set %tot %tot + #FINDSTACK
findItem RMK C_ , #BACKPACKID
if #FINDSTACK = 0
{
	findItem NMK C_ , #BACKPACKID
	if #FINDSTACK = 0
	{
		findItem XMK C_ , #BACKPACKID
		if #FINDSTACK = 0
		{
			findItem TMK C_ , #BACKPACKID
			if #FINDSTACK = 0
			{
				if %fin = 2
				{
					gosub finalizar
				}
			}
		}

	}

}
if #FINDSTACK > 0
{
	goto guardar
}
set %vez %vez + 1
goto separar

sub finalizar
{
	display OK Se ha finalizado la macro!$No se ha encontrado más mineral que fundir.
	halt
}