› General › Macro Help › animal taming macro › Reply To: animal taming macro
January 27, 2019 at 7:09 pm
#2862
sharnthor
Member
- Topics - 21
- Replies - 90
- Total - 111
- Expert
- ★★★★★
So, mappy gave me this script – mappi, so sorry if you you didnt’ want this on here, but it’s an awesome script 🙂
;---------------------------------------------------------------------;
;--program------------------------------------------------------------;
;---------------------------------------------------------------------;
gosub thesetup
start:
gosub findanimal %animaltype
gosub tameanimal
gosub killanimal
gosub ressanimal #result
if %timerz < #scnt
{
gosub rescount
set %timerz ( #scnt + %zdelay )
}
goto start
;----------------------------------------------------------------;
sub thesetup
set %spectre HIM
set %zdelay 200 ;change this to change how many secs delay it spams the resource count
set %lootcorpses 0 ;set to 1 for animals with loot
set %killangry 1 ;set to 1 to save time by killing angered animals
finditem RWF C_ , #backpackid ;checks for arrows in your backpack
if #findcnt > 0
{
for #findindex 1 #findcnt
{
set %arrowsn ( %arrowsn + #findstack )
}
set %arrows #findid
event sysmessage Arrows: %arrowsn
}
else
{
set %display no_arrows
gosub stop %display
}
wait 10
finditem LNK C_ , #backpackid ;checks for bolts in your backpack
if #findcnt > 0
{
set %bolts #findid
event sysmessage Bolts: #findstack
}
else
{
set %display no_bolts
gosub stop %display
}
wait 10
finditem ZLF C_ , #backpackid ;checks for bandages in your backpack
if #findcnt > 0
{
set %bandages #findid
event sysmessage Bandages: #findstack
}
else
{
set %display no_bandages
gosub stop %display
}
wait 10
finditem WOH_JSF C_ , #charid ;checks for bows and/or crossbows in your backpack and disarms
if #findcnt > 0
{
msg .disarm $
wait 10
}
wait 10
finditem WOH_JSF C_ , #backpackid ;checks for bows and crossbows in your backpack to count
if #findcnt > 0
{
set %numbows #findcnt
for #findindex 1 #findcnt
{
set %bow . #findindex #findid
}
event sysmessage Bows: %numbows
}
else
{
set %error No , #spc , Bows , #spc , Found , #spc , at , #spc , backpack
gosub stop %error
}
if %numbows > 5
{
set %numbows 5
}
display yesnocancel Setup .Arm Commands? No to Proceed. Cancel to quit.
if #dispres = yes
{
gosub setupbows
}
if #dispres = cancel
{
event sysmessage stopping script!
halt
}
set #dispres nothing
event sysmessage Target the trapped animal ;target the animal you'll be training on
set #targcurs 1
while #targcurs = 1
{
wait 2
}
set %tempvar #ltargetid
wait 10
finditem %tempvar G_5
if #findcnt > 0
{
set %animaltype #findtype
event ExMsg #findid 0 33 I am type: #findtype
}
else
{
set %error no_animal_found
gosub stop %error
}
finditem FQD c_ , #backpackid ;checks if you have raw fish in your backpack (food ofcourse)
if #findcnt > 0
{
set %fisk #findid
event sysmessage #findstack fishs
}
else
{
event sysmessage No fishs
}
finditem PEF_SEF c_ , #backpackid ;checks if you have kindling in your backpack
if #findcnt > 0
{
set %kindling #findid
event sysmessage #findstack kindlings
}
else
{
event sysmessage No Kindling!
}
set %display 0
set %timerz ( #scnt + %zdelay )
set %moveawayx 1273
set %moveawayy 1287
skippast:
return
;---------------Set Up Your Bows Arm/Disarm-------------------------------------;
sub setupbows
set %xbutton 75
set %ybutton 330
set %x 45
finditem WOH_JSF C_ , #charid
if #findcnt > 0
{
msg .disarm $
wait 10
}
wait 10
finditem WOH_JSF C_ , #backpackid
if #findcnt > 0
{
set %numbows #findcnt
for #findindex 1 #findcnt
{
set %bow . #findindex #findid
}
event sysmessage Bows: %numbows
}
else
{
set %error ( No , #spc , Bows , #spc , Found , #spc , within , #spc , your , #spc , backpack )
gosub stop %error
}
if %numbows > 5
{
set %numbows 5
}
event sysmessage Setting Arm commands
msg .arm$
set %bii 1
for %bii 1 %numbows
{
event sysmessage Arming bow %bii DontCrash
ExEvent drag %bow . %bii
wait 25
ExEvent droppd
wait 25
finditem WOH C_ , #charid
if #findcnt > 0
{
set %yy ( ( 50 * %bii ) + 25 )
click %x %yy
wait 18
click %xbutton %ybutton
wait 18
msg .disarm$
wait 18
}
}
click %xbutton %ybutton r
event sysmessage All your bows are set up
return
;----------------Find Your Animal------------------------------------------------;
sub findanimal
refind:
wait 10
finditem %1 G_4 ; YG = bull
if #findcnt > 0
{
set %liveanimal #findid
wait 6
}
else
{
event sysmessage No animals detected
}
return
;------------------Tame The Animal -----------------------------------------------;
sub tameanimal
set #ltargetid %spectre
event macro 27 0
retame:
event macro 13 35
set #ltargetkind 1
set #ltargetid %liveanimal
set %jstart #jindex
target 2s
event macro 22 0
wait 1s
scanjournal
if does_not_seem in #journal
{
return
}
if tamed_already in #journal
{
return
}
if has_angered in #journal
{
event sysmessage Animal is angry
if %killangry = 0
{
wait 14s
goto retame
}
return
}
else
{
wait 10s
set %jend #jindex
event sysmessage scanning...
for %ji %jstart %jend
{
scanjournal %ji
if tamed_already in #journal
{
return
}
if successfully_tame in #journal
{
event sysmessage success
return
}
if failed_to_tame in #journal
{
set %ji %ji + 1
scanjournal %ji
if unresponsive in #journal
{
event sysmessage One loop of tracking to reset cd
wait 4s
gosub trackingonce
goto retame
}
event sysmessage Not successfull will retry in 4s
wait 4s
goto retame
}
}
event sysmessage retrying because no recognised journal entry
wait 4s
goto retame
}
return
;---------------------Kill the animal---------------------------------------------;
sub killanimal
msg all release$
set %liveanimal #ltargetid
event macro 27 0
gosub rearm
set %timera ( #scnt + 68 )
set %timerc ( #scnt + 10 )
set #lobjectid %fisk
repeat
{
if %timera < #scnt
{
finditem %liveanimal G_3
if #findcnt > 0
{
event sysmessage Timed out but animal is alive
gosub killanimal
}
}
if %timerc < #scnt
{
; event macro 13 38
; wait 1s
;SET %clickX #CONTPOSX + %1
;SET %clickY #CONTPOSY + %2
;CLICK %clickX %clickY
; wait 5s
; set %timerc ( #scnt + 10 )
}
event macro 17 0 ;does a fisk
wait 3s
ignoreitem reset 1
ignoreitem MXNVNMD 1
ignoreitem JRNMGOD 1 ;corspes
ignoreitem HAOMGOD 1 ;ignore player corpses
finditem YFM G_3
wait 5
}
until #findcnt > 0
set #ltargetid %spectre
event macro 27 0
return #findid
;------------------------------------------------------------------
sub rearm
event sysmessage arming
msg $
msg .arm 1$
wait 2
msg .arm 2$
wait 2
msg .arm 3$
;msg .arm 4$
;msg .arm 5$
return
;-------------------------------------------------------------------
sub trackingonce
;event macro 13 13
;wait 1s
;SET %clickX #CONTPOSX + %1
;SET %clickY #CONTPOSY + %2
;CLICK %clickX %clickY
wait 10s
return
;--------------------------------------------------------------------
sub ressanimal
;event pathfind #findx #findy
;wait 8
;set #lobjectid %dagger ;comment out to remove skinning
;event macro 17 0 ;
;target 2s ;
;set #ltargetid #contid ;
;event macro 22 0 ;
wait 5 ;end
if G in #charstatus
{
event macro 6
}
if %lootcorpses = 1
{
gosub loot %1
}
reress:
set %jstart #jindex
set #lobjectid %bandages
event macro 17 0
target 2s
set #ltargetid %1
event macro 22 0
wait 1s
scanjournal
if does_not_seem in #journal
{
return
}
wait 11s
set %jend #jindex
for %jii %jstart %jend
{
scanjournal %jii
if resurrected_a in #journal
{
return
}
if fail_to_ress in #journal
{
goto reress
}
}
goto reress
return
;-------------------------------------------------------------------------;
sub loot
if #finddist > 1
{
event pathfind #findx #findy #findz
wait 12
}
set #lobjectid %1
event macro 17 0
wait 20
finditem RWF_LNK_POF_WZF_OWI_RVH_DAG_QZF_HUF_VUF_MWF_WOH C_ , %1
event sysmessage Looting #findcnt items...
for #findindex 1 #findcnt
{
exevent drag #findid #findstack
wait 12
exevent dropc #backpackid
wait 12
}
return
;-------------------------------------------------------------------------;
sub rescount
set %arrowsn 0
finditem WOH C_ , #backpackid
{
set %numbows #findcnt
}
wait 1
finditem RWF C_ , #backpackid
if #findcnt > 0
{
for #findindex 1 #findcnt
{
set %arrowsn ( %arrowsn + #findstack )
}
}
finditem %bandages C_ , #backpackid
{
set %nbandages #findstack
}
finditem %fisk C_ , #backpackid
{
set %nfisk #findstack
}
event sysmessage Bows: %numbows / Arrows: %arrowsn / Bandages: %nbandages / Fish: %nfisk
wait 1
return
;-------------------------------------------------------------------------;
sub stop
display ok %1
return
;-------------------------------------------------------------------------;