Page 1 of 2

UOS - Animal Taming

Posted: October 4th, 2016, 8:37 pm
by Haswell
Check the "Loop" option.
Configure the amount of skill you want at the beginning.

Important:
- UOS does not have a path find function so I've made a sort of "unstuck heuristic" in order to better reach the pet and avoid being stuck to an unreachable pet;
- Releasing a pet also depends on your animal lore skill, do not lock that skill at 0, I recommend locking it around 50 points;
- Keep in mind the server rules wont allow you to train animal taming while AFK, watch your macro.

Code: Select all

// Author: Di
// Description: find, chase and tame nearby pets accordingly to skill level
// v2.1: pet release and tamed detection improvements
// v2.0: improved pets list and created unstuck pathfind heuristic
// Configure skill limit      ▼
if skill! 'animal taming' >= 100
  setskill 'animal taming' 'locked'
  stop
endif
@createlist 'pets'
@clearlist 'pets'
if skill 'animal taming' < 60
  // Eagle
  pushlist 'pets' 0x5
  // Goat
  pushlist 'pets' 0xd1
  // Pig
  pushlist 'pets' 0xcb
  pushlist 'pets' 0x122
  // Hind
  pushlist 'pets' 0xed
  // Timber wolf
  pushlist 'pets' 0xe1
  // Llama
  pushlist 'pets' 0xdc
  // Horse
  pushlist 'pets' 0xcc
  pushlist 'pets' 0xe2
  pushlist 'pets' 0xe4
  pushlist 'pets' 0xc8
  pushlist 'pets' 0x3e9f
  pushlist 'pets' 0x3ea0
  pushlist 'pets' 0x3ea1
  pushlist 'pets' 0x3ea2
  // Cow
  pushlist 'pets' 0xe7
  pushlist 'pets' 0xd8
  // Bear
  pushlist 'pets' 0xa7
  pushlist 'pets' 0xd3
  // Cougar
  pushlist 'pets' 0x3f
elseif skill 'animal taming' < 75
  // Grizzly Bear
  pushlist 'pets' 0xd4
  // Grey Wolf
  pushlist 'pets' 0x1b
  pushlist 'pets' 0x19
  // Snow Leopard
  pushlist 'pets' 0x41
  pushlist 'pets' 0x40
  // Walrus
  pushlist 'pets' 0xdd
  // Polar Bear
  pushlist 'pets' 0xd5
  // Great Hart
  pushlist 'pets' 0xea
elseif skill 'animal taming' < 95.1
  // Gaman
  pushlist 'pets' 0xf8
  // Bull
  pushlist 'pets' 0xe8
  pushlist 'pets' 0xe9
  // Great Hart
  pushlist 'pets' 0xea
  // White Wolf
  pushlist 'pets' 0x25
  pushlist 'pets' 0x22
  // Snow Leopard
  pushlist 'pets' 0x41
  pushlist 'pets' 0x40
  // Ridgeback
  pushlist 'pets' 0xbb
else
  // Bull
  pushlist 'pets' 0xe8
  pushlist 'pets' 0xe9
  // Unicorn
  pushlist 'pets' 0x7a
  // Ki-rin
  pushlist 'pets' 0x84
endif
if not listexists 'errors'
  createlist 'errors'
  pushlist 'errors' 'too many owners'
  pushlist 'errors' 'only be tamed by'
  pushlist 'errors' 'no chance of taming'
  pushlist 'errors' 'looks tame already'
  //pushlist 'errors' 'clear path to the animal'
  pushlist 'errors' 'cannot be seen'
endif
@createlist 'unstuck'
if list 'unstuck' == 0
  pushlist 'unstuck' 'east'
  pushlist 'unstuck' 'west'
  pushlist 'unstuck' 'south'
  pushlist 'unstuck' 'north'
endif
// Search
if not @findobject 'pet'
  for 0 to 'pets'
    if @findtype 'pets[]' 'any' 'ground'
      @settimer 'stuck' 0
      @setalias 'pet' 'found'
      break
    endif
  endfor
else
  // Pathfind
  @settimer 'pathfind' 0
  while @findobject 'pet' and not @inrange 'pet' 2
    if dead
      break
    elseif @timer 'pathfind' >= 5000
      // Diverge
      if direction == 0
        @poplist 'unstuck' 'north'
      elseif direction == 2
        @poplist 'unstuck' 'east'
      elseif direction == 4
        @poplist 'unstuck' 'south'
      elseif direction == 6
        @poplist 'unstuck' 'west'
      endif
      // Unstuck
      if list 'unstuck' != 0
        for 5
          run 'unstuck[0]'
          pause 100
        endfor
        poplist 'unstuck' 'front'
      endif
      break
    elseif @x 'pet' > x 'self' and @y 'pet' > y 'self'
      run 'southeast'
    elseif @x 'pet' < x 'self' and @y 'pet' > y 'self'
      run 'southwest'
    elseif @x 'pet' > x 'self' and @y 'pet' < y 'self'
      run 'northeast'
    elseif @x 'pet' < x 'self' and @y 'pet' < y 'self'
      run 'northwest'
    elseif @x 'pet' > x 'self' and @y 'pet' == y 'self'
      run 'east'
    elseif @x 'pet' < x 'self' and @y 'pet' == y 'self'
      run 'west'
    elseif @x 'pet' == x 'self' and @y 'pet' > y 'self'
      run 'south'
    elseif @x 'pet' == x 'self' and @y 'pet' < y 'self'
      run 'north'
    endif
    pause 100
  endwhile
  if @inrange 'pet' 2
    // Tame
    clearjournal
    useskill 'animal taming'
    waitfortarget 1000
    target! 'pet'
    // Handle
    if @property '(tame)' 'pet'
      for 5
        if @gumpexists 0x909cc741 or not @findobject 'pet'
          break
        elseif dead or followers == 0
          break
        elseif @name 'pet' != 'trashpet'
          rename 'pet' 'trashpet'
        else
          msg 'trashpet release'
        endif
        pause 500
      endfor
      replygump 0x909cc741 2
      sysmsg 'Success: tamed and released!' 88
      ignoreobject 'pet'
      @unsetalias 'pet'
    else
      @settimer 'stuck' 0
      for 0 to 'errors'
        if @injournal 'errors[]' 'system'
          sysmsg 'Ignore: error message!' 25
          ignoreobject 'pet'
          @unsetalias 'pet'
          break
        endif
      endfor
    endif
  elseif @timer 'stuck' >= 20000
    sysmsg 'Ignore: stuck timeout!' 25
    ignoreobject 'pet'
    @unsetalias 'pet'
  endif
endif

Re: UOS - Animal Taming

Posted: December 14th, 2016, 9:20 pm
by Girion
Well done ! Thanks for that.

Re: UOS - Animal Taming

Posted: December 15th, 2016, 9:47 am
by Enoch
Thx haswell, I'll give it a try when I get off work

Re: UOS - Animal Taming

Posted: April 8th, 2017, 8:25 pm
by Kush Tailored
Like always... using your stuff. You may not be MB, but you're damn close buddy.

Re: UOS - Animal Taming

Posted: April 29th, 2017, 5:20 pm
by TheUnknown0617
hey mate, i know nothing about scrits but under the 75 skill point section i added ridgebacks and when i press play it doesnt do anything? i typed everything exactly like the other pets so im not sure what im doing wrong

Re: UOS - Animal Taming

Posted: April 29th, 2017, 6:55 pm
by Haswell
TheUnknown0617 wrote:hey mate, i know nothing about scrits but under the 75 skill point section i added ridgebacks and when i press play it doesnt do anything? i typed everything exactly like the other pets so im not sure what im doing wrong
hi, it is possible that you've inserted the wrong graphic or location
ridgeback's min taming skill is 83.1 so the best location for it would be between 75 and 95.1 (below the < 95.1 section)

ps: I've edited the macro and added it for you, take a look

Re: UOS - Animal Taming

Posted: April 29th, 2017, 7:07 pm
by TheUnknown0617
Haswell wrote:
TheUnknown0617 wrote:hey mate, i know nothing about scrits but under the 75 skill point section i added ridgebacks and when i press play it doesnt do anything? i typed everything exactly like the other pets so im not sure what im doing wrong
hi, it is possible that you've inserted the wrong graphic or location
ridgeback's min taming skill is 83.1 so the best location for it would be between 75 and 95.1 (below the < 95.1 section)

ps: I've edited the macro and added it for you, take a look
works perfect now, thanx mate

Re: UOS - Animal Taming

Posted: April 30th, 2017, 5:14 pm
by TheUnknown0617
Haswell wrote:
TheUnknown0617 wrote:hey mate, i know nothing about scrits but under the 75 skill point section i added ridgebacks and when i press play it doesnt do anything? i typed everything exactly like the other pets so im not sure what im doing wrong
hi, it is possible that you've inserted the wrong graphic or location
ridgeback's min taming skill is 83.1 so the best location for it would be between 75 and 95.1 (below the < 95.1 section)

ps: I've edited the macro and added it for you, take a look
i went to do kyrins last night and it keep taming the ones ive already tamed..?

Re: UOS - Animal Taming

Posted: October 5th, 2017, 6:24 pm
by LemonHead
This is a fantastic macro. Thanks, Haswell!

I added this bit of code in line 111, so you don't have to re-tame a beast to ignore it (saves you some time when there's dozens of them roaming around)

Code: Select all

if name 'pet' == 'trashpet'
	ignoreobject 'pet'
	@unsetalias 'pet'
	pause 500
	replay
endif
Of course it works best if you customize your "trashpet" alias.

Re: UOS - Animal Taming

Posted: October 6th, 2017, 1:29 am
by Grifo
Kush Tailored wrote:Like always... using your stuff. You may not be MB, but you're damn close buddy.
LOL!

PERDOAI, SENHOR, ELES NÃO SABEM O QUE DIZEM.

Re: UOS - Animal Taming

Posted: November 5th, 2017, 6:06 pm
by Silent Shadow
guys pls help me to add line to attack released pet
who could help me?

Re: UOS - Animal Taming

Posted: December 7th, 2017, 11:55 pm
by april0395
Haswell wrote:Check the "Loop" option.
Configure the amount of skill you want at the beginning.

Important:
- UOS does not have a path find function so I've made a sort of "unstuck heuristic" in order to better reach the pet and avoid being stuck to an unreachable pet;
- Releasing a pet also depends on your animal lore skill, do not lock that skill at 0, I recommend locking it around 50 points;
- Keep in mind the server rules wont allow you to train animal taming while AFK, watch your macro.

Code: Select all

// Author: Di
// Description: find, chase and tame nearby pets accordingly to skill level
// v2.1: pet release and tamed detection improvements
// v2.0: improved pets list and created unstuck pathfind heuristic
// Configure skill limit      ▼
if skill! 'animal taming' >= 100
  setskill 'animal taming' 'locked'
  stop
endif
@createlist 'pets'
@clearlist 'pets'
if skill 'animal taming' < 60
  // Eagle
  pushlist 'pets' 0x5
  // Goat
  pushlist 'pets' 0xd1
  // Pig
  pushlist 'pets' 0xcb
  pushlist 'pets' 0x122
  // Hind
  pushlist 'pets' 0xed
  // Timber wolf
  pushlist 'pets' 0xe1
  // Llama
  pushlist 'pets' 0xdc
  // Horse
  pushlist 'pets' 0xcc
  pushlist 'pets' 0xe2
  pushlist 'pets' 0xe4
  pushlist 'pets' 0xc8
  pushlist 'pets' 0x3e9f
  pushlist 'pets' 0x3ea0
  pushlist 'pets' 0x3ea1
  pushlist 'pets' 0x3ea2
  // Cow
  pushlist 'pets' 0xe7
  pushlist 'pets' 0xd8
  // Bear
  pushlist 'pets' 0xa7
  pushlist 'pets' 0xd3
  // Cougar
  pushlist 'pets' 0x3f
elseif skill 'animal taming' < 75
  // Grizzly Bear
  pushlist 'pets' 0xd4
  // Grey Wolf
  pushlist 'pets' 0x1b
  pushlist 'pets' 0x19
  // Snow Leopard
  pushlist 'pets' 0x41
  pushlist 'pets' 0x40
  // Walrus
  pushlist 'pets' 0xdd
  // Polar Bear
  pushlist 'pets' 0xd5
  // Great Hart
  pushlist 'pets' 0xea
elseif skill 'animal taming' < 95.1
  // Gaman
  pushlist 'pets' 0xf8
  // Bull
  pushlist 'pets' 0xe8
  pushlist 'pets' 0xe9
  // Great Hart
  pushlist 'pets' 0xea
  // White Wolf
  pushlist 'pets' 0x25
  pushlist 'pets' 0x22
  // Snow Leopard
  pushlist 'pets' 0x41
  pushlist 'pets' 0x40
  // Ridgeback
  pushlist 'pets' 0xbb
else
  // Bull
  pushlist 'pets' 0xe8
  pushlist 'pets' 0xe9
  // Unicorn
  pushlist 'pets' 0x7a
  // Ki-rin
  pushlist 'pets' 0x84
endif
if not listexists 'errors'
  createlist 'errors'
  pushlist 'errors' 'too many owners'
  pushlist 'errors' 'only be tamed by'
  pushlist 'errors' 'no chance of taming'
  pushlist 'errors' 'looks tame already'
  //pushlist 'errors' 'clear path to the animal'
  pushlist 'errors' 'cannot be seen'
endif
@createlist 'unstuck'
if list 'unstuck' == 0
  pushlist 'unstuck' 'east'
  pushlist 'unstuck' 'west'
  pushlist 'unstuck' 'south'
  pushlist 'unstuck' 'north'
endif
// Search
if not @findobject 'pet'
  for 0 to 'pets'
    if @findtype 'pets[]' 'any' 'ground'
      @settimer 'stuck' 0
      @setalias 'pet' 'found'
      break
    endif
  endfor
else
  // Pathfind
  @settimer 'pathfind' 0
  while @findobject 'pet' and not @inrange 'pet' 2
    if dead
      break
    elseif @timer 'pathfind' >= 5000
      // Diverge
      if direction == 0
        @poplist 'unstuck' 'north'
      elseif direction == 2
        @poplist 'unstuck' 'east'
      elseif direction == 4
        @poplist 'unstuck' 'south'
      elseif direction == 6
        @poplist 'unstuck' 'west'
      endif
      // Unstuck
      if list 'unstuck' != 0
        for 5
          run 'unstuck[0]'
          pause 100
        endfor
        poplist 'unstuck' 'front'
      endif
      break
    elseif @x 'pet' > x 'self' and @y 'pet' > y 'self'
      run 'southeast'
    elseif @x 'pet' < x 'self' and @y 'pet' > y 'self'
      run 'southwest'
    elseif @x 'pet' > x 'self' and @y 'pet' < y 'self'
      run 'northeast'
    elseif @x 'pet' < x 'self' and @y 'pet' < y 'self'
      run 'northwest'
    elseif @x 'pet' > x 'self' and @y 'pet' == y 'self'
      run 'east'
    elseif @x 'pet' < x 'self' and @y 'pet' == y 'self'
      run 'west'
    elseif @x 'pet' == x 'self' and @y 'pet' > y 'self'
      run 'south'
    elseif @x 'pet' == x 'self' and @y 'pet' < y 'self'
      run 'north'
    endif
    pause 100
  endwhile
  if @inrange 'pet' 2
    // Tame
    clearjournal
    useskill 'animal taming'
    waitfortarget 1000
    target! 'pet'
    // Handle
    if @property '(tame)' 'pet'
      for 5
        if @gumpexists 0x909cc741 or not @findobject 'pet'
          break
        elseif dead or followers == 0
          break
        elseif @name 'pet' != 'trashpet'
          rename 'pet' 'trashpet'
        else
          msg 'trashpet release'
        endif
        pause 500
      endfor
      replygump 0x909cc741 2
      sysmsg 'Success: tamed and released!' 88
      ignoreobject 'pet'
      @unsetalias 'pet'
    else
      @settimer 'stuck' 0
      for 0 to 'errors'
        if @injournal 'errors[]'
          sysmsg 'Ignore: error message!' 25
          ignoreobject 'pet'
          @unsetalias 'pet'
          break
        endif
      endfor
    endif
  elseif @timer 'stuck' >= 20000
    sysmsg 'Ignore: stuck timeout!' 25
    ignoreobject 'pet'
    @unsetalias 'pet'
  endif
endif
I've run into a problem with the UOSteam taming macro. I've got my animal lore locked at 0 so I'll gain better in taming, but I don't have enough lore to use the 'xx release' command. It will only work through single click and context menu.. anyone know a fix for this? I know how to use the context menu and release a pet based on a serial, but not from a pushlist of grapic types. :/

Re: UOS - Animal Taming

Posted: December 12th, 2017, 9:51 pm
by aemneuspeed
april0395 wrote: I've run into a problem with the UOSteam taming macro. I've got my animal lore locked at 0 so I'll gain better in taming, but I don't have enough lore to use the 'xx release' command. It will only work through single click and context menu.. anyone know a fix for this? I know how to use the context menu and release a pet based on a serial, but not from a pushlist of grapic types. :/

You could replace the line where it says

Code: Select all

 msg 'trashpet release' 
to this:

Code: Select all

  waitforcontext 'trashpet' 8 2000
		 waitforgump 0x909cc741 1000
		 
You might have to tame an animal and then record the part where you manually choose the context menu / release option to make sure you have the correct number in the list but that should fix the issue for it. (i can test when I get home)

Re: UOS - Animal Taming

Posted: December 12th, 2017, 9:58 pm
by april0395
I had tried something similar and couldn't get it to work. I ended up just manually releasing until I got to 105 taming. lol

Re: UOS - Animal Taming

Posted: December 13th, 2017, 3:31 pm
by aemneuspeed
april0395 wrote:I had tried something similar and couldn't get it to work. I ended up just manually releasing until I got to 105 taming. lol
haha that works :D