EasY UO PVM! dragon island
set %weapon POH ; wepon type KTF=sword; TSF=dagger
set %armor LSH_HSH_MSH_OSH_ISH_NSH_CIK_MSK_IMH ; all armor on charcter
set %repairTools SSVLLMD ; ID Repair Tools
set %repairWeap 50 ; after how many killed bots repair weapon
set %repairArmor 70 ; after how many killed bots repair all armor
set %minimalHP 90 ; when to drink greater heal
set %criticalHP 70 ; when to drink invis, make campfire
set %loot DCI_POF_RZF_SJG_CUD_IJG_HSF_RVH_FZH_NZH_UJG_FWL_GEJ_
set %protection #true
set %minimalTerathansHits 172 ; [exemple: 200 = 100% of hp; 100 = 50% of hp ]
; ****************************************************************
set %bW 0
set %bA 0
set %killed 0
set %looted 0
set %st 0
set %h 0
set %lo 0
set %ignore #false
set #sysmsgcol 64
namespace global looting
set !lootProcess #false
msg $
move 5329 1635 0
gosub hp
move 5333 1614 0
gosub hp
move 5333 1590 0
gosub hp
move 5339 1590 0
moving:
set %q 1
move 5344 1588 0
gosub hp
move 5347 1588 0
gosub hp
move 5347 1589 0
gosub hp
move 5349 1589 0
gosub hp
move 5349 1588 0
gosub hp
move 5356 1588 0
gosub scan
set %q 2
move 5349 1588 0
gosub hp
move 5349 1589 0
gosub hp
move 5347 1589 0
gosub hp
move 5344 1586 0
gosub hp
move 5344 1581 0
gosub hp
move 5343 1579 0
gosub hp
move 5343 1559 0
gosub hp
move 5355 1559 0
gosub hp
move 5355 1548 0
gosub scan
set %q 3
move 5355 1559 0
gosub hp
move 5349 1559 0
move 5349 1565 0
gosub scan
set %q 4
move 5349 1559 0
gosub hp
move 5343 1559 0
; !
set %q 5
move 5343 1559 0
gosub hp
move 5337 1559 0
move 5337 1563 0
gosub scan
set %q 6
move 5337 1559 0
gosub hp
move 5334 1558 0
gosub hp
move 5334 1548 0
gosub scan
set %q 7
move 5334 1558 0
gosub hp
move 5343 1559 0
gosub hp
move 5343 1580 0
gosub hp
move 5344 1583 0
gosub scan
set %q 9
move 5316 1590 0
gosub hp
move 5316 1569 0
gosub scan
set %q 10
move 5316 1562 0
gosub hp
move 5292 1562 0
gosub hp
move 5292 1557 0
gosub hp
move 5288 1557 0
gosub scan
set %q 11
move 5306 1557 0
gosub scan
set %q 12
move 5292 1557 0
gosub hp
move 5292 1562 0
gosub hp
move 5267 1562 0
gosub scan
set %q 13
move 5288 1562 0
gosub hp
move 5288 1572 0
gosub scan
set %q 14
move 5288 1562 0
gosub hp
move 5294 1562 0
gosub hp
move 5294 1567 0
gosub hp
move 5303 1567 0
gosub scan
set %q 9
move 5294 1567 0
gosub hp
move 5294 1562 0
gosub hp
move 5317 1562 0
gosub hp
move 5316 1569 0
gosub scan
set %q 7
move 5317 1569 0
gosub hp
move 5340 1590 0
goto moving
sub scan
ignoreitem reset 1
set %d 0
event exmsg #charid 3 64 scanning sector %q
gosub find
return
sub find
repeat
{
set %d %d + 2
finditem K_U_J G_ , %d
if #findcnt >= 1
gosub checking
}
until %d > 14
return
sub checking
gosub where
if %ignore
{
set %ignore #false
return
}
set %x #charposx
set %y #charposy
set %bot #findid
if %protection
{
set #ltargetid %bot
event macro 27 0
set %lag #scnt + 4
while %lag > #scnt && #enemyid <> %bot
wait 1
while #enemyhits = 4 && %lag > #scnt
wait 1
while #enemyhits < 400 && #enemyhits > 200 && %lag > #scnt
wait 1
event sysmessage #enemyhits
if #scnt >= %lag || #enemyhits < %minimalTerathansHits
{
ignoreitem #findid 1
return
}
}
gosub moveToMob
gosub kill
repeat
{
event pathfind %x %y #charposz 3s
wait 3s
move %x %y 0 1s
gosub hp
}
until #charposx = %x && #charposy = %y
set %d 0
return
sub moveToMob
event exmsg %bot 3 64 moving to..
repeat
{
finditem %bot G
event pathfind #findx #findy #findz 3s
wait 20
gosub hp
gosub where
}
until #finddist < 2 || #findcnt = 0
set #ltargetid %bot
event macro 27 0
return
sub kill
set #ltargetid %bot
set #lobjectid %bot
event macro 27 0
nextcpos 0 0
repeat
{
finditem %bot G
event pathfind #findx #findy #findz
gosub hp
wait 10
if %lo < #scnt
{
event macro 17 0
set %lo #scnt + 4
}
}
until #findcnt = 0
gosub loot
return
sub hp
if #hits =< %minimalHP && %h < #scnt
{
msg $.drink heal$
msg $.userestoration$
set %h #scnt + 3
}
if #hits =< %criticalHP
{
event macro 6 0
event macro 6 0
msg $.drink invis$
event macro 6 0
event macro 6 0
wait 10
msg $.camp$
while #hits < #maxhits && H in #charstatus
wait 1
set #ltargetid #findid
event macro 27 0
}
if #stamina < 5 && %st < #scnt
{
msg .drink refresh$
set %st #scnt + 5
}
return
sub loot
event macro 6 0
event macro 6 0
event macro 13 21
set %lootOverTime #scnt + 15
finditem YFM G_3
if #findcnt >= 1
{
set %body #findid
set #lobjectid %body
event macro 17 0
if for_looting in #sysmsg
{
set %killed %killed + 1
event sysmessage %killed terathans killed, %looted terathans looted.
return
}
while #contkind <> ASEB && #contsize <> 144_212 && %lootOverTime > #scnt
wait 1
wait 20
if %lootOverTime <= #scnt
{
set %killed %killed + 1
event sysmessage %killed terathans killed, %looted terathans looted.
return
}
repeat
{
finditem %loot C_ , %body
if #findcnt >= 1 && ! !lootProcess
{
set !lootProcess #true
exevent drag #findid #findstack
exevent dropc #backpackid
wait 25
set !lootProcess #false
}
}
until #findcnt = 0 || %lootOverTime < #scnt
set %looted %looted + 1
}
ignoreitem %body 2
set %killed %killed + 1
event sysmessage %killed terathans killed, %looted terathans looted.
set %bW %bW + 1
set %bA %bA + 1
if %bW = %repairWeap || %bA = %repairArmor
gosub repair
return
sub where
if %q = 1
{
if #findx < 5344
{
gosub ignore
}
}
if %q = 2
{
if #findx < 5354 || #findy > 1559
{
gosub ignore
}
}
if %q = 3
{
if #findx < 5345 || #findy < 1561
{
gosub ignore
}
}
if %q = 4
{
if #findx < 5337 || #findx > 5352 || #findy > 1556
{
gosub ignore
}
}
if %q = 5
{
if #findx < 5326 || #findx > 5341 || #findy < 1561
{
gosub ignore
}
}
if %q = 6
{
if #findx < 5326 || #findx > 5335 || #findy > 1559
{
gosub ignore
}
}
if %q = 7
{
if #findx < 5307 || #findy < 1584
{
gosub ignore
}
}
if %q = 8
{
if #findy < 1584
{
gosub ignore
}
}
if %q = 9
{
if #findx < 5312 || #findx > 5317 || #findy < 1561 || #findy > 1580
{
gosub ignore
}
}
if %q = 10
{
if #findx < 5282 || #findx > 5290 || #findy > 1554
{
gosub ignore
}
}
if %q = 11
{
if #findx < 5296 || #findx > 5317 || #findy > 1559
{
gosub ignore
}
}
if %q = 12
{
if #findx > 5281 || #findx < 5259
{
gosub ignore
}
}
if %q = 13
{
if #findx > 5297 || #findx < 5283 || #findy < 1564
{
gosub ignore
}
}
if %q = 14
{
if #findx > 5309 || #findx < 5299 || #findy > 1577 || #findy < 1565
{
gosub ignore
}
}
return
sub repair
event macro 6 0
msg .drink invis$
event macro 6 0
event exmsg #charid 3 64 repairing..
if %bW = %repairWeap
{
gosub take&repair %repairTools %weapon
set %bW 0
}
if %bA = %repairArmor
{
gosub take&repair %repairTools %armor
set %bA 0
}
return
sub take&repair
if %bW = %repairWeap
{
repeat
{
finditem %2 C_ , #charid
exevent drag #findid #findstack
exevent dropc #backpackid
wait 20
finditem %2 C
}
until #findbagid = #backpackid
}
repeat
{
finditem %2 C_ , #charid
exevent drag #findid #findstack
exevent dropc #backpackid
wait 20
finditem %2 C_ , #charid
}
until #findcnt = 0
repeat
{
finditem %2 C_ , #backpackid
_repairing:
set #lobjectid %1
set #ltargetid #findid
set #ltargetkind 1
set %lag #scnt + 10
event macro 17 0
target
while #targcurs <> 1 && #scnt < %lag
wait 1
event macro 22 0
if #scnt >= %lag
goto _repairing
wait 10
if #findtype = CIK
ignoreitem #findid 1
finditem #findid
set #lobjectid #findid
event macro 17 0
wait 20
finditem %2 C_ , #backpackid
}
until #findcnt = 0
ignoreitem reset 1
msg .arm$
wait 10
msg .arm$
return
sub ignore
set %ignore #true
ignoreitem #findid 1
return