Проверка объектаCode:
sub addOrGetObject(name,distance,timeout)
var oldObject = UO.GetSerial(name)
if ((NOT oldObject=='0x00000000') AND (UO.GetDistance(oldObject)<=distance) OR (distance==-1)) then
return oldObject
else
return addObjectWait(name,timeout)
endif
endsub
Выбор целиCode:
sub selectEnemy()
addOrGetObject('Enemy',10,-1)
uo.Cast('Magic Arrow','Enemy')
UO.Attack('Enemy')
endsub
Добавление объектаCode:
ssub addObjectWait(name,timeout)
var timeLeft
repeat
UO.AddObject(name,0)
if uo.waiting() then
uo.canceltarget()
endif
UO.AddObject(name)
timeLeft = timeout
while (NOT uo.Targeting()) AND (timeLeft>0)
wait(50)
timeLeft = timeLeft -50
wend
while (uo.Targeting()) AND (timeLeft>0)
wait(50)
timeLeft = timeLeft -50
wend
until ((timeLeft>0) OR (timeout<=0)) AND (UO.GetSerial(name)>0)
return UO.GetSerial(name)
endsub
Эти я не проверялКастCode:
sub castFS()
autoCastScroll('FlameStrike','0x1234',40)
endsub
Общии каст со скроллаCode:
sub autoCastScroll(scrollName,scrollType,ManaNeed)
if UO.Mana<ManaNeed then
UO.Print("NO MANA!")
manadrink('ManaPotion','0x4321')
endif
var Enemy = addOrGetObject('Enemy',10,-1)
if uo.count(scrollType)<>0 then
castScroll(scrollType,ManaNeed,'Enemy')
uo.print(scrollName+': '+STR(UO.Count(scrollType)))
else
UO.Print("NO SCROLLS!")
endif
endsub
Питье маныCode:
sub manadrink(ManaName,manaType)
if uo.count(manaType)<>0 then
uo.usetype(manaType)
uo.print(ManaName+': '+STR(UO.Count(manaType)))
else
uo.print ("NO MANA POTIONS!")
endsub